불친절한 SQL 프로그래밍 1부 2장 정리

ssook·2023년 9월 16일
post-thumbnail

데이터 모델링

2-1. 데이터 모델

  • 데이터 모델
    데이터 모델은 현실 세계를 데이터베이스로 구축할 수 있도록 추상화한 것.

  • 상세화 수준에 따라 개념 데이터 모델, 논리 데이터 모델, 물리 데이터 모델로 구분됨.
    요구 사항을 분석하여 개념 데이터 모델을 설꼐하고 데이터베이스 모델에 따라 개념 데이터 모델을 논리 데이터 모델로 상세화 한 후 DBMS에 따라 논리데이터 모델을 물리 데이터 모델로 전환함.

2-2. E-R 모델

  • E-R 모델은 엔터티와 관계로 데이터를 표현함.

  • 엔터티 타입은 인스턴스화된 엔터티의 집합.
    엔터티는 속성으로 구성됨.
    관계는 엔터티 간의 연관이고 페어링의 집합임. 페어링은 인스턴스 간의 연관임.

    집합개별
    엔터티 타입엔터티, 인스턴스
    관계페어링
    속성속성값
  • 실무에서는 엔터티 타입을 엔터티, 엔터티를 인스턴스라고 부름.

  • 엔터티는 다수의 인스턴스, 인스턴스는 다수의 속성을 가질 수 있음. 속성은 하나의 속성 값만 가져야 함.

  • E-R 모델의 산출물을 ERD라고 함.

2-2-1. 엔터티

  • 엔터티 : 개체로 인식할 수 있는 데이터의 집합
2-2-2-1. 기본 식별자
  • 엔터티에서 인스턴스를 고유하게 식별할 수 있는 속성으로, 엔터티는 반드시 기본 식별자를 가져야 함.
    기본 식별자는 위쪽 사각형에 기술함.
    하나의 속성으로 구성된 식별자를 단일 식별자, 2개 이상의 속성으로 구성된 식별자를 복합 식별자라고 함.

2-2-2. 속성

  • 속성 : 엔터티에서 관리되는 데이터의 최소 단위임.
  • 업무적으로 분리되지 않아야 하며, 하나의 속성 값만 가져야 함.
  • 식별자가 아닌 속성은 아래쪽 사각형에 기술함.

2-2-2-1. 도메인

  • 도메인 : 속성값의 범위를 나타내며, 물리 모델에서 데이터 타입과 제약 조건으로 변화함.

2-2-3. 관계

  • 관계 : 엔터티 간의 업무적 연관

  • 하나의 엔터티는 하나 이상의 엔터티와 관계를 가질 수 있고, 관계를 가진 엔터티와 또 다른 관계를 맺을 수도 있음.

  • 자식 엔터니는 부모 엔터티의 기본 식별자를 상속 받으며 이 때 부모 엔터티로부터 상속 받은 식별자를 외래 식별자라고 부름

  • 관계는 페어링의 집합이기도 함.

2-2-3-1. 카디널리티

  • 카디널리티 : 하나의 부모 인스턴스가 몇 개의 자식 인스턴스와 페어링될 수 있는지를 나타냄.
    1:1, 1:M, M:M 관계가 존재함. 이 중, M:M 관계는 엔터티(연관 엔터티)를 추가하여 관계를 해소해줘야 함.

2-2-3-2. 옵셔널리티

  • 옵셔널리티 : 부모 인스턴스와 자식 인스턴스의 페어링 여부를 나타냄.
  • 페어링되어야 하는 경우 필수 관계, 페어링되지 않아도 되면 선택 관계를 가짐.

  • 상호 필수 관계 : fully mandatory 관계
  • 선택 관계 : optional 관계
  • 상호 선택 관계 : fully optional 관계

2-2-3-3. 관계 유형

  • 관계 유형은 식별 관계, 비식별 관계로 구분됨
  • 부모 엔터티의 기본 식별자가 자식 엔터티의 기본 식별자 속성으로 상속되면 식별 관계, 일반 속성으로 상속되면 비식별 관계임.
  • 식별 관계는 관계를 실선으로 표시하며, 부모 엔터티와 자식 엔터티가 밀접한 관계를 가짐
  • 비식별 관계는 관계를 점선으로 표시하며, 부모 엔터티와 자식 엔터티가 느슨한 관계를 가짐.
  • 기본 식별자가 길어지면 저장 공간도 늘어나고 SQL도 길어짐. 비식별 관계의 경우 저장 공간을 최소화할 수는 있으나 관계가 단절될 수도 있음.
[추가] 이력 엔터티 / 내역 엔터티
  • 이력 엔터티
    데이터의 변경 이력을 관리.
    점 이력은 특정 시점의 속성, 선분 이력은 시작과 끝이 담겨있는 데이터의 속성을 의미.

  • 내역 엔터티
    발생 정보를 관리하는 엔터티. 이력 엔터티가 변경사항에 치중되어 있다면 내역 엔터티는 발생한 사실에 초점을 맞춘다.

2-3. 정규형

  • 정규형
    데이터 이상 현상을 제거하기 위한 관계형 모델의 설계 지침.

2-3-1. 정규화

  • 1정규형
    속성의 원자성과 관련이 있으며, 다중 값을 가짐. 다중 값을 가진 속성을 다가 속성이라고 부르기도 함.
    반복 그룹과 반복 그룹을 가진 반복 속성도 1정규형을 위배함.

  • 2정규형
    부분 종속과 관련이 잇으며 부분 종속은 일반 속성이 식별자의 일부 속성에만 종속되는 것임.

  • 데이터 이상 현상
    입력 이상, 수정 이상, 삭제 이상

  • 3정규형
    이행 종속과 관련 있음. 이행 종속은 일반 속성이 다른 일반 속성에 종속되는 것임.

2-3-2. 반정규화

  • 반정규화 : 성능 개선을 위해 의도적으로 데이터를 중복시키는 것. 정규형을 위배한 릴레이션은 데이터 무결성을 보장하기 어렵기 때문에 제한적으로 사용하는 편이 바람직함.

2-4. 물리 데이터 모델

논리 데이터 모델은 DBMS에 따른 물리 데이터 모델로 전환함.
엔터티는 테이블, 속성은 열로 전환됨.

profile
개발자에서, IT Business 담당자로. BrSE 업무를 수행하고 있습니다.

0개의 댓글