영보의 SystemOut.log

[DB] 개체관계도 (ERD; Entity Relatioship Diagram) 개념과 작성방법 본문

국비교육(아이티센 입사교육)

[DB] 개체관계도 (ERD; Entity Relatioship Diagram) 개념과 작성방법

영보로그 2021. 11. 4. 17:19
반응형

 

데이터 베이스(Database)

# 데이터베이스(Database) 정의

- 여러 사람이 공유해서 사용할 목적으로, 체계적으로 정리된 정보를 효율적으로 관리하고 검색할 수 있는 정보의 집합

 

# DBMS(Database Management System)

 - 데이터베이스를 구성하고 운영하기 위해 구성된 소프 트웨어 시스템으로 Oracle, SQL 서버 등 일반적으로 알고 있는 데이터베이스 제품

 

 

 

데이터베이스의 설계 순서

 

요구조건 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계
분류 내용
요구조건 분석 데이터베이스를 사용할 User들로부터 필요한 용도를 파악하는 것
데이터베이스 사용자의 수행업무, 필요한 데이터의 종류, 제약조건 등을 수집
수집된 정보를 바탕으로 요구 조건 명세서를 작성한다.
개념적 모델링 엔터티와 속성을 도출하고 ERD를 작성함, 업무 중심적이고 포괄적인 수준의 모델링
논리적 모델링 식별자를 도출하고 속성과 관계 등을 정의함, 정규화를 수행하여 데이터 모델의 독립성과 재사용성 확보,
논리 데이터 모델은 데이터 모델링 완료 상태
물리적 모델링 DB를 구축함, 성능 및 보안 등 물리적인 성격 고려

 

 

개체 관계와 계체 관계도(ERD; Entity Relatioship Diagram) 

 

# 두 개체의 관계 정의

   

좌 우 로 우 좌 로
각 부서는 하나 이상의 사원을 배치 받을지도 모른다.
즉 Optional 이며 ‘○‘으로 표기한다.
각 사원은 하나의 부서에 반드시 소속되어야 한다.
즉 Mandatory 이며 ‘ |‘으로 표기한다.

 

 

# 개체 관계도(ERD; Entity Relatioship Diagram)

 개념적 데이터 모델링 과정을 통해 분석, 설계된 내용을 그림으로 표현한 ERD

부서, 사원 테이블

 

 

 

ERD 실습해보기

 [ 사례 연구]

 다음은 호텔 예약 관리 시스템에 대한 업무 프로세스이다. 사용자 요구사항을 읽고 Entity, Attribute, Relationship을 분석하여 관계 정의서, 개념적 ERD, 테이블 정의서를 작성하시오.

 

* 사용자 요구사항 *

 'A'호텔은 현재 운영 중인 객실 예약 시스템을 자동화하고자 한다. 고객의 종류를 회원과 비회원으로 구분하여 관리하고 있다. 회원 고객에게는 일정한 기간에 할인행사 및 이벤트를 제공하고, 회원 가입은 인터넷을 통해서만 가능하며 회원이 되기 위해서는 고객명, 생년월일, 주소, 연락처, 이메일 주소를 직접 입력하면 무료로 회원 가입이 된다.

 고객이 객실 예약을 요청하면 예약 관리자는 해당 날짜에 예약이 가능한 객실의 상태를 확인한 후 예약 접수를 하게된다. 객실 종류는 킹, 싱글, 더블, 3종류가 있고, 예약시 회원번호, 객실 종류, 체크인날짜, 체크아웃날짜, 투숙인원, 연락처를 기록한다. 예약이 완료되면 예약 관리자는 예약번호를 고객에게 통보한다.

 예약 완료 후, 해당 날짜에 고객이 호텔을 방문하면 프론트에서 예약번호를 통해 예약 상태를 확인하게 된다. 고객은 예정된 체크아웃 날짜에 프론트에서 숙박 요금을 현금이나 카드로 지불하게 된다.

 예약 관리자는 호텔에 근무하는 사원으로 매일 교대 근무를 시작한다. 사원에 대한 정보를 관리하기 위해 사원명, 주민번호, 주소, 긴급연착처, 입사일, 부서, 로그인ID, 암호, 급여액 등의 정보를 관리한다.

 

(1) 속성(Attribute)과 개체(Entity) 발견

속성(Attribute) 개체(Entity)
고객
이벤트
예약
예약관리자
프론트(데스크)
객실
결제
고객
이벤트
예약
예약관리자
프론트(데스크)
객실
결제

 

(2) 객체들의 관계 설정

객체들 관계 비식별 / 식별
고객 : 예약 1 : n 비식별관계
이벤트 : 고객 1 : n 비식별관계
예약 : 프론트 1 : n 식별관계
예약관리자 : 프론트 1 : 1 비식별관계
프론트 : 결제 1 : n 식별관계
객실 : 프론트 1 : n 비식별관계

 

(3) 개체들의 속성(Attribute) 발견?

속성 내용
고객 고객번호(PK), 이름, 생년월일, 연락처, 주소, 이메일 회원여부,
이벤트 이벤트코드(PK), 이벤트제목, 이벤트내용, 소요시간, 담당직원
예약 예약번호(PK), 체크인날짜, 체크아웃날짜, 투숙인원, 객실종류, 객실수, 연락처, 이메일, 요구사항
예약관리자 예약관리자ID(PK), 사원번호, 이름, 근무조, 로그인ID, 패스워드, 연락처, 이메일, 직급
프론트 관리자ID, 담당자, *예약번호(PK,FK) => 관계에 의해서 만들어짐!!
객실 객실번호(PK), 객실종류, 객실상태, 담당직원
결제 결제자, 결제일자, 결제수단, 금액 *예약번호(PK,FK) => 관계에 의해서 만들어짐!!

 

(4) 구현 

 

반응형