Back&Front End/DB
ERD 설계, 기본키, 외래키
SeokjunMan
2023. 12. 26. 21:42
오늘은 데이터베이스의 필수 기본개념들을 정리해보고,
https://dbdiagram.io/d 사이트를 이용하여 ERD를 설계해 보았다.
1. Primary key (기본키) : pk
개체를 식별하는 고유의 값이다.
보통 하나의 필드(속성)에 부여하며 엔터티(테이블)들 간의 관계를 형성하는 역할을 담당한다.
주민등록번호처럼 식별해주는 고유 id같은 개념이다.
(예를들어, 회원하나하나는 하나의 객체고 그 한사람한사람을 식별해주는 값)
따라서 모든 테이블에는 필수로 기본키 값을 저장하는 필드(속성)이 반드시 존재해야한다!
데이터베이스 모델링은 크게 두 가지로 나눌 수 있다.
1. 논리적 모델링
2. 물리적 모델링
데이터베이스에 저장한다는 것은 우리가 사는 현실공간의 개체를 데이터베이스(이진형태)로 저장하는 과정이다.
먼저 논리적모델링을 하고 물리적모델링(시스템공간에서 정의되어 데이터베이스에 들어감)을 한다.
< 논리적 모델링 >
현실세계의 값의 속성을 정의하고 관계를 정의하는 과정
만약, 어떤 쇼핑몰의 매출이 형성되는 관계를 데이터베이스화 하겠다하면,
이런식으로 모델링을 해볼 수 있다.
회원정보의 ‘아이디’는 ‘매출’에서 ‘구매자아이디’를 외래키로 지정함으로서 두 테이블간의 관계를 연결시켜주었다.
그리고 매출에는 주문번호라는 고유의 기본키가있다.
선에서 1이 시작점이고 n이 끝점이다.
매출상세 <- 상품정보 에서는 상품정보의 기본키가 매출상세의 '상품코드'로 "외래키"가 지정되어있다.
데이터가 항상 정확한 값을 유지하는 성질
위 테이블중 왼쪽 테이블에서 student_id가 변경되었는데 오른쪽 테이블의 student_id가 변경되지 않았다면 문제가 생긴다. 이런 상황을 예방하기 위해 외래키가 존재한다.
2. Foreign key (외래키) : fk
테이블간의 관계를 나타낼때 사용하며, 다른 테이블의 기본키를 참조해 외래키로 사용한다.
즉, 한 테이블의 외래키는 연결되어있는 다른 테이블의 기본키 중 하나다.
기능 : 참조된 데이터가 삭제되거나 변경되면 외래키로 연결된 필드도 같이 변경되어야 하는데 이 때, 외래키를 사용하여 데이터의 일관성을 유지시킬 수 있다.
무결성 : 데이터가 항상 정확한 값을 유지하는 성질
< 물리적 모델링 >
이러한 논리적모델링을 바탕으로,
실제 값들이 가지는 데이터 형식과 어떤 테이블명 필드명 등을 가질지 상세하게 기록한 게 바로 물리적 모델링
이를 도식화하여 보기좋게 표현한 것이 ERD
멤버테이블에서 기본키 id가 sales의 s_id의 외래키와 참조되었다.
이런식으로 각 테이블간의 관계를 정의해 주는 역할을 하는 것이 '키' 개념이다.