이론공부/데이터베이스

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

Ssubini 2022. 5. 6. 21:39

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)