키(key)는 DB에서 조건을 만족하는 레코드를 찾거나 순서대로 정렬할 때 레코드를 서로 구분할 수 있는 기준이 되는 속성을 뜻한다.
이 때 기본키는 테이블의 각각의 데이터를 구분할 수 있는 유일한 값을 가지는 키이다. 때문에 기본키를 설정하면 다른 테이블의 외래키와 관계를 맺고 상호작용 할 수 있다. 유일성과 최소성을 가지며 이를 풀어 설명하면 아래와 같다.
- 테이블 내 데이터을 식별할 수 있는 고유한 값을 가져야한다
- NULL 값은 허용하지 않는다(중복값이 있으면 안되는 특성상 이는 자연스럽다)
- 키 값이 변하지 않아야 한다
- 최대한 적은 수의 속성을 가진 게 좋다
외래키는 다른 테이블의 기본키 혹은 기본키 역할을 할 수 있는 유일한 값을 통해서 관계를 설정해주는 속성입니다. 하지만 사실 외래키를 사용하는 가장 큰 목적은 무결성을 위해서이다. 외래키를 지정하지 않아도 테이블 간의 암시적 관계를 지원하는 DB도 있다. 하지만 이는 명확하지 않을 수 있으므로 내가 원하는 결과가 나오지 않을 수 있다. 그래서 이러한 문제로 인해 외래키를 사용하여 무결성을 유지하려고 한다.
핵심은 기본키는 테이블의 데이터를 구분할 수 있는 유일한 값이고 외래키는 다른 테이블의 기본키 혹은 그 역할을 할 수 있는 유일한 키로 관계를 설정해주는 키이다.
'오늘 뭐했냐 > 개발에 대한 주저리' 카테고리의 다른 글
23.08.01 CORS (0) | 2023.08.02 |
---|---|
23.07.31 HTTP 메서드 (0) | 2023.08.01 |
23.07.29 RDBMS의 정규화 (0) | 2023.08.01 |
23.07.28 MVC 패턴 (0) | 2023.07.31 |
23.07.27 ORM( 그 중에서 Sequelize) (0) | 2023.07.30 |