Đăng ký Đăng nhập
Trang chủ Chuyendenganh...

Tài liệu Chuyendenganh

.DOCX
36
233
130

Mô tả:

Quản lý mượn trả sách thư viện xây dựng cơ sở dữ liệu trên SQL Server và xây dựng form trên Visual Studio
MỤC LỤC Phân chia công việc.............................................................................................3 1. Mô tả bài toán...............................................................................................3 2. Xây dựng mô hình liên kết thực thể ER.....................................................4 2.1. Xác định thực thể và thuộc tính............................................................4 2.2. Xác định liên kết thực thể và liên kết thuộc tính.................................5 2.3. Mô hình liên kết thực thể ER................................................................6 3. Chuyển mô hình thực thể liên kết thành mô hình quan hệ......................7 3.1. Chuyển các thực thể mạnh thành quan hệ..........................................7 3.2. Chuyển đổi quan hệ 1-1.........................................................................7 3.3. Chuyển đổi quan hệ 1-n.........................................................................7 3.4. Chuyển đổi quan hệ n-m........................................................................7 4. Ràng buộc toàn vẹn......................................................................................8 4.1. Ràng buộc miền giá trị...........................................................................8 4.2. Ràng buộc liên bộ...................................................................................8 4.3. Ràng buộc liên thuộc tính....................................................................10 4.4. Ràng buộc tham chiếu.........................................................................10 4.5. Ràng buộc liên bộ - liên quan hệ.........................................................12 4.6. Chuẩn hóa cơ sở dữ liệu.........................................................................12 5. Xây dựng và khai thác cơ sở dữ liệu.........................................................15 5.1. Tạo cơ sở dữ liệu và các ràng buộc.....................................................15 5.2. Mô hình cơ sở dữ liệu...........................................................................18 5.3. Các bộ dữ liệu ứng với cơ sở dữ liệu..................................................18 5.4. Khai thác cơ sở dữ liệu........................................................................25 6. Xây dựng chương trình trên Visual Studio bằng C#..............................35 1. Giao diện trang chủ.................................................................................35 2. Giao diện quản lý nhân viên...................................................................35 TÀI LIỆU THAM KHẢO................................................................................37 1 Phân chia công việc Công việc Mô tả bài toán + Tìm tài liệu tham khảo Thiết kế cơ sở dữ liệu và chuẩn hóa - Xác định các thực thể, thuộc tính và liên kết - Mô hình quan hệ ER - Chuyển đổi quan hệ 1-1, 1-n - Chuyển đổi quan hệ n-m - Ràng buộc liên thuộc tính, liên bộ - Ràng buộc tham chiếu - Chuẩn hóa Xây dựng CSDL trên SQL Server - Tạo bảng - Tạo các liên kết ràng buộc Khai thác cơ sở dữ liệu - truy vấn select - truy vấn view - Store Procedure - trigger Lập trình quản lý trên form đơn giản bằng Visual Studio Thực hiện Cả nhóm Hoa Ngọc Hoàng Anh Nguyễn Thị Hiếu Hoa Ngọc Hoàng Anh Nguyễn Thị Hiếu Hoa Ngọc Hoàng Anh Nguyễn Thị Hiếu Cả nhóm Nguyễn Thị Hiếu Hoa Ngọc Hoàng Anh Hoa Ngọc Hoàng Anh Nguyễn Thị Hiếu Hoa Ngọc Hoàng Anh Nguyễn Thị Hiếu Cả nhóm 1. Mô tả bài toán Thư viện là nơi độc giả có thể đọc và mượn sách - Thư viện được quản lý bởi nhân viên thư viên, khi độc giả có nhu cầu mượn sách, hoặc trả sách thủ thư sẽ là người cho mượn và nhận lại sách đồng thời lưu lại tên thủ thư để dễ dàng kiểm soát và giám sát - Thư viện tổ chức lưu trữ sách theo thể loại sách để độc giả có thể dễ dàng tìm thể loại mình muốn tìm đọc - Thư viện lưu trữ thông tin tác giả của các đầu sách để khi độc giả có nhu cầu có thể tìm kiếm sách mà tác giả nào đó viết để có thế lựa chọn - Mỗi thể loại sách gồm nhiều đầu sách khác nhau, để dễ quản lý cũng như tìm kiếm sách được lưu trữ các thông tin tên sách, nhà xuất 2 bản, năm xuất bản đồng thời lưu trữ số lượng sách có trong thư viện để dễ dàng quản lý. - Thư viện có nhiều độc giả mượn sách, để mượn được sách mỗi người cần có thẻ độc giả. Thư viện sẽ làm thẻ độc giả khi mọi người có yêu cầu. Khi làm thẻ độc giả thư viện sẽ lưu các thông tin như tên độc giả, năm sinh, giới tính, địa chỉ. - Khi độc giả có nhu cầu mượn sách, quản lý thư viện sẽ lập phiếu mượn với các thông tin: tên độc giả, ngày mượn, ngày hẹn trả. Số ngày mượn không quá 15 ngày - Mỗi phiếu mượn có thể mượn nhiều đầu sách, một đầu sách cũng có thể xuất hiện ở nhiều phiếu mượn - Khi độc giả trả sách nhân viên thư viện kiểm tra sách đồng thời lập phiếu trả gồm các thông tin sách trả, ngày trả, Tình trạng sách, ghi chú. Ngày trả phải lớn hơn hoặc bằng ngày hẹn trả. Nếu trả sau ngày hẹn trả sẽ tùy thời gian trả chậm mà có quy định xử phạt theo quy định. Đồng thời kiểm tra tình trạng sách và có ghi chú chính xác. Mỗi phiếu trả có thể trả nhiều đầu sách 2. Xây dựng mô hình liên kết thực thể ER 2.1. Xác định thực thể và thuộc tính NHÂN VIÊN: Tên nhân viên, giới tính, địa chỉ, đt Thực thể NHÂN VIÊN chưa có thuộc tính định danh →thêm thuộc tính mã nhân viên để định danh cho thực thể NHÂN VIÊN + Thuộc tính mã nhân viên: khóa THỂ LOẠI SÁCH: Tên loại Thực thể THỂ LOẠI SÁCH chưa có thuộc tính định danh →thêm thuộc tính mã thể loại để định danh cho thực thể THỂ LOẠI SÁCH + Thuộc tính mã thể loại: khóa TÁC GIẢ: Tên tác giả,địa chỉ Thực thể TÁC GIẢ chưa có thuộc tính định danh →thêm thuộc tính mã tác giả để định danh cho thực thể TÁC GIẢ + Thuộc tính mã tác giả: khóa SÁCH: Tên sách,nhà xuất bản, năm xuất bản, số lượng. Thực thể SÁCH chưa có thuộc tính định danh →thêm thuộc tính mã sách để định danh cho thực thể SÁCH + Thuộc tính mã sách: khóa ĐỘC GIẢ: tên độc giả, năm sinh, giới tính, địa chỉ 3 Thực thể ĐỘC GIẢ chưa có thuộc tính định danh →thêm thuộc tính mã độc giả để định danh cho thực thể ĐỘC GIẢ + Thuộc tính mã độc giả: khóa PHIẾU MƯỢN: Số phiếu mượn, ngày mượn, ngày hẹn trả. + Thuộc tính số phiếu mượn: khóa PHIẾU TRẢ: Số phiếu trả, tên sách trả,ngày trả, tình trạng, ghi chú + Thuộc tính số phiếu trả: khóa 2.2. Xác định liên kết thực thể và liên kết thuộc tính 4 2.3. Mô hình liên kết thực thể ER 3. Chuyển mô hình thực thể liên kết thành mô hình quan hệ 5 3.1. Chuyển các thực thể mạnh thành quan hệ R1: THELOAISACH ( Mã thể loại, Tên thể loại) R2: SACH ( Mã sách, Tên sách, Nhà xuất bản, Năm xuất bản, Số lượng) R3: TACGIA ( Mã tác giả, Tên tác giả, Địa chỉ) R4: DOCGIA ( Mã độc giả, Tên độc giả, Năm sinh, Giới tính, Địa chỉ) R5: NHANVIEN ( Mã nhân viên, Tên nhân viên, Ngày sinh, giới tính, Địa chỉ, Điện thoại) R6: PHIEUMUON ( Số phiếu mượn, Ngày mượn, Ngày hẹn trả) R7: PHIEUTRA ( Số phiếu trả, Ngày trả, Tình trạng, Ghi chú) 3.2. Chuyển đổi quan hệ 1-1 Xét liên kết PHIEUMUON có PHIEUTRA R7.1: PHIEUTRA ( Số phiếu trả, Ngày trả, Tình trạng, Ghi chú, Số phiếu mượn) 3.3. Chuyển đổi quan hệ 1-n Xét liên kết SACH thuộc THELOAISACH R2.1: SACH ( Mã sách, Tên sách, Nhà xuất bản, Năm xuất bản, Số lượng, Mã thể loại) Xét liên kết DOCGIA có PHIEUMUON R6.1: PHIEUMUON ( Số phiếu mượn, Ngày mượn, Ngày hẹn trả, Mã độc giả) Xét liên kết DOCGIA có PHIEUTRA R7.2: PHIEUTRA ( Số phiếu trả, Ngày trả, Tình trạng, Ghi chú, Số phiếu mượn, Mã độc giả) Xét liên kết NHANVIEN lập PHIEUMUON R6.2: PHIEUMUON ( ( Số phiếu mượn, Ngày mượn, Ngày hẹn trả, Mã độc giả, Mã nhân viên) Xét liên kết NHANVIEN lập PHIEUTRA R7.3: PHIEUTRA ( Số phiếu trả, Ngày trả, Tình trạng, Ghi chú, Số phiếu mượn, Mã độc giả, Mã nhân viên) 3.4. Chuyển đổi quan hệ n-m Xét liên kết TACGIA viết SACH R8: TACGIA_SACH ( Mã tác giả, Mã sách) Xét liên kết SACH có PHIEUMUON R9: CHITIETPHIEUMUON ( Số phiếu mượn, Mã sách, Số lượng) Xét liên kết SACH có PHIEUTRA R10: CHITIETPHIEUTRA ( Số phiếu trả, Mã sách, Số lượng) 6 Kết quả việc chuyển đổi mô hình ER sang mô hình quan hệ: THELOAISACH ( Mã thể loại, Tên thể loại) SACH ( Mã sách, Tên sách, Nhà xuất bản, Năm xuất bản, Số lượng, Mã thể loại) TACGIA ( Mã tác giả, Tên tác giả, Địa chỉ) DOCGIA ( Mã độc giả, Tên độc giả, Năm sinh, Giới tính, Địa chỉ) NHANVIEN ( Mã nhân viên, Tên nhân viên, Ngày sinh, giới tính, Địa chỉ, Điện thoại) PHIEUMUON ( Số phiếu mượn, Ngày mượn, Ngày hẹn trả, Mã độc giả, Mã nhân viên) PHIEUTRA ( Số phiếu trả, Ngày trả, Tình trạng, Ghi chú, Số phiếu mượn, Mã độc giả, Mã nhân viên) TACGIA_SACH ( Mã tác giả, Mã sách) CHITIETPHIEUMUON ( Số phiếu mượn, Mã sách, Số lượng) CHITIETPHIEUTRA ( Số phiếu trả, Mã sách, Số lượng) 4. Ràng buộc toàn vẹn 4.1. Ràng buộc miền giá trị R1: “Số lượng sách trong kho là kiểu nguyên dương” Bối cảnh: SACH Hình thức: ∀ x ∈ SACH: x.soLuong>=0 R1 SACH Thêm +(soLuong) Xóa - Sửa +(soLuong) R2: “Số lượng sách mà độc giả mượn là số nguyên và lớn hơn 0” Bối cảnh: CHITIETPHIEUMUON Hình thức: ∀ x ∈ CHITIETPHIEUMUON: x.soLuong>0 R2 CHITIETPHIEUMUO N Thêm +(soLuong) Xóa - Sửa +(soLuong) R3: “Số lượng sách mà độc giả trả là số nguyên và lớn hơn 0” Bối cảnh: CHITIETPHIEUTRA Hình thức: ∀ x ∈ CHITIETPHIEUTRA: x.soLuong>0 R3 CHITIETPHIEUTR A 4.2. Thêm +(soLuong) Xóa - Sửa +(soLuong) Ràng buộc liên bộ 7 R4: “Mỗi thể loại sách có 1 mã thể loại duy nhất” Bối cảnh: THELOAISACH Hình thức: ∀ tl1, tl2 ∈ THELOAISACH: tl1≠ tl2 ⇒ tl1.maTL ≠ tl2.maTL R4 THELOAISACH Thêm +(maTL) Xóa - Sửa -*(maTL) R5: “Mỗi sách có 1 mã thể loại duy nhất” Bối cảnh: SACH Hình thức: ∀ s1, s2 ∈ SACH: s1≠ s2 ⇒ s1.maSach ≠ s2.maSach R5 SACH Thêm +(maSach) Xóa - Sửa -*(maSach) R6: “Mỗi tác giả có 1 mã tác giả duy nhất” Bối cảnh: TACGIA Hình thức: ∀ tg1, tg2 ∈ TACGIA: tg1≠ tg2 ⇒ tg1.maTG ≠ tg2.maTG R6 TACGIA Thêm +(maTG) Xóa - Sửa -*(maTG) R7: “Mỗi độc giả có 1 mã độc giả duy nhất” Bối cảnh: DOCGIA Hình thức: ∀ dg1, dg2 ∈ DOCGIA: dg1≠ tl2 ⇒ dg1.maDG ≠ tl2.maDG R7 DOCGIA Thêm +(maDG) Xóa - Sửa -*(maDG) R8: “Mỗi nhân viên có 1 mã nhân viên duy nhất” Bối cảnh: NHANVIEN Hình thức: ∀ nv1, nv2 ∈ NHANVIEN: nv1≠ nv2 ⇒ nv1.maNV ≠ nv2.maNV R8 NHANVIEN Thêm +(maNV) Xóa - Sửa -*(maNV) R9: “Mỗi phiếu mượn có 1 số phiếu mượn duy nhất” Bối cảnh: PHIEUMUON Hình thức: ∀ pm1, pm2 ∈ PHIEUMUON: pm1≠ pm2 ⇒ pm1.soPhieuMuon ≠ pm2.soPhieuMuon 8 R9 PHIEUMUO N Thêm +(soPhieuMuon) Xóa - Sửa -*(soPhieuMuon) R10: “Mỗi phiếu trả có 1 số phiếu trả duy nhất” Bối cảnh: PHIEUTRA Hình thức: ∀ pt1, pt2 ∈ PHIEUTRA: pt1≠ pt2 ⇒ pt1.soPhieuTra ≠ pt2.soPhieuTra R10 PHIEUTRA Thêm +(soPhieuTra) Xóa - Sửa -*(soPhieuTra) 4.3. Ràng buộc liên thuộc tính R11: “Số ngày mượn không quá 15 ngày” Bối cảnh: PHIEUMUON Hình thức: ∀ x ∈ PHIEUMUON: x.ngayhenTra – x.ngayMuon>=15 R11 PHIEUMUO N Thêm +(ngayMuon, ngayHenTra) Xóa - Sửa +(ngayMuon, ngayHenTra) 4.4. Ràng buộc tham chiếu R12: “Tập các giá trị maTL tìm thấy trong quan hệ SACH phải được tìm thấy trong tập các giá trị maTL trong quan hệ THELOAISACH” Bối cảnh: SACH, THELOAISACH Hình thức: ∀ sach ∈ SACH, ∃ tl ∈ THELOAISACH: sach.maTL= tl.maTL R12 SACH THELOAISACH Thêm +(maTL) - Xóa +(maTL) Sửa +(maTL) -* R13: “Tập các giá trị maDG tìm thấy trong quan hệ PHIEUMUON phải được tìm thấy trong tập các giá trị maDG trong quan hệ DOCGIA” Bối cảnh: DOCGIA, PHIEUMUON Hình thức: ∀ pm ∈ PHIEUMUON, ∃ dg ∈ DOCGIA: pm.maDG= dg.maDG 9 R13 PHIEUMUON DOCGIA Thêm +(maDG) - Xóa +(maDG) Sửa +(maDG) -* R14: “Tập các giá trị maNV tìm thấy trong quan hệ PHIEUMUON phải được tìm thấy trong tập các giá trị maNV trong quan hệ NHANVIEN” Bối cảnh: NHANVIEN, PHIEUMUON Hình thức: ∀ pm ∈ PHIEUMUON, ∃ nv ∈ NHANVIEN: pm.maNV= nv.maNV R14 PHIEUMUON NHANVIEN Thêm +(maNV) - Xóa +(maNV) Sửa +(maNV) -* R15: “Tập các giá trị maDG tìm thấy trong quan hệ PHIEUTRA phải được tìm thấy trong tập các giá trị maDG trong quan hệ DOCGIA” Bối cảnh: DOCGIA, PHIEUTRA Hình thức: ∀ pt ∈ PHIEUTRA, ∃ dg ∈ DOCGIA: pt.maDG= dg.maDG R15 PHIEUTRA DOCGIA Thêm +(maDG) - Xóa +(maDG) Sửa +(maDG) -* R16: “Tập các giá trị maNV tìm thấy trong quan hệ PHIEUTRA phải được tìm thấy trong tập các giá trị maNV trong quan hệ NHANVIEN” Bối cảnh: NHANVIEN, PHIEUTRA Hình thức: ∀ pt ∈ PHIEUTRA, ∃ nv ∈ NHANVIEN: pt.maNV= nv.maNV R16 PHIEUTRA NHANVIEN Thêm +(maNV) - Xóa +(maNV) Sửa +(maNV) -* R17: “Tập các giá trị soPhieuMuon tìm thấy trong quan hệ PHIEUTRA phải được tìm thấy trong tập các giá trị soPhieuMuon trong quan hệ PHIEUMUON” Bối cảnh: PHIEUMUON, PHIEUTRA 10 Hình thức: ∀ pt ∈ PHIEUTRA, ∃ pm ∈ PHIEUMUON: pt.soPhieuMuon= pm.soPhieuMuon R17 PHIEUTRA PHIEUMUON Thêm +(soPhieuMuon) - Xóa + (soPhieuM uon) Sửa +(soPhieuMuon) -* 4.5. Ràng buộc liên bộ - liên quan hệ R18: “Với mỗi phiếu trả, phải có ngày trả sau ngày mượn” Bối cảnh: PHIEUMUON, PHIEUTRA Hình thức: ∀ pt ∈ PHIEUTRA, ∃ pm ∈ PHIEUMUON: pt.soPhieuMuon=pm.soPhieuMuon ∧ pm.ngayMuon < pt.ngayTra R18 PHIEUMUON PHIEUTRA Thêm + Xóa + - Sửa +(ngayMuon) +(ngayTra) 4.6. Chuẩn hóa cơ sở dữ liệu Chuẩn hóa 1NF Quan hệ R ở dạng chuẩn 1NF nếu mọi thuộc tính của R đều chứ các giá trị nguyên tố, không chứa các thuộc tính đa trị và thộc tính phức hợp Chuẩn hóa 2NF Lược đồ quan hệ R ở dạng chuẩn 2NF khi và chỉ khi thỏa mãn: R đã là dạng chuẩn 1NF Mọi thuộc tính không khóa của R là phụ thuộc hàm đầy đủ vào khóa chính Chuẩn hóa 3NF Lược đồ quan hệ R ở dạng chuẩn 3NF khi và chỉ khi thỏa mãn: R đã là dạng chuẩn 2NF Mọi thuộc tính không khóa đều không phụ thuộc bắc cầu vào bất kỳ khóa chính của quan hệ Xét quan hệ THELOAISACH (Mã thể loại, Tên thể loại) Ta có tập phụ thuộc hàm: F= { 1.Mã thể loại → Tên thể loại} Ta có khóa Mã thể loại ⇒ Quan hệ ở dạng chuẩn 1NF 11 Các thuộc tính không khóa: Tên thể loại phụ thuộc đầy đủ vào khóa chính Mã thể loại ⇒ Quan hệ ở dạng chuẩn 2NF Các phụ thuộc không khóa đều không phụ thuộc bắc cầu khóa chính của quan hệ ⇒ Quan hệ ở dạng chuẩn hóa 3NF Xét quan hệ SACH ( Mã sách, Tên sách, Nhà xuất bản, Năm xuất bản, Số lượng, Mã thể loại) Ta có tập phụ thuộc hàm: F= { 1.Mã sách → Tên sách, Nhà xuất bản, Năm xuất bản, Số lượng } Ta có khóa Mã sách ⇒ Quan hệ ở dạng chuẩn 1NF Các thuộc tính không khóa: Tên sách, Nhà xuất bản, Năm xuất bản, Số lượng phụ thuộc đầy đủ vào khóa chính Mã sách ⇒ Quan hệ ở dạng chuẩn 2NF Các phụ thuộc không khóa đều không phụ thuộc bắc cầu khóa chính của quan hệ ⇒ Quan hệ ở dạng chuẩn hóa 3NF Xét quan hệ TACGIA ( Mã tác giả, Tên tác giả, Địa chỉ) Ta có tập phụ thuộc hàm: F= { 1.Mã tác giả → Tên tác giả, Địa chỉ} Ta có khóa Mã tác giả ⇒ Quan hệ ở dạng chuẩn 1NF Các thuộc tính không khóa: Tên tác giả, Địa chỉ phụ thuộc đầy đủ vào khóa chính Mã tác giả ⇒ Quan hệ ở dạng chuẩn 2NF Các phụ thuộc không khóa đều không phụ thuộc bắc cầu khóa chính của quan hệ ⇒ Quan hệ ở dạng chuẩn hóa 3NF Xét quan hệ DOCGIA ( Mã độc giả, Tên độc giả, Năm sinh, Giới tính, Địa chỉ) Ta có tập phụ thuộc hàm: F= { 1.Mã độc giả → Tên độc giả, Năm sinh, giới tính, Địa chỉ} Ta có khóa Mã độc giả ⇒ Quan hệ ở dạng chuẩn 1NF Các thuộc tính không khóa: Tên độc giả, Năm sinh, giới tính, Địa chỉ phụ thuộc đầy đủ vào khóa chính Mã độc giả ⇒ Quan hệ ở dạng chuẩn 2NF Các phụ thuộc không khóa đều không phụ thuộc bắc cầu khóa chính của quan hệ ⇒ Quan hệ ở dạng chuẩn hóa 3NF Xét quan hệ NHANVIEN ( Mã nhân viên, Tên nhân viên, Ngày sinh, giới tính, Địa chỉ, Điện thoại) Ta có tập phụ thuộc hàm: 12 F= { 1.Mã nhân viên → Tên nhân viên, Ngày sinh, giới tính, Địa chỉ, Điện thoại} Ta có khóa Mã nhân viên ⇒ Quan hệ ở dạng chuẩn 1NF Các thuộc tính không khóa: Tên nhân viên, Ngày sinh, giới tính, Địa chỉ, Điện thoại phụ thuộc đầy đủ vào khóa chính Mã nhân viên ⇒ Quan hệ ở dạng chuẩn 2NF Các phụ thuộc không khóa đều không phụ thuộc bắc cầu khóa chính của quan hệ ⇒ Quan hệ ở dạng chuẩn hóa 3NF Xét quan hệ PHIEUMUON ( Số phiếu mượn, Ngày mượn, Ngày hẹn trả, Mã độc giả, Mã nhân viên) Ta có tập phụ thuộc hàm: F= { 1.Số phiếu mượn → Ngày mượn, Ngày hẹn trả} Ta có khóa Số phiếu mượn ⇒ Quan hệ ở dạng chuẩn 1NF Các thuộc tính không khóa: Ngày mượn, Ngày hẹn trả phụ thuộc đầy đủ vào khóa chính Số phiếu mượn ⇒ Quan hệ ở dạng chuẩn 2NF Các phụ thuộc không khóa đều không phụ thuộc bắc cầu khóa chính của quan hệ ⇒ Quan hệ ở dạng chuẩn hóa 3NF Xét quan hệ PHIEUTRA ( Số phiếu trả, Ngày trả, Tình trạng, Ghi chú, Số phiếu mượn, Mã độc giả, Mã nhân viên) Ta có tập phụ thuộc hàm: F= { 1.Số phiếu trả → Ngày trả, Tình trạng, Ghi chú} Ta có khóa Số phiếu trả ⇒ Quan hệ ở dạng chuẩn 1NF Các thuộc tính không khóa: Ngày trả, Tình trạng, Ghi chú phụ thuộc đầy đủ vào khóa chính Số phiếu trả⇒ Quan hệ ở dạng chuẩn 2NF Các phụ thuộc không khóa đều không phụ thuộc bắc cầu khóa chính của quan hệ ⇒ Quan hệ ở dạng chuẩn hóa 3NF Xét quan hệ CHITIETPHIEUMUON ( Số phiếu mượn, Mã sách, Số lượng) Ta có tập phụ thuộc hàm: F= { 1.Số phiếu mượn, Mã sách → Số lượng} Ta có khóa Số phiếu mượn, Mã sách ⇒ Quan hệ ở dạng chuẩn 1NF Các thuộc tính không khóa: Số lượng phụ thuộc đầy đủ vào khóa chính Số phiếu mượn, Mã sách ⇒ Quan hệ ở dạng chuẩn 2NF Các phụ thuộc không khóa đều không phụ thuộc bắc cầu khóa chính của quan hệ ⇒ Quan hệ ở dạng chuẩn hóa 3NF 13 Xét quan hệ CHITIETPHIEUTRA ( Số phiếu trả, Mã sách, Số lượng) Ta có tập phụ thuộc hàm: F= { 1.Số phiếu trả, Mã sách → Số lượng} Ta có khóa Số phiếu trả, Mã sách ⇒ Quan hệ ở dạng chuẩn 1NF Các thuộc tính không khóa: Số lượng phụ thuộc đầy đủ vào khóa chính Số phiếu trả, Mã sách ⇒ Quan hệ ở dạng chuẩn 2NF Các phụ thuộc không khóa đều không phụ thuộc bắc cầu khóa chính của quan hệ ⇒ Quan hệ ở dạng chuẩn hóa 3NF 5. Xây dựng và khai thác cơ sở dữ liệu 5.1. Tạo cơ sở dữ liệu và các ràng buộc --Tạo database create database QL_ThuVien use QL_ThuVien go --Bảng Thể loại sách create table THELOAISACH ( maTL varchar(20) primary key, tenTL nvarchar(100) ) --Bảng sách create table SACH ( maSach varchar(20) primary key, tenSach nvarchar(100), NXB nvarchar(100), namXB int, soLuong int, maTL varchar(20), foreign key( maTL) references THELOAISACH(maTL) ) --Bảng tác giả create table TACGIA ( 14 maTG varchar(20) primary key, tenTG nvarchar(50), diaChi nvarchar(120) ) --Bảng độc giả create table DOCGIA ( maDG varchar(20) primary key, tenDG nvarchar(100), namSinh datetime, gioiTinh int check (gioitinh in(1,0)), diaChi nvarchar(120) ) --Bảng nhân viên create table NHANVIEN ( maNV varchar(20) primary key, tenNV nvarchar(100), ngaySinh datetime, gioiTinh int check (gioitinh in(1,0)), diaChi nvarchar(120), dienThoai varchar(15) ) --Bảng phiếu mượn create table PHIEUMUON ( soPhieuMuon varchar(20) primary key, ngayMuon datetime, ngayHenTra datetime, maDG varchar(20) NOT NULL references DOCGIA(maDG), maNV varchar(20) NOT NULL references NHANVIEN(maNV) ) --Bảng phiếu trả create table PHIEUTRA ( soPhieuTra varchar(20) primary key, ngayTra datetime, 15 tinhTrang nvarchar(100), ghiChu nvarchar(500), soPhieuMuon varchar(20) NOT NULL references PHIEUMUON(soPhieuMuon), maDG varchar(20) NOT NULL references DOCGIA(maDG), maNV varchar(20) NOT NULL references NHANVIEN(maNV) ) --Bảng tác giả- sách create table TACGIA_SACH ( maTG varchar(20) NOT NULL references TACGIA(maTG), maSach varchar(20) NOT NULL references SACH(maSach), primary key (maTG, maSach) ) --Bảng chi tiết phiếu mượn create table CHITIETPHIEUMUON ( soPhieuMuon varchar(20) NOT NULL references PHIEUMUON(soPhieuMuon), maSach varchar(20) NOT NULL references SACH(maSach), soLuong int, primary key( soPhieuMuon, maSach) ) --Bảng chi tiết phiếu trả create table CHITIETPHIEUTRA ( soPhieuTra varchar(20) NOT NULL references PHIEUTRA(soPhieuTra), maSach varchar(20) NOT NULL references SACH(maSach), soLuong int, primary key( soPhieuTra, maSach) ) 16 5.2. Mô hình cơ sở dữ liệu 5.3. Các bộ dữ liệu ứng với cơ sở dữ liệu --Bảng thể loại sách insert into THELOAISACH( maTL, tenTL) values ('TL01',N'Truyện tranh'), ('TL02',N'Công nghệ thông tin'), ('TL03', N'Kiếm hiệp'), ('TL04',N'Khoa học kỹ thuật'), ('TL05','Truyện cười tiếu lâm'), ('TL06',N'Tâm lý-Kỹ năng sống'), ('TL07',N'Lịch sử- Chính trị') 17 --Bảng sách insert into SACH([maSach],[tenSach],[NXB],[namXB],[soLuong],[maTL]) values ('S01',N'Bốn anh tài',N'NXB Trẻ',2008, 60,'TL01'), ('S02', N'Cây tre trăm đốt',N'NXB Mỹ thuật', 2010, 40, 'TL01'), ('S03',N'Chàng ngốc học khôn',N'NXB Mỹ thuật', 2012,50,'TL01'), ('S04',N'Giải thuật và lập trình', N'NXB Sư phạm Hà Nội', 2001, 7, 'TL02'), ('S05',N'Chung vô diện', N'NXB Văn nghệ ',2012, 43, 'TL03'), ('S06',N'Tiểu lý phi đao',N'NXB Thông tin', 2007, 15,'TL03'), ('S07',N'Anh hùng xạ điêu',N'NXB Đà Nẵng',2001, 40,'TL03'), ('S08',N'Mật mã từ cổ điểm đến lượng tử', N'NXB Trẻ',2001,7,'TL04'), ('S09',N'Khám phá rượu vang', N'NXB Bách khoa Hà Nội',2007,34,'TL04'), ('S10',N'Bố là bà giúp việc',N'NXB Hội nhà văn',2010,15,'TL05'), ('S11',N'Chuyện đời trong quán rượu',N'NXB Nhân văn', 2007,35,'TL05'), ('S12',N'Lắng nghe yêu thương', N'NXB Trẻ',2013,17,'TL06'), ('S13',N'55 Cách cư xử đúng mực',N'NXB Đại học sư phạm',2015,20,'TL06'), ('S14',N'Vua trẻ trong lịch sử Việt Nam', N'NXB Thanh niên',2009,15,'TL07'), ('S15',N'Bàn về Trung Quốc', N'NXB Công an nhân dân',2012,36,'TL07'), ('S16',N'Chùa Yên Tử lịch sử truyền thuyết di tích và thắng cảnh',N'NXB Văn học thông tin Hà Nội',2004,17,'TL07') 18 --Bảng đọc giả insert into DOCGIA([maDG],[tenDG],[namSinh],[gioiTinh], [diaChi]) values ('DG01',N'Nguyễn Thu Nguyệt','01/02/1995',0,N'Tương Mai'), ('DG02',N'Hoàng Minh Quang','03/29/1999',1,N'Thanh Xuân'), ('DG03',N'Vũ Tuấn Anh','09/17/1985',1,N'Long Biên'), ('DG04',N'Đỗ Thanh Thảo','12/25/2001',0,N'Hai Bà Trưng'), ('DG05',N'Phan Văn Đạt','10/27/1997',1,N'Hà Đông'), ('DG06',N'Đặng Thu Hà','02/15/1998',0,N'Cầu Giấy'), ('DG07',N'Nguyễn Thu Hằng','05/19/1995',0,N'Hoàng Mai') --Bảng tác giả insert into TACGIA([maTG],[tenTG],[diaChi]) values ('TG01',N'Lê Minh Hoàng', N'Hà Nội'), ('TG02',N'Tô Chẩn',N'Hải Phòng'), ('TG03',N'Truyện dân gian Việt Nam', ''), ('TG04',N'Truyện cố tích Việt Nam',''), ('TG05',N'Cổ Long',N'Đài Bắc'), ('TG06',N'Kim Dung',N'Trung Quốc'), ('TG07',N'Simon Singh','Mỹ'), ('TG08',N'Tô Việt',N'Hà Nội'), ('TG09',N'Anne Fine',N'Nga'), ('TG10',N'Azit Nesin',N'Thổ Nhĩ Kỳ'), ('TG11',N'Susanna Tamaro',N'Ý'), ('TG12',N'XACT',''), ('TG13',N'Vũ Ngọc Khánh',N'Hà Nội'), ('TG14',N'Henry A. Kissinger',N'Đức'), ('TG15',N'Trần Trương',N'Huế') 19 --tác giả sách insert into TACGIA_SACH([maTG],[maSach])values ('TG01','S04'), ('TG03','S02'), ('TG04','S01'), ('TG04','S03'), ('TG02','S05'), ('TG05','S06'), ('TG06','S07'), ('TG07','S08'), ('TG08','S09'), ('TG09','S10'), ('TG10','S11'), ('TG11','S12'), ('TG12','S13'), ('TG13','S14'), ('TG14','S15'), ('TG15','S15') 20
- Xem thêm -

Tài liệu liên quan