YZ ZONE

관계 데이터 모델 본문

IT

관계 데이터 모델

러블리YZ 2023. 2. 3. 14:14

관계 데이터 모델

관계데이터 모델에서는 하나의 개체에 관한 데이터를 릴레이션 relation 하나에 담아 데이터베이스에 저장함.

 

- 속성(에트리뷰트 attribute) : 릴레이션의 열

- 투플 tuple : 릴레이션의 행.고객 한명에 대한 속성 값. 고객 개체의 인스턴스.

- 도메인 domain :속성값 범위. 도메인을 정의해두면 사용자가 속성 값을 입력하거나 수정할 때 데이터베이스 시스템이 이외의 값은 허용하지 않음으로 옳은 값만 가질수 있음. 데이터 타입으로 정의함.

Ex) CHAR(20): 문자 20개로 구성

- 널 값 null : 특정 속성에 해당되는 값이 없음. 0,공백 문자와는 다름.

- 차수 degree : 속성의 전체 개수. 아래 예시:6

- 카디널리티 cardinality : 하나의 릴레이션에서 투플의 전체 개수. 아래예시:4

[ 릴레이션과 데이터베이스의 구성 ]

릴레이션 스키마 relation schema : 릴레이션의 이름과 속성 이름들

릴레이션 인스턴스 relation instance : 투플들

데이터베이스 스키마: 모든 릴레이션 스키마들

데이터베이스 인스턴스: 모든 릴레이션 인스턴스들

 

릴레이션의 특성

1. 투플의 유일성

구별. 하나 또는 여러개의 속성을 미리 선정해 투플마다 다르게 지정해 유일성을 판단.

이처럼 투플을 유일하게 구별하기 위해 선정하는 속성을 키 key 라고함.

2. 투플의 무순서

3. 속성의 무순서

4. 속성의 원자성

속성값은 더 분해 못하는 원자 값만 가질 수 있음. 다중 값을 가질 수 없음.

 

키의 종류

키 key: 투플들을 유일하게 구별. 중요한 제약조건을 정의.

- 슈퍼키 super key (유일성)

유일성 만족. 키 값이 같은 투플은 존재 x. 고객아이디를 포함하는 속성 집합은 모두 슈퍼키가 될 수 있음.

- 후보키 candidate key

유일성과 최소성 만족. 최소한의 속성들로만 키를 구성.

- 기본키 primary key

여러 후보키 중 기본적으로 사용할 키. 반드시 선택. 학번.

- 대체키 alternate key

기본키로 선택되지 못한 후보키들.

- 외래키 foreign key

다른 릴레이션의 기본키를 참조. 릴레이션들(테이블) 사이의 관계를 올바르게 표현하기 위해 필요. 외래키가 다른 테이블의 대체키를 참조하는 것도 가능. 외래키를 통해 릴레이션 끼리 관계를 맺음. 속성의 이름은 달라도 되지만 도메인은 반드시 같아야함. 도메인이 같아야 비교 연산이 가능하기 때문.

투플을 구별 못해 유일한 투플 검색을 못함. 반드시 다른 릴레이션의 기본키를 참조하고 도메인은 참조되는 기본키와 같게 정의해야함.

외래키를 기본키로 사용할 수도 있고 외래키를 포함해 기본키로 구성 가능.즉 외래키 자신이 속한 릴레이션의 기본키를 참조하도록 외래키를 정의할 수도 있음. 같은 데이블 안의 기본키 참조 가능.

외래키는 기본키를 참조하지만 기본키가 아니기 때문에 널 값을 가질수 있음.

외래키 자신은 null을 가질수 있어도 참조되는 기본키는 null일수 없음.

서로 다른 투플이 같은 값을 가질 수 있음 (ex. 추천고객이 같음)

입력시 주문데이블의 데이터가 다른 테이블에 등록된 정보인지 즉 속성값이 들어왔을때 다른 테이블을 참조해 맞는지 검사해야하는데 외래키로 지정해 놓으면 데이터가 바뀌어도 다른 테이블 다 뒤져서 확인할 필요 없음 자동으로 다른 테이블의 키본키를 참조하는 속성이 있음.

개체 무결성 제약조건 entity integrity constraint

기본키를 구성하는 모든 속성은 널 값을 가질 수 없다 . 식별

참조 무결성 제약조건

외래키는 참조할 수 없는 값을 가질 수 없다. 즉 존재하지 않는 고객이 주문하면 무결성 제약조건 위반.

널은 주문한 고객을 모를 뿐 이므로 위반은 아님.

데이터베이스의 상태가 변해도 참조 무결성 제약조건을 만족시켜야함.

'IT' 카테고리의 다른 글

DML  (0) 2023.02.03
DB 언어 SQL - DDL  (0) 2023.02.03
데이터 모델링  (0) 2023.02.03
데이터베이스 관리 시스템의 구성  (0) 2023.02.03
데이터 언어  (0) 2023.02.03