Presentation is loading. Please wait.

Presentation is loading. Please wait.

4 장. 관계 데이터 모델과 관계 데이터베이스 제약조건

Similar presentations


Presentation on theme: "4 장. 관계 데이터 모델과 관계 데이터베이스 제약조건"— Presentation transcript:

1 4 장. 관계 데이터 모델과 관계 데이터베이스 제약조건
4.1 관계모델의 개념 4.2 관계 모델 제약조건과 관계 데이터베이스 스키마 4.3 갱신 연산과 제약조건 위반의 처리

2 4.1 관계모델의 개념 관계 모델은 데이터베이스를 릴레이션들의 모임으로 표현 릴레이션(relation)
개체, 혹은 개체간의 관계에 대한 사실을 표현한 데이터들로 이루어진 테이블 테이블의 각 열은 애트리뷰트, 각 행은 투플(tuple)이라고 함. 투플은 실세계의 개체, 혹은 개체간의 관계를 기술하는 관련된 데이터 값들의 모임.

3 [그림 4.1] STUDENT 릴레이션의 애트리뷰트와 투플들

4 도메인(domain) 원자 값들(atomic values)의 집합 Phone_numbers : 전화 번호들의 집합 Names : 개인의 이름들의 집합 Age : 16~60 사이의 사원들의 나이(정수) 도메인은 실제 데이터 타입으로 명시함 (int, char(10), …)

5 릴레이션 스키마(relation schema)
릴레이션의 구조에 대한 기술. R(A1, A2, ..., An)로 표기. R은 릴레이션 이름, Ai는 애트리뷰트 이름. 예) STUDENT(Name,SSN,BirthDate,Addr) 릴레이션 인스턴스

6 [그림 4.5] COMPANY 관계 데이터베이스 스키마

7 [그림 4.6] COMPANY 스키마의 관계 데이터베이스 인스턴스

8 4.2 관계 모델 제약조건과 관계 데이터베이스 스키마
제약조건은 모든 릴레이션 인스턴스들이 만족해야 하는 조건. 도메인 제약조건 키 제약조건 엔티티 무결성 제약 조건 참조 무결성 제약조건 의미적 무결성 제약조건

9 도메인 제약 조건 애트리뷰트에 대한 값은 그 애트리뷰트의 도메인에 속하는 원자값. 도메인과 관련된 데이터 타입 정수, 실수와 같은 표준 숫자형 문자, 고정길이 문자열, 가변길이 문자열 날짜, 시간 화폐단위, 메모 등

10 키 제약조건 릴레이션의 키(key): 릴레이션 내의 임의의 서로 다른 두 투플 t1과 t2에 대해 t1[SK] ≠ t2[SK]인 애트리뷰트의 최소 집합 SK. 릴레이션에는 키를 구성하는 애트리뷰트들의 집합이 존재해야 하며 릴레이션내의 투플은 키에 대해 유일한 값을 가져야 한다. 엔티티 무결성 제약조건: 기본 키 값으로 null 값을 가질 수 없다. 기본키가 투플들을 식별하는 데에 이용되기 때문.

11 외래키(foreign key): 릴레이션 스키마 R1에서 다음의 두 규칙을 만족하는 애트리뷰트들의 집합 FK
dom(FK) = dom(릴레이션 스키마 R2의 기본 키 PK). 이때 FK는 릴레이션 R2를 참조한다고 함 R1의 한 투플 t1내의 FK값은 R2의 어떤 투플 t2내의 PK값과 일치하거나 null값을 가져야 함. t1[FK] = t2[PK]이면 투플 t1이 투플 t2를 참조한다(reference)고 말한다.

12 참조 무결성 제약조건 한 릴레이션에 있는 투플이 다른 릴레이션에 있는 투플을 참조하려면 반드시 참조되는 투플이 그 릴레이션내에 존재해야 함 참조 무결성 제약 조건은 릴레이션 스키마가 표현하는 개체들간의 관계로부터 생긴다. 의미적 무결성 제약조건

13 [그림 4.7] COMPANY 관계 데이터베이스 스키마에 표시된 참조 무결성 제약 조건들

14 관계형 데이터베이스 스키마: 릴레이션 스키마들의 집합+ 무결성 제약 조건들의 집합
제약 조건들이 데이터 베이스 인스턴스에 적용되기를 원하면 이들 제약 조건들을 데이터 정의어를 이용하여 관계 데이터베이스 스키마에 명시하여야 함

15 4.3 갱신 연산과 제약조건 위반의 처리 삽입, 삭제, 수정은 릴레이션에 대한 기본 갱신 연산
갱신 연산을 실행하는 경우 스키마에 정의된 무결성 제약 조건을 위반하지 않아야 함 삽입연산 – 네가지 제약 조건을 위반할 수 있음 삽입되는 투플 t에서 애트리뷰트의 값이 도메인에 없으면 도메인 제약 조건을 위반함

16 t에서 기본 키의 값이 다른 투플에서 이미 존재한다면 키 제약 조건을 위반하며, 널이면 엔티티 제약 조건을 위반함
제약 조건을 위반하면 그 삽입을 거부하거나 그 위반 사실을 사용자에게 알려야 함

17 삭제연산 투플이 삭제되는 경우 다른 테이블에서 참조하고 있는지 검사하여 그렇지 않는 경우에만 삭제함 (참조 무결성) 삭제 연산이 참조 무결성 제약 조건을 위반하는 경우 취할 수 있는 세가지 옵션 삭제를 거부

18 삭제되는 투플을 참조하는 투플들까지 모두 삭제 (연쇄 삭제)
삭제되는 투플을 참조하는 투플에서 외래키 값을 널로 바꾸거나 다른 유효한 투플을 참조하도록 변경 위의 세가지 옵션 중 사용자가 응용의 특성에 적합한 것을 선택하도록 하는 것이 바람직함

19 갱신연산 갱신 연산은 기본적으로 “삭제 후 삽입” 연산으로 간주할 수 있으므로 삽입과 삭제시의 문제점이 모두 나타남 기본 키나 외래키가 아닌 애트리뷰트 값의 변경은 문제가 없음


Download ppt "4 장. 관계 데이터 모델과 관계 데이터베이스 제약조건"

Similar presentations


Ads by Google