Key슈퍼키 super key: 해당 개체를 고유하게 식별할 수 있는 attribute의 ''집합''.
후보키 candidate key: 슈퍼키의 부분집합. 슈퍼키에서 군더더기를 제거한 것. (수학적 정의) ''모든 다른 attribute들을 함수적으로 결정하는 attribute''
기본키 primary key: 여러 후보키 중 대표적인 키 하나를 선택해 테이블의 기본 키로 만든다. 인공 키 vs 자연 키인공 키 : 현실에 존재하지 않는 속성으로 만든 키
자연 키 natural key : 현실에 존재하는 속성으로 만든 키
기본키와 외래키
외래키의 역할
이번 프로젝트의 경우 MySQL에서 외래키 선언위
기본키 - Primary Key테이블의 각 row 를 유일성과 최소성을 만족시키면서 식별할 수 있는 후보키 중에 선택한 Main key
*Candidate Key ? : 관계형 데이터베이스에서 *릴레이션(Relation)의 튜플을 유일하게 식별할 수 있는 속성 또는 속성의 집합 중, 다음 두 성질을 만족해야 함
*릴레이션 : 테이블이라고 이해 1. CREATE 문으로 생성
2. ALTER 문으로 PRIMARY KEY 수정 추가 - 테이블에 새로운 필드를 추가할 때 해당 필드를 기본 키로 설정하는 방법
변경 - 기존에 존재하는 필드를 기본 키로 설정하는 방법
삭제 - 해당 테이블 Primary key 제약 조건을 삭제
* Unique 제약 조건- 해당 필드는 서로 다른 값을 가져야 한다. (중복 저장 x) - NULL 값 가능
외래키 - Foreign Key
외래 키 추가
외래 키 삭제
- 외래키는 NULL값이거나 또는 부모 테이블의 기본 키 값과 같아야 합니다. 그렇지 않으면 에러가 발생합니다. 외래 키 제약 - ON UPDATE, ON DELETE FOREIGN KEY 제약 조건에 의해 참조되는 테이블의 데이터의 수정이나 삭제가 발생하면, 참조하고 있는 테이블의 데이터도 같이 영향을 받습니다. 이때 참조하고 있는 테이블의 동작은 다음 키워드를 사용하여 제약 조건에서 미리 설정을 할 수 있습니다.
참고 https://prinha.tistory.com/ 얄코 강의 |