Database

[Database] 정규화

k9e4h 2016. 4. 7. 18:41


모델링 : 머릿속에 있는걸 글과 그림으로

렌더링 : html 웹캣?



DB모델링 : 데이터가 중복되지 않게 구조를 설계하는 것

데이터중복의 문제점 -> DB 정규화


------------------------------------

Exerd : DB 만드는 툴 / 우리나라꺼래>333<


DBMS(var, number 등을 고려안함 -> 물리적인걸 고려하지않음)를 고려하지 않고 순수하게 정보를 구조화시킨것 : 논리모델링


1)

엔티티(테이블)식별

=> 데이터베이스를 만들면 그 값을 구분할 수 있는 식별자(key)를

 반드시 지정해야한다.

=> 키는 여러 컬럼을 묶어서 키로 사용할 수 있다.

=> 만약 적합한 키를 지정할 수 없다면 임의읭 컬럼을 생성하여 키로 만든다

ex) 일련번호

=> 어떤 테이블이던 반든시 Key column이 있어야한다


2) 제1정규화 : 중복컬럼이나 데이터가 있으면 지운다

=> 중복 컬럼 및 중복데이터 분리(한동작에 대해 같은 데이터가 반복되는 상황)

=> 참조하는 것이 부모,



3) 제2정규화 : primary key가 2개일때 고려해야함

4) 제3정규화 : 

=> PK에 종속되지 않은 일반 컬럼이 있으면 별도의 테이블로 생성하여 분리한다.

=> 관계 수량을 지정한다 


 1대 다 관계 (0이상)


1대 다 관계(1이상)


실무에서는 제3정규화까지 사용



5) 제약조건 지정

=> unique 컬럼 지정

=> index 컬럼으로 지정 색인 : select(조회)할 때 검색조건으로 자주 사용하는 컬럼이 있다면 색인표에 등록하는 것이 검색속도를 높이는 방법

insert, delete, update 할때는 동작마다 색인표를 갱신해야하기 때문에 속도 느려짐 (검색때만 빠름)

그러니까 인덱스를 많이 한다고 좋은게 아님!!

=> Not null 여부설정  : 필수 입력 column을 not null로 지정

반응형

'Database' 카테고리의 다른 글

02. DBMS 개요  (0) 2016.07.25
01. 데이터베이스 개요  (0) 2016.07.20
[Database] 식별/비식별 관계  (1) 2016.04.22
[Database] 2.물리모델링 (eXerd 이용)  (0) 2016.04.08
[#03]DB  (0) 2016.03.22