Mô hình thực thể kết hợp cho phép nhà thiết kế biểu diễnthông tin của thế giới thực về các khái niệm gần gũi vớichuyên ngành công nghệ thông tin.. Thực thể: Một thực thể là một đối
Trang 1TRƯỜNG ĐẠI HỌC NGOẠI NGỮ - TIN HỌC THÀNH PHỒ HỒ CHÍ
MINH KHOA CÔNG NGHỆ THÔNG TIN
□&□
BÀI BÁO CÁO KẾT THÚC HỌC PHẦN HỌC KỲ III
NĂM HỌC 2023-2024 Học phần: CƠ SỞ DỮ LIỆU NÂNG CAO
QUẢN LÝ WEBSITE QUẢN LÝ QUÁN CÀ
PHÊ
GV hướng dẫn: Phạm Đức Thành
Sinh viên thực hiện:
Nguyễn Trọng Hiếu– 22DH111076Phạm Quốc Tâm – 22DH113236
22DH110870
Lớp:PM2214
Thành phố Hồ Chí Minh, tháng 7/2024
Trang 2Mục Lục
DANH MỤC HÌNH VÀ BẢNG 4
CHƯƠNG 1: MÔ TẢ ĐỀ TÀI 6
1.1 Giới thiệu 6
1.1.1 Mở đầu 6
1.1.2 Lý do 6
1.1.3 Nghiệp vụ doanh nghiệp 7
1.2 K HẢO SÁT HIỆN TRẠNG 9
1.2.1 Highlands Coffee 9
1.2.2 Phúc Long Coffee 12
1.2.3 KATINAT Coffee & Tea House 15
1.2.4 Cơ cấu tổ chức 17
1.3 Y ÊU CẦU LƯU TRỮ : T RÌNH BÀY CỤ THỂ CÁC THÔNG TIN CẦN LƯU TRỮ CỦA ĐỀ TÀI 18
Bảng 1: Nhân Viên 18
Bảng 2: Sản Phẩm 19
Bảng 3: Kho 20
Bảng 4: Hóa Đơn 20
Bảng 5: Nhà Cung Cấp 21
Bảng 6: Khách Hàng 21
Bảng 7: Chi Tiết Hóa Đơn 22
Bảng 8: Tài khoản 22
Bảng 9: Shipper 23
Bảng 10: Loại sản phẩm 23
Bảng 11: Khuyến mãi 23
Bảng 12: Đánh giá 24
Bảng 13: Lịch làm việc 24
1.4 Y ÊU CẦU TÌM KIẾM : T RÌNH BÀY CỤ THỂ CÁC THAO TÁC TÌM KIẾM CẦN CÓ TRONG ĐỀ TÀI BAO GỒM CÁC
TỪ KHÓA CẦN TÌM VÀ KẾT QUẢ CẦN THỂ HIỆN 25
1.5 C ÁC CÔNG THỨC TÍNH TOÁN CHO CÁC XỬ LÝ 26
1.5.1 Tính toán giá vốn hàng hóa (COGS): 26
1.5.2 Tính toán giá bán: 26
1.5.3 Tính toán lợi nhuận gộp: 26
1.5.4 Tính toán điểm hòa vốn: 26
1.6 Y ÊU CẦU VỀ CÁC BIỂU ĐỒ ĐỒ / THỊ CÁC , BÁO CÁO THEO THÁNG QUÝ , HAY NĂM V , V … CẦN THỰC HIỆN 27
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 28
2.1 M Ô HÌNH ERD 28
2.2 P HỤ THUỘC HÀM 31
2.3 C ÁC DẠNG CHUẨN 32
2.4 B ẢO TOÀN THÔNG TIN 33
2.5 L ẬP TRÌNH CSDL 34
2.5.1 Giới thiệu 34
2.5.2 Biến cục bộ 34
Trang 32.5.3 Biến hệ thống 35
2.5.4 Cấu trúc điều khiển 36
2.5.5 Cấu trúc lặp 36
2.6 R ÀNG BUỘC TOÀN VẸN 40
2.6.1 Ràng buộc cấu trúc 40
2.6.2 Ràng buộc xử lý 41
2.6.3 Ràng buộc phụ thuộc 41
2.7 N SQL N O VÀ EW SQL 41
2.7.1 NoSQL 41
2.7.2 NewSQL 43
CHƯƠNG 3: ÁP DỤNG THỰC NGHIỆM 44
3.1 M Ô TẢ YÊU CẦU BÀI TOÁN 44
3.2 P HÂN TÍCH YÊU CẦU : 45
3.2.1 Chức năng 45
3.2.2 Phi chức năng 46
3.3 T HIẾT KẾ : 47
3.3.1 ERD 47
3.4 M Ô TẢ CÁC THỰC THỂ 48
3.5 P HỤ THUỘC HÀM VÀ PHÂN TÍCH CHUẨN CỦA LƯỢC ĐỒ QUAN HỆ 53
3.5.1 NHACUNGCAP 53
3.5.2 KHACHHANG 54
3.5.3 SHIPPER 54
3.5.4 HOADON 54
3.5.5 SANPHAM 55
3.5.6 CHITIET_HOADON 55
3.5.7 NHANVIEN 55
3.5.8 LICHLAMVIEC 56
3.5.9 DANHGIA 56
3.5.10 LOAISANPHAM 56
3.5.11 KHO 56
3.5.12 KHUYẾN MÃI 56
3.5.13 TÀI KHOẢN 57
3.6 C ÀI ĐẶT 57
3.6.1 Tạo cơ sở dữ liệu 57
3.6.2 Nhập dữ liệu mẫu 59
3.6.3 Cài đặt ràng buộc toàn vẹn 64
3.6.4 Cài đặt các store procedure 70
CHƯƠNG 4: KẾT LUẬN 75
4.1 K ẾT QUẢ ĐẠT ĐƯỢC : 75
4.2 K ẾT QUẢ CHƯA ĐẠT ĐƯỢC : 75
4.3 T ÀI LIỆU THAM KHẢO : 75
Trang 4DANH MỤC HÌNH VÀ BẢNG.
DANH MỤC HÌNH
CHƯƠNG 1: MÔ TẢ ĐỀ TÀI
Hình 1 1 Quy trình nghiệp vụ đặt hàng 6
Hình 1 2 Quy trình nghiệp vụ nhân khiếu nại 6
Hình 1 3 Quy trình nghiệp vụ báo cáo doanh thu 7
Hình 1 4 Quy trình nghiệp vụ đặt hàng 7
Hình 1 5 Xem thực đơn 8
Hình 1 6 Đặt món 9
Hình 1 7 Tìm kiếm chi nhánh 10
Hình 1 8 Xem thực đơn 11
Hình 1 9 Đặt món 12
Hình 1 10 Tìm kiếm chi nhánh 13
Hình 1 11 Xem thực đơn 14
Hình 1 12 Giới thiệu thương hiệu 15
Hình 1 13 Tìm kiếm chi nhánh 16
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Hình 2 1 Ví dụ thực thể 27
Hình 2 2 Thuộc tính 28
Hình 2 3 các thuộc tính khóa được ký hiệu bằng gạch chân 28
Hình 2 4 thuộc tính đơn trị 28
Hình 2 5 thuộc tính đa trị 28
Hình 2 6 thuộc tính suy diễn 29
Hình 2 7 thuộc tính kết hợp 29
Hình 2 8 mối kết hợp 1 - 1 29
Hình 2 9 mối kết hợp 1 -N 30
Hình 2 10 mối kết hợp N - 1 30
Hình 2 11 mối kết hợp N - N 30
Hình 2 12 ví dụ bảo toàn thông tin 32
Hình 2 13 ví dụ giá trị là một o hoặc dữ liệu tổng hợp 34
Hình 2 14 ví dụ bảng tạm trong thủ tục 38
Hình 2 15 ví dụ column family 41
CHƯƠNG 3: ÁP DỤNG THỰC NGHIỆM Hình 3 1 ERD 46
Hình 3 2 Relationship 46
CHƯƠNG 4: ÁP DỤNG THỰC NGHIỆM
Trang 5DANH MỤC BẢNG
CHƯƠNG 1: MÔ TẢ ĐỀ TÀI
Bảng 1 1 Nhân viên 18
Bảng 1 2 Sản phẩm 19
Bảng 1 3 Kho 20
Bảng 1 4 Hóa đơn 20
Bảng 1 5 Nhà cung cấp 21
Bảng 1 6 Khách hàng 21
Bảng 1 7 Chi tiết hóa đơn 22
Bảng 1 8 Tài khoản 22
Bảng 1 9 Shipper 23
Bảng 1 10 Loại sản phẩm 23
Bảng 1 11 Khuyến mãi 23
Bảng 1 12 Đánh giá 24
Bảng 1 13 Lịch làm việc 24
Bảng 1 14 Yêu cầu tìm kiếm 25
Bảng 1 15 Hóa đơn thanh toán 27
Bảng 1 16 Hóa đơn nhập kho 27
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT CHƯƠNG 3: ÁP DỤNG THỰC NGHIỆM Bảng 3 1 Chức năng 45
Bảng 3 2 Nhân viên 48
Bảng 3 3 Sản phẩm 48
Bảng 3 4 Kho 49
Bảng 3 5 Khách hàng 50
Bảng 3 6 Hóa đơn 50
Bảng 3 7 Nhà cung cấp 51
Bảng 3 8 Chi tiết hóa đơn 51
Bảng 3 9 Tài khoản 51
Bảng 3 10 Shipper 52
Bảng 3 11 Loại sản phẩm 52
Bảng 3 12 Khuyến mãi 52
Bảng 3 13 Đánh giá 53
Bảng 3 14 Lịch làm việc 53
CHƯƠNG 4: ÁP DỤNG THỰC NGHIỆM Bảng 4 1 Phân chia công việc 75
Trang 6CHƯƠNG 1: MÔ TẢ ĐỀ TÀI
1.6 Yêu cầu về các biểu đồ/ đồ thị, các báo cáo theo tháng, quý hay năm, v.v… cần thực hiện.
Bảng 1 1 Hóa đơn thanh toán
HÓA ĐƠN THANH TOÁNt
Mã hóa đơn :ttNgày mua hàng :……… t
Bảng 1 2 Hóa đơn nhập kho
HÓA ĐƠN NHẬP KHOt
Trang 71.1 Giới thiệu
Website quản lý quán cà phê là một giải pháp phần mềm toàndiện dành cho các chủ quán cà phê, giúp họ quản lý hiệu quả mọi hoạtđộng kinh doanh của mình Hệ thống được tích hợp nhiều tính năngthông minh, tự động hóa các quy trình thủ công, tiết kiệm thời gian vànhân công cho chủ quán Nhờ vậy, chủ quán có thể tập trung vàonhững khía cạnh quan trọng khác như phát triển thương hiệu,marketing, v.v
1.1.1Mở đầu
Ngành cà phê Việt Nam đang trên đà phát triển mạnh mẽ với sựxuất hiện ngày càng nhiều quán cà phê Để cạnh tranh trong thị trườngsôi động này, việc quản lý quán cà phê hiệu quả đóng vai trò vô cùngquan trọng Website quản lý quán cà phê là một công cụ hỗ trợ đắc lựccho các chủ quán trong việc tối ưu hóa hoạt động kinh doanh, nângcao chất lượng dịch vụ và gia tăng lợi nhuận
1.1.2 Lý do
Website quản lý quán cà phê mang đến nhiều lợi ích thiết thựccho các chủ quán, giúp họ tối ưu hóa hoạt động kinh doanh và gia tănglợi nhuận Nhờ khả năng tự động hóa nhiều quy trình thủ công, websitegiúp tiết kiệm thời gian và nhân lực, đồng thời giảm thiểu sai sót vànâng cao hiệu quả quản lý
Ngoài ra, website còn cung cấp nhiều tính năng hữu ích hỗ trợbán hàng, thu hút khách hàng và nâng cao chất lượng dịch vụ Nhờvậy, quán cà phê có thể thu hút nhiều khách hàng hơn, tăng doanh thubán hàng và cải thiện lợi nhuận
Trang 81.1.3 Nghiệp vụ doanh nghiệp
a) Quy trình nghiệp vụ đặt hàng
Hình 1 1 Quy trình nghiệp vụ đặt hàng
b) Quy trình nghiệp vụ nhân khiếu nại
Hình 1 2 Quy trình nghiệp vụ nhân khiếu nại
Trang 9c) Quy trình nghiệp vụ báo cáo doanh thu
Hình 1 3 Quy trình nghiệp vụ báo cáo doanh thu
d) Quy trình nghiệp vụ đặt hàng
Hình 1 4 Quy trình nghiệp vụ đặt hàng
Trang 11b) Giao diện đặt món
Hình 1 6 Đặt món
Thông tin lưu trữ:
Hình ảnh thức uống hay món ăn đã chọn
Cung cấp thông tin về sản phẩm như : tên, giá tiền, hìnhảnh sản phẩm, mô tả sản phẩm, khích thước
Trang 12c) Giao diện tìm kiếm chi nhánh,
Hình 1 7 Tìm kiếm chi nhánh
Thông tin lưu trữ:
Hình ảnh các chi nhánh của Highlangs trên bản đồ
Cung cấp thông tin về chi nhánh như : Tên chi nhánh , địachỉ , số điện thoại , khung giờ hoạt động
Trang 14b) Giao diện đặt món
Hình 1 9 Đặt món
Thông tin lưu trữ:
Hình ảnh thức uống hay món ăn đã chọn
Cung cấp thông tin về sản phẩm như : tên , giá tiền , hìnhảnh sản phẩm ,mô tả sản phẩm , size sản phẩm
Trang 15c) Giao diện tìm kiếm chi nhánh
Hình 1 10 Tìm kiếm chi nhánh
Thông tin lưu trữ:
Cung cấp thông tin về chi nhánh như : Tên chi nhánh , địachỉ , số điện thoại , khung giờ hoạt động
Trang 161.2.3 KATINAT Coffee & Tea House
a) Giao diện xem thực đơn
Có nhiều sự lựa chọn sản phẩm cho khách hàng
Hỗ trợ trả lời các thắc mắt của khách hàng qua mạng xãhội Zalo
Ngôn ngữ tiếng việt và tiếng anh để có thể tiếp cận vớikhách hàng nước ngoài
Trang 17b) Giao diện giới thiệu thương hiệu
Hình 1 12 Giới thiệu thương hiệu
Thông tin lưu trữ:
Hiển thị thành tựu , giới thiệu về thương hiệu
Cung cấp thông tin về các cửa hàng , cà phê
Trang 181.2.4 Cơ cấu tổ chức
c) Giao diện tìm kiếm chi nhánh
Hình 1 13 Tìm kiếm chi nhánh
Thông tin lưu trữ:
Hình ảnh các chi nhánh của KATINAT trên bản đồ
Cung cấp thông tin về chi nhánh như : Tên chi nhánh , địachỉ , số điện thoại , khung giờ hoạt động
Chức năng:
Ban giám đốcPhòng kinh
doanh
Trưởng phòng kinh doanhQuản lý kinh doanh
Nhân viên bán hàng
Phòng kế toánTrưởng phòng kế toánQuản lý kế toán
Nhân viên
kế toán
Kho
Thủ kho
Trang 19 Hiển thị hình ảnh các chi nhánh của KATINAT trên bản đồ
2 Tên nhân viên Nvarchar(
50)
Nhập từ bàn phím
(3)
Nhập từ bàn phím
Trang 20(100) phím
phím
Lương nhân viên không được âm
8 Số giờ làm việc Int Nhập từ bàn
phím
Số giờ không được âm
20)
Nhập từ bàn phím
2 Tên sản phẩm Nvarchar(5
0)
Nhập từ bànphím
NOTNULL
phím
Giá sản phẩm không được
âm, NOT NULL
Trang 212 Tên hàng hóa Nvarchar(5
0)
Nhập từ bàn phím
NOTNULL
phím
Số lượng nhập phải trên10,
Trang 224 Ghi chú Nvarchar(5
0)
Nhập từ bànphím
5 Trạng thái đơn
hàng
Nvarchar(50)
Khóa chính,NOT NULL
2 Tên nhà cung
cấp
Nvarchar(30)
Nhập từbàn phím
NOTNULL
00)
Nhập từbàn phím
4 Số điện thoại Char(11) Nhập từ
bàn phím
Số điện thoạiphải đủ 10 chữ số
1.3.6 Khách Hàng
Trang 23Nhập từ bàn phím
NOTNULL
(100)
Nhập từ bàn phím
3)
Nhập từ bàn phím
5 Số điện thoại
khách hàng
Char(11) Nhập từ bàn
phím1.3.7 Chi Tiết Hóa Đơn
Bảng 1 9 Chi tiết hóa đơn
Bảng 1 10 Tài khoản
Trang 24T nhập
1 Tên đăng nhập Varchar(10
0)
Nhập từ bàn phím
Khóa chính, Not Null
)
Nhập từ bàn phím
Nhập từ bàn phím
3 Mã nhà cung cấp Char(4) Nhập từ bàn
phím
Khóa phụ
Trang 26phím1.3.13 Lịch làm việc
Trang 271.4 Yêu cầu tìm kiếm: Trình bày cụ thể các thao tác tìm kiếm cần có trong đề tài bao gồm các từ khóa cần tìm và kết quả cần thể hiện.
Bảng 1 16 Yêu cầu tìm kiếm
ST
T
1 Tìm kiếm thông tin
2 Tìm kiếm sản phẩm
theo tên
Tên sản phẩm Danh sách sản
phẩm theo từ khóa
5 Tìm kiếm thông tin
nhân viên theo tên
Tên nhân viên Danh sách
thông tin nhân viên theo tên
6 Tìm kiếm thông tin
8 Tìm kiếm thông tin Chức vụ nhân viên Danh sách
Trang 28nhân viên theo chức
10 Tìm kiếm thông tin
hóa đơn theo mã hóa
đơn
Mã hóa đơn Thông tin hóa
đơn của mã hóa đơn
11 Tìm kiếm thông tin
nhân viên theo mã
nhân viên
Mã nhân viên Thông tin nhân
viên của mã nhân viên
1.5 Các công thức tính toán cho các xử lý.
1.5.1 Tính toán giá vốn hàng hóa (COGS):
- COGS cho một sản phẩm:
COGS = Giá nhập hàng hóa + Chi phí vận chuyển
- COGS cho toàn bộ sản phẩm:
COGS tổng = Σ COGS (cho từng sản phẩm)
1.5.2 Tính toán giá bán:
- Giá bán cơ bản:
Giá bán cơ bản = COGS + Lợi nhuận mong muốn
- Giá bán sau chiết khấu:
Giá bán sau chiết khấu = Giá bán cơ bản - Chiết khấu1.5.3 Tính toán lợi nhuận gộp:
- Lợi nhuận gộp cho một sản phẩm:
Lợi nhuận gộp = Doanh thu bán sản phẩm - COGS
- Lợi nhuận gộp tổng:
Trang 29 Lợi nhuận gộp tổng = Σ Lợi nhuận gộp (cho từng sản phẩm)1.5.4 Tính toán điểm hòa vốn:
- Điểm hòa vốn:
Điểm hòa vốn = Chi phí cố định / Tỷ suất lợi nhuận gộp (%)
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Mô hình ERD.
Mô hình thực thể kết hợp:
Mô hình thực thể kết hợp (Entity Relationship), ký hiệu là E/R
Được dùng để thiết kế CSDL ở mức quan niệm
Biểu diễn trừu tượng cấu trúc của CSDL
Mô hình thực thể kết hợp cho phép nhà thiết kế biểu diễnthông tin của thế giới thực về các khái niệm gần gũi vớichuyên ngành công nghệ thông tin
Thực thể:
Một thực thể là một đối tượng của thế giới thực
Tập hợp các thực thể có tính chất giống nhau tạo thành 1 tậpthực thể
Ký hiệu : Hình chữ nhật, bên trong có đặt tên của tập thực thể
Ví dụ:
Trang 30 Khóa là một tập ít nhất các thuộc tính giúp xác định duy nhấtmột thực thể trong một tập thực thể
Khóa của tập thực thể gồm một hoặc nhiều thuộc tính
Trang 31 Các thuộc tính khóa được ký hiệu bằng cách gạch chân dướitên thuộc tính.
Hình 2 3 các thuộc tính khóa được ký hiệu bằng gạch chân
Có nhiều loại thuộc tính:
Thuộc tính đơn trị: chỉ nhận một giá trị đơn đối với một thựcthể cụ thể
Hình 2 6 thuộc tính suy diễn
Thuộc tính kết hợp: là thuộc tính gồm nhiều thành phần nhỏhơn
Trang 32Hình 2 7 thuộc tính kết hợp
Mối kết hợp:
Các thực thể tồn tại trong thực tế có thể có những mối liên hệ vớinhau
Mối kết hợp là sự liên kết giữa hai hay nhiều thực thể
Tập hợp các mối kết hợp tương tự nhau được gọi là tập mối kếthợp
Ký hiệu: Hình thoi, bên trong có đặt tên cho mối kết hợp đó
o Tên của tập mối kết hợp thường là: Động từ, Cụm danh từ, Liêntừ
Một thực thể trong tập thực thể B kết hợp với một thực thể trongtập thực thể A
Trang 33Hình 2 10 mối kết hợp N - 1
Tập mối kết hợp một-một (N-N):
Một thực thể trong tập thực thể A kết hợp với một số thực thểtrong tập thực thể B
Một thực thể trong tập thực thể B kết hợp với một số thực thểtrong tập thực thể A
Hình 2 11 mối kết hợp N - N
2.2 Phụ thuộc hàm.
PTH là công cụ dùng để biểu diễn một cách hình thức mối quan hệ
dữ liệu của các thuộc tính bên trong CSDL
Thông qua cách biểu diễn PTH, có thể dễ dàng xác định khóa củaquan hệ
Phương pháp biểu diễn này có vai trò quan trọng trong các phươngpháp thiết kế một lược đồ quan niệm của CSDL:
Nhằm tạo ra những quan hệ độc lập nhau, giảm thiểu sự trùnglắp, dư thừa dữ liệu
Trang 34 Do đó, giảm bớt các sai sót khi cập nhật dữ liệu của người sửdụng.
Ngoài ra, còn dùng để đánh giá chất lượng thiết kế một CSDL
Cho r(U), với r là quan hệ (hoặc bảng) và U là tập thuộc tính
Cho A,B U(v i A,B l t p c c thu c t nh), ph thu c h m A à B (A⊆ ớ à ậ á ộ í ụ ộ àxác định B) được định nghĩa là: ∀t,t’ ∈ r n u t A = t.A th tế ’ ì ’.B=t.B(Ý nghĩa: nếu 2 bộ có cùng trị A thì có cùng trị B)
2.3 Các dạng chuẩn.
a) Dạng chuẩn 1
Định nghĩa: Một quan hệ đạt dạng chuẩn 1(DC1) là một quan hệ
mà các giá trị trên từng thuộc tính phải là giá trị nguyên tố vàcòn được gọi là cấu trúc phẳng
b) Dạng chuẩn 2
Định nghĩa: Một quan hệ đạt dạng chuẩn 2(DC2) nếu và chỉ nếu
nó đạt DC1 và tất cả các thuộc tính không khóa phụ thuộc đầy đủvào khóa
Lưu ý: Dạng chuẩn 2 có thể vi phạm khi quan hệ khóa gồmnhiều hơn một thuộc tính
c) Dạng chuẩn 3
Định nghĩa: Một quan hệ đạt dạng chuẩn 3(DC3) nếu và chỉ nếu
nó đạt DC2 và tất cả các thuộc tính không khóa không phụ thuộcbắc cầu vào khóa
d) Dạng chuẩn BCK
Định nghĩa: Một quan hệ đạt dạng chuẩn BOYCE CODDKENT(BCK) nếu với mọi phụ thuộc hàm X→A không hiển nhiênđịnh nghĩa trên quan hệ, A X th X (m i v tr i c a t t c c c ph∉ ì ọ ế á ủ ấ ả á ụthuộc h m) l m t si u kh a c a quan h , ngh a l X l m t kh aà à ộ ê ó ủ ệ ĩ à à ộ ó
hoặc ch a m t khứ ộ óa
e) Dạng chuẩn 4
Mục đích của dạng chuẩn 4: là không cho phép xuất hiện phụthuộc hàm đa trị không hiển nhiên trên một quan hệ
Nếu có, cần tách nhỏ các quan hệ nhằm biến các phụ thuộc hàm
đa trị không hiển nhiên thành hiển nhiên trong các quan hệ mới
để không cần kiểm tra nữa
Cách tách phụ thuộc đa trị không hiển nhiên:
Biến đổi các phụ thuộc đa trị không hiển nhiên trong một cấutrúc này thành phụ thuộc đa trị hiển nhiên trong 1 cấu trúckhác
Trang 35 Ví dụ: Trên Q(X,Y,Z) có phụ thuộc đa trị không hiển nhiên X
>> Y
▫ Ta tạo ra cấu trúc: C = { Q1(X,Y); Q2(X,Z) }
Trang 362.4 Bảo toàn thông tin.
Cho lược đồ quan hệ R và tập phụ thuộc hàm F
Phép tách lược đồ R thành tập các lược đồ R1, ,
Rm được gọi là không mất mát thông tin đối với F
nếu với mỗi quan hệ r trên R thoả F thì: ΠU1(r)*
ΠU2(r) * * ΠUm(r) =r
Hình 2 12 ví dụ bảo toàn thông tin
Thuật toán : Phép tách bảo toàn phụ thuộc hàm
Nhập: R(U), U={A1,…, An} và tập PTH F
o B2.2.Với mỗi Xà Aj Î G, xây dựng lược đồ Ri(Ui), Ui = X
È {Aj} Khóa chính của Ri là X
B3: Giả sử xong B2 ta có các lược đồ R1,…, Rm Nếu U1 È …È
Um ≠ U thì xây dựng thêm lược đồ Rm+1(Um+1), Um+1 = U– (U1 È…È Um) Khóa chính của Rm+1 là Um+1
B4: Xuất các lược đồ Ri
Ví dụ:
Cho U = ABCDE và F={A→C, B→C, C→D, DE→C, CE→A} Tách Uthành U1=AC, U2=CD,U3=BE,U4=BC, U5=AE Kiểm tra tính bảotoàn thông tin
Trang 37Bước 1 Tách vế phải các phụ thuộc hàm
Bước 2 Kẻ bảng các cột là thuộc tính các hàng là đồ thị con.Điền ai vào các thuộc của các lược đồ con
2.5 Lập trình CSDL.
2.5.1 Giới thiệu
Khi đã có cơ sở dữ liệu người dùng sẽ quan tâm đến phương pháp
sử dụng cơ sở dữ liệu ấy Đa phần, các hệ thống cơ sở dữ liệu đều
có giao diện tương tác người dùng (interactive interface) để gõlệnh SQL và thực hiện truy dữ liệu bằng SQL Tuy nhiên ngườidùng thường tương tác cơ sở dữ liệu thông qua phần mềm ứngdụng (application programs) hay còn gọi là ứng dụng truy xuất cơ
Có rất nhiều công nghệ được phát triển để tương tác CSDL như:
1 Chèn trực tiếp câu lệnh SQL vào mã nguồn ứng dụng
2 Sử dụng các thư viện phần mềm tương tác CSDL
3 Phát triển SQL thành một ngôn ngữ lập trình với các cấu trúc
cơ bản như cấu trúc điều khiển, cấu trúc lặp,
Tuy nhiên, việc xây dựng phần mềm tương tác với CSDL thường
sẽ gặp một số vấn đề về tính tương thích (Impedance mismatch)
Ví dụ như kiểu dữ liệu trong SQL bao gồm varchar, nvarchar,decimal, real sẽ khác với các kiểu dữ liệu trong ngôn ngữ lập trìnhnhư string, int, double, từ đó yêu cầu chuyển kiểu dữ liệu
Dữ liệu trả về từ câu truy vấn của SQL thường ở dạng bảng vớinhiều cột và nhiều dòng, dữ liệu này phải được chuyển sang mộtcấu trúc dữ liệu phù hợp trong ngôn ngữ lập trình
Với ý tưởng xây dựng chương trình mà không phải chuyển đổikiểu dữ liệu giữa ngôn ngữ SQL và ngôn ngữ lập trình, các nhàphát triển đã xây dựng phần mở rộng cho ngôn ngữ SQL gọi làSQL/PSM (SQL/Persistent Stored Modules)
SQL/PSM cho phép thực hiện các câu lệnh truy vấn SQL cơ bản vàkết hợp với một số cấu trúc đặc trưng của ngôn ngữ lập trìnhtruyền thống như cấu trúc điều khiển, cấu trúc lặp, hàm con,
Trang 382.5.2 Biến cục bộ.
Trong T-SQL, biến cục bộ là đối tượng dùng để lưu trữ một dữliệu đơn thuộc một kiểu dữ liệu cụ thể (int, char, date, )
Các biến này thường được dùng để:
Lưu trữ số lần lặp của một câu lệnh lặp
Lưu trữ giá trị dùng để kiểm tra trong câu lệnh điều khiển
Lưu trữ giá trị trả về từ các hàm con
Khai báo biến cục bộ cần các thông tin sau:
Từ khóa khai báo biến : DECLARE
Tên biến : bắt đầu bằng ký tự @
Khai báo kiểu dữ liệu và chiều dài dữ liệu (nếu là kiểu chuỗi)
Cú pháp: DECLARE @tên_biến
Ví dụ:
DECLARE @MyCounter INT ;
DECLARE @LastName NVARCHAR ( ), 30 @FirstName NVARCHAR ( 20 );
DECLARE @dob DATE ;
Để gán giá trị đơn (một số hoặc 1 chuỗi) cho biến cục bộ, sử dụnglệnh SET
DECLARE @MyVariableChar NCHAR ( ); 20
SET @MyVariableChar = N ’ 13 Lê Duẫn ’ ;
DECLARE @MyVariableChar CHAR ( ); 20
SET @MyVariableChar = This a test is ’ ;
Để gán giá trị là một ô hoặc dữ liệu tổng hợp(thu được từ cáchàm count, sum, max, min, avg) từ các ô trong bảng cho biến, sửdụng lệnh SELECT
Ví dụ:
Trang 39 Biến hệ thống luôn bắt đầu bằng @@.
Người lập trình không thể gán giá trị vào hệ thống
Giá trị mà chúng đang lưu trữ là do hệ thống Microsoft SQLServer cung cấp
Ví dụ: @@LANGUAGE, @@VERSON,
2.5.4 Cấu trúc điều khiển
Cấu trúc điều khiển cho phép chương trình kiểm tra một điều kiện
ElsePrint N ‘Chưa đủ 5 năm’
Trong trường hợp nếu phải thực hiện nhiều hơn một lệnh thì bổsung thêm cặp lệnh BEGIN-END
2.5.5 Cấu trúc lặp
Cấu trúc lặp cho phép thực hiện cùng một thao tác với nhiều đốitượng khác nhau:
Cú pháp:
WHILE <điều kiện>
Đoạn chương trình sẽ thực hiện khi điều kiện đúng | BREAKCONTINUE}
Trong trường hợp cứ phải thực hiện nhiều hơn một lệnh thì bổsung thêm cặp lệnh BEGIN-END
Ví dụ:
Trang 40DECLARE @var INT ;
Lợi ích của thủ tục:
Tối ưu hóa việc phân tích, biên dịch và thực thi câu lệnh
Thực hiện một yêu cầu bằng một câu lệnh đơn giản hơn thay vìphải sử dụng nhiều dòng lệnh SQL khi thực thi làm giảm thiểu
sự lưu thông trên mạng
Tăng khả năng bảo mật khi cấp phát quyền thông qua thủ tục
Tốc độ xử lý của các thủ tục nội tại rất nhanh
Phân loại:
Thủ tục hệ thống: Bắt đầu bằng chữ sp_ và hầu hết tất cả cácthủ tục hệ thống được lưu trữ bên trong CSDL Master