1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÀI TẬP LỚN CƠ SỞ DỮ LIỆU ĐỀ TÀI CƠ SỞ DỮ LIỆU QUẢN LÝ NHÀ HÀNG ĂN

23 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 257,79 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các thuộc tính không khóa đều phụ thuộc đầy đủ vào các khóa.. Các thuộc tính không khóa là BCDE đều phụ thuộc đầy đủ vào khóa A nên Q1 đạt 2NF.Tất cả các thuộc tính không khóa không phụ

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚN

CƠ SỞ DỮ LIỆU

ĐỀ TÀI:

CƠ SỞ DỮ LIỆU QUẢN LÝ NHÀ HÀNG ĂN

Giảng viên: TS.Trần Hồng DiệpSinh viên: Dương Văn Thành

Lớp: 61TH6

Trang 2

Hà Nội, 4/2021

TRƯỜNG ĐẠI HỌC THỦY LỢI

KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚN

CƠ SỞ DỮ LIỆU

ĐỀ TÀI:

CƠ SỞ DỮ LIỆU QUẢN LÝ NHÀ HÀNG ĂN

Giảng viên: TS.Trần Hồng DiệpSinh viên: Dương Văn Thành

Lớp: 61TH6MSV: 1951061022

Trang 3

HÀ NỘI, 4/2021

LỜI NÓI ĐẦU Trong thời đại ngày nay, công nghệ thông tin đang được phát triển mạnh mẽ, nhanh chóng và

xâm nhập vào nhiều lĩnh vực khoa học, kỹ thuật, cũng như trong cuộc sống Nó trở thành công

cụ hữu ích để quản lý , xây dựng , thiết kế … đặc biệt trong công tác quản lý nói chung và quản

Là một sinh viên công nghệ thông tin, nhận được tầm quan trọng của tin học hóa và cácdoanh nghiệp tin học trong cơ chế thị trường như hiện nay ở Việt Nam, sau một thời gian tìm

hiểu và học tập, em đã quyết định chọn đề tài “Quản lý nhà hàng ăn” nhằm ứng dụng những

kiến thức đã học được và kết hợp chúng với kiến thức về kinh tế

Em xin chân thành cảm ơn cô giáo TS Trần Hồng Diệp giảng viên đã tận tình hướngdẫn, giảng dạy em bộ môn Cơ Sở Dữ Liệu để hoàn thành được bài tập này

Trang 4

MỤC LỤC

LỜI NÓI ĐẦU 3

MỤC LỤC 4

I Khảo Sát Thực Tế 5

II Phân Tích Và Thiết Kế Dữ Liệu 7

II.1 Các kiểu liên kết 7 II.2 Mô hình thực thể ban đầu 8 II.3 Tách đa trị 9 II.4 Mô hình liên kết mở rộng 10 II.5 Chuyển mô hình quan hệ 11 III Xác định khóa 12 III.1 Xác định phụ thuộc hàm khóa

12

III.2 Tìm khóa cho các quan hệ

13

Trang 5

III.3 Chuẩn hóa lược đồ quan hệ thành dạng 3NF hoặc BCNF 14

IV Câu lệnh truy vấn dữ liệu SQL 16 IV.1 Tạo bảng 16

IV.2 Các câu hỏi truy vẫn và ngôn ngữ SQL 18

Kết Luận 21 Tài Liệu Tham Khảo 22

Trang 8

2.2 Mô hình thực thể ban đầu

Trang 9

2.3 Tách đa trị

Trang 10

2.4 Mô hình liên kết mở rộng

Trang 11

2.5 Chuyển Mô Hình Quan Hệ

1 KHACH( Ma_K, Ten_K, Dia_C, Dien_T)

Trang 12

Mỗi khách có mã (Ma_K) duy nhất, tên khách (Ten_K), địa chỉ (Dia_C) và số điện thoại (SDT).

2 NHANVIEN( Ma_NV, Ten_NV, Dia_C, Dien_T, ChucV)

Mỗi nhấn viên có mã nhân viên (Ma_NV) duy nhất, tên nhân viên (Ten_NV), địa chỉ (Dia_C),

số điện thoại (Dien_T), chức vụ ở trong nhà hàng (ChucV)

3 LUONG( MaL, T_Toan)

Mỗi lương có mã lương (MaL) duy nhất và thanh toán (T_Toan)

4 HOADON( Ma_HD, Ngay).

Mỗi hóa đợn có mã hóa đơn (Ma_HD) duy nhất, ngày hóa đơn (Ngay), tổng tiền trên hóa đơn (T_Tien), không trả (K_Tra) và còn dư (C_Du)

5.CHITIETHOADON ( Ma_HD , Ma_K, T_Tien, K_Tra, C_Du, Ma_NV)

Mỗi hóa đợn có mã hóa đơn (Ma_HD), Mỗi khách có mã (Ma_K) duy nhất, tổng tiền trên hóa đơn (T_Tien), không trả (K_Tra) và còn dư (C_Du)

6 NHACC( MaNC, Ten_NC, Dia_C, Dien_T, Ngay_HT)

Mỗi nhà cung cấp có mã nhà cung cấp (MaNC), tên nhà cung cấp (Ten_NC), địa chỉ (Dia_C), điện thoại (Dien_T), ngày hợp tác (Ngay_HT)

6 THUCPHAM(Ma_TP, Ten_TP, D_Vi, Ngay_N, Ngay_HH)

Mỗi thực phẩm có mã thực phẩm (Ma_TP), tên thực phẩm (Ten_TP), đơn vị tính (D_Vi), ngày nhập (Ngay_N) và ngày hết hạn (Ngay_HH)

7 MENU( Ma_MN, Ma_M, Ten_M, Don_G, DV_T).

III Xác định khóa

Trang 13

3.1 Xác định phụ thuộc hàm.

 Bảng quan hệ NHANVIEN:

Q1 = (MaNV, Ten_NV, Dia_C, Dien_T, Chuc_Vu, Ma_L)

_ Đặt MaNV = A, Ten_NV = B, Dia_C = C, Dien_T = D, Chuc_Vu = E, Ma_L=F;

Q3 = (Ma_TP, Ten_TP, DV_T, Ngay_N, Ngay_HH, Ma_NCC)

_ Đặt Ma_TP= A, Ten_TP= B, DV_T=C, Ngay_N=D, Ngay_HH= E, Ma_NCC= F

 Q3 = (ABCDEF)

Phụ thuộc hàm:

F3 = {A → BCD, D → E, AB →F}

 Bảng quan hệ NHACC:

Q4 = (MaNC, Ten_NC, Dia_C, Dien_T)

_ Đặt MaNC = A, Ten_NC = B, Dia_C = C, Dien_T = D;

 Q4 = (ABCD)

Phụ thuộc hàm:

F4 = {A → BC, AB → D}

 Bảng quan hệ KHACH:

Q5 = (Ma_K, Ten_K, Dia_C, Dien_T, Ma_NV, Ma_MN)

_ Đặt Ma_K = A, Ten_K = B, Dia_C = C, Dien_T= D, Ma_NV = E, Ma_MN = F

 Q5 = (ABCDEF)

Phụ thuộc hàm:

F5 = {A → BCD, A → EF}

 Bảng quan hệ HOADON:

Q5 = (Ma_HD, T_Tien, Ngay, Ma_NV, Ma_K)

_ Đặt: Ma_HD = A, T_Tien = B, Ngay = C, Ma_NV =D, Ma_K= E

 Q5 = (ABCDE)

Phụ thuộc hàm:

F5 = {A → BC, EA → D, AC🡪E}

 Bảng quan hệ MENU:

Q6 = (Ma_MN, Ma_M, Ten_M, Don_G)

_ Đặt: Ma_MN = A, Ma_M = B, Ten_M = C, Don_G = D

Trang 14

 Q6 = (ABCD)

Phụ thuộc hàm:

F6 = {A → BC, B→D}

 Bảng quan hệ LUONG

Q7 = {MaL, T_Toan, Ma_NV}

_ Đặt MaL = A, Ma_NV = B, T_Toan = C

Ta có giao của các khóa là X = {ABCDE} – {BCDE} = {A}

Bao đóng của A =ABCDE = Q1 nên A là khóa duy nhấtcủa quan hệ Q1

 Q2 = (AB)

Phụ thuộc hàm:

F2= {A🡪 B}

Ta có giao của các khóa là X = {ABC} – {B} = {A}

Bao đóng của A = ABCD = Q2 nên A là khóa duy nhất của quan hê Q2

 Q3 = (ABCDEF)

Phụ thuộc hàm:

F3 = {A → BCD, D → E, AB → F}

Ta có giao của các khóa la X= {ABCDEF} – {BCDEF} = {A}

Bao đóng của A = ADBFCE = Q3 nên A là khóa duy nhất của quan hệ Q3

 Q4 = (ABCD)

Phụ thuộc hàm:

F4 = {A → BC, AB → D}

Ta có giao của các khóa là X = {ABCD} – {BCD} = {A}

Bao đóng của A= ABCD= Q4 nên A là khóa duy nhất của quan hệ Q4

 Q5 = (ABCDE)

Phụ thuộc hàm:

F5 = {A → BC, EA → D, AC → E}

Ta có giao của các khóa là X = {ABCDE} - {BCDE} = {A}

Bao đóng của A = ABCDE = Q6 nên A là khóa duy nhất của quan hệ Q5

 Q6 = (ABCD)

Phụ thuộc hàm:

F6 = {A → BC, B → D}

Ta có giao của các khóa là X = {ABCD} – {BCD} = {A}

Bao đóng của A = ABCD = Q6 nên A là khóa duy nhất của quan hệ Q6

Trang 15

 Q7 = {ABC}

Phụ thuộc hàm:

F7 = {A🡪 B, A🡪C}

Ta có giao của các khóa là X = {ABC} – {BC} = {A}

Bao đóng của A = ABC = Q7 nên A là khóa duy nhất của quan hệ Q6

3.3 Chuẩn hóa lược đồ quan hệ thành dạng 3NF hoặc BCNF

Chuẩn hóa mô hình về dạng 3NF:

Mô hình ở dạng 3NF nếu nó ở dạng 1 NF và 2NF Các thuộc tính không khóa đều phụ thuộc đầy đủ vào các khóa Không có phụ thuộc hàm bắc cầu vào khóa

 Q1 = (ABCDE)

Phụ thuộc hàm:

F1 = {A → BC, A → DE Khóa là A

Q1 không có thuộc tính suy diễn và thuộc tính lặp nên đạt 1NF

Các thuộc tính không khóa là BCDE đều phụ thuộc đầy đủ vào khóa A nên Q1 đạt 2NF.Tất cả các thuộc tính không khóa không phụ thuộc bắc cầu vào khóa nên Q1 đạt 3NF

 Q2 = (AB)

Phụ thuộc hàm:

F2= {A → B} Khóa của Q2 là A

Q2 không có thuộc tính suy diễn và thuộc tính lặp nên đạt 1NF

Các thuộc tính không khóa là B đều phụ thuộc đầy đủ vào khóa A nên Q2 đạt 2NF

Tất cả các thuộc tính không khóa không phụ thuộc bắc cầu vào khóa nên Q2 đạt 3NF

 Q3 = (ABCDEF)

Phụ thuộc hàm:

F3 = {A → BCD, D → E, AB → F Khóa của Q3 là A

Q3 không có thuộc tính suy diễn và thuộc tính lặp nên đạt 1NF

Các thuộc tính không khóa là BCDE không phụ thuộc đầy đủ vào khóa nên Q2 chưa đạt 2NF

Trang 16

F4 = {A → BC, AB → D}

Q4 không có thuộc tính suy diễn và thuộc tính lặp nên đạt 1NF

Tính được Fc = {A → B, A → C, A → D} Khóa của Q4 là A

Q5 không có thuộc tính suy diễn và thuộc tính lặp nên đạt 1NF

Thuộc tính khóa là A và thuộc tính không khóa là BCDE phụ thuộc đầy đủ vào khóa nên Q5 đạt

Q5 không có thuộc tính suy diễn và thuộc tính lặp nên đạt 1NF

Thuộc tính khóa là A và thuộc tính không khóa là BCDEphụ thuộc đầy đủ vào khóa nên Q5 đạt

Q5 không có thuộc tính suy diễn và thuộc tính lặp nên đạt 1NF

Thuộc tính khóa là A và thuộc tính không khóa là BC phụ thuộc đầy đủ vào khóa nên Q5 đạt 2NF

Các thuộc tính không khóa không phụ thuộc bắc cầu vào khóa nên Q5 đạt 3NF

IV Câu lệnh truy vấn dữ liệu SQL

Trang 17

Ma_NV char (8) not null,

Ma_MN char (5) not null,

foreign key (Ma_NV) references NHANVIEN (Ma_NV),foreign key (Ma_MN) references MENU ( Ma_MN));

Tạo bảng HOADON

create table HOADON

Trang 18

Ma_HD char (5) not null primary key,

Ma_NV char (8) not null,

Ma_K char (8) not null,

foreign key (Ma_NV) references NHANVIEN (Ma_NV),foreign key (Ma_K) references KHACH (Ma_K)

Ma_NV char (8) not null,

foreign key (Ma_NV) references NHANVIEN (Ma_NV));

Ma_NV char (8) not null,

foreign key (Ma_NV) references NHANVIEN (Ma_NV));

4.2 Các câu hỏi truy vấn và ngôn ngữ SQL.

Trang 19

1 Đưa ra danh sách tất cả các nhân viên có họ bắt đầu là 'Vu’.

2 Đưa ra thông tin khách hàng đã ăn trong nhà hàng ngày 2/2/2017

3 Cho biết 3 nhân viên có lương thanh toán cao nhất

4 Cho biết thông tin Ma_K, Ten_K đã thanh toán tiền với tổng tiền cao nhất trong ngày

‘2/2/2017’

5 Đưa ra thông tin khách hàng có địa chỉ ở Hà Nội

6 Hiện thị thông tin nhân viên sinh năm 1997 làm chức vụ phục vụ

7 Cho biết nhân viên “NV1” đã nhập thực phẩm gì trong tháng 9/3/2017

8 Đưa ra thông tin các món ăn cuả mã menu 'M1'

9 Sắp xếp nhân viên theo thứ tự giảm dần của tiền lương T_Toan Nếu lương bằng nhau thìsắp xế theo thứ tự giảm dần về ma_nv

10 Cho biết họ tên, địa chỉ của khách hàng đã ăn trong ‘2/3/2017’

11 Tăng lương thêm 5000000 cho những nhân viên có chức vụ là 'Quản lý'

12 Liệt kê Ma_M, Ten_M với đơn giá 20000

1 Đưa ra danh sách tất cả các nhân viên có họ bắt đầu là 'Vu’

select *

from NHANVIEN

where Ten_NV like 'Vu%';

2 Đưa ra thông tin khách hàng đã ăn trong nhà hàng ngày 2/2/2017

select *

from KHACH, HOADON

where( (DAY(Ngay)=2) and (MONTH(Ngay)=2 )and (YEAR(Ngay)=2017)) and

Trang 20

4 Cho biết Ma_K, Ten_K đã thanh toán tiền với tổng tiền cao nhất trong ngày '2- 3-2017’select *

from KHACH

where Ma_K in ( select Max(T_Tien) from HoaD where Ngay= '2/3/2017');

5 Đưa ra thông tin khách hàng có địa chỉ ở HN

select *

from KHACH

where Dia_C like 'HN';

6.Hiện thị thông tin các nhân viên sinh năm 1997, làm chức vụ phục vụ

select Ma_NV, Ten_NV, Ngay_S

from NHANVIEN

where ChucVu like 'Phuc vu'and (YEAR(Ngay_S)=1997);

7 Cho biết nhân viên “NV1” đã nhập thực phẩm gì từ nhà cung cấp 'NC1' năm 2017select *

from THUCPHAM

where Ma_TP in (select Ma_NCC from NHANVIEN, NHACC where

NHANVIEN.Ma_NV=NHACC.Ma_NV and NHANVIEN.Ma_NV= 'NV1' and Ma_NCC

Trang 21

9 Sắp xếp nhân viên theo thứ tự giảm dần của tiền lương T_Toan Nếu lương bằng nhau thì sắp xế theo thứ tự giảm dần về ma_nv.

select *

from LUONG

order by T_Toan desc, Ma_NV asc;

10 Cho biết họ tên, địa chỉ của khách hàng ăn trong trong ngày '2/2/2017'

select Ten_K, Dia_C

from KHACH KH, HOADON HD

where HD.Ma_K=KH.Ma_K and HD.Ngay= '2/3/2017' ;

11 Tăng lương thêm 5000000 cho những nhân viên có chức vụ là 'Quản lý'

update LUONG

set T_Toan=T_Toan+5000000

where Ma_NV in (select ChucVu from NHANVIEN where ChucVu like'Quan Ly');

12 Liệt kê các mã món, Ten_M với đơn giá 20000

select Ma_M, Ten_M

from MENU

where Don_G =200000;

Trang 22

Sau khi hoàn thành bài tập lớn này, em đã thu được những kiến thức về môn học cơ sở dữ liệu cũng như áp dụng kiến thức đó vào phân tích các bài toán thực tế.

Bài tập đã làm được các nội dung sau đây:

Bài toán 1: Xác định được các mối liên kết và ràng buộc dữ liệu Xây dựng được mô hình thực thể liên kết ER Sau đó từ mô hình này thực hiển chuyển sang mô hình quan hệ

Bài toán 2: Từ mô hình quan hệ thu được từ bài toán 1 Tiến hành tìm các phụ thuộc hàm, tìm các khóa Sau đó chuẩn hóa mô hình về dang chuẩn 3NF hoặc BCNF

Bài toán 3: Từ các dữ liệu đã có Truy vấn cơ sở dữ liệu bằng ngôn ngữ SQL qua các câu lệnh

Từ đó kết luận được:

Cơ sở dữ liệu là một hệ thống các thống tin có cấu trúc, được lưu trữ trên các thiết bị nhằm thỏa mãn nhu cầu khai thác thông tin từ thực tiễn đồng thời của nhiều người sử dụng hay nhiều chương trình ứng dụng chạy cùng một lúc với những mục đích khác nhau Vì cậy để đảm bảo cơ

sở dữ liệu được chuẩn xác cần phải đi thực nghiệm thực thế các hệ thống quản lý tại nơi đó rồi

từ đó phân tích và thiết kế ra được cơ sở dữ liệu phù hợp Thực thể càng nhiều cơ sở dữ liệu càng được thể hiện hệ thống chặt chẽ Xác định các phụ thuộc hàm phải đảm bảm các yêu cầu

về dàng buộc dữ liệu để tránh bị vi phạm ràng buộc toàn vẹn trong thiết kế cơ dữ liệu

Việc sử dụng thông thạo các câu truy vấn SQL giúp cho việc truy vấn dữ liệu theo yêu cầu sẽ rất

dễ dàng

Kiến nghị:

Trên đây là những kết quả đầu tiên mà em học tập và làm dựa trên yêu cầu bài tập lớn môn Cơ

sở dữ liệu, nên còn nhiều sai sót mong cô chấp nhận bài làm của em Trong tương lai, từ mônhọc này kết hợp với môn học liên quan em sẽ phân tích rồi thiết kế được một số cơ sở dữ liệuhữu dụng cho thực tế Em xin chân thành cảm ơn cô giáo TS Trần Hồng Diệp đã tận tình hướngdẫn, giảng dạy em bộ môn Cơ Sở Dữ Liệu để hoàn thành được bài tập này

TÀI LIỆU THAM KHẢO

Trang 23

[1] TS.Trần Hồng Diệp , 2009 , Bài giảng, Nhập Môn Cơ sở dữ liệu, Bộ môn tin học , TrườngĐại học Lâm Nghiệp

[2] TS Đặng Thị Thu Hiền, 2017, Bài giảng, Cơ sở dữ liệu, Bộ môn Hệ thống thông tin,Trường Đại học Thủy Lợi

[3] GV Phạm Thị Hồng Nhung, 2007, Phần I, Phần II, Cơ sở dữ liệu, Bộ môn Công nghệ phầnmềm, Trường Đại học Thủy Lợi

[4] Marcilina S Garcia, Jamie Reding, Edward Whalen, Steve Adrien DeLuca, SQL Server

2000 Administrator’s Companion, Microsoft Press, 2000

Ngày đăng: 24/07/2022, 23:30

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w