DB 설계 6단계
- 요구 분석
- 개념적 DB 설계
- 논리적 DB 설계
- 스키마(DB의 논리적 구조) 정제
- 물리적 DB 설계
- 응용 및 보안 설계
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)
'이론공부 > 데이터베이스' 카테고리의 다른 글
[Database] 01. 데이터 베이스 시스템의 개요 (0) | 2022.04.27 |
---|
댓글