Milky's note

[K-Digital] 데이터 모델링 본문

SQL/요약 정리

[K-Digital] 데이터 모델링

밀뿌 2022. 5. 18. 16:23

데이터 모델링

- 데이터베이스의 벼대를 세우는 작업

1. 요구사항 정리

데이터가 어떤 형태, 어떤 목적을 가지고 있는 지 정리

2. 개념적 모델 설계

핵심 개체를 찾고, 각 개체 간의 관계를 정리

3.논리적 모델 설계

실제 DB로 구현하기 위한 모델링

4. 물리적 모델 설계

데이터가 어떻게 컴퓨터에 저장될 지 설계

 

네이밍 규칙

- 줄임말 사용은 최소화한다. (하지만 범용적으로 사용되는 줄임말은 사용 가능)

테이블 네이밍 규칙

- 파스칼 표기법  사용

- 테이블인지 뷰인지 확인하기 위해 'tb_', 'v_'를 사용

컬럼 네이밍 규칙

- 스네이커 표기법 사용

- PK, FK는 'pk_', 'fk_'를 사용

 

데이터 정규화

- 테이블간  데이터 조작시 발생할 수 있는 이상 현상을 줄이기 위한 작업

- 1~3차 정규화까지 진행하면 대부분의 이상 현상을 없앨 수 있음

1차 정규화(1NF) - 중복제거

- 각 속성마다 값이 1개씩 존재하도록 하는 과정 (원자화)

한 행에 하나의 데이터만 존재하도록 데이터를 수정

 

2차 정규화(2NF) - 복합키인 컬럼을 분리해서 새 테이블 생성

- 복합키로 구성되어있을 때 고려해야하며, 모든 속성이 완전 함수 종속이 되도록 허용하는 작업

완전함수 종속 : A,B,C,D가 있을 때 B가 A에 의해 종속되는 경우 B는 다른 내용 (C,D)에 의해 종속이 되지 않는 경우

10-01의 전화번호가 바뀌었을 때 10-02 전화번호와는 차이가 난다.

고객 이름과 전화번호는 고객의 ID 에 종속되어 있음 이 두 속성을 대여 테이블로부터 분리시켜 종속성을 제거 

3차 정규화(3NF) - 컬럼을 분해해서 새 테이블 생성

- 테이블 내에서 이행적 요소 제거

킥보드의 종류가 수정되면 킥보드 id는 같은데 종류가 다른 킥보드가 생기는 문제가 발생한다.

킥보드에 대한 정보(종류,이미지,연식)모두 킥보드ID영향을 받음

이를 분리시켜 이행적 요소를 제거

 

 

외래키 설정 옵션

- 외래키 컬럼은 다른 테이블의 기본키에 종속되어 있어 테이블간의 무결성을 맞추기 위해 수정이 안되는 경우가 있다.
그래서 외래키를 생성할 때 이를 허용해주는 옵션을 추가하여 외래키를 생성하면 테이블의 변경이 자유롭다.

on update '옵션'

RESTRICT - 참조하고 있는 내용이 있다면 변경 중지

CASCADE - 참조하고 있는 속성이 변경될 때 같이 변경

SET NULL - 참조하고 있는 속성이 변경될 때 NULL로 변경

on delete '옵션'

RESTRICT - 참조하고 있는 내용이 있다면 변경 중지

CASCADE - 참조하고 있는 속성이 변경될 때 같이 변경

SET NULL - 참조하고 있는 속성이 변경될 때 NULL로 변경

CREATE 'TABLE' (
.
.
.
FOREIGN KEY ... REFERENCES ... ON UPDATE CASCADE);

'SQL > 요약 정리' 카테고리의 다른 글

[PostgreSQL] Table Partitioning  (0) 2022.01.06
[PostgreSQL] Vacuum 수행  (2) 2022.01.05
[PostgreSQL] Window Function  (1) 2021.11.29
Comments