포스트

Day89 Final Project(DB모델링)

DB모델링

1. DB모델링의 정의

  • 정의 : 시스템을 분석하고 구조화시켜 글과 그림으로 표현(추상화)한는 것을 말한다.
  • 목적 : 데이터가 중복되지 않도록 데이터를 테이블로 구조화 하는 것이 목표이다.

2. DB모델리의 사용 용어

  • table : relation, entity, file
  • intension(schema, header) : 데이터 구조 설계도
  • extension(instance, data) : 데이터
  • row(tuple, record) : 여러 컬럼으로 이루어진 데이터
  • column(attribute, feild) : 데이터의 한 항목
  • IE표기법 : 다이어그램을 약속한 기호로 사용해서 표기

    image

3. DB모델링 절차

1) Entity 식별

  • 데이터베이스 모델링에서 엔티티는 저장해야 하는 데이터의 한 유형을 의미한다.
  • 테이블의 항목에 대해 식별 하는 것을 말한다.

    image

2) Entity의 속성 식별

  • 엔티티 내의 각 개체(instance)를 구성하는 데이터들의 특징을 식별한다.
  • 테이블을 구성하는 값들을 말하며 컬럼의 구성요소이다.

    image

3) key식별

  • 데이터를 구분 할 수 있는 한개 이상의 컬럼들의 집합을 선별한다.
  • super key라고 부른다.

4) 후보 선정

  • super key 들 중에서 선별된 최소의 키를 가르킨다.
  • 컬럼을 구분 할 수 있는 최소키를 의미한다.

5) 기본키 선정

  • primary key라고 부르며 후보키 중에서 데이터 식별자로 사용하기 위해 선정된 키를 의미한다.
  • 후보키 중 primary key가 아닌 키를 대안 키(alternate key)라고 부른다.

    image

6) 제 1 정규화

  • 데이터 중복을 찾아내어 별도의 테이블로 데이터를 분리시키는 것
  • 중복 데이터 또는 중복컬럼을 별도의 테이블로 분리하여 부모-자식의 관계를 맺는다.
  • 참조하는 테이블이 자식테이블이고 참조당하는(데이터를 가지고 있는) 테이블이 부모 테이블이다.
  • 주어진 수강신청 엔티티를 정규화 하기

    image

  • 중복되는 데이터를 분리하여 새로운 테이블을 만든다.
  • 새로운 테이블의 기본키 혹은 대리키를 정의한다.

    대리키(surrogate key)

    • 인공키(artificial key)라고 불린다.
    • 주 키의 컬럼의 개수가 많거나 주키로 사용할 컬럼이 없는 경우 고유번호로 PK를 생성한다.
    • 주 키로 선정된 컬럼의 값은 변경될 수 없기 때문에, 일련번호와 같은 임의의 컬럼을 pk로 사용한다.
  • 기존의 테이블에는 외래키 또는 기본키로 대체 한다.

    외래키(foreign key)

    • 다른 릴레이션(테이블)의 PK나 UK 컬럼ㄱ밧을 저장하는 컬럼
    • FK가 있는 테이블을 자식 테이블이라고 하며, FK가 가르키는 PK컬럼을 포함한는 테이블을 부모 테이블이라 한다.

    • 두 테이블간의 자식-부모 관계를 정의한다.

      식별/비식별 관계 설정

      1. 식별 관계 (Identifying Relationship)
      • 정의: 부모 엔티티의 기본 키(Primary Key)가 자식 엔티티의 기본 키에도 포함되는 경우를 말한다.
      • 특징:
        • 부모 엔티티의 기본 키가 자식 엔티티의 기본 키로 사용되기 때문에 자식 엔티티는 부모 엔티티 없이는 존재할 수 없다. 즉, 자식 엔티티가 부모 엔티티에 강하게 의존한다.
        • 일반적으로 강한 종속성 관계가 있을 때 사용된다.
      2. 비식별 관계 (Non-Identifying Relationship)
      • 정의: 부모 엔티티의 기본 키가 자식 엔티티의 기본 키에 포함되지 않고, 자식 엔티티에서 부모 엔티티와의 관계를 외래 키(Foreign Key)로만 유지하는 경우를 말한다.
      • 특징:
        • 부모 엔티티의 기본 키가 자식 엔티티의 기본 키에 포함되지 않으므로, 자식 엔티티는 독립적으로 식별될 수 있다. 자식 엔티티의 식별자는 자체적으로 고유하다.
        • 부모 엔티티와 자식 엔티티 간의 약한 종속성 관계일 때 사용된다.
      비교 요약

      image

      구분식별 관계 (Identifying)비식별 관계 (Non-Identifying)
      부모 키 포함 여부부모 키가 자식의 기본 키에 포함된다부모 키가 자식의 기본 키에 포함되지 않는다
      관계 강도강한 종속성 (부모 없이는 자식 존재 불가)약한 종속성 (자식은 독립적으로 존재 가능)
      키 구성부모 키 + 자식 고유 속성으로 기본 키 구성자식의 고유 속성만으로 기본 키 구성
      사용 사례주문과 주문 상세부서와 직원

      image

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.