유일성 - 데이터의 중복이 없는것
최소성 - 데이터를 식별할때 최소한의 성질만 가져야 한다.
슈퍼키 ( Super Key )
유일성을 만족하는 속성 또는 속성들의 집합
최소성을 만족시키지 않아도 되는 키이다.
여러 키중에 가장 큰 개념이라고 생각하면 된다.
아이디 | 비밀번호 | 이름 | 주민번호 | 전화번호 |
위의 테이블을 예시로 보면 유일성을 만족하면 되는 속성은 보통 아이디와 주민번호 전화번호가 겹치지 않기에 이 속성이나 이를 포함한 속성들의 집합이 슈퍼키가 되는 것이다.
후보키 ( Candidate Key )
유일성과 최소성을 모두 만족하는 키
아이디 | 비밀번호 | 이름 | 주민번호 | 전화번호 |
위의 테이블을 예시로보면 유일성과 최소성을 만족시키는 것은
아이디, 주민번호, 전화번호만 될것이다.
만약 이를 포함한 아이디, 비밀번호릐 집합은 굳이 아이디로 식별이 가능한데 비밀번호는 풀필요하기에
최소성을 지키지 않게 되기 때문에 후보키가 될수 없다.
기본키 ( Primary Key )
후보키중 선택된키
현재 테이블에서 이 속성으로 데이터를 식별하겠다고 후보키중에 선택된 키를 기본키라 한다.
아이디 | 비밀번호 | 이름 | 주민번호 | 전화번호 |
아까 후보키로 정해 두었던 아이디, 주민번호, 전화번호중 자신이 데이터를 식별하기 위해 쓸 속성을 기본키로 정하면된다 보통 회원을 식별할때 아이디로 하기에 여기서는 아이디를 기본키라 하겠다.
대체키 ( Alternate Key )
후보키중 기본키가 되지못한 키
보통 보조키라고도 한다.
아이디 | 비밀번호 | 이름 | 주민번호 | 전화번호 |
아까전 후보키중 나는 아이디를 기본키라 하였기에
나머지 후보키였던 주민번호와, 전화번호가 대체키가 되는것이다.
복합키 ( Composite Key )
여러 열을 조합하여 기본키 역할을 할 수 있게 만든 키
아이디 | 비밀번호 | 이름 | 주민번호 | 전화번호 |
만약 이 테이블에서 아이디와 주민번호, 전화번호가 모두 겹칠 수 있다고 하면
단 한 속성 가지고는 유일성을 지킬 수 없다.
따라서 유일성을 지킬 수 있게 여러 속성을 합쳐서 유일성과 최소성을 모두 만족시키는 것이다.
만약 이 테이블에서 아이디도 겹치고 비밀번호도 겹치지만
둘을 같이 볼경우 겹치는 데이터가 없다고 하면
아이디와 비밀번호를 같이 묶어서 기본키라 칭하고 이를 복합키라 하는 것이다.
외래키 ( Foreign key )
다른 테이블의 기본키를 참조하는 키
글번호 | 내용 | 작성일자 | 작성자 |
이런 게시판 테이블이 있다고 했을 때 여기서 작성자 부분은 이전 테이블의 기본키인 아이디를 가져와서 사용하면
어떤 사람이 적었는지 확인할 수 있을 것이다.
이때 가져온 작성자 데이터는 다른 테이블의 데이터를 참조함으로 외래키라 하는것이다.
만일 작성자를 이름으로 가져오는 경우 겹치는 이름 때문에 유일성이 지켜지지 않아서 이름이 겹치지 않는다는 조건이 없을 경우 가져올 수 없다.
'데이터베이스' 카테고리의 다른 글
mongo DB 설치하기 (0) | 2022.11.12 |
---|---|
이클립스 DB 연결 (0) | 2022.10.11 |
제약 조건 (0) | 2022.10.03 |
JOIN ( INNER JOIN, OUTER JOIN ) (1) | 2022.10.03 |
DDL, DML, DCL, DQL, TCL (0) | 2022.10.03 |