-
ER 모델링으로 설계하자!개발 프로세스 2019. 3. 1. 12:43
데이터의 관계와 구조에 주목하여 분석 설계를 수행하는
ER 모델링
세상의 모든 사실이나 현상 프로세스를
실체(Entity) 관계(Relationship)이라는 개념으로 표현할 수 있다는 것이
ER 모델링의 전부
예)
연구실 과 학생이라는 엔티티는
소속이라는 릴레이션십에 연관되었다.
01. 엔티티의 실체
1. 엔티티는 세상에 존재하는 사람이나 사물,개념등의 집합체이다.
2. 엔티티는 식별자를 가진다.(엔티티를 식별하기위한 속성을 식별자라고한다.)
3. 엔티티는 속성을 가진다.
엔티티관계를 이해할수 있도록 표현한것이 ERD
02 .ERD로 알 수 있는것
ERD로는 어떤 활동이 수행되고있는지
의존 비의존 관계를 알수 있다.
03. 엔티티의 대응수를 알자.
ERD는 엔티티의 대응관계를 보다 상세히 기술가능하다.
그것이 카디널리티 이다.
1:1,0
1:다
다:다
1:1,0관계
여행자는 여권을 소지한다
여행자는 여권을 하나씩만 가질 수있고
한 여권의 소유자는 한사람뿐
그러나 모든 여행자가 여권을 가지고 있는것은아님
여행자와 여권의 관계는
1:1 또는 1:0 이다
1:다 관계는
병원에 환자가 입원한다
병원은 많은 환자를 입원할 수있다.
환자의 수가 한명이상 이어야한다면
1:다에서 1이상 이다.
다대다관계
한명의 배우는 여러 영화에 출현함
거꾸로 영화에는 복수의 배우가 출현함
이렇게 ERD에서 ~대 ~라는 관계를 기술하는것으로 엔티티사이에 대응 보다 상세히 기술 가능하다
04. ER 모델링에 도전 해보자
1. 개인 성적표는 교무와 사무원이 작성한다.
2. 사무원은 교사에게 채점이 끝난 시험용지를 회수한다. 시험용지에은 학번 이름 점수가 맨위에 써져있다.
3. 사무원은 학생파일을 보고 학번에서 학급명을 시험파일을 보고 시험번호에서 시험범위 과목명을 각각 조사한다.
4. 사무원은 학번 이름 학급명 시험번호 과목명 시험 범위 점수를 개인 성적표에 기입한다.
DFD
개인성적표를 표로 변환하면 이런식이 된다.
학생번호
이름
클래스명
시험번호
과목명
시험범위
점수
803421
이나영
3-4
100
국어
구운몽
70
803421
이나영
3-4
200
수학
미분적분
68 5. 엔티티의 의존관계를 조사한다.
위에 보면 반복에서 등장하는 항목이있다
위 항목을 둘로 만들어본다.
부자연스러운 부분이 보인다.
시험 엔티티가 학생 엔티티에 의존하고 있다.
시험은 학생이 있던 없던 시험이라는 개념은 존재가능(테스트용지)
시험이 학생에게 의존하는것은 부자연스럽다
식별자가 시험번호 + 학번인데 점수라는 속성이 있다는것이 이상하다는 것을 알 수 있다.
과목명과 시험범위는 시험을 한정시키는 데 필요함
그러나 점수는 학생이 시험을 친 결과로 발생하는 것이지 처음부터 존재하지 않는다.
점수라는 것은 시험의 성적 ,
위 그림이 부자연 스러운것은
학생과 시험사이에 성적이라는 관계가 있다는 사실을 간과했기때문이다.
그러므로 성적 엔티티 추가한다.
06. 속성의 의존 관계를 조사한다
학생엔티티의 이름과 학급명 을 주목학번이라는 식별자에 이름은 의존적학번하나에 이름은하나학급명은 어떨까학생이 진급하면 학급명이 변하게됨학생은 학급에 소속된다는 관계가 있다고 생각하는게 자연스러움소속이라는 엔티티를 도입이후에 상세 셜계단계가 이어진다.
정리
1. ER모델링은 구조화와 분석설계와 함께 시스템 개발의 중요한 방법 중 하나로 실체(엔티티) 와 관계(릴레이션십)으로 모든 현상을 표현 하는것
2. ER 모델링을 보기 쉽게 도형으로 표현한 것이 ERD를 통해 어떤 활동이 수행되고 있는지 한눈에 파악가능
ERD에는 엔티티의 대응 보다 상세히 기술 가능
3. 실제 ER모델링 시에는 엔티티의 의존 관계를 조사하고 속성의 의존 관계를 조사한다.
4. 시스템 설계시에는 DFD그리는 구조화분석방법과 ER모델링을 병행하면 좋다.
'개발 프로세스' 카테고리의 다른 글
TDD - 머니객체 (0) 2019.04.22 사용자와 개발자 UML로 통하기 (0) 2019.03.01