728x90
▶ keys
▷ superkey
relation에서 tuples를 unique하게 식별할 수 있는 attributes set
▷ candidate key
- 어느 한 attribute라도 제거하면 unique하게 tuples를 식별할 수 없는 superkey
- key or minimal superkey 라고 불리기도 함.
- 하나하나가 독립적으로 튜플들을 유니크하게 식별할 수 없음
▷ primary key
- relation에서 tuples를 unique하게 식별하기 위해 선택 된 candidate key
- 보통 프라이머리 키를 고를 때 attribute 수가 적은걸 프라이머리 키로 고른다. (그게 더 편하기 때문에)
▷ unique key
- primary key가 아닌 candidate keys
- alternate key 라고도 불림
프라이머리 키는 아래 이렇게 밑줄 강조 표시가 들어감
▷ foreign key
- 다른 relation의 primary key를 참조하는 attributes set
PLAYER relation의 team_id 는
TEAM relation의 PK인 id를 참조하기 때문에
foreign key라고 할 수 있다.
▶ Constraints
- relational database 의 relations들이 언제나 항상 지켜줘야 하는 제약 사항
▷ implicit constraints
- relational stat model 자체가 가지는 constraints
- relation은 중복되는 tuple을 가질 수 없다.
- relation 내에서는 같은 이름의 attribute를 가질 수 없다.
▷ schema-based constraints
- 주로 DDL을 통해 schema에 직접 명시할 수 있는 constraints
- explicit constraints라고도 불림
▷ domain constraints
- attribute의 value는 해당 attribute의 domain에 속한 value여야 한다.
100학년은 말이 안돼!!!!
▷ key constraints
- 서로 다른 tuples에는 같은 value의 key를 가질 수 없다.
▷ NULL value constraint
- attribute가 NOT NULL로 명시됐다면 NULL을 값으로 가질 수 없다.
▷ entity integrity constraint
- primary key는 value에 NULL을 가질 수 없다.
▷ referential integrity constraint
- FK와 PK와 도메인이 같아야 하고 PK에 없는 values를 FK가 값으로 가질 수 없다.
위 사진은 FK(team_id)와 PK(id)의 도메인은 같다.
하지만 PK에 없는 values를 FK인 team_id가 가지고 있기 때문에(team_023)
referential integrity constraint를 위반했다고 볼 수 있다.
참고자료
https://youtu.be/gjcbqZjlXjM?si=D16X-3zDKV0csP5R
강의 정말 좋으니 한번씩 보시는거 추천 드립니다.
728x90
'학과 공부 > 데이터베이스' 카테고리의 다른 글
[Database]relational database (0) | 2024.02.26 |
---|---|
[Database] schema & state, three-schema architecture,database language (0) | 2024.02.24 |
[Database]database의 기본 개념 (1) | 2024.02.24 |