0

Phân tích và thiết kế CSDL quản lý cửa hàng bán linh kiện PC

32 2 0
  • Phân tích và thiết kế CSDL quản lý cửa hàng bán linh kiện PC

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

Tài liệu liên quan

Thông tin tài liệu

Ngày đăng: 23/06/2022, 15:52

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO MƠN HỌC PHÂN TÍCH VÀ THIẾT KẾ CSDL QUẢN LÝ CỬA HÀNG BÁN LINH KIỆN PC Ngành: CÔNG NGHỆ THÔNG TIN Chuyên ngành: CÔNG NGHỆ PHẦN MỀM Giảng viên hướng dẫn : Sinh viên thực : TP Hồ Chí Minh, 07/2021 Lời Nói Đầu Cơ Sở Dữ Liệu tiêu chí thiết yêu để làm phần mềm hoàn chỉnh, phần mềm nhỏ, phải có sở liệu hồn chỉnh điều thiết yếu Việc sử dụng sở liệu giúp ta quản lý liệu cách khoa học, tránh trùng lắp thơng tin, đảm bảo qn tồn vẹn liệu, thông tin quản lý nơi nhất, đảm bảo việc bảo mật liệu, tránh rị rỉ thơng tin, có khả chia sẻ thông tin cho nhiều người sử dụng Môn Cơ sở liệu nâng cao cung cấp lý thuyết để thiết kế sơ sở liệu quan hệ Các vấn đề đặt giai đoạn thiết kế, từ thiết kế cấu trúc quan niệm đến thiết kế cấu trúc vật lý thể trình bày chi tiết môn học Trên sở kiến thức mơn học, nhóm em định lựa chọn đề tài “ Xây dựng sở liệu Quản lý Cửa Hàng Bán Linh Kiện PC” để củng cố kiến thức thực hóa thu nhận thơng qua mơn học Trong q trình thực hiện, nhóm cố gắng tìm hiểu áp dụng kiến thức học để hoàn thành đề tài cách tốt Song cịn tồn số sai sót, nhóm em mong nhận góp ý thầy để làm hoàn thiện Em xin chân thành cảm ơn! MỤC LỤC CHƯƠNG I: THIẾT KẾ CƠ SỞ DỮ LIỆU VÀ MƠ HÌNH THỰC THỂ LIÊN KẾT 1.1 1.2 Giới thiệu sơ lược sở liệu quản lý cửa hàng bán linh kiện PC Các thực thể thuộc tính chúng 1.2.1 Các khái niệm bản: .2 1.2.2 Thuộc tính thực thể 1.3 Xác Định RBTV 1.3.1 Định Nghĩa 1.3.2 Xác định RBTV 1.4 Xác định phụ thuộc hàm 12 1.5 Xây dựng mơ hình thực thể liên kết 13 1.5.1 Các khái niệm 13 1.5.2 Xác định quan hệ CSDL quản lý cửa hàng bán linh kiện PC 13 CHƯƠNG II: CHUYỂN TỪ MƠ HÌNH THỰC THỂ LIÊN KẾT SANG MƠ HÌNH QUAN HỆ .14 2.1 Cách chuyển đổi 14 2.2 Xác định bảng thuộc tính bảng .15 2.3 Mơ hình liệu quan hệ quản lý cửa hàng bán linh kiện pc 18 CHƯƠNG III: XÁC ĐỊNH KHÓA 19 3.1: Khái niệm khóa 19 3.1.1 Khóa 19 3.1.2 Khóa gì? 19 3.1.3 Khóa ngoại gì? 19 3.1.4 Định nghĩa khóa 20 3.1.5 Thuật tốn xác định khóa lược đồ quan hệ 20 3.2 Xác định khóa cho quan hệ CSDL quản lý nhà sách 20 CHƯƠNG IV: CHUẨN HÓA LƯỢC ĐỒ QUAN HỆ THÀNH DẠNG CHUẨN 3NF HOẶC BCNF 22 4.1 4.1.1 Các dạng chuẩn thuật tốn chuẩn hóa .22 Các dạng chuẩn 22 a Dạng chuẩn 1: 22 b Dạng chuẩn 22 c Dạng chuẩn 23 d Dạng chuẩn BCK (Boyee-Codd-Kent) (còn gọi BC): .24 e Dạng chuẩn 24 4.1.2 Thuật tốn chuẩn hóa 26 a Dùng phương pháp làm phẳng để chuẩn hóa 1NF .26 b Dùng phương pháp tách nhóm lặp để chuẩn hóa 1NF .26 4.1 Các dạng chuẩn thuật tốn chuẩn hóa .26 4.2 Chuẩn hóa sở liệu quan hệ quản lý cửa hàng bán pc 27 CHƯƠNG V: CÂU LỆNH SQL .28 CHƯƠNG I: THIẾT KẾ CƠ SỞ DỮ LIỆU VÀ MƠ HÌNH THỰC THỂ LIÊN KẾT 1.1 Giới thiệu sơ lược sở liệu quản lý cửa hàng bán linh kiện PC Quản lý hàng bán linh kiện PC gồm Quản lý nhân viên, Quản lý sản phẩm, Quản lý khách hàng, Nhà Cung Cấp, Quản lý nhập hàng, Quản lý hóa đơn, Hóa Đơn Nhập Hàng, Tồn Kho, Giỏ Hàng, Chi Tiết Hóa Đơn, Danh Mục Sản Phẩm, Chi Tiết Danh Mục Sản Phẩm, Đơn Giá Nhân viên ( IdNV, TenNV, GioiTinh, NgaySinh, DiaChi, IdRole) Nhân viên bao gồm Nhân Viên ( quản lý sản phẩm, xác nhận đơn hàng, cập nhật thông tin sản phẩm) Quản Lý ( quản lý nhân viên, quản lý sản phẩm, xác nhận đơn hàng, quản lý đơn hàng nhập ) Hệ thống lưu lại tất hoạt động nhân viên quản lý Sản Phẩm ( IdSanPham, TenSanPham, ChiTiet, Gia, TinhTrang, IdDanhMuc, HangSX, TGBH, IdNCC, HinhAnh ) Sản phẩm phân biệt với Id Sản Phẩm, Tên Sản Phẩm, Gia,… Sản phẩm gồm nhiều danh mục sản phẩm khác nhau, nhà cung cấp khác ( phân biệt qua Id danh mục sản phẩm, Id Nhà Cung Cấp) Một Nhà Cung Cấp cung cấp nhiều danh mục sản phẩm danh mục sản phẩm cung cấp nhiều nhà cung cấp Khi số lượng sản phẩm tồn kho 15 /1 Sản phẩm hệ thống gửi thơng báo cho Quản lý Quản lý lập phiếu nhập hàng (IdPhieu, IdSanPham, TenSanPham, SoLuong) để gửi xuống nhà cung cấp Mỗi lần nhập hàng có Hóa Đơn Nhập Hàng ( IdHDN, IdNCC, IdNV, NgayLapHD, NgayGiao, TongTien ) nhân viên nhập thực Khách hàng đăng kí có tài khoản cá nhân để lưu thông tin đặt mua hàng ( IdKH, TenKH, Diachi, SDT, Email, MatKhau ) Khi khách hàng thêm sản phẩm vào giỏ hàng số lượng hàng tạm thời trừ Trong trường hợp khách hàng không chuyển sang trạng thái mua số lượng khơi phục ban đầu Khi khách hàng tiến hành mua hàng lập Hóa Đơn ( IdHD, IdKH, IdNV, NgayLapHD, NgayGiao, TongGia ) Một khách hàng có nhiều hóa đơn 1.2 Các thực thể thuộc tính chúng 1.2.1 Các khái niệm bản: - Thực thể khái niệm để lớp đối tượng có đặc tính chung mà người ta muốn quản lý thơng tin - Ở bao gồm: Hãng Sản Xuất, Nhà Cung Cấp, Nhân Viên, Khách Hàng, Hóa Đơn, Danh Mục Sản Phẩm, Chi Tiết Hóa Đơn, Sản Phẩm, Hóa Đơn Nhập, Chi Tiết Nhập, Roles - Một đối tượng cụ thể thực thể gọi cá thể (còn gọi thể thực thể) - Thực thể Sản Phẩm gồm: IdSanPham, TenSanPham, ChiTiet, Gia, TinhTrang, IdDanhMuc, HangSX, TGBH, IdNCC, HinhAnh - Thực thể Nhân Viên gồm: IdNV, TenNV, GioiTinh, NgaySinh, DiaChi, IdRole - Thực thể Khách Hàng gồm: IdKH, TenKH, DiaChi, SDT, Email, MatKhau - Thực thể Nhà Cung Cấp gồm: IdNCC, TenNCC, SDT, DiaChi - Thực thể Hãng Sản Xuất gồm: IdNSX, TenNSX, DiaChi, SDT - Thực thể Hóa Đơn gồm: IdHD, IdKH, IdNV, NgayLapHD, NgayGiao, TongGia - Thực thể Danh Mục Sản Phẩm: IdDanhMuc, Ten - Thực thể Chi Tiết Hóa Đơn: IdSanPham, IdHD, SoLuongBan, DonGia - Thực thể Hóa Đơn Nhập: IdHDN, IdNCC, IdNV, NgayLapHD, NgayGiao - Thực thể Chi Tiết Nhập: IdSanPham, TenSanPham, SoLuong, Don Gia, IdHDN - Thực thể Roles: IdRole, TenRole 1.2.2 Thuộc tính thực thể Để mơ tả thông tin thực thể người ta thường dựa vào đặc trưng riêng thực thể Các đặc trưng gọi thuộc tính thực thể Ví dụ thực thể Nhân Viên có thuộc tính IdNV, TenNV, GioiTinh, NgaySinh, DiaChi, IdRole Đối với thực thể Hóa Đơn giá trị thuộc tính IdSanPham, TenSanPham, SoLuong, DonGia, thơng tin mà nhà quản lý cần quan tâm để quản lý hàng hóa Thuộc tính thực thể bao gồm loại sau: - Thuộc tính định danh (cịn gọi định danh thực thể, đơi cịn gọi thuộc tính khố): Là thuộc tính mà giá trị cho phép phân biệt thực thể khác Một thực thể xác định thuộc tính định danh làm sở để phân biệt thể cụ thể Ví dụ: IdKH, IdSanPham, IdNV,… - Thuộc tính mơ tả: Là thuộc tính mà giá trị chúng có tính mơ tả cho thực thể hay liên kết mà thơi Hầu hết thuộc tính kiểu thực thể mơ tả - Thuộc tính tên gọi: thuộc tính mơ tả để tên đối tượng thuộc thực thể - Thuộc tính kết nối (thuộc tính khố ngồi): thuộc tính mối quan hệ Thuộc tính tên gọi để phân biệt thực thể (tách thực thể) thực thể có thực thể bảng khác Thuộc tính kết nối giống thuộc tính mơ tả thơng thường thực thể chứa nó lại thuộc tính khố thực thể bảng khác 1.3 Xác Định RBTV 1.3.1 Định Nghĩa Ràng buộc toàn vẹn liệu quy tắc sở liệu nhằm kiểm tra tính đắn hợp lệ liệu trước lưu trữ Các ràng buộc toàn vẹn liệu SQL Server gồm: - Constraint Default - Constraint Not Null - Constraint Unique - Constraint Primary Key - Constraint Foreign Key - Constraint Check a Default constraint Cột nhận giá trị mặc định không cung cấp giá trị thêm liệu vào bảng Cú pháp : CONSTRAINT DEFAULT b Not Null constraint Khai báo mức column nhiều + Chuyển đổi mối quan hệ n – n: Chuyển thành quan hệ có khố gồm thuộc tính khóa quan hệ trở lên, thuộc tính mối kết hợp (nếu có) trở thành thuộc tính quan hệ + Chuyển đổi mối quan hệ đa trị: Chuyển thành quan hệ có khố gồm thuộc tính đa trị thuộc tính khóa thực thể Sau chuyển thành quan hệ mới, thuộc tính đa trị tự động biến khỏi thực thể cũ - Các bước chuyển đổi: Bước 1: Chuyển đổi loại thực thể thành loại quan hệ tương ứng + Chuyển đổi liên kết – kết hợp hai thực thể thành thực thể + Các liên kết – n lấy khóa bên có nhiều thực thể chuyển đổi thành khóa ngoại + Mối quan hệ n – n tạo thành kiểu quan hệ Bước 2: Kiểm tra lại dạng chuẩn quan hệ 2.2 Xác định bảng thuộc tính bảng SanPham (IdSanPham, TenSanPham, ChiTiet, Gia, TinhTrang, IdDanhMuc, HangSX, TGBH, IdNCC, HinhAnh) SanPham IdSanPham TenSanPham ChiTiet Gia TinhTrang IdDanhMuc HangSx TGBH IdNCC HinhAnh SanPham (IdNV, TenNV, GioiTinh, NgaySinh, DiaChi, IdRole) 15 SanPham IdNhanVien TenNV GioiTinh NgaySinh DiaChi IdRole KhachHang (IdKH, TenKH, DiaChi, SDT, Email, MatKhau) KhachHang IdKH TenKH DiaChi SDT Email MatKhau NhaCungCap (IdNCC, TenNCC, SDT, DiaChi) NhaCungCap IdNCC TenNCC SDT DiaChi HangSanXuat (IdNSX, TenNSX, DiaChi, SDT) HangSanXua IdNSX TenNSX DiaChi SDT HoaDon (IdHD, IdKH, IdNV, NgayLapHD, NgayGiao, TongGia) HoaDon 16 IdHD IdKH IdNV NgayLapHD NgayGiao TongGia DanhMucSanPham (IdDanhMuc, Ten) DanhMucSanPham IdDanhMuc Ten ChiTietHoaDon (IdSanPham, IdHD, SoLuongBan, DonGia) ChiTietHoaDon IdSanPham IdHD SoLuongBan DonGia HoaDonNhap (IdHDN, IdNCC, NgayLapHD, NgayGiao) HoaDonNhap IdHDN IdNCC NgayLapHD NgayGiao ChiTietNhap (IdSanPham, TenSanPham, SoLuong, IdNCC, Don Gia) ChiTietNhap IdSanPham TenSanPham SoLuong IdNCC 17 DonGia Roles (IdRole, TenRole) Roles IdRole TenRole 2.3 Mơ hình liệu quan hệ quản lý cửa hàng bán linh kiện pc - SanPham (IdSanPham, TenSanPham, ChiTiet, Gia, TinhTrang, IdDanhMuc HangSX, TGBH, IdNSX,IdNCC, HinhAnh) - NhanVien (IdNV, TenNV, GioiTinh, NgaySinh, DiaChi, IdRole) - KhachHang (IdKH, TenKH, DiaChi, SDT, Email, MatKhau) - NhaCungCap (IdNCC, TenNCC, SDT, DiaChi) - HangSanXuat (IdNSX, TenNSX, DiaChi, SDT) - HoaDon (IdHD, IdKH, IdNV, NgayLapHD, NgayGiao, TongGia) - ChiTietNhap (IdSanPham, TenSanPham, SoLuong, Don Gia, IdHDN) - Roles: (IdRole, TenRole) - DanhMucSanPham( IdDanhMuc, Ten) -ChiTietHoaDon (IdSanPham, IdHD, SoLuongBan, DonGia) - HoaDonNhap (IdHDN, IdNCC, IdNV, NgayLapHD, NgayGiao) 18 CHƯƠNG III: XÁC ĐỊNH KHĨA 3.1: Khái niệm khóa 3.1.1 Khóa Khóa bảng tập gồm hay số thuộc tính bảng phân biệt cá thể 3.1.2 Khóa gì? Khóa (hay ràng buộc khóa chính) sử dụng để định danh record table sở liệu + Ngoài ra, cịn dùng để thiết lập quan hệ - n (hay ràng buộc tham chiếu) hai table sở liệu + Dữ liệu (value) field khóa phải có tính Và khơng chứa giá trị Null +Mỗi table nên có khóa chính, khóa tạo từ nhiều field table 3.1.3 Khóa ngoại gì? - Khóa ngoại table xem trỏ trỏ tới khóa table khác *Chú ý: + Mỗi bảng có khóa Việc xác định khóa phụ thuộc vào quan hệ logic liệu không phụ thuộc vào giá trị liệu + Nên chọn khóa khóa có thuộc tính - Liên kết: Thực chất liên kết bảng dựa thuộc tính khóa Chẳng hạn thuộc tính số thẻ khóa bảng người mượn xuất lại bảng mượn sách tạo nên liên kết bảng 3.1.4 Định nghĩa khóa Khóa định nghĩa lại phụ thuộc hàm sau: R(U), U= {A1, A2, An}, F= {f1, f2, , fm} xác định R, K U khóa R thoả mãn hai điều kiện sau: (i) K → U (ii) ! Ǝ K’ K mà K’ → U Biểu diễn lược đồ quan hệ R(U) đồ thị có hướng sau: Mỗi nút đồ thị tên thuộc tính R Cung nối thuộc tính A B thể phụ thuộc hàm A → B Thuộc tính mà có mũi tên gọi gốc Thuộc tính mà có cung tới gọi nút 19 Như khóa phải bào phủ tập hợp nút gốc, đồng thời không chứa nút đồ thị 3.1.5Thuật tốn xác định khóa lược đồ quan hệ xuất phát từ tập nút gốc (X), dựa tập phụ thuộc hàm F, tìm bao đóng X+ X+ = U X khóa Ngược lại bổ sung thuộc tính khồng thc nút vào X tìm bao đóng Cứ tìm bao đóng X U Cuối khóa X 3.2Xác định khóa cho quan hệ CSDL quản lý nhà sách a Quan hệ SanPham: (IdSanPham, TenSanPham, ChiTiet, Gia, TinhTrang, IdDanhMuc, HangSX, TGBH, IdNCC, HinhAnh) ký hiệu Q1(U) = Q1(A,B,C,D,E,F,G,H,I,J) ta có tập PTH F1={ A →B, A →C, A →D, A →E, A →F, A →G , A →H , A →J , A →J } Xét A = ABCDEFGHIJ = U →Vậy khóa quan hệ SanPham A(IdSanPham) b Quan hệ NhanVien (IdNV, TenNV, GioiTinh, NgaySinh, DiaChi, IdRole) ký hiệu Q1(U) = Q1(A,B,C,D,E,F) ta có tập PTH F2={ ={ A →B, A →C, A →D, A →E, A →F } Xét A = ABCDEF = U →Vậy khóa quan hệ NhanVien A(IdNV) c Quan hệ KhachHang (IdKH, TenKH, DiaChi, SDT, Email, MatKhau) ký hiệu Q1(U) = Q1(A,B,C,D,E,F) ta có tập PTH F3={ ={ A →B, A →C, A →D, A →E, A →F } Xét A = ABCDEF = U →Vậy khóa quan hệ KhachHang A(IdKH) d Quan hệ NhaCungCap (IdNCC, TenNCC, SDT, DiaChi) ký hiệu Q1(U) = Q1(A,B,C,D) ta có tập PTH F4={ ={ A →B, A →C, A →D } Xét A = ABCDEF = U →Vậy khóa quan hệ NhaCungCap A(IdNCC) e Quan hệ HangSanXuat (IdNSX, TenNSX, DiaChi, SDT) ký hiệu Q1(U) = 20 Q1(A,B,C,D) ta có tập PTH F5={ ={ A →B, A →C, A →D} Xét A = ABCD = U →Vậy khóa quan hệ HangSanXuat A(IdNSX) f Quan hệ HoaDon (IdHD, IdKH, IdNV, NgayLapHD, NgayGiao, TongGia) ký hiệu Q1(U) = Q1(A,B,C,D,E,F) ta có tập PTH F6={ ={ A →B, A →C, A →D, A →E, A →F } Xét A = ABCDEF = U →Vậy khóa quan hệ HoaDon A(IdHD) g Quan hệ DanhMucSanPham (IdDanhMuc, Ten) ký hiệu Q1(U) = Q1(A,B,C,D,E,F) ta có tập PTH F7={ ={ A →B} Xét A = ABC = U →Vậy khóa quan hệ DanhMucSanPham A(IdDanhMuc) h Quan hệ ChiTietHoaDon (IdSanPham, IdHD, SoLuongBan, DonGia) ký hiệu Q1(U) = Q1(A,B,C,D) ta có tập PTH F8={ ={ A →B, A →C, A →D } Xét A = ABC = U →Vậy khóa quan hệ ChiTietHoaDon A(IdDanhMuc) i Quan hệ HoaDonNhap (IdHDN, IdNCC, NgayLapHD, NgayGiao) ký hiệu Q1(U) = Q1(A,B,C,D,E,) ta có tập PTH F9={ ={ A →B, A →C, A →D } Xét A = ABCD = U →Vậy khóa quan hệ HoaDonNhap A(IdHDN) j Quan hệ ChiTietNhap (IdSanPham, TenSanPham, SoLuong, IdNCC, Don Gia) ký hiệu Q1(U) = Q1(A,B,C,D,E) ta có tập PTH F10={ ={ A →B, A →C, A →D, A →E } Xét A = ABCDE = U →Vậy khóa quan hệ ChiTietHoaDon A(IdSanPham) k Quan hệ Roles (IdRole, TenRole) ký hiệu Q1(U) = Q1(A,B) ta có tập PTH F10={ ={ A →B} Xét A = AB = U 21 →Vậy khóa quan hệ ChiTietHoaDon A(IdRole) CHƯƠNG IV: CHUẨN HÓA LƯỢC ĐỒ QUAN HỆ THÀNH DẠNG CHUẨN 3NF HOẶC BCNF 4.1Các dạng chuẩn thuật tốn chuẩn hóa 4.1.1 Các dạng chuẩn a Dạng chuẩn 1: - Khái niệm Thuộc tính đơn: Một thuộc tính gọi thuộc tính đơn giá trị khơng phải kết hợp nhiều thơng tin có ý nghĩa khác hệ thống ln truy xuất tồn giá trị truy xuất đến phần liệu Ngược lại, thuộc tính kép - Định nghĩa DC1: Một lược đồ quan hệ Q đạt dạng chuẩn thuộc tính Q thuộc tính đơn b Dạng chuẩn Khái niệm phụ thuộc đầy đủ: + Thuộc tính A gọi phụ thuộc đầy đủ vào tập thuộc tính X nếu:  A  X+F  X  A pth nguyên tố Khái niệm thuộc tính khóa, thuộc tính khơng khóa +Thuộc tính khóa (thuộc tính nguyên tố): thuộc tính lược đồ quan hệ Q mà thành phần khóa dự tuyển Q + Thuộc tính khóa (thuộc tính nguyên tố): thuộc tính lược đồ quan hệ Q mà thành phần khóa dự tuyển Q + Thuộc tính khơng khóa (thuộc tính khơng ngun tố): thuộc tính khơng phải thuộc tính ngun tố (tức khơng tham gia vào khóa lược đồ quan hệ) - Định nghĩa Dạng chuẩn 2: Một lược đồ quan hệ Q đạt dạng chuẩn  Q DC1  Mọi thuộc tính khơng khóa phụ thuộc đầy đủ vào khóa Q - Thuật toán kiểm tra dạng chuẩn + Vào: lược đồ quan hệ Q, tập phụ thuộc hàm F + Ra: khẳng định Q đạt chuẩn hay không đạt chuẩn   Bước 1: Tìm tất khóa Q Bước 2: Với khóa K, tìm bao đóng tất tập thật S 22 K  Bước 3: Nếu có bao đóng S+ chứa thuộc tính khơng khóa Q khơng đạt chuẩn Ngược lại Q đạt chuẩn - Nhận xét: + Nếu khóa quan hệ R có thuộc tính R đạt dạng chuẩn + Quan hệ SV dạng chuẩn trùng lắp thông tin c Dạng chuẩn Khái niệm Phụ thuộc bắc cầu: + Cho R, F, X  R: A  R, thuộc tính A gọi PTBC vào tập thuộc tính X dựa F tồn nhóm thuộc tính thỏa mãn điều kiện sau:  XY  Y /-> X  YA  A  {X Y} - Định nghĩa DC3: Một lược đồ quan hệ R đạt dạng chuẩn nếu:  R DC2  b Mọi thuộc tính khơng khóa R khơng phụ thuộc bắc cầu vào khóa R - Thuật toán kiểm tra dạng chuẩn 3: + Vào: lược đồ quan hệ Q, tập phụ thuộc hàm F + Ra: khẳng định Q đạt chuẩn hay khơng đạt chuẩn  Bước 1: Tìm tất khóa Q  Bước 2: Từ F tạo tập phụ thuộc hàm tương đương F1 có vế phải thuộc tính  Bước 3: Nếu phụ thuộc hàm X → A ∈ F1 với A∉X có X siêu khóa A thuộc tính khố Q đạt chuẩn ngược lại Q khơng đạt chuẩn d Dạng chuẩn BCK (Boyee-Codd-Kent) (còn gọi BC): - Định nghĩa: Một lược đồ quan hệ Q dạng chuẩn BCK phụ thuộc hàm khơng hiển nhiên có vế trái chứa khóa X  A  F+ : A  X X phải chứa khóa Q - Nhận xét: Nếu Q đạt dạng chuẩn BCK vế trái phụ thuộc hàm siêu khóa 23 - Thuật tốn kiểm tra dạng chuẩn BC: + Vào: lược đồ quan hệ Q, tập phụ thuộc hàm F + Ra: khẳng định Q đạt chuẩn BC hay không đạt chuẩn BC  Bước 1: Tìm tất khóa Q  Bước 2: Từ F tạo tập phụ thuộc hàm tương đương F1 có vế phải thuộc tính  Bước 3: Nếu phụ thuộc hàm X → A ∈ F1 với A∉X có X siêu khóa Q đạt chuẩn BC ngược lại Q không đạt chuẩn BC e Dạng chuẩn - Phụ thuộc đa trị - Ngồi pth trình bày, người ta cịn xét đến loại phụ thuộc hàm khác, phụ thuộc hàm đa trị - Định nghĩa Phụ thuộc đa trị: + Cho LĐQH Q(X,Y,Z) với X  Q+,Y  Q+, XY=  Z = Q+ \ {X,Y} + Ký hiệu X >> Y Phụ thuộc hàm đa trị định nghĩa Q giá trị x X xác định tập giá trị {y1, y2,…} Y, tập giá trị không phụ thuộc vào giá trị Z có liên quan đến x, y1, y2,… + Nghĩa là: Với (x, z1) , (x, z2)  Q[X,Z] (Q: X=x Z = z1)[Y] = (Q:X=x Z = z2)[Y] - Phụ thuộc hiển nhiên: Phụ thuộc hàm đa trị X >> Y Phụ thuộc hàm đa trị hiển nhiên Q XY = Q+ (nghĩa Z = ) - Nhận xét: Nếu X >> Y phụ thuộc đa trị Q[X,Y] Q[X,Z] = Q Vậy với phụ thuộc đa trị X >> Y kết nối khơng dư thừa thơng tin, hay nói cách khác phân rã (Q thành Q[X,Y], Q[X, Z]) không mát thông tin) - Cách Kiểm tra phụ thuộc đa trị: + Biến đổi phụ thuộc đa trị không hiển nhiên cấu trúc thành phụ thuộc đa trị hiển nhiên cấu trúc khác - Hệ Luật dẫn phụ thuộc hàm đa trị: Một số hệ luật dẫn bản: Cho lược đồ quan hệ Q X, Y, W, Z Q+ + LD1: Luật bù: X >> Y X >> (Q+ - X - Y)  Ví dụ: Từ M >> P suy M >> N, G + LD2: Luật thêm vào: Nếu X >>Y Z  W X,W >> Y,Z + LD3: Luật bắc cầu: Nếu X >> Y Y >> Z X >> (Z-Y) + LD4: Nếu X  Y X >> Y + LD5: Nếu X >> Y W  Z , với Z  Y; W  Y =  X  Z Định 24 nghĩa Dạng chuẩn 4: Q đạt dạng chuẩn nếu: + (i) Q dạng chuẩn BCK + (ii) Phụ thuộc đa trị không hiển nhiên X >>Y định nghĩa Q vế trái X phải chứa khóa Q+ \ Y, nghĩa A  Q+ \ Y X  A  F+ Nhận xét: + Trong DC, DC BCK DC4 dạng chuẩn nhằm giảm thiểu tối đa thông tin trùng lắp giải tương đối hiệu việc kiểm tra phụ thuộc hàm (đối với DC BCK) phụ thuộc đa trị (đối với DC4) + Tuy nhiên, đơi cịn tồn số pth mà việc kiểm tra chúng khơng thuận lợi phải thực nhiều quan hệ Khi đó, người thiết kế lựa chọn cấu trúc hợp lý, phù hợp với yêu cầu khai thác CSDL: dựa khối lượng liệu quan hệ; tần suất thực thao tác thêm / xóa / sửa quan hệ; yêu cầu thời gian xử lý đặt ưu tiên: + Khi có phụ thuộc hàm: Chọn DC3 chấp nhận số bất tiện khai thác để đánh đổi việc kiểm tra tất pth thuận lợi; chọn DC BCK chấp nhận kiểm tra số pth phức tạp + Khi có thêm phụ thuộc đa trị: cân nhắc DC4, DC BCK, DC3 dựa theo lý lẽ tương tự 4.1.2 Thuật tốn chuẩn hóa a Dùng phương pháp làm phẳng để chuẩn hóa 1NF - Ở có tutorial hay chuẩn hóa CSDL trang công nghệ thông tin chấm tiếng Việt nên tutorial có tiếng Việt cho bạn khơng thích tiếng Anh Mời bạn thảo luận chuẩn hóa CSDL topic b.Dùng phương pháp tách nhóm lặp để chuẩn hóa 1NF Chuẩn hóa 1NF: Loại bỏ nhóm lặp loại bỏ thuộc tính tính tốn -Ta có lược đồ quan hệ R, A thuộc tính đa trị thuộc tính lặp Để chuẩn hóa 1NF: + Ta loại A khỏi R + Taọ lược đồ quan hệ {k,A } A thuộc tính đa trị + Tạo lược đồ quan hệ {K}, { K, A} Chuẩn hóa 2NF 2NF – Loại bỏ phụ thuộc hàm khơng hồn tồn vào khóa Ta có lược đồ quan hệ R, X-> Y phụ thuộc hàm phận thuộc R Để chuẩn hóa 2NF: - Loại X khỏi R - Đưa X lược đồ quan hệ Chuẩn hoá R dạng 3NF 25 3NF – Loại bỏ phụ thuộc hàm bắc cầu vào khóa + Bước 1: Tìm phủ tối thiểu Tách vế phải phụ thuộc hàm Tối giản trái phụ thuộc hàm Tìm phủ khơng dư thừa (thuật toán Nonređunant) + Bước 2: Loại bỏ thuộc tính phụ thuộc hàm bắc cầu Tìm khố Tìm phụ thuộc hàm bắc cầu +Bước 3: Lập bảng với khố khố phụ thuộc hàm bắc cầu Thuộc tính cịn lại lập thành bảng với khố khố ban đầu Chuẩn hố R dạng BCNF + Chọn số phụ thuộc hàm vi phạm BCNF Giả sử X->Y Tìm X+ + Tạo lược đồ R1 gồm thuộc tính X+ Các thuộc tính cịn lại, gồm X hình thành lược đồ R2 + Tìm phụ thuộc hàm cho R1 R2 từ tập phụ thuộc hàm ban đầu + Lặp lại chu trình lên tới tất lược đồ thuộc dạng chuẩn BCNF 4.1Các dạng chuẩn thuật tốn chuẩn hóa - Trong thực chuẩn hóa lược đồ CSDL thường thực theo bước: + Bước 1: kiểm tra xem quan hệ đạt dạng chuẩn 1NF chưa? Nếu chưa 1NF có nghĩa có thuộc tính chưa nguyên tố / lặp Tiến hành tách thuộc tính + Bước 2: kiểm tra xem chúng có dạng 2NF khơng? Nghĩa kiểm tra xem thuộc tính khơng khóa có phụ thuộc hồn tồn vào khóa khơng? Tiến hành tách PTH phận thành bảng để giảm bớt trùng lặp thông tin + Bước 3: kiểm tra xem chúng đạt dạng chuẩn 3NF chưa? Nghĩa thuộc tính khơng khóa phụ thuộc trực tiếp vào khóa Tiến hành tách PTH bắc cầu thành bảng + Bước 4: kiểm tra xem chúng đạt dạng chuẩn BCNF chưa? Nghĩa tất phụ thuộc hàm có vế trái siêu khóa Tiến hành tách PTH có vế trái chưa phải siêu khóa 4.2 Chuẩn hóa sở liệu quan hệ quản lý cửa hàng bán pc CSDL Quản lý nhà sách có: a Quan hệ SanPham (IdSanPham, TenSanPham, ChiTiet, Gia, TinhTrang, IdDanhMuc, HangSX, TGBH, IdNSX, IdNCC, HinhAnh) Có tập phụ thuộc hàm F1={ IdSanPham => TenSanPham, IdSanPham => ChiTiet, IdSanPham => Gia, IdSanPham => TinhTrang, IdSanPham => IdDanhMuc, IdSanPham => HangSX, IdSanPham => TGBH, IdSanPham => IdNSX, IdSanPham => IdNCC, IdSanPham => HinhAnh} b Quan hệ NhanVien (IdNV, TenNV, GioiTinh, NgaySinh, DiaChi, IdRole) Có tập phụ thuộc hàm F2={ IdNV => TenNV, IdNV => GioiTinh, IdNV => 26 NgaySinh, IdNV => DiaChi, IdNV => IdRole} c Quan hệ KhachHang (IdKH, TenKH, DiaChi, SDT, Email, MatKhau) Có tập phụ thuộc hàm F3={ IdKH => TenKH, IdKH => DiaChi, IdKH => SDT, IdKH => Email, IdKH => MatKhau} d Quan hệ NhaCungCap (IdNCC, TenNCC, SDT, DiaChi) Có tập phụ thuộc hàm F4={ IdNCC => TenNCC, IdNCC => SDT, IdNCC => DiaChi} e Quan hệ HangSanXuat (IdNSX, TenNSX, DiaChi, SDT) Có tập phụ thuộc hàm F5={ IdNSX => TenNSX, IdNSX => DiaChi, IdNSX => SDT} f Quan hệ HoaDon (IdHD, IdKH, IdNV, NgayLapHD, NgayGiao, TongGia) Có tập phụ thuộc hàm F6={ IdHD => IdKH, IdHD => IdNV, IdHD => NgayLapHD, IdHD => NgayGiao, IdHD => TongGia} g Quan hệ ChiTietNhap (IdSanPham, TenSanPham, SoLuong, DonGia, IdHDN) Có tập phụ thuộc hàm F7={ (IdSanPham, IdHDN) => TenSanPham, (IdSanPham, IdHDN) => SoLuong, (IdSanPham, IdHDN) => DonGia } h Quan hệ Roles (IdRole, TenRole) Có tập phụ thuộc hàm F8={ IdRole => TenRole } i Quan hệ DanhMucSanPham (IdDanhMuc, Ten) Có tập phụ thuộc hàm F9={ IdDanhMuc => Ten } CHƯƠNG V: CÂU LỆNH SQL - Tạo bảng roles CREATE TABLE [dbo].[Roles]( [IdRole] [int] IDENTITY(1,1) NOT NULL primary key, [name] [nvarchar](50) NULL ) - Tạo bảng NhanVien CREATE TABLE [dbo].[NhanVien]( [IdNV] [int] IDENTITY (1,1) NOT NULL PRIMARY KEY, [Ten] [nvarchar](200), [GioiTinh] [nvarchar](200) , [NgaySinh] [date], [DiaChi] [nvarchar](200), [IdRole] [int] FOREIGN KEY (IdRole) REFERENCES Roles(IdRole) ) - Tạo bảng KhachHang CREATE TABLE [dbo].[KhachHang]( [IdKH] [int] NOT NULL primary key, [TenKH] [nvarchar](50) NULL, 27 [SDT] [varchar](10) NULL, [DiaChi] [nvarchar](50) NULL, [Email] [nvarchar] (50) NULL, [Password] [nvarchar] (20) NULL ) - Tạo bảng NhaCungCap CREATE TABLE [dbo].[NhaCungCAp]( [IdNCC] [int] IDENTITY(1,1) NOT NULL primary key, [TenNCC] [nvarchar](50) NULL, [SDT] [varchar](50) NULL, [DiaChi] [nvarchar](50) NULL ) - Tạo bảng DanhMucSanPham CREATE TABLE [dbo].[DanhMucSanPham] ( [IdDanhMuc] [int] IDENTITY(1,1) NOT NULL primary key, [name] [nvarchar](50) NULL ) - Tạo bảng HangSanXuat CREATE TABLE [dbo].[HangSanXuat] ( [IdNSX] [int] IDENTITY(1,1) NOT NULL primary key, [TenNSX] [nvarchar](50) NULL, [SDT] [varchar](50) NULL, [DiaChi] [nvarchar](50) NULL ) - Tạo bảng SanPham CREATE TABLE [dbo].[SanPham]( [IdSanPham] [int] IDENTITY(1,1) NOT NULL primary key, [TenSanPham] [nvarchar](50) NULL, [Gia] [float] NULL, [ChiTiet] [nvarchar](100) NULL, [IdDanhMuc] [int] NULL, [IdNSX] [int] NULL, [IdNCC] [int] NULL, [TinhTrang] [nvarchar](50) NULL, [TGBH] [date] NULL, [HinhAnh] [nvarchar] (100) NULL foreign key(IdDanhMuc) references DanhMucSanPham(IdDanhMuc), foreign key(IdNCC) references NhaCungCap(IdNCC), foreign key(IdNSX) references HangSanXuat(IdNSX) ) - Tạo bảng HoaDon CREATE TABLE [dbo].[HoaDon]( 28 [IdHoaDon] [int] IDENTITY(1,1) NOT NULL primary key, [IdNV] [int] NULL, [IdKH] [int] NULL, [createAt] [date] NULL, [NgayGiao] [date] NULL, [TongGia] [float] NULL foreign key (IdNV) references NhanVien(IdNV), foreign key (IdKH) references KhachHang(IdKH) ) - Tạo bảng HoaDonNhap CREATE TABLE [dbo].[HoaDonNhap]( [IdHDN] [int] IDENTITY(1,1) NOT NULL primary key, [IdNCC] [int] NULL, [IdNV] [int] NULL, [createAt] [date] NULL, [NgayGiao] [date] NULL foreign key (IdNV) references NhanVien(IdNV), foreign key (IdNCC) references NhaCungCap(IdNCC) ) - Tạo bảng ChiTietHoaDon CREATE TABLE [dbo].[ChiTietHoaDon]( [IdHoaDon] [int] NOT NULL, [IdSanPham] [int] NOT NULL, [SoLuong] [int] NULL, [Gia] [float] NULL, primary key(IdHoaDon, IdSanPham), foreign key (IdSanPham) references SanPham(IdSanPham), foreign key (IdHoaDon) references HoaDon(IdHoaDon) ) - Tạo bảng ChiTietHDN CREATE TABLE [dbo].[ChiTietHDN]( [IdSanPham] [int] NOT NULL, [IdHDN] [int] NOT NULL, [TenSanPham] [nvarchar](50) NULL, [SoLuong] [int] NULL, [Gia] [float] NULL, primary key (IdSanPham, IdHDN), foreign key (IdSanPham) references SanPham(IdSanPham), foreign key (IdHDN) references HoaDonNhap(IdHDN), ) 29 ... linh kiện PC Quản lý hàng bán linh kiện PC gồm Quản lý nhân viên, Quản lý sản phẩm, Quản lý khách hàng, Nhà Cung Cấp, Quản lý nhập hàng, Quản lý hóa đơn, Hóa Đơn Nhập Hàng, Tồn Kho, Giỏ Hàng, Chi... hệ quản lý cửa hàng bán pc 27 CHƯƠNG V: CÂU LỆNH SQL .28 CHƯƠNG I: THIẾT KẾ CƠ SỞ DỮ LIỆU VÀ MÔ HÌNH THỰC THỂ LIÊN KẾT 1.1 Giới thiệu sơ lược sở liệu quản lý cửa hàng bán linh kiện. .. tiếp người thiết kế CSDL người sử dụng cuối để xây dựng CSDL giai đoạn phân tích Nó độc lập với DBMS q trình thi cơng CSDL 1.5.2 Xác định quan hệ CSDL quản lý cửa hàng bán linh kiện PC - NhanVien
- Xem thêm -

Xem thêm: Phân tích và thiết kế CSDL quản lý cửa hàng bán linh kiện PC ,