소프트웨어학부/데이터베이스 I 이론 및 실제

제 10장 개체-관계성 데이터 모델

Mt.Hwang 2024. 6. 11. 20:02

 * 목차
 10.1 개체 및 관계성
 10.2 ER 다이어그램
 10.3 관계형 스키마로 변환
 10.4 설계 이슈
 10.5 확장 ER 모델
 10.6 표기법


 * ER 데이터 모델링

 ER 데이터 모델
데이터베이스를 개체와 관계 (테이블)로 모델링 한 것

ER 데이터 모델의 모델링 원소는
개체와 관계(테이블)
두 개 모두 특성으로 속성만을 가진다


 * 객체 관계형 데이터 모델

modeling primitive로는 객체 (object)만이 존재

객체가 가질 수 있는 특성으로는
 1. 속성  attribute
 2. 관계성  relationship
 3. 메소드  method

 클래스 class
동일한 특성을 가지는 객체 모임을 의미


 * 개체
구별 가능한 객체를 의미

단독으로 존재하는 객체로
동일한 객체는 존재하지 x

어떤 객체도 개체가 될 수 있다
데이터베이스에 저장, 관리하고자 하는 어떤 것 (객체)도 개체가 될 수 있다

개체는 속성을 가진다

 속성
개체의 특성을 나타내는 역할

 개체 타입  (개체 집합)
개체 중에서 같은 속성을 가지는 개체의 모임

예시로 보았을 때
개체는 튜플을 이미하는 것 같다
그리고 키를 이용해서 구분한다


 * 개체와 객체
개체는 ER 데이터 모델에서 사용하는 용어
객체는 객체지향 패러다임에서 사용한 용어

개체가 객체보다 먼저 사용되었다


 * 관계성
각 개체 집합에 속하는 개체의 나열

 관계성 집합
관계성 중에서 같은 속성을 가지는 관계성

관계성 집합 역시 속성을 가진다

 연관성
서로 관련이 있는 것

개체 집합 내의 개체는
다른 개체 집합의 개체와 연관성이 있을 수 있다


 * 관계성 집합 차수
관련되는 개체의 개수

이진 관계성 집합이 가장 흔하고
3진 관계선 집합도 존재
이론적으로 4진, 5진 등의 차수도 ㄱㄴ

 1. 이진 관계성 집합  binary
 2. 3진 관계성 집합  ternary
 3. 4진 관계성 집합  quaternary
 4. 5진 관계성 집합  quinary


 * 속성
개체 또는 관계성이 가지는 특성
서술적인 사항

속성 구분
 1. 단순 속성
 2. 복합 속성
 3. 단일 값 속성
 4. 다수 값 속성
 5. 유도된 속성

 단순 속성
더 이상 분해될 수 없는 속성

 복합 속성
둘 이상의 속성으로 추가 분해되는 속성

 유도된 속성
다른 속성을 이용하여
속성 값을 구할 수 있는 속성


 * 카디날리티 제약
관계를 맺는 개체 타입에 대헤
한 개체가 얼마나 많은 다른 개체와 관련될 수 있는지를 나타내는 제약조건

이진 관계성 집합에서 유용

카디날리티 제약 종류
 1. one to one
 2. one to many
 3. many to one
 4. many to many


 * 키

ER 모델 개체의 슈퍼 키, 후보 키, 주 키는
테이블의 슈퍼 키, 후보 키, 주 키의 개념과 동일


 * 관계성 집합 키
관련되는 개체 집합의 주 키를 합성한 것

개체 간의 관계는 반드시 하나임을 의미

개체와 개체 사이에는 관계성이 하나만 존재하며
다수 개의 관계성은 존재한다

슈퍼 키에서 후보 키 및 주 키를 선정할 때는
카디날리티 제약 및 참여 제약을 고려한다


 * ER 다이어그램
ER 모델의 결과물

ER 다이어그램은 표기법이 다수 존재

 사각형
개체 집합 의미

 마름모형
관계성 집합 의미

 밑줄
주 키 속성을 의미

속성은 사각형 안에 나열


 * 복합 속성을 가진 개체

표현을
name
  firstName
  middleNameInitial
  lastName
이런 식으로 한다

ex)
address
  street
    streetNumber
    streetName
    aptNumber
  city
  state
  zipCode


 * 카디날리티 제약
화살표가 있으면 일 (one)을 의미
화살표가 없으면 다 (many)를 의미

일대일
일대다
다대일
다대다

 * 참여 제약
관계성 집합에 대한 또 다른 제약

관계에 참여하는 개체 타입의 일보 개체만 관계에 참여

참여 제약 종류
 1. 전체 참여
 2. 부분 참여

 전체 참여
A-B 관계에서 
개체 집합 A의 모든 개체가
A-B 관계에 참여

 부분 참여
A-B 관계에서
개체 집합 A의 일부 개체만
A-B 관계에 참여

단일선은 부분 참여
이중선은 전체 참여를 의미


 * 3진 관계성 ER 다이어그램
3가지 개체가 함께 연관 됨

(p236 사진 첨부)

만약 동시에 연관되는 관계가 없으면
세 개의 이진 관계성 집합으로 표현되는 것


 * 3진 관계성 집합 카디날리티 제약

3진 관계성 집합에서
카디날리티 제약은 표기가 가능
but 일에 대응이 되는 개체 집합을 최대 하나만 허용

A-B관계를 r1이라고 했을 때
C가 r1과 연관되는 것


 * 롤 
동일 개체 집합이 두 번 이상 관계성 집합에 참여하는 경우
참여에 대한 의미를 구분하기 위한 것

개체 집합이 관계성 집합에 참여할 때
반드시 한번만 참여하지 않아도 됨


 * 약한 개체 집합
주 키가 없는 개체 집합

 강한 개체 집합
자체적으로 주 키를 가지고 있는 개체 집합

약한 개체 존재는
이를 구분하는 강한 개체에 의존적
so, 약한 개체은
강한 개체 존재 없어 존재할 수 x

관계성 구성에서 반드시
약한 개체는 전체 참여이어야 하고
구분하는 개체가 일에 대응되고
약한 개체가 다에 대응 되어야 한다


 * 약한 개체 집합의 키
약한 개체 집합 내에서는 부분 키가 존재할 수 있다

약한 개체 집합의 주 키는
구분하는 개체의 주 키와 부분 키의 결합

약한 개체 집합 주 키
= 강한 개체 집합 주 키 + 약한 개체 집합 부분 키

약한 개체 표현은
이중 선으로 한다
강한 개체 표현 둘레에 
선을 하나 더 추가한 것

주 키를 할 수 있는 속성이 없으면
약한 개체 집합이 된다

ER 다이어그램은
정답이 하나만 존재하지 x
다수 개의 좋은 답안이 존재할 수 있다

 dash
돌진하다
서둘러 가다


 * 관계형 스키마로 변환

데이터베이스 설계의 목적은
좋은 관계형 스키마를 구하는 것

설계자가 사용자 요구 사항을 반영하는 ER 다이어그램을 작성하면
다음 단계에서는 이를 관계형 스키마로 변환

개체 집합은 테이블로 변환되고
관계성 집합은 속성으로 변환된다

기본 원칙은
개체 집합과 관계성 집합이
테이블 한개씩으로 변환되는 것

개체 속성 타입에 따라 변환이 상이할 수 있다


 * 강한 개체, 약한 개체 변환

강한 개체와 약한 개체는
관계 (테이블)로 변환된다

약한 개체를 구분하는 관계성은
테이블로 변환되지 x
약한 개체를 변환할 때 이미 강한 개체의 주 키를 포함하기 때문에
중복이 될 수 있기 때문

변환 시
변환된 테이블의 주 키도 결정해야 된다


 * 다대다 관계성 집합 변환

다대다 관계성은 반드시
독립적인 태이블로 변환되며
속성은 관여하는 개체 집합의 주 키를 포함


 * 다대일 관계성 집합 변환

다대일 관계성은
독립적인 테이블로 변환도 가능하고
다측 개체로 병합된어 테이블로 변환도 가능하다

다대일 관계성 변환 방법
 1. 관계성을 테이블로 변환
 2. 관계성은 변환 x

관계성을 테이블로 변환할 경우
관계성 테이블은 개체를 속성으로 가지고 있어야 한다


 * 복합 속성 변환

복합 속성은 flatten out되어
테이블 속성으로 변환 됨

복합 속성의 각 구성 속성이
테이블 속성으로 변환 됨

다수값을 가지는 속성은
결과 테이블 스키마에 포함되지 x
독립 테이블로 변환됨

유도된 속성은
관계형 스키마에는 명시적으로 포함된다

객체지향 데이터 모델 or 객체 관계형 데이터 모델에서는
유도된 속성은 메소드로 변환될 수 있다


 * 다수값 속성 변환

다수값 속성은 단일 테이블로 변환
이 때 관련 개체의 주 키 속성을 포함

관계형 데이터 모델의 기본적인 가정은
모든 값이 원자 값이어야 한다는 것

만약 데이터 모델이 속성 값으로 집합 값을 허용하면
다수값 속성이 독립적인 테이블로 변환되지 않고
다른 단순값 속성과 유사하게 변환될 것

객체 관계형 데이터 모델에서는
속성 값으로 집합을 허용


 * ER 설계 이슈  ER design decisions

소세상에 대해 데이터 모델을 하는 경우
결정해야 하는 사항이 많다
 1. an attribute vs an entity set
 2. an entity set vs a relationship set
 3. a ternary relationship vs a pair of binary relationships
 4. stron vs weak entity set
 5. the use of specialization/generalization

동일한 정보를 표현하는 방식에 따라
데이터베이스 시스템의 성능이 좌우됨


 * 개체 집합 대 속성

표현하고자 하는 사항을
개체로 표현할 것인지 개체 속성으로 표현할 것인지 결정해야 한다

한 속성만을 가지는 테이블은 b x


 * 개체 대 관계성

정보를 표현하기 위해서
개체화 or 관계성화를 결정해야 한다

일반적으로
명사는 개체로 표현
명사 간의 동사는 관계성으로 표현

ex)
학생이 분반을 수강하다
ㄴ 개체 : 학생, 분반
ㄴ 관계성 : 수강하다


 * 속성 위치

단일 아이디어는
단일 개체 or 단일 관계성으로 표현

다대다 카디날리티 제약에서
관계성의 속성 위치는
관계성에 반드시 위치해야 한다

일대일 카디날리티 제약에서
관계성 속성은
임의의 관련 개체에 위치할 수 있다

일대다 카디날리티 제약에서
관계성 속성은
다쪽 개체에 위치할 수 있다


 * 중복 속성

중복되는 속성은 제거되어야 한다

 redundant
불필요한
쓸모 없는

 replicate
정확히 모사하다
정확히 복제하다
자기 복제를 하다


 * 이진 관계성 대 다진 관계성

다진 관계성이
다수 개체 간의 관계를 명확히 표현

다진 관계성을 다수 개의 이진 관계성으로 변환하는 경우
모든 정보가 완전히 변환되지 않고
일부 정보가 유실되는 경향이 있다


 * 이진 관계성 대 삼진 관계성

데이터베이스에 세가지 정보를 함께 기록하려면
삼진 관계성을 사용하고
부분 정보만이라도 표현하려면
두 개의 이진 관계성을 사용


 * 다진 관계성 변환

일반적으로 다진 관계성은
다수개의 이진 관계성으로 변환 ㄱㄴ
순서는
 1. 새로운 객체 집합을 생성한 후
 2. 다진 관계성 집합에 속하는 관계성에 대응하는 개체 및 관계성을 생성

but 다진 관계성에 존재하는 제약 사항이
새로운 다이어그램에서 정확하게 표횐되지 못할 수 있음


 * 특수화/일반화

ER 데이터 모델은 객체지향 모델의
 1. 일반화
 2. 특수화
 3. 상속
기능을 지원

하양식 설계 과정에서는 특수화가 가능하고
상향식 설계 과정에서는 일반화가 가능하다

 일반화
몇 개의 개체 타입을 합해서
상위 레벨의 한 개체 타입으로 만드는 것
HAS-A 관계에 기반을 둠

 특수화
하나의 개체 타입을
몇 개의 하위 레벨 개체 타입으로 분리하는 것
하향식 설계 방식
IS-A 관계에 기반을 둠


 * 다중 특수화
상위 개체와 하위 개체 간에
다수개의 특수화가 있는 것


 * 제약 조건
개체와 관계에 댛나 표현을 명확히 하기위해
항상 준수해야하는 것

제약 조건의 종류는
 1. 사상수
 2. 참가 제약조건
 3. 키 속성
이 있다

상위 개체에 속하는 개체가
하위 개체에 속하는 기준에 대하여
조건을 정의할 수 있다

사용자가 조건을 지정할 수도 있다

상위 개체가 하위 개체에 속하는 방식에서
제약은 2가지가 가능
 1. disjoint
 2. overlapping

 disjoint
상위 개체가 하위 개체 하나에만 속하는 것

 overlapping
상위 개체가 다수 개의 하위 개체에 속하는 것

완전 제약 조건
 1. 전체  total
 2. 부분  partial

 전체
개체가 하위 개체에 속하는 것

 부분
개체가 하위 개체에 속할 필요가 없는 것
부분이 디폴트이다


 * 특수화 스키마

스키마 변환 방법은 2가지

 방법 1
하위 개체는
하위 개체에만 속하는 속성과
상위 개체의 주 키만으로
스키마를 변환하는 것
이 때, 하위 관계에 대한 모든 속성을 검색하기 위해서
하위 관계의 상위 관계 모두를 접근하여야 한다

 방법 2
하위 개체는
상속받은 모든 속성과
해당 개체에만 적용되는 속성만으로
스키마를 구성하는 것

특수화가 total 제약을 가지면
상위 개체는 반드시 하위 개체에 속하게 되므로
상위 개체만을 위한 테이블 생성이 필요하지 않을 수도 있다
이 때, 하위 개체를 이용하는 뷰로 상위 개체를 대체할 수 있으나
뷰 테이블에는 참조 무결성을 설정하지 못하므로
상위 개체에 대한 데이터 제약 사항은 설정할 수 x


 * ER 다이어그램 기호

(p256 사진 첨부)


 * P. Chen 표기법
ER 데이터 모델을 제안한 P.Chen의 원래 표기법

(p257 사진 첨부)


 * 까마귀 발 표기 (Martin 표기법)
IE  information engineering

 관계 타입
직선으로 표시

 관계 타입의 이름
직선 옆에 표기

카디날리티 및 participation 조건 표시 ㄱㄴ
ardinality를 multiplicity라고도 한다

 카디날리티
직선의 바깥쪽 끝 부분에 표시
까마귀 발 모양이 many를 의미
수직 바는 one을 의미

 participation
직선의 바깥쪽 안쪽에 표시
작은 원이 zero를 표시  (optional, partial participation을 표시)
수직 바는 one을 표시  (mandatory, total participation을 표시)

까마귀발 표기법은
IDEFIX 표기법의 일부


 * (최대, 최소) 표기법
(min, max) 표기법

각 개체 타입 기준으로
관계 개체에 관여하는 횟수의 최소/최대값 표시

ex)
0...1
ㄴ 최소 참여 회수가 0 (즉, partial participation)
ㄴ 최대 참여 회수가 1 (즉, total participation)

*는 many를 의미


 * 동일한 표기


 * UML
Unified Modeling Language

OMG에 의하여 제정된
소프트웨어 구성 요소를 명세하는 언어

UML의 구성 요소 중 class diagram이
ER 모델과 유사

UML 객체는 메소드를 가질 수 있다

메소드와 속성의 접근 방식은
 1. private
 2. public
 3. protected

 priavate 속성
해당 객체의 메소드에서만 접근 가능

 protected 속성
해당 객체와 서브 객체에서만 접근 가능

UML 속성은 복합 속성이나 다수 값 속성을 지원하지 x

'소프트웨어학부 > 데이터베이스 I 이론 및 실제' 카테고리의 다른 글

01. 데이터베이스 소개  (0) 2025.03.19
0. 시작하기  (0) 2025.03.09
제 9장. SQL 확장  (0) 2024.06.02
제 8장. 응용개발  (0) 2024.05.31
제 7장. 오라클 실습 II  (0) 2024.05.20