[DB] 데이터모델링 연습

PSLeon ㅣ 2023. 11. 14. 11:49

반응형

데이터모델링 연습

데이터모델링 연습.pdf
0.81MB

호텔 데이터베이스 여러 개의 지점을 가진 호텔을 데이터베이스로 구축하려고 한다.

다음 내용을 모두 포함하는 데이터베이스를 설계하시오. 필요한 경우 몇 가지 가정을 넣을 수 있다.
1. 각 호텔 지점은 이름, 주소, 도시, 각 타입 방의 가격, 각 타입 방의 수 등의 정보가 있다
2. 고객은 이름, 주소, 전화번호 정보가 있다. 고객은 하루 혹은 며칠 동안 호텔을 예약할 수 있다. 예약 시 투숙객의 수, 예약일, 출발일, 도착일을 저장한다.
3. 투숙 후 실제 투숙의 도착일, 출발일, 선급금, 지불방법을 저장한다.

  

(1) 아래 양식에 엔티티와 속성을 작성하세요.

엔티티명 속성
호텔 호텔명, 주소, 도시
객실 객실번호, 객실 호수, 객실 가격, 방의 개수, 수용 인원
고객 고객id, 이름, 주소, 전화번호
예약 예약번호, 투숙인원, 예약일, 출발일, 도착일
투숙 투숙번호, 출발일, 도착일, 선급금, 지불방법
 

(2) 주식별자를 정의하세요.

 PK: 호텔명, 객실번호, 고객id, 예약번호

 

(3) 관계/외래식별자를 정의하세요.

- 호텔과 객실 - 호텔명을 객실의 외래키로 사용

- 객실과 예약 - 객실번호를 예약의 외래키로 사용

- 고객과 예약 - 고객id 예약의 외래키로 사용

- 예약과 투숙 - 예약번호를 투숙의 외래키로 사용

 

(4) ER 다이어그램을 그리는 것을 통해 개념적 모델링을 수행하시오.

 

(5) ER 다이어그램을 테이블로 변환하는 것을 통해 논리적 모델링을 수행하시오.

호텔(호텔명, 주소, 도시)
객실(객실번호, 객실호수, 수용인원, 방의 개수, 객실 가격, 호텔명(FK))
고객(고객id, 이름, 전화번호, 주소)
예약(예약번호, 투숙인원, 예약일, 출발일, 도착일, 객실번호(FK), 고객id(FK))
투숙(투숙번호, 선급금, 지불방법, 출발일, 도착일, 예약번호(FK))
Hotel(h_name, h_address, h_city)
Room(room_id, room_no, capacity, room_size, price, h_name(FK))
Customer(custid, cname, cphone, caddress)
Reservation(rid, guests, rdate, departure, arrival, room_id(FK), custid(FK))
Stay(stayid, adpayment, method, departure, arrival, reservationid(FK))

 

(6) 테이블 기술서를 작성하는 것을 통해 물리적 모델링을 수행하세요.

Name Hotel Table
기술서
작성일 23/11/14 page
1/5
System 호텔 관리 작성자 고영민
Description 호텔 정보를 가지고 있는 테이블
No Column Name Data Type NN KY Default Description
1 h_name VARCHAR(30) v (PK)   호텔 이름
2 h_address VARCHAR(50) v     호텔 주소
3 h_city VARCHAR(30) v     호텔 도시
4            
5            
6            
비고
 
Name Room Table
기술서
작성일 23/11/14 page
2/5
System 호텔 관리 작성자 고영민
Description 객실 정보를 가지고 있는 테이블
No Column Name Data Type NN KY Default Description
1 room_id INT v (PK)   객실 번호
2 room_no INT v     객실 호수
3 capacity INT v     수용 인원
4 room_size INT v     방의 개수
5 price INT v     객실 가격
6 h_name VARCHAR(30)   (FK)   호텔명
비고
 
Name Customer Table
기술서
작성일 23/11/14 page
3/5
System 호텔 관리 작성자 고영민
Description 고객 정보를 가지고 있는 테이블
No Column Name Data Type NN KY Default Description
1 custid INT v (PK)   고객 번호
2 cname VARCHAR(30) v     고객 이름
3 cphone VARCHAR(30) v     고객 전화번호
4 caddress VARCHAR(50) v     고객 주소
5            
6            
비고
 
Name Reservation Table
기술서
작성일 23/11/14 page
4/5
System 호텔 관리 작성자 고영민
Description 예약 정보를 가지고 있는 테이블
No Column Name Data Type NN KY Default Description
1 rid INT v (PK)   예약 번호
2 guests INT v     투숙인원
3 rdate DATE v     예약일
4 departure DATE v     출발일
5 arrival DATE v     도착일
6 room_id INT   (FK)   객실번호
7 custid INT   (FK)   고객번호
비고
 
Name Stay Table
기술서
작성일 23/11/14 page
5/5
System 호텔 관리 작성자 고영민
Description 투숙 정보를 가지고 있는 테이블
No Column Name Data Type NN KY Default Description
1 stayid INT v (PK)   투숙 번호
2 adpayment INT v     선급금
3 method VARCHAR(30) v     지불방법
4 departure DATE v     출발일
5 arrival DATE v     도착일
6 rid INT   (FK)   예약 번호
비고
 

 

(7) 테이블을 생성하는 DDL 문을 작성하세요. (SQL문은 기본키, 외래키 등이 정의되도록 한다.)

 

(8) 생성된 테이블에 데이터를 세 개씩 삽입하는 DML 문을 작성하세요.

 

(9) SELECT 문을 작성해서 질의를 3개 이상 수행하세요.

- Q1. 방 가격이 15만원 이상인 방이 있는 호텔의 이름을 나타내자

 

- Q2. 이름이 Bao Poo인 고객의 예약 정보를 모두 나타내자

 

 

 

- Q3. 부산에 있는 호텔의 객실 정보를 모두 나타내자