## 정규화 과정
★ 참고사항
*데이터를 추출하는 명령어의 순서
 - 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
Posted by Duritz

공지사항

Yesterday
Today
Total
05-18 21:07

달력

 « |  » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31