'무결성'에 해당되는 글 2건

  1. 2009.03.11 [DataBase] 문제풀이 4장
  2. 2008.12.29 [DataBase] 데이터의 무결성

[DataBase] 문제풀이 4장

DB 2009. 3. 11. 22:03

4.1 다음 용어들을 정리하여라.
도메인 - 더 이상 나누어질 수 없는 값들의 집합. 이름, 데이터 타입, 포맷을 가진다.
애트리뷰트 - 열의 제목
n-투플 - n 개의 값의 순서 리스트.
릴레이션 스키마 - 릴레이션 이름과 애트리뷰트로 구성, 릴레이션을 표현하기 위해 사용된다.
릴레이션 상태 - n-투플의 집합.
릴레이션의 차수 - 릴레이션 스키마의 애트리뷰트 수.
관계 데이터베이스 스키마 - 릴레이션 스키마의 집합과 무결성 제약조건들의 교집합이다.
관계 데이터베이스 상태 - 무결성 제약조건을 만족하는 릴레이션 상태들의 집합.

4.2 릴레이션의 투플들에 순서가 없는 이유는 무엇인가?
릴레이션은 투플들의 집합으로 정의된다. 수학적으로 집합의 원소들 사이에는 순서가 없다. 따라서 릴레이션에서도 투플들은 특정 순서를 갖지 않는다.

4.3 릴레이션에 중복 투플들이 허용되지 않는 이유는 무엇인가?
집합의 모든 원소는 중복되지 않으므로 이 정의에 의하면 릴레이션의 모든 투플도 중복되지 않아야 한다.

4.4 키와 슈퍼키의 차이점은 무엇인가?
슈퍼키는 같은 값을 가지는 서로 다른 투플이 존재하지 않는다는 유일성 제약 조건을 명시한다. 그러므로 모든 릴레이션은 적어도 하나의 슈퍼키를 갖는다. 그러나 슈퍼키는 중복되는 애트리뷰트들을 가질 수 있으므로 이런 중복성을 갖지 않는 개념이 필요한데 그것이 키이다. 키와 슈퍼키에 적용되는 조건은 서로 다른 두 투플은 동일한 키 애트리뷰트 값을 가질 수 없다는 것이다. 키는 최소의 슈퍼키이다. 그리고 일반적으로 단일 애트리뷰트의 슈퍼키는 키이다.

4.5 릴레이션의 후보키들 중의 하나를 기본키로 지정하는 이유는 무엇인가?
중복의 애트리뷰트 값을 가지는 것을 일차적으로 배제할 수 있기 때문에 후보키들 내에서 선택한다.

4.6 릴레이션이 보통의 테이블이나 파일과 다른 특성을 설명하라.
1.릴레이션은 투플들의 순서에 영향을 받지 않는다. 투플들에는 순서가 없다.
2. 릴레이션 스키마내의 애트리뷰트들의 순서와 그에 따른 투플 내의 값들의 순서는 같다.

4.7 릴레이션에 널값이 생기는 여러 가지 이유를 설명하라.
값이 정의되지 않은 경우
값을 알 수 없는 경우
값이 현재 가능하지 않은 경우

4.8 엔티티 무결성과 참조 무결성 제약조건을 설명하고, 그것들이 중요한 이유를 기술하라.
엔티티 무결성 - 어떠한 기본키 값도 널 값이 될 수 없다. 기본키 값은 한 릴레이션 내의 각 투플을 식별하는 데 사용하는데 기본키 값이 널값이면 투플들을 식별할 수 없기 때문이다.
참조 무결성 - 두 릴레이션 사이에 명시되는 제약조건으로 한 릴레이션에 있는 투플이 다른 릴레이션에 있는 투플을 참조하려면 반드시 참조되는 투플이 그 릴레이션 내에 존재해야 한다. 한 릴레이션의 외래키의 값이 참조하는 릴레이션의 기본키 값과 일치해야 한다는 것을 의미한다. 이렇게 함으로써 두 개체들 간의 관계를 나타내는 것이다.

4.9 외래키를 정의하라. 왜 이 개념이 필요한가? 이것이 조인 연산에서 어떤 역할을 하는가?
참조 무결성 제약조건이 만족된 두 릴레이션 스키마에서 다음과 같은 조건을 만족하면 외래키라고 한다.
1. 외래키의 애트리뷰트는 참조하는 릴레이션의 기본키의 애트리뷰트와 동일한 도메인을 가진다.(이때 '외래키는 그 릴레이션을 참조한다'고 한다.)
2. 한 릴레이션의 투플의 외래키 값은 참조하는 릴레이션의 투플의 기본키 값과 일치하거나 널값을 가져야 한다.
 
4.10 트랜잭션이란 무엇인가? 갱신과 무엇이 다른가?
데이터베이스에 존재하는 값들에 대한 읽기 연산. 추가, 삭제, 갱신 연산. 데이터베이스에 대해 모든 제약조건들을 만족하는 일관된 상태로 수행을 끝마쳐야 한다. 하나의 트랜젝션은 데이터베이스로부터 값을 읽는 검색 연산들과 갱신 연산들을 여러 개 포함할 수 있다.

Posted by zeide
,
※데이터의 무결성
- 데이터의 정확성과 일관성이 보장된 상태
- 무결성 제약 조건은 데이터베이스에 저장된 데이터의 정확성을 보장하기 위해 정확하지 않은 데이터가 데이터베이스 내에 저장되는 것을 방지하기 위한 제약 조건

※무결성의 종류
1. 엔티티 무결성 : 한 엔티티는 중복과 누락이 있을 수가 없음. 동일한 PK를 가질 수 없으며 PK의 속성이 Null을 허용할 수 없음
2. 참조 무결성 : 외래키가 참조하는 다른 개체의 기본키에 해당하는 값이 기본키 값이나 Null이어야 함
3. 속성 무결성 : 속성의 값은 기본값, Null여뷰, 지정된 도메인(데이터타입, 길이)규칙을 준수하여 존재해야 함
4. 사용자 무결성 : 사용자의 의미적 요구사항을 준수해야 함

※제약조건의 종류
1. 엔티티 무결성 : Primary Key. Unique Index
2. 속성 무결성 : Check, Null/Not Null, Default
3. 참조 무결성 : Foreign Key
4. 사용자 정의 무결성 : Trigger, User Define Data Type

※각 요소의 내용

Primary Key

컬럼의 유일성 보장, PK Null이 될 수 없음

Unique Index

다중의 보조 키 개념을 지원, 컬럼의 유일성 보장, Null 허용

Foreign Key

테이블 간의 논리적 관계가 유지됨을 보장, FK는 참조하는 테이블의 PK, Null 허용

Cascaded Option : Master 삭제 시 레코드가 함께 삭제

Nullified Option : Master 삭제 시 해당 값을 Null로 세팅

Restricted Option : FK가 존재하면 Master 레코드를 삭제할 수 없음

Data Type

데이터의 형을 제한하여 데이터 무결성 유지

Check

데이터를 추가할 때마다 SQL서버가 해당 값이 해당 컬럼들에 지정된 Check제약을 위배하는지를 검사함으로써 데이터 무결성 유지

Default

특정 컬럼에 대해 명시적으로 값을 입력하지 않은 경우에 SQL서버가 자동적으로 지정된 값을 삽입할 수 있도록 함으로써 데이터 무결성 유지

INSERT 또는 UPDATE에서 DEFAULT 키워드를 사용할 수 있음

Trigger

테이블의 내용을 변경하려는 특정 사건(DB연산)에 대해서 DBMS가 미리 정의된 일련의 행동(DB연산)을 수행하는 메커니즘, DBMS서버에 의해 자동으로 호출

데이터에 대한 변경을 시도할 때마다 자동적으로 호출

트랜젝션의 철회(rollback)와 같은 동작을 수행가능

저장 프로시저의 특별할 형태로서 SQL의 모든 기능을 이용가능

참조 무결성을 위해 사용가능

Posted by zeide
,