[포스코x코딩온] 스마트팩토리 개발자 과정 9주차 회고 | 키

정형진·2023년 3월 5일
1

키 (Key)

  • 키는 릴레이션에서 투플을 식별할 때 사용하는 속성이라고 생각하자.

키의 종류

  • 슈퍼키 (Super Key)
  • 후보키 (Candidate Key)
  • 기본키 (Primary Key)
  • 대리키/인조키 (Artificial Key)
  • 대체키 (Alternate Key)
  • 외래키 (Foreign Key)

모두 기억하기 힘들다면 기본키, 외래키만은 꼭 기억하자!
특별한 언급 없이 "키"라고 하면 "후보키"를 의미 (유일성 + 최소성) 한다는 것을 기억하자!


1. 슈퍼키 (Super Key)

투플을 유일하게 식별할 수 있는 하나의 속성 또는 속성의 집합이라고 생각하자.
즉, 유일성을 만족해야 한다.


2. 후보키 (Candidate Key)

투플을 유일하게 식별할 수 있는 속성의 최소 집합이다.
유일성, 최소성을 만족해야 한다.


3. 기본키 (Primary Key, PK) (중요)

여러 후보키 중 하나를 선택하여 릴세이션을 대표하는 속성이 기본키가 된다.
즉, 만약 후보키가 하나라면 그 후보키를 사용한다.
후보키가 여러 개라면, 하나를 선택한다.

기본키를 선정할 때에는 고려해야할 사항들이 있다.

  • 릴레이션 내 투플을 식별할 수 있는 고유한 값을 가져야 함
  • NULL 값 허용 안됨
  • 키 값의 변동이 일어나지 않아야 함
  • 최대한 적은 수의 속성을 가진 것이어야 함
  • 향후 키를 사용하는데 문제 발생 소지가 없어야 함 (개인정보 등)

NULL

여기서 NULL은 “값이 없음” 을 나타내는 용어이다.
숫자 0이나 공백(“ “) 과는 다른 개념이라는 것에 유의해야 한다. 
데이터베이스에서 값이 존재하지 않음을 나타낼 때 사용한다.
“아직 입력되지 않은 값” , “알 수 없는 값”을 의미

Ex) NULL + 5 == 5가 아니다. (NULL과 계산 불가능)

4. 대리키 / 인조키 (Artificial Key)

마땅한 기본키가 없는 경우, 일련번호 속성을 만들어 기본키로 만든다.
DBMS나 소프트웨어에서 임의로 생성한다.


5. 대체키 (Alternate Key)

기본키로 선정되지 않은 후보키


6. 외래키 (Foreign Key, FK) (중요)

다른 릴레이션의 기본키를 참조하는 속성이다.
자기 릴레이션의 기본키를 참조할 수도 있다.

• 외래키 특징

• 관계 데이터 모델의 특징인 “Relation”을 표현
• 다른 릴레이션의 기본키를 참조하는 속성
• 참조하고(외래키) 참조되는(기본키) 양쪽 릴레이션 도메인은 서로 같아야 함
-> 가질 수 있는 값의 집합이 다를 수는 없으니까!
• 참조되는(기본키) 값이 변경되면 참조하는(외래키) 값도 변경됨
-> 원래 값이 바뀌면 가져오는 값도 바뀜!
• NULL 값과 중복 값 등 허용
• 자기 자신의 기본키를 참조하는 외래키 가능

참조 무결성 제약조건
• 외래키(Foreign Key)는 다른 릴레이션의 기본키(Primary Key)를 참조해야 함
(자신의 릴레이션이 기본키를 참조할수도 있음.)


개념과 용어가 너무나 많아서 다 기억하기 힘들수가 있다. 그럴 때는 앞서 말했듯이 기본키와 외래키를 꼭 기억하자!

기본키는 유일성과 최소성을 만족!! (개인정보 같은 민감한 정보는 쓰지 않는 것이 좋음.)
외래키는 다른 릴레이션의 키를 가져옴!

전에 풀었던 문제에서 릴레이션 스키마를 표현할 때 깜빡하고 기본키에 밑줄을 안 그었는데, 기본키 밑에는 꼭 밑줄을 그어서 표현하자!

0개의 댓글