개념적 데이터 모델링 실습
설계 1단계 : 요구 사항 분석
- 목적
사용자의 요구 사항을 수집하고 분석하여 개발할 데이터베이스의 용도를 파악한다. - 결과물
요구 사항 명세서 - 주요 작업
- 데이터베이스를 실제로 사용할 주요 사용자의 범위를 결정
- 사용자가 조직에서 수행하는 업무를 분석
- 면담, 설문 조사, 업무 관련 문서 분석 등의 방법을 이용해 요구 사항 수집
- 수집된 요구 사항에 대한 분석 결과를 요구 사항 명세서로 작성
- 예)
- 한빛 마트에 회원으로 가입하려면 회원아이디, 비밀번호, 이름, 나이, 직업을 입력해야 한다.
- 가입한 회원에게는 등급과 적립금이 부여된다.
- 회원은 회원아이디로 식별한다.
- 상품에 대한 상품번호, 상품명, 재고량, 단가 정보를 유지해야 한다.
- 상품은 상품번호로 식별한다.
- 회원은 여러 상품을 주문할 수 있고, 하나의 상품을 여러 회원이 주문할 수 있다.
- 회원이 상품을 주문하면 주문에 대한 주문번호, 주문수량, 배송지, 주문일자 정보를 유지해야 한다.
- 각 상품은 한 제조업체가 공급하고, 제조업체 하나는 여러 상품을 공급할 수 있다.
- 제조업체가 상품을 공급하면 공급일자와 공급량 정보를 유지해야 한다.
- 제조업체에 대한 제조업체명, 전화번호, 위치, 담당자 정보를 유지해야 한다.
- 제조업체는 제조업체명으로 식별한다.
- 회원은 게시글을 여러 개 작성할 수 있고, 게시글 하나는 한 명의 회원만 작성할 수 있다.
- 게시글에 대한 글번호, 글제목, 글내용, 작성일자 정보를 유지해야 한다.
- 게시글은 글번호로 식별한다.
설계 2단계 : 개념적 설계
- 목적
- DBMS에 독립적인 개념적 스키마 설계
- 요구 사항 분석 결과물을 개념적 데이터 모델을 이용해 개념적 구조로 표현한다.
개념적 모델링이라 하며 일반적으로 E-R 모델을 이용한다.
- 결과물
개념적 스키마 : E-R 다이어그램 - 주요 작업
요구 사항 분석 결과를 기반으로 중요한 개체를 추출하고 개체 간의 관계를 결정하여 E-R 다이어그램으로 표현한다.
작업 과정
개체 추출, 각 개체의 주요 속성과 키 속성 선별
- 개체 : 저장할만한 가치가 있는 중요 데이터를 가진 사람이나 사물 등
예) 병원 데이터베이스 개발에 필요한 개체- 병원 운영에 필요한 사람: 환자, 의사, 간호사
- 병원 운영에 필요한 사물: 병실, 수술실, 의료 장비
- 개체 추출 방법
- 요구 사항 문장에서 업무와 관련이 깊은 의미 있는 명사를 찾는다.
- 업무와 관련이 적은 일반적이고 광범위한 의미의 명사는 제외
- 의미가 같은 명사가 여러 개일 경우는 대표 명사 하나만 선택
- 찾아낸 명사를 개체와 속성으로 분류한다.
- 요구 사항 문장에서 업무와 관련이 깊은 의미 있는 명사를 찾는다.
- 예시
- 한빛 마트에 회원으로 가입하려면 회원아이디, 비밀번호, 이름, 나이, 직업을 입력해야 한다.
- 가입한 회원에게는 등급과 적립금이 부여된다.
- 회원은 회원아이디로 식별한다.
- “한빛 마트”는 일반적이고 광범위한 명사이므로 제외
- “회원아이디”, “비밀번호”, “이름”, “나이”, “직업”, “등급”, “적립금”은 회원개체의 속성으로 분류
-
“회원아이디”는 키 속성으로 분류
- 개체: 회원
- 회원개체의 속성: 회원아이디, 비밀번호, 이름, 나이, 직업, 등급, 적립금
- 회원개체의 키 속성: 회원아이디
- 회원이 상품을 주문하면 주문에 대한 주문번호, 주문수량, 배송지, 주문일자 정보를 유지해야 한다.
- 개체: 회원, 상품
- 속성: 주문번호, 주문수량, 배송지, 주문일자
회원이 상품을 주문을 해야 생기는 중요한 정보이기 때문에 회원이나 상품 개체의 속성으로 보기는 어렵고 이후 추출할 특정 관계의 속성일 가능성이 높다.
즉, 회원과 상품간에 주문이라는 관계가 형성되고 이 주문의 속성이 될 것이다.
개체 | 속성 |
---|---|
회원 | 회원아이디, 비밀번호, 이름, 나이, 직업, 등급, 적립금 |
상품 | 상품번호, 상품명, 재고량, 단가 |
제조업체 | 제조업체명, 전화번호, 위치, 담당자 |
게시글 | 글번호, 글제목, 글내용, 작성일자 |
개체 간의 관계 결정
- 관계: 개체 간의 의미 있는 연관성
- 관계 추출 방법
- 요구 사항 문장에서 개체 간의 연관성을 의미 있게 표현한 동사를 찾는다.
의미가 같은 동사가 여러 개일 경우는 대표 명사 하나만 선택한다. - 찾아낸 관계에 대해 매핑 카디널리티(1:1, 1:N, N:M)와 참여 특성(필수적/선택적)을 결정한다.
- 요구 사항 문장에서 개체 간의 연관성을 의미 있게 표현한 동사를 찾는다.
- 예시
- 한빛 마트에 회원으로 가입하려면 회원아이디, 비밀번호, 이름, 나이, 직업을 입력해야 한다.
“입력해야 한다”는 개체와 개체의 관계를 표현하는 동사로 볼 수 없으므로 제외 - 가입한 회원에게는 등급과 적립금이 부여된다.
“부여된다”는 개체와 개체의 관계를 표현하는 동사로 볼 수 없으므로 제외 -
회원은 회원아이디로 식별한다.
“식별한다”는 개체와 개체의 관계를 표현하는 동사로 볼 수 없으므로 제외 - 회원은 여러 상품을 주문할 수 있고, 하나의 상품을 여러 회원이 주문할 수 있다.
- 회원이 상품을 주문하면 주문에 대한 주문번호, 주문수량, 배송지, 주문일자 정보를 유지해야 한다.
- 관계: 주문
“회원”개체와 “상품”개체가 맺는 관계: N:M 관계
“회원”개체는 관계에 선택적으로 참여, “상품”개체는 관계에 선택적으로 참여 - “주문”관계의 속성: 주문번호, 주문수량, 배송지, 주문일자
- 관계: 주문
- 각 상품은 한 제조업체가 공급하고, 제조업체 하나는 여러 상품을 공급할 수 있다.
- 제조업체가 상품을 공급하면 공급일자와 공급량 정보를 유지해야 한다.
- 관계: 공급
“제조업체”개체와 “상품”개체가 맺는 관계: 1:N 관계
“상품”개체는 관계에 필수적으로 참여, “제조업체”개체는 관계에 선택적으로 참여 - “공급”관계의 속성: 공급일자, 공급량
- 관계: 공급
- 회원은 게시글을 여러 개 작성할 수 있고, 게시글 하나는 한 명의 회원만 작성할 수 있다.
- 관계: 작성
“회원”개체와 “게시글”개체가 맺는 관계: 1:N 관계
“회원”개체는 관계에 선택적으로 참여, “게시글”개체는 관계에 필수적으로 참여
- 관계: 작성
- 한빛 마트에 회원으로 가입하려면 회원아이디, 비밀번호, 이름, 나이, 직업을 입력해야 한다.
관계 | 관계에 참여하는 개체 | 관계 유형 | 속성 |
---|---|---|---|
주문 | 회원(선택), 상품(선택) | 다대다 | 주문번호, 주문수량, 배송지, 주문일자 |
공급 | 상품(필수), 제조업체(선택) | 일대다 | 공급일자, 공급량 |
작성 | 회원(선택), 게시글(필수) | 일대다 |
Leave a comment