Chương 1 Đại Cương Các Hệ Cơ Sở Dữ Liệu Trang 1 K ho a C NTT 2 N ăm 2 01 4 B ài Giả ng C ơ S ở Dữ L i ệu CHƯƠNG 1 ĐẠI CƯƠNG VỀ CÁC HỆ CƠ SỞ DỮ LIỆU 1 1 Khái niệm về cơ sở dữ liệu (Database) 1 1 1Khái.
Chương Đại Cương Các Hệ Cơ Sở Dữ Liệu Trang CHƯƠNG : ĐẠI CƯƠNG VỀ CÁC HỆ CƠ SỞ DỮ LIỆU 1.1 Khái niệm sở liệu (Database) 1.1.1Khái niệm sở liệu Cơ sở liệu tập hợp có cấu trúc liệu lưu trữ thiết bị ghi nhớ truy xuất đưọc chương trình máy tính, gọi chương trình quản trị sở liệu, để thoả mãn đồng thời cho nhiều người sử dụng Hệ sở liệu Hình 1.1Hệ sở liệu 1.1.2 Mục đích hệ sở liệu Giả sử ta xem xét phần việc lưu trữ thông tin ngân hàng tiết kiệm khách hàng tài khoản mà lưu files hệ thống thường trực Hơn nữa, hệ thống chứa số chương trình ứng dụng cho phép người sử dụng thao tác files này, bao gồm chương trình: Chương trình ghi nợ gửi tiền vào tài khoản Chương trình thêm tài khoản Chương trình tốn Chương trình phát sinh bảng thống kê hàng tháng Các chương trình viết lập trình viên hệ thống để đáp ứng nhu cầu tổ chức ngân hàng.Các chương trình ứng dụng thêm vào hệ thống có nhu cầu phát sinh Giả sử điều lệ phủ cho phép ngân hàng tiết kiệm cung cấp thông tin kiểm tra tài khoản Như số files thường trực tạo để chứa thông tin tất kiểm tra tài khoản có ngân hàng Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Chương Đại Cương Các Hệ Cơ Sở Dữ Liệu Trang chương trình ứng dụng cần viết Vì theo thời gian nhiều files nhiều chương trình ứng dụng thêm vào hệ thống Hệ thống xử lý file (file-processing system) mô tả hỗ trợ hệ điều hành Nhiều mẫu tin thường trực lưu trữ nhiều files số chương trình ứng dụng khác viết để trích thêm mẫu tin vào files thích hợp Lược đồ có số bất lợi chính: Sự dư thừa liệu mâu thuẫn liệu (Data redundancy and inconsistency): Khi files chương trình ứng dụng tạo lập trình viên khác qua thời gian dài files có định dạng khác chương trình viết nhiều ngơn ngữ lập trình Hơn nữa, mẫu thơng tin nhân nhiều nơi (files) Ví dụ địa số phone khách hàng xuất file chứa mẫu tin tài khoản tiết kiệm file chứa mẫu tin kiểm tra tài khoản Sự dư thừa dẫn đến kho lưu trữ chi phí truy xuất phải lớn Hơn nữa, dẫn đến mâu thuẫn liệu, nhiều copies liệu không phù hợp lâu dài Ví dụ thay đổi địa khách hàng phản ánh mẫu tin tài khoản tiết kiệm mà không nơi khác hệ thống Kết dẫn đến mâu thuẫn liệu Sự khó khăn việc truy xuất liệu Giả sử nhân viên ngân hàng cần tìm kiếm tên khách hàng sống thành phố có mã 78733 Nhân viên yêu cầu phòng xử lý liệu đưa danh sách Bởi yêu cầu không dự định trước hệ thống thiết kế, nên khơng có chương trình ứng dụng đáp ứng yêu cầu Tuy nhiên có chương trình phát sinh danh sách tất khách hàng Người nhân viên lúc có hai chọn lựa: lấy danh sách tất khách hàng trích thông tin cần thiết tay, hai yêu cầu phịng xử lý liệu viết chương trình ứng dụng cần thiết Cả hai lựa chọn không thoả mãn Giả sử chương trình viết và, vài ngày sau , nhân viên cần lọc lại danh sách cho chứa khách hàng có tài khoản lớn $10000 Một chương trình phát sinh danh sách khơng có Một lần nữa, nhân viên có hai chọn lựa trước mà khơng có thoả mãn Ở môi trường xử lý file quy ước không cho phép liệu cần thiết tìm kiếm cách hợp lý hiệu Các hệ thống tìm kiếm thơng tin tốt phải phát triển cho việc sử dụng chung Sự tách biệt liệu: Bởi liệu rải nhiều files, files định dạng khác nhau, nên gây khó khăn cho việc viết chương trình ứng dụng để tìm kiếm thơng tin cần thiết Sự bất thường truy xuất đồng thời (Concurrent access anomalies) Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Chương Đại Cương Các Hệ Cơ Sở Dữ Liệu Trang Để cải tiến thực thi toàn hệ thống đạt thời gian đáp ứng nhanh, nhiều hệ thống cho phép nhiều người sử dụng cập nhật liệu đồng thời Trong môi trường thế, tương tác cập nhật đồng thời đưa đến hậu mâu thuẫn liệu Giả sử tài khoản A có $500 Nếu có hai khách hàng rút tiền ($50 $100 tương ứng) từ tài khoàn A thời điểm, kết việc giải đồng thời gây mâu thuẫn tài khoản Cụ thể, tài khoản chứa $450 $400 thay $350 Để đề phịng khả này, việc giám sát hệ thống phải trì Bởi liệu truy xuất chương trình ứng dụng khác mà trước khơng có quan hệ với nhau, nên việc giám sát khó khăn Các vấn đế an tồn (security problems) Không thể để người sử dụng có khả truy xuất tất liệu Như hệ thống ngân hàng, phận làm lương cần thấy phần sở liệu thông tin nhân viên ngân hàng Họ không cần truy xuất thông tin tài khoản khách hàng Bởi chương trình ứng dụng thêm vào hệ thống theo cách khơng dự tính trước nên gây khó khăn cho việc tuân thủ ràng buộc an toàn Các vấn đề toàn vẹn (Integrity problems) Các giá trị liệu lưu trữ sở liệu phải thoả mãn số kiểu ràng buộc tồn vẹn Ví dụ ngân khoản khơng xuống thấp số (như $25) Các ràng buộc đưa vào hệ thống cách thêm mã lệnh thích hợp, gây khó khăn thay đổi chương trình Vấn đề phức tạp ràng buộc bao gồm số liệu từ nhiều files khác nhau.Những khó khăn này, số khác nữa, thúc đẩy phát triển hệ quản trị sở liệu Sau này, thấy quan niệm thuật toán mà phát triển cho hệ sở liệu để giải vấn đề bàn 1.2 Kiến trúc hệ thống sở liệu Hệ quản trị sở liệu tập hợp files có mối quan hệ tập chương trình cho phép người sử dụng truy xuất thay đổi files Mục đích hệ sở liệu cung cấp cho người sử dụng nhìn trừu tượng (abstract view) liệu Hệ thống dấu số chi tiết phức tạp làm liệu lưu trữ trì Tuy nhiên hệ thống Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Chương Đại Cương Các Hệ Cơ Sở Dữ Liệu Khung Nhìn Trang Khung Nhìn Mức quan niệm Mứcvậtlý Hình 1.2 Kiến trúc hệ sở liệu dùng được, liệu phải đươc tìm kiếm cách có hiệu Việc dẫn đến việc thiết kế kiến trúc sở liệu phức tạp cho thể liệu sở liệu Bởi nhiều người sử dụng hệ thống sở liệu chuyên gia máy tính nên phức tạp dấu số mức Mức vật lý (Physical level) Đây mức thấp mô tả liệu lưu trữ thực Tại mức vật lý, cấu trúc vật lý phức tạp mô tả chi tiết Mức quan niệm (Conceptual level) Mức quan niệm mức cao tiếp theo, mơ tả mơ hình liệu phản ánh giới thực mà ta cần lưu trữ sở liệu Ở toàn sở liệu mô tả số lược đồ quan hệ đơn giản Mặc dù việc thực lược đồ quan hệ mức quan niệm bao gồm nhiều cấu trúc phức tạp mức vật lý, người sử dụng mức quan niệm không cần quan tâm đến chúng Mức quan niệm dùng cho người quản trị sở liệu lập trình viên, họ phải định thông tin giữ lại sở liệu lập trình Mức khung nhìn (View level) Đây mức cao mơ tả phần sở liệu Thay sử dụng lược đồ đơn giản mức quan niệm, số lược đồ phức tạp giữ lại kích thước liệu lớn sở liệu Nhiều người sử dụng hệ thống sở liệu không quan tâm đến tất thông tin mà phần sở liệu Do để đơn giản hóa tương tác với hệ thống, mức khung nhìn định nghĩa Hệ Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Chương Đại Cương Các Hệ Cơ Sở Dữ Liệu Trang thống cung cấp nhiều khung nhìn sở liệu cho đối tượng sử dụng khác Mối quan hệ ba mức minh họa qua hình1.2 1.3 Hệ quản trị sở liệu (Database Management System - DBMS) 1.3.1 Khái niệm Hệ quản trị sở liệu phần mềm tức hệ thống chương trình cho phép người sử dụng giao tiếp với sở liệu minh họa hình 1.3 USER DATABASE DBMS Hình 1.3 Giao tiếp người sử dụng với sở liệu Hệ quản trị sở liệu cho phép ta tổ chức sở liệu, lưu trữ thiết bị ghi nhớ cung cấp cho thủ tục để sửa đổi cấu trúc sở liệu, cập nhật liệu truy vấn liệu 1.3.2 Các chức hệ quản trị sở liệu Các hệ quản trị sở liệu cung cấp cho chức sau: 1) Hỗ trợ mơ hình liệu để tổ chức sở liệu nghĩa công cụ để trừu tượng hóa cách tốn học giới thực cần quản lý thơng qua người sử dụng thấy liệu giới thực Ví dụ: Tổ chức thơng tin Sinh viên gồm thông tin: Mã sinh viên Họ tên Địa Năm sinh Lớp Mơ hình liệu quan hệ cho ta Sinh viên (masv, họ tên, địa chỉ, năm sinh , lớp) thiết lập quan hệ : Tương tự, để tổ chức thông tin môn học gồm thông tin: mã môn học Tên môn số tiết Ta có quan hệ sau: Mơn học ( mã mơn học, tên môn học, sốtiết) 2) Hỗ trợ cho vài ngơn ngữ lập trình cấp cao cho phép người sử dụng định nghĩa cấu trúc liệu, truy xuất liệu; ngồi cịn cung cấp ngơn ngữ để thao Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Chương Đại Cương Các Hệ Cơ Sở Dữ Liệu Trang tác lên liệu truy vấn liệu Các ngơn ngữ gọi ngơn ngữ hỏi (Query Language), ngơn ngữ sử dụng rộng rãi ngôn ngữ SQL (Structured Query Language ) Ví dụ: Giả sử ta có mơ hình liệu quan hệ gồm hai quan hệ sau: Nhânviên ( tênnhânviên ,Phịng) Phịngban ( Phịng, Trưởngphịng ) Thơng tin hai quan hệ mơ tả hình 1.4 Nhân viên Tên nhân viên Phòng Lê Văn A Đào Tạo Trần Thị B Hành chánh Nguyễn Văn C Kế tốn Lê Thi E Kế hoạch Phịng Ban Phịng Trưởng phịng Kế hoạch Phạm Văn F Kế tốn Nguyễn Thị G Đào Tạo Lê Thị H Hành chánh Võ Văn T Hình 1.4 Bảng thể lược đồ quan hệ * Ai trưởng phòng nhân viên Lê Văn A ? Áp dụng câu lệnh ngôn ngữ SQL ta trả lời câu hỏi sau:: Select trưởngphòng From nhânviên, phòngban Where nhânviên.tên nhân viên = ‘Lê Văn A ‘ and nhânviên phòng = phòngban.phòng * Cho biết danh sách nhânviên trưởng phòng Lê Thị H ? Áp dụng câu lệnh ngôn ngữ SQL ta trả lời câu hỏi sau:: Select Tênnhânviên From Nhânviên, phòngban Where Phòngban.trưởngphòng = ‘Lê Thị H’ and nhân viên.phòng = phòngban.phòng * Cho biết tên người thuộc phịng kế tốn Select tên nhân viên From nhânviên Where nhân viên phịng = ‘kế tốn’ 3) Quản lý giao dịch (transaction) Cứ lần truy xuất sở liêu gọi giao dịch Hệ quản trị sở liệu cung cấp công cụ cho phép nhiều người sử dụng truy xuất đồng thời đến sở liệu Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Chương Đại Cương Các Hệ Cơ Sở Dữ Liệu Trang Kho hàng A=100 Cửa hàng Cửa hàng Hình 1.5 Giao tác cửa hàng với kho hàng Ví dụ: Giả sử lúc hai cửa hàng giao dịch với kho hàng cần cung cấp 90 mặt hàng A cho cửa hàng 30 cho cửa hàng B Nếu không quản lý chặt chẽ kho hàng đồng ý cấp cho cửa hàng Do phải thực xong giao dịch cửa hàng giao dịch cửa hàng lại thực Khi có giao dịch thay đổi liệu hệ quản trị sở liệu ngăn cản giao dịch khác truy xuất đến liệu giao dịch trước kết thúc 4) Khả bảo vệ phục hồi liệu : Hệ quản trị sở liệu có khả bảo vệ phục hồi liệu từ hệ thống bị hư hỏng tác nhân: - Virus - Chương trình khơng hồn chỉnh, thiếu an tồn nên bị hỏng người sử dụng - Đĩa hư Cơ chế bảo vệ liệu backup, nén lại liệu lại thường xuyên cất chúng vào thiết bị lưu trữ an toàn đồng thời lưu trữ giao dịch vào nhật ký Ngoài hệ thống bị hỏng hệ quản trị sở liệu cho phép phục hồi lại phần liệu bị dựa vào nhật ký giao dịch 5) Điều khiển truy xuất: Hệ quản trị sở liệu có khả giới hạn quyền truy xuất liệu người sử dụng cịn kiểm tra tính hợp lệ liệu đưa vào sở liệu Quyền truy xuất: Hệ quản trị sở liệu cho phép cấp lấy quyền thâm nhập truy xuất sở liệu cho người sử dụng quyền: - Không xem liệu - Được xem không sửa liệu - Được xem sửa liệu Mỗi người sử dụng cấp cho quyền truy xuất quyền lưu trữ bảng phân quyền Kiểm tra tính hợp lệ liệu: hệ quản trị sở liệu cho phép ràng buộc liệu liệu nhập để thể tính tồn vẹn liệu Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Chương Đại Cương Các Hệ Cơ Sở Dữ Liệu Trang 1.3.3 Khái niệm độc lập liệu chương trình Trong phần 1.2 định nghĩa kiến trúc hệ sở liệu Kiến trúc ba lớp cho phép thay đổi cấu trúc lớp mà khơng ảnh hưởng đến lớp cao kế Điều gọi độc lập liệu Độc lập liệu chương trình cấu trúc liệu dù có thay đổi chương trình khơng thay đổi Ta có loại độc lập liệu: * Độc lập liệu vật lý: trường hợp sơ đồ vật lý bị thay đổi (nghĩa đưòng địa thư mục liệu bị thay đổi, cấu trúc tập tin bị thay đổi sơ đồ ý niệm khơng thay đổi chương trình ứng dụng thay đổi Để làm điều ta phải thay đổi phép biến đổi từ sơ đồ vật lý * Độc lập liệu luận lý: sơ đồ ý niệm thay đổi sơ đồ ngồi khơng thay đổi nghĩa chương trình ứng dụng khơng cần phải viết lại, từ ta phải thay đổi phép biến đổi từ sơ đồ đến sơ đồ ý niệm 1.3.4 Bộ quản lý sở liệu Bộ quản lý sở liệu module chương trình cung cấp giao tiếp liệu mức thấp lưu trữ sở liệu với chương trình ứng dụng Bộ quản lý sở liệu có nhiệm vụ thực chức trình bày phần 1.3.2 1.3.5 Người quản trị sở liệu(Admin) Bởi hệ thống sở liệu hệ thống liệu lớn sử dụng thường xuyên lâu dài phải cần có người quản lý tập trung hệ thống Người gọi người quản trị sở liệu Các chức người quản trị sở liệu bao gồm: Xác định lược đồ sở liệu Lược đồ sở liệu tạo cho hệ thống lưu trữ thường trực tự điển liệu Xác định cấu trúc lưu trữ liệu phương thức truy xuất sở liệu Thay đổi lược đồ tổ chức vật lý Các thay đổi lược đồ sở liệu tổ chức lưu trữ vật lý phải thực người quản trị sở liệu thông qua ngôn ngữ định nghĩa liệu Cấp quyền truy xuất liệu cho người sử dụng Đặc tả ràng buộc toàn vẹn Các ràng buộc toàn vẹn giữ cấu trúc hệ thống đặc biệt tham khảo người quản trị sở liệu có thay đổi hệ thống 1.3.6 Những người sử dụng sở liệu Mục đích hệ thống sở liệu cung cấp mơi trường cho việc tìm kiếm thông tin cho nhiều người sử dụng Những người sử dụng sở liệu chia thành loại sau: Lập trình viên: người viết chương trình ứng dụng cho sở liệu Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Chương Đại Cương Các Hệ Cơ Sở Dữ Liệu Trang Các chuyên viên: Những người không dùng chương trình ứng dụng để truy cập vào sở liệu Họ sử dụng ngôn ngữ hỏi để truy cập trực tiếp vào sở liệu Người khai thác: Người khai thác người giao tiếp với hệ thống thơng qua chương trình ứng dụng Người quản trị sở liệu 1.3.7 Cấu trúc tổng quát hệ thống quản trị sở liệu Hệ quảnlý tập tin (File manager): Bộ quản lý tập tin quản lý định vị không gian lưu trữ cấu trúc liệu dùng để thể thông tin lưu trữ đĩa Bộ quản lý sở liệu (Database manager): Cung cấp giao tiếp liệu lưu trữ mức thấp sở liệu với chương trình ứng dụng Bộ xử lý câu truy vấn (Query processor): Bộ biên dịch phát biểu ngôn ngữ hỏi thành câu lệnh mức thấp cho quản lý sở liệu hiểu Hơn cịn tối ưu hố câu truy vấn cho việc thực thi câu hỏi nhanh Bộ tiền biên dịch DML (DML precompiler): Bộ tiền biên dịch DML dịch phát biểu ngôn ngữ hỏi nhúng ngơn ngữ chủ thành mã lệnh thích hợp Bộ biên dịch DDL (DDL compiler): Biên dịch phát biểu DDL thành tập bảng Các files liệu: lưu trữ sở liệu Tự điển liệu: Chứa liệu định nghĩa liệu tức toàn định nghĩa sở liệu Toàn hệ thống quản trị sở liệu mơ tả hình 1.6 Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Chương Các Mơ Hình Dữ Liệu Trang 10 Users Người khai Lập trình viên Chuyên viên Người quản trị CSDL Chương trình ứng dụng Câu hỏi Lược đồ sở liệu thác Khai thác ứng dụng Bộ tiền biên dịch DML Mã lệnh đối tượng chương trình ứng dụng Bộ xử lý câu truy vấn Bộ tiền biên dịch DDL Bộ quản lý sở liệu Hệ quản trị sở liệu Bộ quản lý file File liệu Từ điển liệu Hình 1.6 Cấu trúc hệ thống quản trị sở liệu Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Bài Tập Tổng Hợp Trang 76 Bài Cho mơ hình thực thể mối liên kết để quản lý việc bán hàng siêu thị sau:Xây dựng quan hệ liệu (mơ hình logic) từ mơ hình ER trên, biết: Loại mặt hàng Nhân viên Bày bán Phục vụ Gồm Quầy hàng Isa Mặt hàng Phụ trách Được mua Baự n Giá Trưởng Quầy Số lượng Ngày ự - Thơng tin mặt hàng gồm có mã mặt hàng,tên hàng, tên nhà sản xuất - Thông tin loại mặt hàng gồm có mã loại mặt hàng, tên mặt hàng - Thơng tin quầy hàng có số quầy - Thơng tin nhân viên có họ tên, điạ chỉ, mã nhân viên - Thông tin ngày gồm có ngày, tháng, năm Cho biết câu hỏi sau sai, giải thích - Mỗi quầy hàng bán mặt hàng với giá khác - Một mặt hàng bán quầy hàng Trả lời câu hỏi sau ngôn ngữ SQL cất kết vào bảng tạm - Cho biết quầy hàng tên trường quầy có doanh thu cao tháng 8/1999 - Cho biết loại mặt hàng tiêu thụ tháng 8/1999 Bài Thiết kế mơ hình liệu quan niệm để quản lý bệnh nhân bệnh viện sau 1/ Thiết kế sơ đồ thực thể mối liên kết cho sở liệu để quản lý bệnh nhân bệnh viện sau : Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Bài Tập Tổng Hợp Trang 77 - Bệnh viện có nhiều khoa Thơng tin khoa có mã khoa, tên khoa, số phone, số bệnh nhân tối đa phục vụ - Trong bệnh viện có nhiều phịng bệnh Thơng tin phịng bệnh có số phịng, vị trí, loại phịng, giá phịng (thay đổi theo thời gian) - Mỗi phịng có nhiều giường bệnh Các giường bệnh đánh số riêng biệt theo thứ tự tăng dần - Mỗi khoa phụ trách nhiều phòng bệnh phòng bệnh khoa đảm nhiệm - Mỗi khoa có nhiều nhân viên nhân viên thuộc khoa Thơng tin nhân viên có mã nhân viên, họ tên nhân viên, chức danh (bác sĩ, y tá, hộ lý) Mỗi khoa có trưởng khoa bác sĩ khoa - Mỗi bệnh nhân nằm giường cố định Thông tin bệnh nhân gồm có họ tên bệnh nhân (giả sử có thêm thơng tin phụ để phân biệt bệnh nhân họ tên), địa chỉ, bảo hiểm y tế (có khơng), ngày nhập viện, ngày xuất viện Mỗi bệnh nhân có hồ sơ bệnh án riêng bác sĩ theo dõi Thông tin hồ sơ bệnh án gồm có mã hồ sơ, loại bệnh, trọng lượng, kết xét nghiệm, cách chữa trị, thuốc sử dụng, chi phí - Việc khám/ chữa bệnh tổ chức theo buổi, buổi khám/ chữa bệnh bệnh nhân bác sĩ – y tá khám/chữa Ngồi buổi có bác sĩ trực để giải cố xảy 2/ Từ sơ đồ thực thể mối liên kết xây dựng mơ hình logic cho đạt dạng chuẩn 3/ Trả lời số câu hỏi sau SQL a/ Cho biết bệnh nhân có tên X nằm khoa, phòng, giường nào? Đang bị bệnh gì? Và bác sĩ trực dõi bệnh án? b/ Cho biết loại bệnh chữa chạy nhiều ? c/ Cho biết bác sĩ khoa khám bệnh cho nhiều bệnh nhân ? Bài Thiết kế mơ hình liệu quan niệm quản lý sinh viên trường đại học Cho thông tin quản lý sinh viên trường đại học sau: Thông tin sinh viên gồm có mã sinh viên dùng để phân biệt sinh viên, họ tên sinh viên , điạ chỉ, ngày sinh, năm bắt đầu vào học Thông tin lớp gồm có mã lớp dùng để phân biệt lớp tên lớp Một sinh viên lớp, lớp có tối đa 50 sinh viên Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Bài Tập Tổng Hợp Trang 78 Một lớp có giáo viên chủ nhiệm Thông tin giảng viên gồm mã giảng viên dùng để phân biệt giảng viên, tên giảngviên, học vị, chuyên môn Thông tin môn học gồm mã môn học dùng để phân biệt môn học, tên môn, số tiết Lớp học môn học giảng viên dạy Lớp học môn học bắt đầu thời điểm (ngày, tháng, năm) định Sinh viên theo học môn bị điểm danh theo buổi học Nếu sinh viên vắng 1/3 buổi học bị cấm thi Một buổi học đươc tính tiết Lớp tổ chức cho thi môn học vào thời điểm xác định Sinh viên thi mơn học có kết Kết cho biết lần thi sinh viên điểm Số lần thi cho môn tối đa lần Câu hỏi Thiết kế sơ đồ ER Xây dựng quan hệ liệu (mơ hình logic)từ sơ đồ ER Cho biết cách tạo quan hệ tạm (bảng tạm) sau ngôn ngữ SQL: - Danh sách sinh viên đủ điều kiện dự thi môn học X lần - Danh sách sinh viên thi lần mơn học X Bài Thiết kế mơ hình liệu quan niệm quản lý thư viên Cho thông tin để quản lý thư viên sau: - Thông tin sách gồm mã sách dùng để phân biệt sách, tên sách, khổ sách, số trang, tình trạng sách, giá,số sách (là số sách giống nhau) - Thông tin tác giả gồm tên tác giả, địa - Thông tin nhà xuất gồm tên nhà xuất bản, địa - Thông tin thể loại sách gồm mã thể loại dùng để phân biệt thể loại, tên thể loại - Thông tin đọc giả gồm mã độc giả dùng để phân biệt độc giả, tên độc giả, địa - Thông tin ngăn tủ gồm vị trí, số luợng sách chứa vào ngăn - Các sách cất vào ngăn tủ Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Bài Tập Tổng Hợp Trang 79 - Một sách có nhiều tác giả tác giả viết nhiều sách - Một sách nhà xuất in ấn - Một sách thuộc loại thể loại - Một độc giả mượn nhà hai sách thời điểm Một sách cho mượn tối đa 30 ngày khơng mượn q Một sách cho mượn số lớn Câu hỏi - Thiết kế sơ đồ ER - Xây dựng quan hệ liệu (mơ hình logic)từ sơ đồ ER - Cho biết cách tạo quan hệ tạm (bảng tạm) sau ngôn ngữ SQL: - Danh sách độc giả không đủ điều kiện mượn sách - Danh sách tên nhà xuất có số lượng sách mượn theo thứ tự giảm dần Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Bài Tập Tổng Hợp Trang 80 ĐỀ THI MÔN CƠ SỞ DỮ LIỆU Lớp C98 A1 + C98 A4 Thời gian 120 phút Câu 1: Cho thể lược đồ quan hệ sau: R(A a1 a1 a2 a2 a3 B b1 b2 b1 b1 b2 C c1 c1 c2 c2 c2 D d1 d2 d3 d1 d2 E) e1 e1 e1 e1 e2 Cho biết phụ thuộc hàm sau thoả r? Giải thích thuật toán.A -> B, AB -> C, BC -> D2 Trình bày giải thuật phát khóa dựa thể r Cho biết khóa có r Câu 2: Cho sở liệu quản lý đơn đặt hàng đơn vị kinh doanh sau: KHACH_HANG(MKH,DC,DT,TEN_KH) Một khách hàng có mã số (MKH) dùng để phân biệt với khách hàng khác, có địa (DC), số điện thoại (DT), tên khách hàng (TEN_KH) MAT_HANG(MHG,TEN_HG,DONGIA, NGAY) Mỗi mặt hàng có mã số (MHG) dùng để phân biệt với mặt hàng khác có tên gọi (TEN_HG) có đơn giá (DONGIA) thiết lập từ ngày (NGAY) DDH(MDDH,MKH,SO_HG,NGAYDH) Mỗi đơn đặt hàng khách hàng có mã đơn dùng để phân biệt với đơn đặt hàng khác Ung với đơn đặt hàng ta biết số loại mặt hàng (SO_HG) đặt vào ngày đặt hàng(NGAYDH) CHI_TIET_DDH(MDDH,MHG,LG_DAT,MKH) Mỗi chi tiết đơn đặt hàng khách hàng liên quan đến mặt hàng Tương ứng với chi tiết ta biết lượng đặt (LG_DAT) GIAO_GH(MDDH,MKH,MGH,NGAY) Mỗi đợt giao hàng liên quan đến đơn đặt hàng khách hàng Đơn giao hàng có mã số (MGH) dùng để phân biệt với đợt giao khác nhau.Ta biết ngày giao (NGAY) đợt CHI_TIET_GH(MDDH,MKH,MGH,MHG,LG_GIAO) Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Bài Tập Tổng Hợp Trang 81 Mỗi chi tiết đợt giao hàng (MGH) liên quan đến mặt hàng (MHG) số lượng giao mặt hàng cho đơn đặt hàng (MDDH) khách hàng (MKH) Câu hỏi 1/ Xác định khoá phụ thuộc hàm quan hệ 2/ Chuẩn hoá lược đồ sở liệu đến tối thiểu dạng chuẩn 3/ Cho biết ràng buộc toàn vẹn sở liệu (khơng xét ràng buộc khóa miền giá trị) 4/ Trả lời câu hỏi SQL đại số quan hệ - Danh sách mã hàng đơn đặt hàng số 26 khách hàng số 12 giao làm ba đợt Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Bài Tập Tổng Hợp Trang 82 ĐỀ THI MÔN CƠ SỞ DỮ LIỆU Lớp C98 A2 + C98 A3 Thời gian 120 phút Câu 1: Cho F = { AB -> C, B -> D, CD -> E, CE -> GH, G -> A, D -> C } Chứng minh BG -> H hệ tiên đề Armstrong Cho biết giải thuật REPUGNANT(G) với G tập phụ thuộc hàm sau có cho phủ tối thiểu khơng? Giải thích? REPUGNANT(G) begin F := ; For X -> Y G if MEMBER(G- {X-> Y}, X->Y) then F := F U {X -> Y} return (G- F) end Cho ví dụ minh họa với F theo giải thuật REPUGNANT so sánh với phủ tối thiểu thật Câu 2: Cho sở liệu quản lý đơn đặt hàng đơn vị kinh doanh sau: KHACH_HANG(MKH,DC,DT,TEN_KH) Một khách hành có mã số (MKH) dùng để phân biệt với khách hàng khác, có địa (DC), số điện thoại (DT), tên khách hàng (TEN_KH) MAT_HANG(MHG,TEN_HG,DONGIA, NGAY) Mỗi mặt hàng có mã số (MHG) dùng để phân biệt với mặt hàng khác có tên gọi (TEN_HG) có đơn giá (DONGIA) thiết lập từ ngày (NGAY) DDH(MDDH,MKH,SO_HG,NGAYDH) Mỗi đơn đặt hàng khách hàng có mã đơn dùng để phân biệt với đơn đặt hàng khác khách hàng Ứng với đơn đặt hàng ta biết số loại mặt hàng (SO_HG) đặt vào ngày đặt hàng(NGAYDH) CHI_TIET_DDH(MDDH,MKH,MHG,LG_DAT) Mỗi chi tiết đơn đặt hàng khách hàng liên quan đến mặt hàng Tương ứng với chi tiết ta biết lượng đặt (LG_DAT) Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Bài Tập Tổng Hợp Trang 83 GIAO_GH(MDDH,MKH,MGH,NGAY) Mỗi đợt giao hàng liên quan đến đơn đặt hàng khách hàng Đơn giao hàng có mã số (MGH) dùng để phân biệt với đợt giao khác nhau.Ta biết ngày giao (NGAY) đợt CHI_TIET_GH(MDDH,MKH,MGH,MHG,LG_GIAO) Mỗi chi tiết đợt giao hàng (MGH) liên quan đến mặt hàng (MHG) số lượng giao mặt hàng cho đơn đặt hàng (MDDH) khách hàng (MKH) Câu hỏi 1/ Xác định khoá phụ thuộc hàm quan hệ 2/ Chuẩn hoá lược đồ sở liệu đến tối thiểu dạng chuẩn 3/ Cho biết ràng buộc tồn vẹn sở liệu (khơng xét ràng buộc khóa miền giá trị) 4/ Trả lời câu hỏi SQL đại số quan hệ - Danh sách mã hàng đơn đặt hàng số 26 khách hàng số 12 giao làm ba đợt Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Bài Tập Tổng Hợp Trang 84 Đề số ĐỀ THI TỐT NGHIỆP MÔN CƠ SỞ DỮ LIỆU Lớp Trung Cấp Tin Học Khoá Câu Chuẩn hóa ràng buộc tồn vẹn sở liệu Cho sở liệu quản lý sản xuất công nhân nhà máy : CONGNHAN(MACN,HOTENCN,DIACHI,SOTO,MAMAY) MACN dùng để phân biệt cơng nhân Mỗi cơng nhân có họ tên (HOTEN), địa xác định (DIACHI) thuộc tổ (SOTO) Mỗi công nhân giao phụ trách máy máy nhiều công nhân phụ trách tùy theo ca làm việc họ LUONG(MACN,HOTENCN,LUONG,THANG) Lương công nhân (MACN) có họ tên (HOTENCN) tính theo khốn sản phẩm trả vào cuối tháng (THANG) TO(SOTO,TOTRUONG,SOTOVIEN) SOTO cho biết số tổ dùng để phân biệt tổ Mỗi tổ có tổ trưởng (TOTRUONG) công nhân tổ SOTOVIEN cho biết số tổ viên tổ SANXUAT(MACN,MAMAY,MASP,NGAY,CA,SOLUONGSP) Quan hệ SANXUAT cho biết công nhân (MACN) đứng máy (MAMAY) ca (CA) làm việc ngày (NGAY) thực sản phẩm (MASP) với số lượng sản phẩm (SOLUONGSP) DINHMUC(MAMAY,MASP,TENSANPHAM,CHITIEU) Quan hệ DINHMUC cho biết tiêu (CHITIEU) số sản phẩm sản phẩm có mã (MASP), tên sản phẩm (TENSANPHAM) máy (MAMAY) xác định ngày SANPHAM(MASP, TENSANPHAM, GIACONGDONVI) MASP cho biết mã sản phẩm có tên (TENSANPHAM) với giá công sản phẩm (GIACONGDONVI) Câu hỏi 1/Xác định khóa quan hệ Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Bài Tập Tổng Hợp Trang 85 2/ Cho biết quan hệ sở liệu dạng chuẩn ? Nếu chưa đạt dạng chuẩn chuẩn hóa tiếp để đạt 3/ Cho biết câu hỏi sau hay sai , sao?- Một công nhân chuyên làm loại sản phẩm.- Mỗi máy có tiêu riêng cho loại sản phẩm 4/ Cho biết ràng buộc toàn vẹn sở liệu 5/ Trả lời câu hỏi ngôn ngữ SQL đại số quan hệ - Cho biết tiền lương cơng nhân có tên “Nguyễn Văn Hùng” vào tháng 10/1998 - Cho biết tiền lương trung bình tổ có SOTO =2 vào tháng 10/1998 - Cho biết tổ (SOTO) tên tổ trưởng tổ mà làm nhiều sản phẩm năm vừa rồi? - Cho biết máy làm đủ sản phẩm? Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Tài Liệu Tham Khảo Trang 86 TÀI LIỆU THAM KHẢO Database System Concepts Sử dụng chương 1, 2, 3, 4, Henry F.Korth Giáo trình nhập mơn sở liệu Sử dụng chương 2, 4, 5,6 Nguyễn An Tế (ĐH KHTN) 1996 Guide to The SQL Standard Sử dụng chương 3, C J Date 1993 Nguyên lý hệ sở liệu Tập Sử dụng chương J D Ullman 1999 The Theory of relational databases Sử dụng chương David Maier 1983 Khoa CNTT Năm 2014 1991 Bài Giảng Cơ Sở Dữ Liệu Mục Lục Trang 87 MỤC LỤC CHƯƠNG : ĐẠI CƯƠNG VỀ CÁC HỆ CƠ SỞ DỮ LIỆU 1.1 Khái niệm sở liệu (Database) 1.1.1Khái niệm sở liệu 1.1.2 Mục đích hệ sở liệu 1.2 Kiến trúc hệ thống sở liệu 1.3 Hệ quản trị sở liệu (Database Management System : DBMS) 1.3.1 Khái niệm 1.3.2 Các chức hệ quản trị sở liệu 1.3.3 Khái niệm độc lập liệu chương trình 1.3.4 Bộ quản lý sở liệu 1.3.5 Người quản trị sở liệu 1.3.6 Những người sử dụng sở liệu 1.3.7 Cấu trúc tổng quát hệ thống quản trị sở liệu CHƯƠNG CÁC MƠ HÌNH DỮ LIỆU 11 2.1 Mơ hình liệu (data model) 11 2.1.1 Các mơ hình liệu (Data models) 11 2.1.2 Các mơ hình logic dựa đối tượng (Object-Based logical models) 11 2.1.3 Các mơ hình dựa mẫu tin (Record-Based Logical Models) 13 2.2 Mơ hình thực thể mối liên kết (Entity Relationship Model) 15 2.2.1 Thực thể (Entity) 15 2.2.2 Tập thực thể (Entity set) : 15 2.2.3 Các thuộc tính khố : 15 2.2.4 Hệ phân cấp isa hay tổng quát hoá - chuyên biệt hóa 16 2.2.5 Mối liên kết 16 2.2.6 Sơ đồ thực thể mối liên kết 17 2.2.7 Tính hàm mối liên kết 20 2.2.8 Ví dụ sơ đồ thực thể mối liên kết (ERD) 22 2.3 Mơ hình liệu quan hệ 23 2.3.1 Các khái niệm 23 2.3.2 Sự chuyển hóa từ sơ đồ ER sang mơ hình liệu quan hệ 25 Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Mục Lục Trang 88 2.3.3 Các phép tốn đại số mơ hình liệu quan hệ 28 2.2.4 Thiết kế sở liệu quan hệ 34 CHƯƠNG NGÔN NGỮ SQL 40 3.1 Giới thiệu : 40 3.2 Ngôn ngữ định nghĩa liệu (Data Definition Language DLL) 40 3.2.1 Tạo cấu trúc bảng 40 3.2.2 Thay đổi cấu trúc bảng 41 3.2.3 Hủy bỏ bảng 41 3.2.4 Tạo khung nhìn (view) 41 3.2.5 Xoá khung nhìn 42 3.3 Ngôn ngữ thao tác liệu (Data Manupilation Language DML) 42 3.3.1 Thêm vào quan hệ 42 3.3.2 Cập nhật: 42 3.3.3 Hủy bỏ bộ: 43 3.4 Nhúng ngôn ngữ SQL ngôn ngữ chủ Error! Bookmark not defined 3.5 Ngôn ngữ điều khiển liệu (Data Control Language) 49 CHƯƠNG PHỤ THUỘC HÀM 51 4.1 Phụ Thuộc hàm (Functional Dependency) 51 4.1.1Định nghĩa phụ thuộc hàm (FD) 51 4.1.2 Định nghĩa phụ thuộc hàm đầy đủ (Full Functional Dependency "FFD") 51 4.1.3 Mệnh đề 51 4.1.4 Giải thuật kiểm tra phụ thuộc hàm 51 4.1.5 Tập phụ thuộc hàm 52 4.1.6 Biểu diễn tập phụ thuộc hàm đồ thị có hướng Error! Bookmark not defined 4.2 Hệ luật dẫn ARMSTRONG 52 4.3 Bao Đóng 53 4.3.1 Định nghĩa phụ thuộc hàm suy dẫn 53 4.3 Mệnh đề 53 4.3.3 Bao đóng tập thuộc tính 53 4.3.4 Bài toán thành viên : 54 4.4 Khoá quan hệ 54 Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Mục Lục Trang 89 4.4.1 Xác định khoá 54 4.4.2 Xác định tất khoá 55 4.5 Phủ tối thiểu tập phụ thuộc hàm 56 4.5.1 Định nghĩa: Hai tập phụ thuộc hàm F G 56 4.5.2 Định Nghĩa: Phủ tối thiểu 56 4.5.3 Giải thuật tìm phủ tối thiểu 56 4.6 Phép tách lược đồ quan hệ 57 4.6.1 Định nghĩa 57 4.6.2 Phân rã bảo tồn thơng tin 57 4.6.3 Phân rã bảo toàn phụ thuộc 58 4.6.4 Tính phụ thuộc hàm bao lược đồ 60 CHƯƠNG CHUẨN HÓA CƠ SỞ DỮ LIỆU 61 5.1 Các dạng chuẩn 61 5.2 Dạng chuẩn : 1NF (Normal Form) 61 5.3 Dạng chuẩn 2NF 62 5.4 Dạng chuẩn 3NF 63 5.4.1 Định nghĩa 63 5.4.2 Giải thuật phân rã bảo toàn phụ thuộc hàm thành dạng chuẩn 64 5.4.3 Phân rã thành dạng chuẩn bảo tồn phụ thuộc hàm bảo tồn thơng tin 65 5.5 Dạng chuẩn : BCNF (Boyce Codd Normal Form) 65 5.5.1 Định nghĩa 65 5.5.2 Giải thuật phân rã bảo tồn thơng tin thành dạng chuẩn BCNF 65 5.6 Dạng chuẩn 4NF : 67 5.6.1 Phụ thuộc đa trị 67 5.6.2 Dạng chuẩn 4NF 68 CHƯƠNG TÍNH TỒN VẸN DỮ LIỆU 69 6.1 Ràng buộc toàn vẹn (Integrity Constraints) 69 6.1.1 Định nghĩa : 69 6.1.2 Các yếu tố ràng buộc toàn vẹn : 69 6.1.3 Phân loại ràng buộc toàn vẹn : 71 6.1.4 Lệnh SQL ràng buộc toàn vẹn 73 6.2 Phân quyền truy xuất 73 Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Mục Lục Trang 90 CHƯƠNG PHỤC HỒI DỮ LIỆU VÀ TÍNH NGUYÊN TỐ defined Error! Bookmark not 7.1 Phân loại hỏng hóc Error! Bookmark not defined 7.1.1 Các loại lưu trữ Error! Bookmark not defined 7.1.2 Các kiểu hỏng hóc Error! Bookmark not defined 7.2 Sự phân cấp lưu trữ Error! Bookmark not defined 7.3 Mơ hình giao tác Error! Bookmark not defined 7.3.1 Ví dụ Error! Bookmark not defined 7.3.2 Tính đắn tính nguyên tố Error! Bookmark not defined 7.3.3 Các trạng thái giao tác Error! Bookmark not defined 7.4 Phục hồi dựa vào nhật ký (Log - based recovery) Error! Bookmark not defined 7.4.1 Nhật ký sở liệu Error! Bookmark not defined 7.4.2 Kỹ thuật thay đổi CSDL hoãn lại (Deferred database modification) Error! Bookmark not defined 7.4.3 Kỹ thuật thay đổi sở liệu tức khắc Error! Bookmark not defined 7.4.4 Điểm kiểm tra (check point) Error! Bookmark not defined BÀI TẬP TỔNG HỢP - ĐỀ THI MẪU 75 TÀI LIỆU THAM KHẢO 86 MỤC LỤC 87 Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu ... sở liêu gọi giao dịch Hệ quản trị sở liệu cung cấp công cụ cho phép nhiều người sử dụng truy xuất đồng thời đến sở liệu Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Chương Đại Cương Các Hệ Cơ Sở. .. Giảng Cơ Sở Dữ Liệu Chương Đại Cương Các Hệ Cơ Sở Dữ Liệu Trang thống cung cấp nhiều khung nhìn sở liệu cho đối tượng sử dụng khác Mối quan hệ ba mức minh họa qua hình1.2 1.3 Hệ quản trị sở liệu... dụng cho sở liệu Khoa CNTT Năm 2014 Bài Giảng Cơ Sở Dữ Liệu Chương Đại Cương Các Hệ Cơ Sở Dữ Liệu Trang Các chuyên viên: Những người không dùng chương trình ứng dụng để truy cập vào sở liệu