2009. 3. 13. 01:16 Program.../Oracle
DataBase 정규화
## 정규화 과정 | |||||||||||||
★ 참고사항 | |||||||||||||
*데이터를 추출하는 명령어의 순서 | |||||||||||||
- select 컬럼명, 컬럼명... -- ④ | |||||||||||||
- from 테이블명 -- ① | |||||||||||||
- where 조건절 -- ② | |||||||||||||
- group by -- ③ | |||||||||||||
- having 절 -- ⑤ | |||||||||||||
- order by 절 -- ⑥ | |||||||||||||
- 열 (colum = field = attribute = property = 속성) | |||||||||||||
- 행 (record = row = domain = tuple) | |||||||||||||
- Table (entity = 개체) | |||||||||||||
*desc emp (emp 테이블의 데이터 크기) | |||||||||||||
COLUMN | NULL? | WIDTH | KEY | ||||||||||
1. EMPNO | NOT NULL | NUMBER(4) | P1 | --> 숫자 4바이트 | |||||||||
2. ENAME | VARCHAR2(10) | --> 문자열 10바이트 | |||||||||||
3. JOB | VARCHAR2(9) | ||||||||||||
4. MGR | NUMBER(4) | ||||||||||||
5. HIREDATE | DATE | ||||||||||||
6. SAL | NUMBER(7,2) | --> 7개의 바이트 중에 2개는 소수점으로 표시된다. (Ex : _ _ _ _ _ . _ _ ) | |||||||||||
7. COMM | NUMBER(7,2) | ||||||||||||
8. DEPTNO | NUMBER(2) | ||||||||||||
* RDBMS (Relation Date Base Management System) : Oracle, MS-SQL, My-SQL, Infomix…… -> 오라클도 RDBMS에 속한다. | |||||||||||||
***** 설명시 참조되야할 예제는 교제를 참조하세요 ****** | |||||||||||||
1) 정규화 과정 : 고유한 식별자를 가지는 모든 개체(테이블)에 대해 더 이상 분리할 수 없는 상태로 나누는 과정 | |||||||||||||
- 장점 : 데이터량 줄어듬, 데이터 갱신속도 빠름 | |||||||||||||
- 단점 : 조회시 여러 개체를 Join하여작업하는 어려움, 갱신시 여러 개체에 동시 반영하는 작업일 경우 명시적으로 트랜잭션 처리 | |||||||||||||
- 정규화 과정의 필요성 : DB서버 성능의 최적화 | |||||||||||||
2) 제 1차 정규화 (1NF, First Normal Form) | |||||||||||||
- 반복되는 속성들을 다른 개체로 나누어 분리 | |||||||||||||
- 부모테이블의 식별자(Promary Key)는 자식테이블의 외부키(Foreign Key)로 전이된다. | |||||||||||||
- 부모테이블에 존재하지 않는 값이 자식테이블의 외부키(Foreign Key)값으로 존재할 수 없다. | |||||||||||||
* 식별자 (Primary Key) | |||||||||||||
- 고유성을 지니고, Table에 1개만 존재한다. (P.K를 이루는 Colum의 수는 여러 개가 올 수 있다.) | |||||||||||||
- Colum이 1개인 P.K를 Single P.K라 한다. | |||||||||||||
- Colum이 2개 이상인 P.K를 Composite P.K라 한다. | |||||||||||||
3) 제 2차 정규화 (2NF, Second Normal Form) | |||||||||||||
- 제 1차 정규화를 한 후, P.K를 이루는 Colum의 개수가 복합일 때 분리하는 정규화 | |||||||||||||
4) 제 3차 정규화 (3NF, Third Normal Form) | |||||||||||||
- 식별자가 아닌 Colum이 식별자가 아닌 Colum에 의존적이면 분리하는 정규화 | |||||||||||||
5) 제 4차 정규화 (4NF, Fourth Nomarl Form) | |||||||||||||
- M:M 관계를 1:M 관계로 분리하는 정규화 (부모테이블의 P.K는 자식 테이블의 F.K가 된다.) | |||||||||||||
* 관계의 종류 | |||||||||||||
① 1:1 관계 - 자주사용하는 Colum만 추출해서 새로운 Table(자식테이블) 생성 | |||||||||||||
- 자식테이블의 값은 부모테이블에 항상 존재하여야 한다. (부모테이블의 P.K는 자식테이블의 F.K가 된다.) | |||||||||||||
② 1:M 관계 - A라는 테이블의 하나의 행에 대하여 B라는 테이블의 값이 여러 개가 대응되는 관계 | |||||||||||||
③ M:M 관계 - A라는 테이블의 하나의 행에 대하여 B라는 테이블의 값이 여러 개가 대응되고, | |||||||||||||
B라는 테이블의 하나의 행에 대하여 A라는 테이블의 값이 여러 개가 대응되는 관계 -> A(1) : B(M) and B(1) : A(M) | |||||||||||||
=> 논리적인 모델링에서는 존재하지만 실제 물리적인 DB에서는 존재하지 않는다. |
'Program... > Oracle' 카테고리의 다른 글
물리적인 DB관리 (2) (0) | 2009.03.13 |
---|---|
물리적인 DB관리 (1) (0) | 2009.03.13 |
오라클 Import & Export (0) | 2009.03.13 |
오라클 Sys 접속 및 계정생성 (0) | 2009.03.13 |
ORACLE PARTION 관리 및 검색 (0) | 2009.03.12 |