데이터베이스 설계

망고·2024년 6월 1일
0

데이터베이스

목록 보기
3/8

✍️ 데이터베이스 설계

E-R 모델과 릴레이션 변환 규칙을 이용한 설계의 과정

1단계: 요구 사항 분석

  • 데이터베이스의 용도 파악
  • 결과: 요구 사항 명세서

2단계: 개념적 설계

  • DBMS에 독립적인 개념적 구조 설계
  • Step1: 객체 추출
  • Step2: 객체 간 관계 추출
  • Step3: E-R 다이어그램 작성
  • 결과: E-R 다이어그램

3단계: 논리적 설계

  • DBMS에 적합한 논리적 구조 설계
  • 결과: 논리적 스키마(릴레이션 스키마)

4단계: 물리적 설계

  • DBMS로 구현 가능한 물리적 구조 설계
  • 결과: 물리적 스키마

5단계: 구현

  • SQL문을 작성한 후 이를 DBMS에서 실행하여 데이터베이스를 생성

🐘 데이터 모델링(data modeling)

현실에 존재하는 데이터를 컴퓨터의 데이터베이스로 추상화시키는 과정

개념적 데이터 모델링(conceptual modeling)

  • 현실의 중요 데이터를 추출해 개념으로 옮기는 작업(2단계)

논리적 데이터 모델링(logical modeling)

  • 개념 상의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업(3단계)

🖼️ 데이터 모델(data model)

데이터 모델링의 결과물을 표현하는 도구

개념적 데이터 모델

  • 사람의 머리로 이해할 수 있도록 현실을 개념적 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구 (ex. E-R 모델)

논리적 데이터 모델

  • 개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구 (ex. 관계 데이터 모델)

💎 개체-관계 모델(E-R model; Entity-Relationship model)

개체와 개체 간의 관계를 이용해 현실을 개념적 구조로 표현

핵심 요소

  • 개체(Entity)
  • 관계(Relationship)

⏹️ 개체-관계 다이어그램(E-R diagram)

  • E-R 다이어그램
  • 개체-관계 모델을 이용해 현실을 개념적으로 모델링한 결과물을 그림으로 표현

⚙️ 관계 모델의 구성 요소

개체(Entity)

데이터베이스에서 표현하려는 것으로
사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체

  • 다른 개체와 구별되는 이름을 가지고 있고 각 개체만의 속성을 하나 이상 가지고 있습니다.
  • 파일 구조의 레코드(record)와 대응
  • E-R 다이어그램에서 사각형으로 표현
  • Weak Entity
    • 다른 개체에 종속적인 개체
    • Weak EntityStrong Entity의 키를 포함하여 키를 구성하는 특징이 있음
  • Strong Entity
    • 다른 개체에 의존하지 않고 독립적으로 존재할 수 있는 개체
    • Strong EntityWeak Entity는 일반적으로 일대다의 관계를 가지고 약한 개체는 강한 개체와의 관계에 필수적으로 참여하는 특징이 있음
    • E-R 다이어그램에서 Strong EntityWeak Entity의 관계는 이중 마름모로 표현

개체 인스턴스(entity instance)

  • 개체를 구성하고 있는 속성이 실제 값을 가지며 실체화된 개체
  • 동적으로 변화 (ex. 나이(INT): 27)

개체 집합(entity set)

  • 특정 개체 타입에 대한 개체 인스턴스들을 모아놓은 것


속성(Attribute)

데이터의 가장 작은 논리적 단위로서 파일 구조상의 데이터 항목 또는 데이터 필드에 해당합니다.

  • 의미 있는 데이터의 가장 작은 논리적 단위
  • 파일 구조의 필드와 대응
  • E-R 다이어그램에서 타원으로 표현하고 타원 안에 이름을 표기

속성의 분류

단일 값 속성과 다중 값 속성

  • 단일 값 속성(single-valued attribute)
    • 값 하나만 가질 수 있는 속성
    • ex. 고객 개체의 이름, 적립금 속성
  • 다중 값 속성(multi-valued attribute)
    • 값을 여러 개 가질 수 있는 속성
    • E-R 다이어그램에서 이중 타원으로 표현
    • ex. 고객 개체의 연락처

단순 속성과 복합 속성

  • 단순 속성(simple attribute)
    • 의미를 더는 분해할 수 없는 속성
    • ex. 고객 개체의 적립금 속성
  • 복합 속성(composite attribute)
    • 의미를 분해할 수 있는 속성
    • ex. 고객 개체의 주소 속성(oo도, oo시, oo동)
    • ex. 고객 개체의 생년월일 속성(oo년/oo월/oo일)

유도 속성(derived attribute)

  • 기존의 다른 속성의 값에서 유도되어 결정되는 속성
  • 값이 별도로 저장 X
  • E-R 다이어그램에서 점선 타원으로 표현
  • ex. 책 개체의 가격과 할인율 속성으로 계산되는 판매가격 속성
  • ex. 고객 개체의 출생연도 속성으로 계산되는 나이 속성

null 속성 (null attribute)

  • null 값이 허용되는 속성
  • ex. 고객 등급

key 속성 (key attribute)

  • 각 개체 인스턴스를 식별하는데 사용되는 속성
  • 모든 개체 인스턴스의 키 속성 값이 다릅니다.
  • 둘 이상의 속성들로 구성되기도 함
  • E-R 다이어그램에서 밑줄로 표현
  • ex. 고객 개체의 ID 속성

속성 설정 시 고려사항

  • 엔티티에 꼭 필요한 속성만을 구성하도록 합니다.
  • 하나의 속성은 하나의 값을 가져야 합니다.
  • 속성은 단 하나의 독립적인 의미만을 가져야 합니다.
  • 동일한 의미를 가지는 여러 개의 속성이 존재하지 않도록 합니다.


관계(Relation)

데이터베이스 안에 있는 여러 테이블(개체) 간의 논리적 관계

관계의 참여 특성

  • 필수적 참여(전체 참여)
    • 모든 개체 인스턴스가 관계에 반드시 참여해야 하는 것을 의미
    • E-R 다이어그램에서 이중선으로 표현
    • ex. 고객 개체가 책 개체와의 구매 관계에 필수적으로 참여
  • 선택적 참여(부분 참여)
    • 개체 인스턴스 중 일부만 관계에 참여해도 되는 것을 의미
    • E-R 다이어그램에서 으로 표현
    • ex. 책 개체가 고객 개체와의 구매 관계에 선택적으로 참여

관계 표시


관계도


1:1 관계

하나의 레코드가 다른 테이블의 레코드 한 개와 연결된 관계입니다.

1:N 관계

하나의 레코드가 다른 테이블의 여러 개의 레코드와 연결된 관계입니다.
일반적으로 데이터베이스를 사용할 때 가장 많이 활용됩니다.

N:M 관계

여러 개의 레코드가 다른 테이블의 여러 개의 레코드와 연결된 관계

  • N:M 테이블을 구축할 땐 테이블 두 개를 직접적으로 연결해서 구축하지 않고 1:N1:M 테이블로 나눠 구축합니다.

    자기 참조 관계

    하나의 테이블 내에서 형성된 관계입니다.
    추천인 ID를 입력하는 등의 기능에서 사용됩니다.


📚 참고 자료

관련 블로그 - 데이터베이스 관계도
관련 깃허브 - 데이터베이스의 기본
관련 강의 - 데이터베이스의 원리와 응용(KOCW) 4강

0개의 댓글