DB/DB Basic

[DB] 개념적 설계 모델

IT록흐 2021. 6. 25. 08:07
반응형

 

 

데이터베이스의 개념적 설계는 사람이 이해할 수 있는 설계이다. 데이터베이스의 구조를 사람의 관점에서 접근해보자.

개념적 설계의 핵심 요소

출처 입력

개념적 설계 모델의 핵심요소 3가지는 아래와 같다.

 

1. 개체( Entity )

2. 속성 ( Attribute )

3. 관계 ( Relation )

 

개체는 현실에서 물리적으로 추상적으로 존재하는 실체이다. 속성은 개체가 가지고 있는 특성을 의미한다.

 

동일한 특성을 가진 개체들이 모이면 개체 집합(Entity Set)이 된다. 관계형 데이터 모델에서 개체 집합을 '테이블'이라 부르고 '속성'을 필드라 부른다.

같은 대상을 지목하지만 관점이 다르므로 특징도 다르다. 사용자 관점에서 보면 '속성'은 다중값이나 복합적인 특성을 가질 수 있지만 데이터베이스 관점의 필드는 원자값만이 허용된다.

관계 (Relation)

출처 입력

현실 세계의 모습을 DB에 담으려면 개체 간 '관계'를 설계 측면에서 표현해야한다. 관계는 개체 간 대응성을 표현해야한다.

 

대등적 관계

 

관계 집합

동일한 개체가 모이면 개체 집합이 되어 관계형 데이터 모델에서 테이블이 된다. 이와 같이, 동일한 유형의 관계가 모이면 관계 집합이 되어 관계형 데이터 모델에서 테이블이 된다. 그러므로 관계 또한 속성을 갖는다.

 

Student 개체 집합의 개체 A군이 Department 개체 집합의 개체 컴퓨터공학과와 '소속 관계'를 맺는다. 이와 같이, Student 개체 집합의 개체와 Department 개체 집합의 개체들끼리 동일한 유형의 관계를 맺으므로, 이는 관계집합으로 표현할 수 있다. 이때 관계가 소속된 날짜를 특성으로 가지면 이는 관계의 속성이 된다.

 

관계 대응수(Mapping Cardinality)

이진관계, 삼진관계가 개체 집합 간의 관계를 나타낸다면 개체 간의 대응의 개수를 나타내는 것을 관계 대응수라 부른다.

 

학생 A는 1개 또는 2개의 학과에 소속된다.

학과 B에는 여러 명의 학생이 소속된다.

 

일대일, 일대다, 다대일, 다대다 관계가 있다.

 

이진관계 VS 삼진관계

관계집합의 참여하는 개체 집합의 개수에 따라 이진관계(Binary relationship)이나 삼진관계(ternary relationship)으로 나뉜다. A학생은 B교수가 강의하는 C 과목을 수강하는 관계가 대표적인 삼진관계이다. 삼진관계 집합은 학생, 교수, 과목의 기본키를 외래키로 갖을 수 있다.

 

삼진 관계(ternary relationship)

 

 

화살표는 하나(일)를 의미하고 직사각형은 다수를 의미한다. 교수와 학생은 가르침의 관계에서 일 대 다이다. 학생과 과목은 가르침의 관계에서 다 대 다이고 교수와 과목은 가르침의 관계에서 일 대 다이다.

종속적 관계

출처 입력

약성 개체 집합(Weak Entity Set) VS 강성 개체 집합(Strong Entity Set)

 

관계에는 대등한 관계뿐 아니라 종속된 관계도 있다. 약성 개체 집합은 강성 개체 집합에 종속된다. 고로 약성 개체 집합은 독립적으로 존재 할 수 없다. 학교 개체 집합이 존재하지 않으면 교실 개체 집합은 존재할 수 없듯 말이다.

 

약성 개체 집합은 강성 개체 집합에 '의존' 해야 한다. 그러므로 독자적인 기본키를 갖지 않는다. 약성 개체 집합은 종속된 강성 개체 집합의 개체를 구분할 수 있는 여러 개의 속성을 묶어 일종의 키를 만든다. 이를 부분키(Partial Key) 혹은 구별자(discriminator)라 부른다. 부분키는 강성 개체 집합의 개체에 따라 달라짐으로 종속되었다고 할 수 있다. 만약 약성 객체집합이 기본키를 가지려면, 부분키와 강성 개체 집합의 기본키를 묶은 슈퍼키 형태로 가져야 한다.

 

이와같이 약성 개체 집합은 강성 개체 집합에 종속됨으로 기본적인 관계 대응 수는 다 대 일 관계이다. 여러 개의 약성 개체들이 하나의 강성 개체에 종속된다. 모든 개체가 하나의 강성 개체에 종속되면 '전체 참여'라 부르고 일부의 개체가 하나의 개체에 종속되면 '부분 참여'라 부른다.

 

종속적 관계

 

 

약성 개체 집합과 약성 관계 집합은 이처럼 이중선으로 표현한다. 한 개의 강좌는 여러 강의실을 만든다.

 

계층적 관계

일반화 관계와 세분화 관계

 

관계에는 계층적 관계도 있다. 계층이 올라갈수록 일반화, 추상화되고 계층이 내려갈수록 세분화된다. 그러므로 여러 개체의 공통적 특성으로 모아 상위 개체 집합을 형성하는 것을 일반화관계(generalization), 하나의 개체집합에서 여러 개의 개체 집합들로 분류하는 것을 세분화관계(specialization)이라 부른다.

 

자기연관 관계

한 가지 개체 집합 안에 여러 특성의 개체가 존재하는 경우, 자기 연관관계로 표현할 수 있다. 직원 개체 집한 안에 상사 개체와 부하 개체가 존재한다. 상사 개체는 부하 개체와 manage 관계를 맺는다.

 

자기 연관관계

 

한 명의 상사는 여러 부하직원을 관리한다.

 

반응형