자격증/정보처리기사

Part2. 데이터 입출력 구현 - 정규화와 데이터 조작 프로시저

YJ’s Dev Log 2023. 6. 16. 06:15

1. 정규화

  1) 정규화 : 이상현상을 제거하기 위해 릴레이션을 분해하는 것

  2) 이상현상 : 릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상

    1. 삽입이상 - 원하지 않는 정보를 강제 삽입해야 하는 경우 불필요한 데이터가 삽입되어야 할 때.

    2. 삭제이상 - 튜플을 삭제함으로써 유지되어야 하는 정보까지도 삭제되는 경우

    3. 갱신이상 - 중복된 튜플 중에서 일부 속성만 갱신시킴으로써 정보의 모순성이 생기는 경우

  3) 함수적 종속 : 릴레이션에서 속성들의 부분 집합을 X,Y라고 할 때 X의 값이 Y값을 함수적으로 결정한다면, Y가 X값에 종속되었다고 하고 X → Y라고 표시함, 

    1. 이행규칙 : X → Y 이고 Y Z 이면 X → Z이다

    2. 유니온규칙 : X → Y 이고 X → Z이면 X→YZ이다

    3. 분해 규칙 : X → YZ 이면 X→Y , X→Z이다

  4) 정규화 체계 ★

    1. 제 1 정규형(1NF) - 모든 도메인이 원자값으로만 되어있다면 제 1정규형이라고함(기본이라고 생각하면된다)

    2. 제 2 정규형(2NF) - 기본키가 아닌 속성은 모두 기본키의 완전 함수 종속인 경우

       -> X → Y 이고 Y → Z 이면 X → Z이다 의 이행규칙이 존재함

    3. 제 3 정규형(3NF) - 모든 속성이 기본키에 이행적 함수 종속이 아닐때

    4. 보이스/코드 정규형(BCNF) - 모든 결정자가 후보키인 경우.

  5) 반정규화(비정규화)

    1. 반정규화 : 정규화 되어있는 릴레이션을 정규화 이전 상태로 만드는 것

    2. 반정규화의 특징

  • 성능향상에 목적을 두고있음
  • 반정규화 방법으로는 테이블 통합, 테이블 분할, 중복테이블 추가, 중복속성 추가등이 있음

2. 데이터 조작 프로시저

  1) SQL : IBM에서 개발된 데이터베이스에 사용되는 언어 이며, 관계대수와 관계해석을 기초로한 언어이다.

  2) PL/SQL : 서버에서 절차적인 처리를 위해 표준 SQL을 확장한 절차적언어

  3) 저장된 프로시저 : 구현이 복잡한 트랜잭션을 수행하는 PL/SQL블록을 DB에 저장하기 위해 생성

  4) 트리거 : INSERT, DELETE, UPDATE가 수행될때 수행되는 프로시저, 테이블과는 별도로 DB에 저장됨