여기서는 앞서 말했듯이
개체관계 모델을 사용한다.
E-R // Entity Relaion 다이어그램으로 표현하고는 한다.
최종목표는 ERD를 만드는 것이라고 할 수 있다.
개체, Entity
-현실 세계에서 물리적 또는 추상적으로 존재하는 실체
-ex 사람, 자동차, 집, 돈
개체 집합, Entity Set
-동일한 특성을 갖는 개체들의 모임
ex 학생 -> 학생들, 사원 -> 사원들
속성, Attribute
-개체의 특성을 나타냄
-관계형 데이터 모델의 필드(field)와 같은 개념 또는 column
-동일한 특성을 가진다는 것은 속성이 동일하다는 말과 같다.
** 필드와 속성의 차이점도 읽어보고 가자
관계, Relation
-개체 간의 대응성을 표현함
-개체 간의 관계를 통해 의미를 이끌어냄.
관계집합, Relation Set
-동일한 유형의 관계들의 집합
예)
** 관계집합의 차수(degree)가 존재하는데 이는 관계 집합에 참여하는 개체 집합의 개수를 말한다.
예)
또한 중요한 개념이 나오는데 바로 대응수(mapping cardinality)라는 것이다.
정말 설계 시 중요한 사항이다.
대응수란 관계 집합에서 각 개체들이 참여할 수 있는 대응의 개수를 말한다.
ex) 학생 한 명은 하나의 학과에만 속할 수 있다.
대응은 4가지가 있다
1:1 or 1 : N or N : 1 or N : M
그림을 보면서 이해하고 가자.
추가적으로
약성 개체집합과 강성 개체집합이 있다.
-> 완성도에 따라 구분하는 것이다.
강성 개체집합(Strong entity set)은 기본키 형성에 필요한 속성을 모두 갖는 개체 집합을 말한다.
약성 개체집합(Weak entity set)은 기본키 형성에 필요한 속성을 모두는 갖지 못한 개체 집합을 말한다.
-> 결국 차이는 모두 가졌냐? 그렇지 않냐 차이다.
다시 약성 개체집합과 강성 개체집합의 관계를 알아보자
-> 약성 개체집합은 강성 개체집합에 항상 종속되어 있음 (포함관계)
약성 개체집합은 독립적으로 존재할 수 없음, 강성 개체집합이 있고나서야 존재가능.
그렇게 따지고 보면 대응수의 관계도 알 수 있다.
조금 더 자세히 들여다보자면
부분 키(partial key), 구별자(discriminator)라는 단어가 있다.
-> 약성 개체집합에서 강성 개체집합의 특정 개체 내에서만 유일한 값을 갖는 속성집합( 속성의 집합이다)을 말한다.
예를 들자면
아니?? 그러면 약성 개체집합의 기본키는 없는건가..? 라고 생각할 수 있다.
-> 맞다. 약성 개체집합 자체만으로는 기본키를 가질 수 없다.
약성 개체집합의 기본키 = 약성 개체집합의 부분키 + 강성 개체집합의 기본키가 되겠다.
또한 우리가 이해하기 쉽게 만들기 위한 개념이 나온다.
일반화(Generalization)관계와 세분화(Specialization)관계이다.
-> 이러한 관계들은 현실세계의 계층 관계를 반영한 것이다. 일반화된 개체를 보다 세분화해서 나타내서 이해하기 쉽게 만드는 것이다.
일반화관계란 여러 개체집합의 공통적인 특징을 모아 상위 개체집합을 생성하는 것이다.
세분화관계란 하나의 개체집합을 여러 개의 하위 개체집합으로 분류하는 것이다.
우리는 설계를 말로만.. 글로만 할까??
절대 아니다. 하기 쉽게하려면 눈에 보이는 기호로 해야한다., 그래서 위에 말한 모든 기호들을 모아놓아서
ERD, 개체관계 다이어그램을 만든다.
그 구성요소는 이렇다.
어떻게 쓰이는지 예를 통해 알아보자
그림을 그리다 보니 특수한 경우도 많이 생긴다.
자기연관관계(self-reltationship)같은 것을 말한다.
-자신이 관리하는 개체이면서 자신 또한 그 관리하는 대상에 속한다.
회사가 다 이렇지??
그럼 진짜 우리가 개념적 설계를 어떻게 하는지 시간의 순서에 따라 살펴보자
1. 요구사항 분석
2. 개체집합의 도출, 엔티티 도출
요구사항에서 속성, 식별자, 관계를 정의한다.
엔티티를 찾아내는 것은 온전히 제작자의 몫이다. 정해진 공식은 없다.
++ 여기서 기본키까지 정해놓아야 한다.
-> 만일 어떤 속성이 그 엔티티의 기본키가 된다면 그 엔티티에 포함된 모든 속성값 중 중복된 값이 나타나면 안된다.
**하지만 요구사항의 명사를 잘 살펴보면 알 수 있다.
3. ERD로 표현 -1
-> 글로는 어렵다. 그림으로 만들자
4.ERD로 표현 -2
관계를 알아야 진짜로 서로 이어지고 맺고를 그릴 수 있다.
관계집합의 정의가 필요하다.
5. ERD로 표현 -3
관계집합의 표현이다.
6. ERD 완성
기본키를 포함해서 완성시킨다.
'컴퓨터(Computer Science) > 데이터베이스, DB, DataBase' 카테고리의 다른 글
데이터베이스의 물리적 저장 구조와 인덱스 (0) | 2020.12.13 |
---|---|
데이터베이스의 논리적 설계~최종 테이블 스키마 (0) | 2020.12.13 |
데이터베이스의 설계( Database Design) (0) | 2020.12.13 |
SQL(Structured Query Language) + 보충내용(NULL처리, 중첩질의, 뷰(VIEW)) (0) | 2020.12.12 |
SQL(Structured Query Language)이란? (0) | 2020.12.12 |