The Relational Data Model and Relational Database Consarin
Relarional Data model
개념적 스키마를 배웠다. (외부 개념 내부 3가지 )
그중 ERD는 사람이 보깅 편한 형태 였지 DBMS, 즉 컴퓨터가 이해 할 수 있는 것이 아니였다.
본장에서는 논리 스키마(relational data model)를 배움
tuple이 entity이며 entity type은 attribute,
entity set은 set of tuple
database는 relation에 대한 집합이자 constraints에 대한 집합
1. inherent or implicit constraints : 정해진 스키마에 대한 데이터 타입에 대한 제약
2. schema-based or explicit constraints : 데이터 정의어에 의해 구축이 된 5가지 제약 조건이 존재
3. application based or semantic constraints : dbms의 규칙이 아닌 응용프로그램의 추가적인 규칙
explit schema-based 3개
- key constraints : tuple을 구분할 수 있는 구분자인데 이것이 중복되면 안된다.
- entity integrity constraints
- referential integrity constraints
schema-based constrint
- domain constraints : 데이터 타입이 다르면 안된다
- null constraints : null을 허용하는 attribute에 따라 null의 유무를 체크한다.not null인 attribute value가 null이면 안됨
superkey는 모든 key의 집합을 의미
key는 superkey의 minimum최솟값? 최솟값이 데이터 사이즈를 의미?
구별할 수 있는 최소 단위라는 의미인데, 상황, 목적에 따라 다르게 정의되는 듯. 최종 결정은 dba가 결정
primary key는 key들 중 하나
나머지는 candidate keys가 된다. underline을 침
relation들의 집합과 set IC of integrity(무결성 제약 조건의 세트)로 표현 가능
primary key는 null을 가질 수 없다
foreign key는 참고하는 attritude이며 이는 null이 될 수 없다.
operation을 restrict, reject함
update는 cascade option, null option, default option 또한 있음
insert가 db에 들어갈때 각 attribute가 옳은 데이터 타입인지? -> domain constraints
해당 attribute에 null이 존재하면 안되는데 존재하고는 있지 않은지 -> null constraints
primary key가 null이 아닌지 -> entity integrity
key가 tuple간에 중복이 있지 않은지 -> key constraints
operation에서 참조하는 값이 실제 데이터베이스 에 있는지 -> referential integrity
delete의 경우는 referential integrity만 확인하면 됨
참조 되는 것이 있다면 del할 수가 없음
ERD를 relational로 mapping
week entity는 추가가 안된 상태
1번 방법으로 mgr-ssn, mgr_start_date라는 foreign key 추가
M:N
relationship relation을 만드는게 나음 -> foreign key를 사용하면 중복이 너무 많음
multivalued의 경우 table로 만들어 참조
N-ary relationship 다관계 relationship의 경우
관계 realtion을 만들어 핵심 key를 foreign키로 가져온다.
er(개념적 스키마)과 relational model(논리적 스키마)들 끼리 용어적인 차이가 있었다