728x90
Key
- 하나의 tuple을 다른 tuple들로부터 구별하는 방법입니다.
- 종류에는 superkey, candidate key, primary key, foreign key가 있습니다.
Superkey
- 고유한 값들로만 있는 값들의 집합입니다.
- 중복이 있다면 superkey가 될 수 없습니다.
- 예를 들어서 주민 번호는 superkey가 될 수 있지만 사람 이름은 될 수 없습니다.
Candidate key
- 우선 정의는 이렇습니다.
- A minimal superkey for a relation.
- 즉 minimal superkey 는 candidate key입니다.
- 예시
- {ID, name}은 superkey입니다. 하지만 부분집합, 즉 {ID}, {name}에서 {name}은 superkey가 아니지만 {ID}는 superkey입니다. 따라서 candidate key가 될 수 없습니다. (공집합과 자기자신을 제외한 나머지들이 부분집합에 해당합니다.)
- 결론은 superkey의 부분집합 모두가 superkey가 아니라면 그건 minimal key이며 즉 candidate key가 됩니다.
- {ID}같이 속성이 하나만 들어온 경우엔 {ID}가 superkey라면 candidate key입니다.
Primary Key
- DB 설계자가 선택한 candidate key입니다.
- candidate key는 여러개가 올 수 있는데, 그 중 하나가 Primary key가 되는 것입니다.
- 줄여서 PK라고 하며 테이블엔 무조건 하나의 PK만 존재할 수 있습니다.
- 보통 PK는 밑줄이 그어져 있습니다. 근데 밑줄이 두개에 쳐져있다면, 그 두개를 합쳐서 하나로 만든게 PK라는 뜻입니다.
Foreign Key
- 다른 테이블의 PK를 가져온 것입니다.
- 보통 join을 할 때 많이 사용하는데, 다른 릴레이션과 연관관계를 이루게 됩니다.
- 보통 화살표로 표현을 하며 Foreign key -> Primary Key 로 표현합니다.
728x90
'Computer Science > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 트랜잭션, Transaction (0) | 2022.01.27 |
---|---|
[데이터베이스] Data Analytics with SQL (0) | 2021.10.29 |
[데이터베이스] 관계형 데이터베이스 (0) | 2021.10.28 |
[데이터베이스] Database? (0) | 2021.10.16 |
댓글