👀 데이터베이스 설계

  • 사용자의 다양한 요구 사항을 고려하여 데이터베이스를 생성하는 과정
  • E-R 모델과 릴레이션 변환 규칙을 이용한 설계 과정은 5단계로 이루어져 있다.

1단계 : 요구 사항 분석

  • 데이터베이스의 용도 파악
  • 관련된 현실 세계가 어떻게 구성되어 있는지 파악한다.
  • 결과물 : 요구 사항 명세서

2단계 : 개념적 설계

  • DBMS에 독립적인 개념적 구조 설계
  • 현실세계에 있는 정보를 알아보기 쉽게 표시한다.
  • 결과물 : 개념적 스키마(E-R 다이어그램)

3단계 : 논리적 설계

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

4단계 : 물리적 설계

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

5단계 : 구현

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

  • 1 ~ 3단계가 가장 핵심이 되는 단계들이며 각 단계의 설계 과정 중에 오류가 발견되어 변경이 필요하면 이전 단계로 되돌아가 설계 내용을 변경할 수 있다.


데이터 모델링(data modeling)

  • 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정
  • 데이터베이스 설계의 핵심 과정
  • 모든 데이터는 특징을 추출하는 추상화(abstraction) 과정을 거쳐서 데이터베이스로 옮겨진다.

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

  • 현실 세계의 중요 데이터를 추출하여 개념 세계로 옮기는 작업

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

  • 개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업

데이터 모델(data model)

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

개념적 데이터 모델

  • 사람의 머리로 이해할 수 있도록 현실 세계를 개념적 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구
  • 예) 개체-관계 모델

논리적 데이터 모델

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


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

  • 피터 첸(Peter Chen)이 제안한 개념적 데이터 모델
  • 개체와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현
  • 핵심 요소 : 개체, 속성, 관계

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

  • E-R 다이어그램이라고도 하며 개체 - 관계 모델을 이용해 현실 세계를 개념적으로 모델링한 결과물을 그림으로 표현한 것

개체(entity)

  • 현실 세계에서 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것
  • 저장할 가치가 있는 중요 데이터를 가지고 있는 사람이나 사물, 개념, 사건 등
  • 다른 개체와 구별되는 이름을 가지고 있고, 각 개체만의 고유한 특성이나 상태, 즉 속성을 하나 이상 가지고 있음
  • 예) 서점에 필요한 개체 : 고객, 책
  • 예) 학교에 필요한 개체 : 학과, 과목
  • 파일 구조의 레코드(record)와 대응됨
  • E-R 다이어그램에서 사각형으로 표현하고 사각형 안에 이름을 표기한다.

속성(attribute)

  • 개체나 관계가 가지고 있는 고유의 특성
  • 의미 있는 데이터의 가장 작은 논리적 단위
  • 파일 구조의 필드(field)와 대응됨
  • E-R 다이어그램에서 타원으로 표현하고 타원 안에 이름을 표기

개체 타입(entity type)

  • 개체를 고유의 이름과 속성들로 정의한 것
  • 파일 구조의 레코드 타입(record type)에 대응됨

개체 인스턴스(entity instance)

  • 개체를 구성하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체
  • 개체 어커런스(entity occurrence)라고도 함
  • 파일 구조의 레코드 인스턴스(record instance)에 대응됨

개체 집합(entity set)

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

속성의 분류

속성 값의 개수에 따른 분류

🔸 단일 값 속성(single-valued attribute)

  • 값을 하나만 가질 수 있는 속성
  • 예) 고객 개체의 이름, 적립금 속성

🔸 다중 값 속성(multi-valued attribute)

  • 값을 여러 개 가질 수 있는 속성
  • 예) 고객 개체의 연락처 속성
  • 예) 책 개체의 저자 속성
  • E-R 다이어그램에서 이중 타원으로 표현

의미의 분해 가능성에 따른 분류

🔸 단순 속성(simple attribute)

  • 의미를 더는 분해할 수 없는 속성
  • 예) 고객 개체의 적립금 속성
  • 예) 책 개체의 이름, ISBN, 가격 속성

🔸 복합 속성(composite attribute)

  • 의미를 분해할 수 있는 속성
  • 예) 고객 개체의 주소 속성
    • 시, 도, 구, 동, 우편번호 등으로 의미를 세분화해서 쪼갤 수 있다.
  • 예) 고객 개체의 생년월일 속성
    • 연, 월, 일로 의미를 세분화할 수 있다.

유도 속성(derived attribute)

  • 기존의 다른 속성의 값에서 유도되어 결정되는 속성
  • 값이 별도로 저장되지 않음
  • 예) 책 개체의 가격과 할인율 속성으로 계산되는 판매가격 속성
    • 가격 - 할인율 = 책 가격이 되기 때문에 책 개체의 가격은 유도 속성이라 할 수 있다.
  • 예) 고객 개체의 출생연도 속성으로 계산되는 나이 속성
    • 출생연도를 이용해서 고객의 나이를 계산할 수 있기 때문에 고객 개체의 나이 속성은 유도 속성이라 할 수 있다.
  • E-R 다이어그램에서 점선 타원으로 표현된다.

널 속성(null attribute)

  • 널 값이 허용되는 속성

널(null) 값

  • 아직 결정되지 않았거나 모르는 값 또는 존재하지 않는 값
  • 공백이나 0과는 의미가 다른데, 공백이나 0도 공백과 0이라는 값이 있는 것이다. 그래서 공백, 0 != null
  • 예) 등급 속성이 널 값이라는 의미는 등급이 아직 결정되지 않았음을 의미

키 속성(key attribute)

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

관계(relationship)

  • 개체와 개체가 맺고 있는 의미 있는 연관성
  • 개체 집합들 사이의 대응 관계, 즉 매핑(mapping)을 의미
  • 예) 고객 개체와 책 개체 간의 구매 관계 (“고객은 책을 구매한다”)
  • E-R 다이어그램에서 마름모로 표현한다.

관계의 유형 : 관계에 참여하는 개체 타입의 수에 따라

  • 이항 관계 : 개체 타입 두 개가 맺는 관계
  • 삼항 관계 : 개체 타입 세 개가 맺는 관계
  • 순환 관계 : 개체 타입 하나가 자기 자신과 맺는 관계

관계의 유형 : 매핑 카디널리티 기준

일대일(1 : 1) 관계

  • 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 하나와 관계를 맺을 수 있고, 개체 B의 각 개체 인스턴스도 개체 A의 개체 인스턴스 하나와 관계를 맺을 수 있음
  • 예) 일처일부제에서의 혼인관계

일대다(1 : n) 관계

  • 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 여러 개와 관계를 맺을 수 있지만, 개체 B의 각 개체 인스턴스는 개체 A의 개체 인스턴스 하나와 관계를 맺을 수 있음
  • 예) 하나의 부서에 여러 사원이 소속되어 있는 관계

다대다(n : m) 관계

  • 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 여러 개와 관계를 맺을 수 있고, 개체 B의 각 개체 인스턴스도 개체 A의 개체 인스턴스 여러 개와 관계를 맺을 수 있음
  • 고객은 책을 여러 권 살 수 있고 책 또한 여러 고객들에 의해서 구매될 수 있는 관계

매핑 카디널리티(mapping cardinality)

  • 관계를 맺는 두 개체 집합에서, 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수

관계의 참여 특성

필수적 참여(전체 참여)

  • 모든 개체 인스턴스가 관계에 반드시 참여해야 하는 것을 의미
  • 예) 모든 고객은 책을 반드시 구매해야 한다면 고객 개체가 책 개체와의 구매 관계에 필수적으로 참여하는 것
  • E-R 다이어그램에서 이중선으로 표현

선택적 참여(부분 참여)

  • 개체 인스턴스 중 일부만 관계에 참여해도 되는 것을 의미
  • 예) 고객이 서점에 있는 모든 책을 사야 하는 것은 아니기 때문에 이런 경우엔 책 개체가 고객 개체와의 구매 관계에 선택적으로 참여한다고 할 수 있다.

관계의 종속성

  • 약한 개체(weak entity) : 다른 개체의 존재 여부에 의존적인 개체
  • 오너 개체(owner entity) : 다른 개체의 존재 여부를 결정하는 개체
  • 오너 개체약한 개체는 일반적으로 일대다의 관계를 가지고, 약한 개체오너 개체와의 관계에 필수적으로 참여하는 특징이 있다.
  • 약한 개체오너 개체키를 포함하여 키를 구성하는 특징이 있다.
  • 예) 직원 개체와 부양가족 개체 사이의 부양 관계
    • 직원 개체는 부양가족을 꼭 가지지 않아도 되지만 부양가족은 직원 개체가 꼭 있어야 한다. 그래서 직원 개체는 오너 개체, 부양가족 개체는 약한 개체라 할 수 있다.
  • E-R 다이어그램에서 약한 개체는 이중 사각형으로 표한하고 약한 개체가 오너 개체와 맺는 관계는 이중 마름모로 표현


출처

태그:

카테고리:

업데이트: