오늘은 SQL key값에 대해 알아보도록해요 !
primary key
테이블에서 하나의 Row를 고유하게 식별할 수 있도록 해주는 column을 primary key라고 합니다!
그러면 member 테이블의 primary key가 바로 id컬럼이라는 사실!
그러면 특정 칼럼을 Primary Key로 설정하면 Primary key에 같은 값이 있는 row가 추가되는 것을
DBMS가 자동으로 막아주기 때문에 중복된 row가 생길 위험성이 사라집니다!
Natural Key
실제로 어떤 개체가 갖고 있는 속성을 나타내는 컬럼이 Primary key가 됐을 때,
이를 Natural Key라고 합니다. 사람은 주민등록번호로 특정인물을 식별하죠?
우리가 읽는 여러 책들도 책 코드로 분류하여 식별하기도 합니다!
전 포스팅에서 member 테이블에서는 email 컬럼이 각 회원을 식별할 수 있는 실제
속성인 것이죠 ! 만약 id컬럼 말고 email 컬럼을 Primary Key로 설정했다면
Primary key가 Natural key인 것입니다 !
Surrogate key
Primary Key로쓰기 위해 추가한 칼럼을 Surrogate Key라고 합니다!
이런 Surrogate key에는 주로 1부처 순차적으로 증가하는 숫자가 들어갑니다. !
이렇게 id컬럼에 1부터 시작해서 순차적으로 증가하는 값이 적혀있습니다
이 상태에서는 id컬럼의 값으로 특정 row를 식별할 수 있으니
당연히 Primary key의 역할을 있는거겠죠?
그러면 Natural Key와 Surrogate Key 중에 어떤 것이 더 효율적일까요?
사실 각 상황마다 적절한 키가 달라지기 때문에 이 부분은
데이터베이스를 더 깊게 뒤에서 공부하고 다뤄보겠습니다!
그러나 Natural key는 그 값이 나중에 변경되면 모든 row를 다시 수정해줘야한다는 문제가 있기하다만
그래서 보통 Surrogate Key를 선택하는 경우가 더 많다는 점!
결론은 Primary Key 종류에 크게 2가지 종류( natural, surrogate) 가 있다는 것을
기억하고 구분할 수 있어야 한다는거 !! 잊지마세용~
'Back-end Skill > DataBase' 카테고리의 다른 글
MySQL / MariaDB 페이지네이션 쿼리 작성하는 법 (0) | 2022.06.28 |
---|---|
TIL 37일차 SQL 데이터베이스 #NULL의 개념과 Not NULL의미 (0) | 2021.11.12 |
TIL 35일차 SQL 데이터베이스 #생성된 테이블 확인하기 (0) | 2021.11.06 |
TIL 34일차 SQL 데이터베이스 #데이터베이스 생성해보기 (0) | 2021.11.06 |
TIL 33일차 SQL - 스키마창에서 sys는 도대체 뭐야! (0) | 2021.11.06 |