데이터베이스 정규화
데이터베이스 정규화
데이터베이스의 논리적 설계 단계에서 중복을 최소화하게 데이터를 구조화하는 프로세스.
Database Rdeundancy(데이터 중복)
- 일관된 자료 처리 어려움
- 저장 공간 낭비
- 데이터 효율성 감소
Data Integrity(데이터 무결성)
- 입력된 데이터가 오염되지 않고, 입력된 그대로 데이터를 사용할 수 있다.
Anomaly(이상현상)
- 갱신 이상(update anomaly)
- 여러 행에 걸쳐 동일한 데이터가 있을 때, 어떤 행을 갱신해야 하는지 논리적인 일관성이 없는 경우에 발생.
- 삽입 이상(insertion anomaly)
- 데이터를 삽입하지 못하는 경우.
- 삭제 이상(deletion anomaly)
- 데이터의 특정 부분을 지울 때 의도치 않게 다른 부분도 함께 지우는 현상.
정규화 단계
- 제1 정규화(1NF)
- 릴레이션에 속한 모든 도메인이 원자값만으로 구성.
- 도메인: 릴레이션에 포함된 각각의 속성들이 가질 수 있는 값들의 집합
- 제2 정규화(2NF)
- 기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속을 만족
- 완전 함수적 종속: 어떤 속성이 기본키에 대해 완전히 종속적일 때
- 제3 정규화(3NF)
- 기본키가 아닌 모든 속성이 기본키에 대해 이행적 종속을 만족하지 않을 때
- 이행적 종속: A -> B, B -> C가 성립할 때 A -> C가 성립되는 것
- BCNF 정규화
- 모든 결정자가 후보키가 되도록 하는 것.
- 제4 정규화(4NF)
- 다치 종속 A -» B가 성립하는 경우
- 다치 종속: 릴레이션 R에 A, B, C 세 개의 속성이 속해 있을 때 속성(A, C)의 도메인 값에 대응되는 B의 도메인 값의 집합이 A 값에만 종속되고 C 값에 독립이면, B는 A에 다중치 종속이라 하고 A -»B로 표기
- 제5 정규화(5NF)
- 릴레이션 R의 모든 조인 종속이 R의 후보키를 통해서만 성립되는 경우
- 조인 종속: 릴레이션 R의 모든 프로젝션을 조인한 결과 릴레이션 R과 동일한 경우 릴레이션 R은 조인 종속을 만족한다.
- 프로젝션: 릴레이션 R의 속성 리스트에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만드는 연산.
SQL 종류
- Data Definition Language(DDL)
- 데이터 정의어. 데이터를 정의할 때 사용하는 언어.
-
CREATE
,DROP
- Data Manipulation Language(DML)
- 데이터 조작어. 데이터를 저장할 때 사용하는 언어.
-
INSERT INTO
,DELETE
- Data Control Language(DCL)
- 데이터 제어어. 데이터베이스에 대한 접근 권한과 관련된 문법.
-
GRANT
,REVOKE
- Data Query Language(DQL)
- 정해진 스키마 내에서 쿼리할 수 있는 언어. DML의 일부분으로 취급하기도 한다.
-
SELECT
,
- Transaction Control Language(TCL)
- DML을 거친 데이터의 변경사항을 수정할 수 있다.
-
COMMIT
,ROLLBACK