Flèche
[DB]외래 키 본문
SQL기반 데이터 분석에서 중요한 두가지 키가 있다. 하나는 기본키(primary key, pk)이고
다른 하나는 외래키이다. 이 글에서는 내가 공부한 외래 키에 대해 정리해보겠다.
예를 하나 들면서 외래 키에 대해 설명하려고 한다.
고객님들이 주문한 내용을 관계형 데이터 베이스에 저장하려고 한다.
이때 필요한 열들을 살펴보면, 크게 사용자에 대한 정보와 구매품목에 대한 정보로 나눌 수 있다.
*사용자에 대한 정보
*아이디
*비밀번호
*이름
*성별
*배송주소
*구매품목에 대한 정보
*구매일
*품목 ID
*품목 이름
*품목 수량
이를 토대로 테이블을 만든다면 다음과 같을것이다.
user_id | user_pw | name | gender | address | order_date | product_id | product_name | qty |
---|---|---|---|---|---|---|---|---|
hi | xxxx | kim | male | ganseo | 2021-03-29 | c021 | galaxy | 1 |
hello | xxxx | Park | male | Yongsan | 2028-01-01 | c231 | iphone | 1 |
그런데 hi라는 사람이 오랜 기간 걸쳐서 계속 여러 종류의 상품을 주문 한다면, 데이터에서 중복이 많이 발생할 것이다.
(프로그래밍에서 중복을 제거하는 것은 매우 중요하다고 배웠다) 이때 hi라는 사용자의 정보들은 계속 중복되면서 테이블에
기록 될 것이고, 구매 품목들은 여러 종류들이 테이블에 기록 될 것이다. 그렇다면, 테이블을 두개 만들어서 하나에는 사용자의
정보'만' 담고 다른 하나에는 구매 품목에 대한 정보만 담은 뒤 두 테이블을 연결시키면 어떨까? hi라는 사용자에 대한 정보가
중복해서 쌓이는 것을 막아줄 수 있을 것이다.
'데이터베이스' 카테고리의 다른 글
[DB]외래 키에 대해서 (0) | 2021.03.29 |
---|