본문 바로가기
이론공부/데이터베이스

[데이터베이스] 02. 데이터베이스 설계의 개요

by Ssubini 2022. 5. 6.

DB 설계 6단계

  1. 요구 분석
  2. 개념적 DB 설계
  3. 논리적 DB 설계
  4. 스키마(DB의 논리적 구조) 정제
  5. 물리적 DB 설계
  6. 응용 및 보안 설계

ER 모델

ER 모델

개념적 설계 단계에서 필요

  • 해당 조직체(system) 에서 개체(entity)는 무엇이고, 관계성(relationship)은 무엇인가?
  • 무엇을 DB에 저장해야 할까?
  • 무결성 제약조건이나, 사업 규칙으로는 어떤 것들이 있을까?

개체(Entity)

실세계에서 서로 구별되는 객체

  • 속성 값으로 구별
  • ex) 회사, 부서, 직원 등
  • 속성(attribute) 들의 집합을 사용하여 표시 => 직원(ssn, name, lot)

개체 집합(Entity Set)

유사한 개체들의 집합

  • 개체 집합의 모든 개체들은 같은 속성(attribute) 집합 공유
  • 각 개체집합은 key를 가짐
  • ✔key : 각 개체들을 유니크하게 구별하는 것
  • ssnnamelot
    ssn name lot
    123-22-3666 Smith 48
    231-31-5368 Paul 22
    131-24-3650 John 35

속성 (Attribute)

한 entity 집합의 모든 구성원에 의해 소유되는 묘사적인 성질들

  • ex) 직원 = (ssn, name, lot)
  • domain (속성의 영역) : 각 attribute에 대한 허용된 값의 집합
    • name : 20-character string / rating : 1~10 등급 / sex : 남,여
  • 표현 그림
    • 개체 집합 : 사각형
    • 속성(attribute) : 타원
    • 기본 Key 속성 : 타원에 밑줄

관계 (relationship)

둘 이상의 개체간의 연관성

  • ex) Attishoo는 제약 부서에서 근무한다.
  • 관계 집합 (relationship set) : 같은 형태의 관계
    • ->
    • {(e_1, ..., e_n) | e_1 \in E_1, ... e_n \in E_n }
    • n-ary 관계집합 : n개의 개체집합사이의 관계
    • ex) 직원과 부서간의 근무관계집합

  • 관계 집합의 instance : 어느 특정 시점의 관계들의 집합
    • ex) 근무 관계집합의 instance
    •  

  • 관계집합(삼진관계)
  • 부서는 여러곳에 사무실을 가지고 있으며 각 직원이 근무하는 위치를 기록하고 싶다
  • => 한 명의 직원, 하나의 부서, 하나의 장소 사이의 관련 : 삼진관계

역할(role)

한 관계집합에 참여하는 개체 집합이 같은 경우 개체구분을 위해 역할(role) 부여

  • ex) 보고관계집합 : 직원(하급자)이 다른 직원(상급자)에게 보고

키(Key) 제약조건

  • 근무관계 : 다대다 관계
    • ex) 한 직원이 여러 부서 근무, 한 부서에 여러 직원 근무
  • 관리단계 : 일대다 관계
    • ex) 한 직원(관리자)이 여러 부서 관리, 한 부서는 한 명의 직원(관리자)이 관리 => key 제약조건
  • 관계 집합의 mapping : 일대일, 일대다, 다대일, 다대다

 

참여제약조건

  • 모든 부서에 부서장이 필요
  • 관리관계집합의 부서 개체집합의 참여도는 전체적(total) : ER다이어그램에서 굵은 선으로 표시

약개체(Weak entity)

  • Key를 만들기 위한 충분한 attribute가 없는 개체로서, 다른 개체(식별 소유자)의 primary key를 보아야 유일하게 구분 소유자 개체 집합(직원)과 약 개체집합(피부양자) 사이는 일대다 관계
  • 약 개체집합(피부양자)은 식별(identifying) 관계집합(보험)에 전체적으로 참여
  • ex) (pname + ssn)으로 구분, 이 때 pname은 부분키(partial key)

댓글