2020년 4월 8일 수요일

Day_03. Database Design using E-R Model

Database design using ER model
ER을 활용한 데이터베이스 모델링 과정

--initial phase
-----데이터 사용 유저의 캐릭터화

--second phase
-----데이터 모델의 선택

--final phase
-----실제 구현단계 , moving from an abstract data model to implementation of database
-----논리적 설계
--------비즈니스적 속성 = 어떤 속성이 필수로 들어가야 하는가?
--------컴퓨터 공학적 속성 = 어떤 관계의 스키마가 필수로 들어가야 하는가

-----물리적 속성
--------DB에서의 물리적 설계는 어떻게 할것인가?



Design alternatives
-데이터 설계시 피해야할 문제들
---redundancy – 잘못 설계시 데이터 입력의 반복, 누락등으로 인한 데이터 inconsistency-일관성의 붕괴-가 우려됨
---Incompleteness – 설계가 어렵거나 불가능하게 될수있다



Design approaches
-entity relationship model
---데이터 모델은 entity와 relationship의 집합임
-----entity = 어느 사물, 생각등에서 유일하며 설명하는 대상을 가장 잘 표현하는 것, 자체로 구별이 되는 것
------relationship = entity 사이에서 만들어지는 관계 설명
-normalization theory = 데이터의 정규화



Modeling
--data model의 정의 = entity의 집합,, entity 사이의 관계의 정의
--entity
=구별이 가능한 것들,entity는 attribute를 가지고 있다
=entity set : 동일한 propertites를 가지는 entity의 집합



--relationship
=entity 사시에 존재하는 연관성
=relationship set : 2개 이상의 entity의 집합


--Degree
=”number of entity set of participate in relationship set” relationship 에 참여하는 수
=”binary degree” = 두개의 entity 사이의 degree


--Attribute
=”attribute”가 모여서 entity가 된다
=3가지 타입이 존재 = simple and composite , single & multi,derived


--domain
=각 attribute에서 허용되는 영역의 범위


Mapping cardinality constraint
=정의 – express the number of entities to which another entity can be associated via relationship set – 관계집합을 통해 다른 entity를 연결 할 수 있는수


Binary relationship 에서의 관계
--1:1 , 1:N , N:1 , N:N - set내의 element는 다른 set의 element 와 연관이 안될수 있다


Key
=super key - entity를 유니크하게 식별하게 해주는 값
=candidate key – sebset of superkey , 후보키
=primary key – 여러 개의 candidate key에서 선택한 하나의 key


Keys for relationship set
=relationship에도 key가 있다 – entity와 마찬가지로 relationship 을 설명할수 있도록 해줌
=entity처럼 조합 key역시 가능, 원장과 계좌 정보 두개의 table에서 각각의 고객마다 매일 거래 건수 체크시 다수의 속성으로 접근해야 한다


ER diagram
=사각형은 entity set, 마름모는 relationship , 점선은 데이터끼리 연산으로 도출할수 있는 attribute



Roles
=Relationship상에서 역할을 정해주는것, 관계선 위에 기술한다


Cardinality constraint
=relationship에 방향성(화살표)이 생긴것, 화살표는 한 개의 관계, 직선은 다수의 관계
EX) 1:N , N:1에서는 직선을 이용해서 표시한다


Participation Of entity set in relationship set
--Total participation = 모든 entity는 무조건 이 relationship으로 연결된다, 2줄로 표현한다
--Partial participation = 모든 entity가 relationship 을 가질 필요가 없다, 단선으로 표현한다


Ternary relationship
--binary relationship 아 아닌 3개 이상의 entity가 1개의 relationship과 연결되어 있는 상황


Design issues
--entity set VS Attribute – semantic 에 따라 다르다, 기본적으로는 설계하는 데이터의 구조에 따라 다르다
--entity set VS relationship – action은 보통 relationship 으로 표현하게 된다
--Binary VS N-차ary relationship - N차ary는 relationship의 표현이 좋아진다



Binary VS non-Binary
--ternary relationship 에서 Non-Binary 표현을 사용하면 가시성이 올라간다



Non- binary To binary relationship
--entity사이에 모든 relationship에 해당하는 마름모를 작성한다, 이때 새로운 entity를 생성해서 삽입해준다
--constraint translate -->이때 모든 constraint 의 translate는 불가능할수 있다


Mapping cardinalities effect ER diagram
--다수의 entity를 묶어서 표현이 가능하다
Identified relationship (겹친 마름모)로 표시,

Discriminator(Partial key가 존재하는 상황, 해당 entity에서 관계를 구분 짓기위한 entity)
Ex)”course” entity가 있을 때 이것과 연결된 “수업시간” entity간의 관계

댓글 없음:

댓글 쓰기