ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 정보처리기사[실기 핵심 정리] - 논리 데이터베이스 설계
    용어 정리 2024. 4. 17. 20:21

    논리적 데이터 모델링

    1) 논리적 모델링

    • 개념적 설계 단계에서 도출된 개체, 속성, 관계를 구조적으로 표현하는 과정
    • 개념 모델에서 도출된 업무 데이터 및 규칙을 상세히 표현
    • 데이터를 정규화하여 모델링
    • 성능과 제약사항에 독립적이며, 특정 DBMS에서도 독립적
    • 관계형 모델, 계층형 모델, 네트워크 모델등의 종류로 구분

     

    2) 논리적 데이터 모델 종류

    종류 설명
    관계형 데이터 모델 ● 데이터와 관계를 테이블로 표현하는 모델

    각 테이블은 행과 열로 구성
    계층형 데이터 모델 데이터를 트리구조로 표현하는 모델

    상위 개체와 하위 개체의 관계를 표현
    네트워크(망)형 데이터 모델 다양한 관계를 갖는 데이터를 네트워크 구조로 표현
    객체지향 데이터 모델 데이터와 데이터에 연관된 연산을 하나의 객체로 묶어 표현

    데이터베이스 정규화(Normalization)

    1) 정규화의 개념

    • 관계형 데이터베이스의 설계에서 데이터 중복을 최소화하기 위한 과정
    • 중복데이터를 허용하지 않아, 무결성 유지와 저장 용량 절감이 가능하다.

     

    2) 정규화의 목적

    • 데이터 중복 최소화
    • 정보의 무손실 : 정보가 사라지지 않아야함
    • 독립적인 관계는 별개의 릴레이션으로 표현
    • 검색 용이성 증가
    • 이상현상 최소화

     

    3) 정규화의 장/단점

    장점 중복 데이터 최소화

    저장 공간 효율적 활용

    이상 현상 제거

    단점 처리 복잡도 증가

    실행 속도 저하

    참조 무결성 유지에 추가 노력 필요

    JOIN 연산 필요성 증가

     

    4) 이상현상(Anomaly)

    • 데이터 중복으로 인해 릴레이션 조작 시 예기치 않은 문제점
    • 이상의 종류
      • 삽입 이상 : 데이터를 삽입할 때 불필요한 데이터가 함께 삽입되는 현상
      • 삭제 이상 : 한 튜플을 삭제할 때 연쇄 삭제 현상으로 인해 정보 손실
      • 갱신 이상 : 튜플의 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상

     

    5) 함수적 종속(Functional Dependency)

    • 함수적 종속의 개념
      • 어떤 릴레이션 R의 X와 Y를 각각 속성의 부분집합이라고 가정했을 때
      • X의 값을 알면 Y의 값을 바로 식별할 수 있고, X의 값에 Y의 값이 달라질 때, Y는 X에 함수적 종속이라고 함
      • 이를 기호로 표현하면 X -> Y
    • 완전 함수적 종속(Full Functional Dependency)
      • 종속자가 기본키에만 종속되며, 기본키가 여러 속성으로 구성되어 있을 때, 기본키를 구성하는 모든 속성이 포함된 기본키의 부분집합에 종속된 경우

    [기본키가 하나일 때 완전 함수적 종속]

    회원번호 이름 나이 거주지역
    M001 일번임 11 창원
    M002 이번임 12 부산
    M003 삼번임 14 광주
    M004 사번임 16 서울

     

     

    [기본키가 두 개일 때 완전 함수 종속]

     

    회원번호 주문번호 강의명  진도율
    M001 001 강의1 60%
    M002 002 강의2 65%
    M003 003 강의3 70%
    M004 004 강의4 80%
    • 부분 함수적 종속(Partial Functional Dependency)
      • 기본키가 여러 속성으로 구성되어 있을 때, 기본키를 구성하는 속성 중 일부만 종속되는 경우

    [기본키가 두 개일 때 부분 함수 종속]

    회원번호 주문번호 강의명  이름
    M001 001 강의1 일번임
    M002 002 강의2 이번임
    M003 003 강의3 삼번임
    M004 004 강의4 사번임
    • 위의 릴레이션에서 강의명은 기본키(회원번호 + 주문번호)에 종속적이지만, 이름은 회원번호에만 종속된다. 이때, 부분 함수적 종속이 발생한다.
    • 이행적 함수 종속(Transitive Functional Dependency)
      • x -> y, y -> z 이러한 종속 관계가 있을 경우, x -> z 가 성립되는 경우

    [이행적 함수 종속]

    회원번호 주빈번호 이름
    M001 910306 일번임
    M002 810306 이번임
    • 위의 릴레이션에서 회원번호를 알면 주민번호를 알 수 있고, 주민 번호를 알면 이름을 알 수 있다. 이때 이행적 함수 종속이 발생한다.

     

    6) 정규화 과정

     

    제 1 정규형(1NF)

    • 1NF 만족 조건
      • 어떤 Relation에 속한 모든 Domain이 원자갑(Atomic value)만으로 되어 있다.
    • 조건 만족 처리
      • 고객 번호와 이름을 하나의 릴레이션으로 분리하고, 여행지를 다른 릴레이션으로 만들어 원자값 만으로 구성

    [비정규 릴레이션]

    고객번호 이름 여행지
    M1 일번임 서울,부산,광주
    M2 이번임 수원
    M3 삼번임 원주,제천

     

    [1NF 만족 릴레이션]

    고객번호 이름
    M1 일번임
    M2 이번임
    M3 삼번임

     

    고객번호 여행지
    M1 서울
    M1 부산
    M1 광주
    M2 수원
    M2 원주
    M3 제천

     

    제 2정규형(2NF)

    • 2NF 만족 조건
      • 부분 함수적 종속을 모두 제거하여 완적 함수적 종속으로 만든다.
    • 조건 만족 처리
      • 주문번호와 회원번호가 기본키일 때, 기본키를 가지고 주문금액을 알 수 있지만, 이름은 회원번호만 알아도 알 수 있다.
      • 주문번호와 회원번호를 모두 알아야 확인할 수 있는 주문 금액을 하나의 릴레이션으로 구성하고, 회원번호와 이름을 가지고 다른 하나의 릴레이션을 구성한다.

    [비정규 릴레이션]

    주문번호 회원번호 주문금액 이름
    O1 M1 10000 일번임
    O2 M1 20000 일번임
    O3 M3 30000 삼번임

     

    [2NF 만족 릴레이션]

    주문번호 회원번호 주문금액
    O1 M1 10000
    O2 M1 20000
    O3 M3 30000
    회원번호 이름
    M1 일번임
    M2 이번임

     

    제 3정규형(3NF)

    • 3NF 만족 조건
      • 이행적 함수 종속을 없앤다.
      • 조건 만족 처리
        • 학번을 알면 주민번호를 알 수 있고,주민번호를 알면 이름을 알 수 있다. 이때 학번을 알면 이름을 알 수 있다.
        • 학번과 주민번호를 하나의 릴레이션으로 주민번호와 이름을 하나의 릴레이션으로 구성한다.

    [비정규 릴레이션]

    학번 주민번호 이름
    2018 11111 일번임
    2019 2222 이번임
    2020 3333 삼번임

     

    [3NF 만족 릴레이션]

    학번 주민번호
    2018 11111
    2019 2222
    2020 3333
    주민번호 이름
    11111 일번임
    2222 이번임
    3333 삼번임

     

    보이스/코드(BCNF) 정규형

    • 결정자 중 후보키가 아닌 것들을 제거

    제 4정규형(4NF)

    • 다치 종속을 제거

    제 5정규형(5NF)

    • 조인 종속 이용
Designed by Tistory.