Bài Tập Lớn Môn Cơ Sở Dữ liệu Đề Tài: Quản Lý Khách Hàng Cho Cửa Hàng Điện Thoại Bài tập lớn sử dụng SQL để thực hiện. . Đặc biệt là những mặt hàng công nghệ như điện thoại. Điều này khiến cho tốc độ và mật độ các doanh nghiệp, cửa hàng buôn bán điện thoại tăng lên nhanh chóng. Vì thế các các cửa hàng điện thoai khi được mở ra đòi hỏi phải có giải pháp hợp lý để quản lý một cách tốt nhất. Từ đó nhóm đã lựa chọn đề tài xây dựng cơ sở dữ liệu quản lý khách hàng cho cửa hàng điện thoại.
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI KHOA CÔNG NGHỆ THÔNG TIN -o0o - MÔN HỌC: CƠ SỞ DỮ LIỆU ĐỀ TÀI: QUẢN LÝ KHÁCH HÀNG CHO CỬA HÀNG ĐIỆN THOẠI Giảng viên hướng dẫn: TS Nguyễn Quốc Tuấn Nhóm thực hiện: Nhóm 02 – Lớp CNTT4 – K62 Danh sách sinh viên tham gia: STT Họ tên Đặng Qúy Hưng Bùi Đức Tài Anh Đào Chí Hiển Vũ Đỗ Thành Đạt Hà Nội, tháng năm 2023 Mã sinh viên 211201933 211213818 211211652 211213435 TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI KHOA CÔNG NGHỆ THÔNG TIN -o0o - MÔN HỌC: CƠ SỞ DỮ LIỆU ĐỀ TÀI: QUẢN LÝ KHÁCH HÀNG CHO CỬA HÀNG ĐIỆN THOẠI Giảng viên hướng dẫn: TS Nguyễn Quốc Tuấn Nhóm thực hiện: Nhóm 02 – Lớp CNTT4 – K62 Danh sách sinh viên tham gia: STT Họ tên Đặng Qúy Hưng Bùi Đức Tài Anh Đào Chí Hiển Vũ Đỗ Thành Đạt Hà Nội, tháng năm 2023 Mã sinh viên 211201933 211213818 211211652 211213435 LỜI MỞ ĐẦU Ngày với phát triển kinh tế nhanh chóng tồn giới Nhu cầu mua sắm người trở nên cao Đặc biệt mặt hàng công nghệ điện thoại Điều khiến cho tốc độ mật độ doanh nghiệp, cửa hàng bn bán điện thoại tăng lên nhanh chóng Vì các cửa hàng điện thoai mở địi hỏi phải có giải pháp hợp lý để quản lý cách tốt Từ nhóm lựa chọn đề tài xây dựng sở liệu quản lý khách hàng cho cửa hàng điện thoại Trên sở lý thuyết học lớp thông qua tìm hiểu phần mềm quản lý khách hàng Nhóm chúng em đưa Phân Tích hệ thống quản lý khách hàng cho cửa hàng điện thoại Nhóm thực chúng em xin trân thành cảm ơn giúp đỡ thầy Nguyễn Quốc Tuấn tận tình hướng dẫn giúp đỡ chúng em hồn thành tập Chúng em xin chân thành cảm ơn! MỤC LỤC LỜI MỞ ĐẦU .3 MỤC LỤC 4 Giới thiệu đề tài Chức Phạm vi .6 Xác định mơ hình thực thể liên kết 2.1 Các kiểu thực thể .6 2.2 Mơ hình ER Chuyển đổi từ mơ hình thực thể liên kết sang mơ hình quan hệ 3.1 Cách chuyển đổi .8 3.2 Chuyển đổi kiểu thực thể, mối liên kết 3.3 Lược đồ CSDL quan hệ 10 Xác định ràng buộc toàn vẹn 10 4.1 RBTV miền giá trị 10 4.2 RBTV liên 10 4.3 RBTV tham chiếu 11 4.4 RBTV liên thuộc tính, liên quan hệ .11 4.5 RBTV thuộc tính tổng hợp 11 4.6 Bảng tầm ảnh hưởng tổng hợp .12 Truy vấn SQL 12 5.1 5.1.1 Bảng khách hàng 12 5.1.2 Bảng nhân viên 12 5.1.3 Bảng hóa đơn 12 5.1.4 Bảng điện thoại .13 5.1.5 Bảng thông số kĩ thuật 13 5.1.6 Bảng chi tiết hóa đơn 13 5.2 Cấu trúc chi tiết bảng .12 Truy vấn SQL 13 Giải trình góp ý .19 Kết luận .20 Tài liệu tham khảo .20 Giới thiệu đề tài Chức - Cung cấp cho khách hàng dịnh vụ tốt Nâng cao hiệu trung tâm hỗ trợ khách hàng Trợ giúp nhân viên bán hàng thực đơn hàng cách nhanh Đơn giản hố tiến trình tiếp thị bán hàng Phát khách hàng Tǎng doanh thu từ khách hàng Phạm vi 2.1 Cửa hàng điện thoại có quy mơ trung bình lớn Xác định mơ hình thực thể liên kết Các kiểu thực thể - Tên thực thể: Khách hàng, Hóa đơn, Điện thoại, Nhân viên, Thơng số kỹ thuật - Các thuộc tính Khách hàng: Mã khách hàng, tên, ngày sinh, giới tính, địa Hóa đơn: Mã hóa đơn, ngày lập, tổng tiền, hình thức toán Điện thoại: Mã điện thoại, tên, số lượng tồn, bảo hành, năm sản xuất, hãng sản xuất Nhân viên: Mã nhân viên, tên, ngày sinh, giới tính, chức vụ Thơng số kỹ thuật: Màu sắc, nhớ, độ phân giải, CPU, hệ điều hành, camera, trọng lượng, kích thước - Các thuộc tính khóa Các thuộc tính khóa gồm có: Mã khách hàng, mã nhân viên, mã hóa đơn mã điện thoại 2.2 Mơ hình ER Hình Sơ đồ thực thể liên kết Chuyển đổi từ mơ hình thực thể liên kết sang mơ hình quan hệ 3.1 Cách chuyển đổi - - 3.2 Các thực thể => Các bảng + Thực thể:NHANVIEN=>BẢNG NHANVIEN + Thực thể:HOADON=>BẢNG HOADON + Thực thể:KHACHHANG=>BẢNG KHACHHANG + Thực thể:DIENTHOAI=>BẢNG DIENTHOAI + Thực thể:THONGSOKYTHUAT=>BẢNG THONGSOKYTHUAT Các thuộc tính thực thể => Các thuộc tính/ cột bảng Các loại liên kết + Nếu liên kết 1-1: Khóa bảng bên trở thành thuộc tính kết nối (khóa ngoại) bảng bên + Nếu 1-n: Khóa bảng bên trở thành thuộc tính kết nối (khóa ngoại) bảng bên nhiều + Nếu n – n: Thì phải thêm bảng Trung gian, bảng trung gian chứa thuộc tính khóa hai bảng hai thuộc tính khóa khóa cho bảng trung gian, ngồi bảng trung gian thêm số thuộc tính khác mối liên kết Chuyển đổi kiểu thực thể, mối liên kết - Liên kết 1- n : liên kết nhân viên hóa đơn - Liên kết 1- n: Liên kết khách hàng vs hóa đơn - Liên kết n- n : liên kết hóa đơn điện thoại - Liên kết 1- : liên kết điện thoại thông số kỹ thuật 3.3 Lược đồ CSDL quan hệ Xác định ràng buộc toàn vẹn 4.1 RBTV miền giá trị RB-1 - Số lượng điện thoại phải số không âm - Bối Cảnh: DIENTHOAI - ∀ tϵDIENTHOAIϵDIENTHOAIDIENTHOAI (tϵDIENTHOAI SoLuong ≥ 0) RB-1 Thêm Xóa Sửa DIENTHOAI + - + 4.2 RBTV liên RB-2 - Mã khách hàng - Bối Cảnh: KHACHHANG - ∀ tϵDIENTHOAI 1, tϵDIENTHOAI ϵDIENTHOAIKHACHHANG(tϵDIENTHOAI 1≠ tϵDIENTHOAI 2=¿tϵDIENTHOAI MaK ≠ tϵDIENTHOAI Mak) RB-2 Thêm Xóa Sửa KHACHHANG +(MaKH) - +(MaKH) 4.3 - RBTV tham chiếu RB-3 Mỗi hóa đơn phải có nhân viên lập Bối Cảnh: HOADON, NHANVIEN ∀ tϵDIENTHOAIϵDIENTHOAIHOADON (∃ vϵNHANVIENϵDIENTHOAINHANVIEN ( tϵDIENTHOAI MaNhanVien=vϵNHANVIEN MaNhanVien ) ) RB-3 Thêm Xóa Sửa HOADON +(MaNV) - + NHANVIEN - + + 4.4 RBTV liên thuộc tính, liên quan hệ RB-4 - Ngày sinh khách hàng phải trước ngày lập hóa đơn - Bối Cảnh: KHACHHANG, HOADON - ∀ tϵDIENTHOAIϵDIENTHOAIHOADON ¿ RB-5 Thêm Xóa Sửa HOADON + - +(MaK, NgayLap) KHACHHANG - - +(NgaySinh, MaK) 4.5 RBTV thuộc tính tổng hợp RB-5 10 - Tổng tiền hóa đơn phải tổng trị giá chi tiết hóa đơn Bối Cảnh: HOADON, CHITIET ∀ tϵDIENTHOAIϵDIENTHOAIHOADON ¿ ) RB-5 Thêm Xóa Sửa HOADON +(TongTien) - +(TongTien) CHITIET + + +(SoLuongBan, Dongia) 4.6 Bảng tầm ảnh hưởng tổng hợp RB-1 T X S NHANVIEN KHACHHANG HOADON DIENTHOAI CHITIET RB-2 T X S + - RB-3 T X S - + + + + + - - + RB-4 T X S RB-5 T X S + + + + - + + + + - + Truy vấn SQL 5.1 Cấu trúc chi tiết bảng 5.1.1 Bảng khách hàng Tên trường Kiểu Độ rộng Khoá Null MAKHACHHANG NvarChar 10 PK No HOTEN Nvarchar 20 GIOITINH Nvarchar 10 NGAYSINH Datetime DIACHI NVarchar 50 SODIENTHOAI Nvarchar 15 Ghi No 5.1.2 Bảng nhân viên Tên trường Kiểu Độ rộng Khoá 11 Null Ghi MANHANVIEN NvarChar 10 HOTEN Nvarchar 20 GIOITINH Nvarchar 10 NGAYSINH Datetime CHUCVU Nvarchar PK No No 20 5.1.3 Bảng hóa đơn Tên trường Kiểu Độ rộng Khố Null MAHOADON NvarChar 10 PK No MANHANVIEN Nvarchar 10 FK No MAKHACHHANG Nvarchar 10 FK No NGAYLAP Datetime TONGTIEN INT HINHTHUCTHANHTOAN Nvarchar Ghi 20 5.1.4 Bảng điện thoại Tên trường Kiểu Độ rộng Khoá Null MADIENTHOAI NvarChar 10 PK No TENDIENTHOAI Nvarchar 10 INT 10 BAOHANH NAMSANXUAT DateTime HANGSANXUAT Nvarchar 10 SOLUONGTON Ghi INT 5.1.5 Bảng thông số kĩ thuật Tên trường Kiểu Độ rộng Khoá Null MADIENTHOAI NvarChar 10 PK/FK No TRONGLUONG Float MAUSAC Nvarchar 50 12 Ghi KICHTHUOC Nvarchar CAMERA 50 INT HEDIEUHANH Nvarchar 50 DOPHANGIAI Nvarchar CPU Nvarchar 50 BONHO Nvarchar 50 5.1.6 Bảng chi tiết hóa đơn Tên trường Kiểu Độ rộng Khố Null No MAHOADON Nvarchar 10 PK/FK MADIENTHOAI Nvarchar 10 PK/FK DONGIA Decimal SOLUONGBAN 5.2 Ghi INT Truy vấn SQL Câu 1: Đưa tên khách hàng có địa Hồ Chí Minh q1 ← σ_Diachi = 'Ho Chi Minh '(KHACHHANG); qDiachi = 'Ho Chi Minh '(KHACHHANG); q←π_Diachi = 'Ho Chi Minh '(KHACHHANG); qTenKH(q1) Câu 2: Đưa họ tên nhân viên có chức vụ quản lý π_Diachi = 'Ho Chi Minh '(KHACHHANG); qHoten(σ_Diachi = 'Ho Chi Minh '(KHACHHANG); qChucVu = “QuanLy”(NHANVIEN)) 13 Câu 3: Đưa tên điện thoại số lượng có cửa hàng π_Diachi = 'Ho Chi Minh '(KHACHHANG); qTenDT, SoluongTon(DIENTHOAI) Câu 4: Đưa mã điện thoại chưa bán π_Diachi = 'Ho Chi Minh '(KHACHHANG); qMaDT(DIENTHOAI) – (π_Diachi = 'Ho Chi Minh '(KHACHHANG); qMaDT(CHITIET)) Câu 5: Đưa thông tin khách hàng tốn hình thức chuyển khoản q1 ← π_Diachi = 'Ho Chi Minh '(KHACHHANG); qMaKH (σ_Diachi = 'Ho Chi Minh '(KHACHHANG); qHinhThucThanhToan= 'ChuyenKhoan'(HOADON)) q← π_Diachi = 'Ho Chi Minh '(KHACHHANG); qMaKH, HoTen, GioiTinh, Ngaysinh, DiaChi, SDT (q1*KHACHHANG) 14 Câu 6: Đưa tên khách hàng Hà Nội mua hàng ngày 26/3/2023 q1 ← σ_Diachi = 'Ho Chi Minh '(KHACHHANG); qDiachi = 'HaNoi'(KHACHHANG) q2 ← π_Diachi = 'Ho Chi Minh '(KHACHHANG); qMaKH(σ_Diachi = 'Ho Chi Minh '(KHACHHANG); qngayLap = '1/1/2022 '(HOADON)) q← π_Diachi = 'Ho Chi Minh '(KHACHHANG); qMaKH, TenK (q1*q2) Câu 7: Đưa mã khách hàng chưa mua hàng từ ngày 8/3/2023 q1 ← σ_Diachi = 'Ho Chi Minh '(KHACHHANG); qNgaylap ≥ “8/3/2023”(HOADON); q2 ← π_Diachi = 'Ho Chi Minh '(KHACHHANG); qMaKH (q1); q3 ← π_Diachi = 'Ho Chi Minh '(KHACHHANG); qMaKH (KHACHHANG); q ← q3 – q2 Câu 8: Đưa mã khách hàng mua điện thoại Iphone 14 prm với số lượng lớn q1 ← π_Diachi = 'Ho Chi Minh '(KHACHHANG); qMaDT(σ_Diachi = 'Ho Chi Minh '(KHACHHANG); qtenDT = 'Iphone 14 prm '(DIENTHOAI)) q2 ← π_Diachi = 'Ho Chi Minh '(KHACHHANG); qMaHD (σ_Diachi = 'Ho Chi Minh '(KHACHHANG); qSoluongBan > (CHITIET *q1)) 15 q ← π_Diachi = 'Ho Chi Minh '(KHACHHANG); qMaKH(HOADON * q2) Câu 9: Đưa danh sách điện thoại số lượng bán ρTKDT (MaDT ,TenDT , SLban) ¿ (CHITIET ∗DIENTHOAI ) Câu 10: Đưa tên điện thoại bán có đơn giá cao Dmax ← F MAX ( DonGia ) (CHITIET ) q1 ← π_Diachi = 'Ho Chi Minh '(KHACHHANG); qMaDT(σ_Diachi = 'Ho Chi Minh '(KHACHHANG); qDonGia = Dmax(CHITIET)); q ← π_Diachi = 'Ho Chi Minh '(KHACHHANG); qTenDT(q1*DIENTHOAI) Câu 11: Đưa mã, tên khách hàng tốn hóa đơn có tổng tiền cao q1 ← ρ ( MaHD , TongTien ) F ¿ ∑ ( SoluongBan∗Dongia ) ( CHITIET ) 16 Tmax ← F_Diachi = 'Ho Chi Minh '(KHACHHANG); qMAX(TongTien)(q1) q ←π_Diachi = 'Ho Chi Minh '(KHACHHANG); qMaKH(σ_Diachi = 'Ho Chi Minh '(KHACHHANG); qTongTien = Tmax(HOADON*q1)); π_Diachi = 'Ho Chi Minh '(KHACHHANG); qMaKH, TenKH(q*KHACHHANG) Câu 12: Đưa họ tên, địa khách hàng mua điện thoại có bảo hành tháng q1 ← π_Diachi = 'Ho Chi Minh '(KHACHHANG); qMaDT(σ_Diachi = 'Ho Chi Minh '(KHACHHANG); qBaoHanh > thang(DIENTHOAI)) q2 ← π_Diachi = 'Ho Chi Minh '(KHACHHANG); qMaHD(q1 * CHITIET) q3← π_Diachi = 'Ho Chi Minh '(KHACHHANG); qMaKH(q2 * HOADON) q ←π_Diachi = 'Ho Chi Minh '(KHACHHANG); qMaKH, Hoten, Diachi (q3 * KHACHHANG) Câu 13: Tính tổng doanh thu tháng 3/2023 q1 ← (σ_Diachi = 'Ho Chi Minh '(KHACHHANG); qNgaylap ≥“1/3/2023” ∧ σ Ngaylap ≤31/3/2023 (HOADON)) q2 ← ρ ( MaHD , TongTien ) F ¿ ∑ ( SlBan∗Dongia ) ( CHITIET∗q ) ρ( doanhThuThang) ← F ∑ (TongTien) (q 2) 17 Câu 14: Đưa tên điện thoại có số lượng bán nhiều q1 ← ρ( MaDT , TSLB) MaDT_Diachi = 'Ho Chi Minh '(KHACHHANG); qF_Diachi = 'Ho Chi Minh '(KHACHHANG); qSUM(SoluongBan)(CHITIET) Smax ← F_MAX(TSLB)(q1); q2 ← σ_Diachi = 'Ho Chi Minh '(KHACHHANG); qTSLB = Smax(q1) q← TenDT, TSLB (q2 * DIENTHOAI) Câu 15: Đưa danh sách khách hàng mua sản phẩm hãng sản xuất "Apple" từ năm 2020 đến nay, số lượng sản phẩm khách hàng mua q1← π MaDT (σ HangSX =' Apple ' ( DIENTHOAI )) q2 ← ρ( MaHD ,TSLB)MaHD ¿F_Diachi = 'Ho Chi Minh '(KHACHHANG); qCOUNT(MaDT)(CHITIETHOADON*q1) q3← π M aHD ( σ N gayLap≥ / / 2020 ( HOADON∗q ) ) q3← π MaKH ,TenKH,TSLB(q3*KHACHHANG) 18 Giải trình góp ý - Góp ý giảng viên: + Xóa thuộc tính tuổi thực thể Nhân viên thực thể Khách hàng + Sửa đổi mối liên kết thực thể Điện thoại thực thể Hóa đơn từ – N sang N – N 19 Kết luận Trong báo cáo này, xây dựng thành công sở liệu để quản lý khách hàng cho cửa hàng điện thoại Cơ sở liệu bao gồm thông tin khách hàng giúp cho việc quản lý truy xuất thông tin khách hàng trở nên thuận tiện hiệu Chúng ta thiết kế sở liệu với bảng tương ứng cho loại thông tin áp dụng ràng buộc để đảm bảo tính quán độ tin cậy liệu Đánh giá độ hiệu sở liệu ứng dụng liên quan, nhận thấy sở liệu ứng dụng giúp cho việc quản lý khách hàng cửa hàng điện thoại trở nên hiệu tiết kiệm thời gian Tuy nhiên, số hạn chế cần giải để nâng cao tính ổn định chất lượng hệ thống Tài liệu tham khảo Slide giáo trình sở liệu https://viettuts.vn/sql 20