12월, 2020의 게시물 표시

Relational Database 모델링

이미지
아래 강의를 듣고 개인적으로 요약 정리해 본 내용이다. https://www.inflearn.com/course/%EA%B4%80%EA%B3%84%ED%98%95%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-RDBMS# RDBMS 모델링 설계 도메인을 나타내는 테이블 설계 테이블의 Primary Key 설계 연관 관계를 나타내는 Foreign Key 설계 RDBMS Primary 키 속성 PK = unique + not null unique와 not null만 만족하면 됨으로 어떤 의미를 부여하려 노력하지 말자 고객으로 받은 값보다는 설계자가 부여하는 값이 안전 무한하게 하기 위해 "년+월+일+seq" 방식도 많이 쓰임 RDBMS 연관 관계 1:M - 부모와 자식 관계 M:N - 비지니스 관계 1:1 - 사실상 동일 테이블 1:M 선천적인 부모, 자식 관계인지 파악(트리구조) 실세계의 많은 부분이 여기 속함 M 쪽 FK로 연결 1:M 재귀 호출도 가능 자식 있는 부모는 삭제할 수 없다 부모 없는 자식을 삽입 할 수 없도록 유지해 주는게 좋다 1:M 재귀 M:N 1:M이 아니면 M:N 관계 관계 테이블로 연결 관계 테이블의 PK 구성 M:N을 하나의 PK로 묶으면(unique) - 중복 x 독립형 PK로 구성 - 중복 허용 master 테이블 - 명사 ex) 고객, 상품 관계 테이블 - 동사 ex) 주문(하다) 1:1 원천적으로 같은 테이블 따라서 PK를 공유 상속 관계를 나타낼 수 있음 상속 관계 정규화 1 정규화 다가(multi-value)속성 -> 별도의 record로 분리 복합속성 -> 별도의 column으로 분리 이후 중복된 내용을 별도 테이블로 분리 2 정규화 (왕족의 반란) 다수의 PK가 존재 하나의 PK에 종속된 column이 존재하면 이를 별도 테이블로 분리 기존 테이블의 PK는 FK가 된다 3 정규화 (호족의 반란) 키가 아닌 column들 사이에 종속 관계가 존재