Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 42 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
42
Dung lượng
459,53 KB
Nội dung
Bài giảng Cơ sở liệu quan hệ http://www.ebook.edu.vn Ch−¬ng TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU Hệ quản trị sở liệu, đặc biệt sở liệu quan hệ hệ thống phần mềm có vai trò quan trọng hệ thống lập trình Cũng giống loại phần mềm hệ thống chủ yếu khác như: trình biên dịch hệ điều hành, nguyên lý hệ quản trị sở liệu phát triển từ lâu Những khái niệm hữu ích, giúp cho việc sử dụng hiệu hệ quản trị sở liệu mà hỗ trợ việc thiết kế cài đặt chúng Bµi Các khái niệm sở liệu (2 tiết) Các hệ thống tệp truyền thống 1.1 Bài toán: Giả thiết toán quản lý thư viện có hai chức sau: - Chức (CN1): In danh mục sách với tệp sách chứa thông tin: tên sách, mã sách, tên tác giả, nhà xuất bản, - Chức (CN2): Thống kê loại sách có thư viện với số lượng cụ thể Để giải toán có hai cách: Cách 1: Viết CN2 độc lập CN1 Với CN2 tạo tệp sách phân loại (tệp 2) chứa thông tin: mã sách, tên sách, nhà xuất bản, số lượng, Cách có số nhược điểm sau: • Giữa tệp tệp có số trường trùng dẫn tới dư thừa liệu • Dữ liệu lưu lặp hai tệp, liệu thay đổi phải cập nhật hai tệp Dữ liệu không quán tiến hành thao tác sửa đổi (hiện tượng dị thường) Cách 2: Tận dụng tệp sách có (tệp 1) Sửa tệp thành tệp có chứa thêm trường số lượng Đặc điểm cách 2: • • Tránh dư thừa lặp lại liệu Phải sửa lại CN1 để sử dụng tệp (tệp 2) -> chương trình phụ thuộc vào liệu 1.2 Phương án đề xuất theo hướng Cả hai cách có hạn chế định, cần đưa phương án mới, hiệu hơn, khắc phục hạn chế đây, với mục đích xây dựng hệ thống thoả mãn yêu cầu sau: • Tránh dư thừa liệu • Không phụ thuộc liệu Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất Bài giảng Cơ sở liệu quan hệ • http://www.ebook.edu.vn Các thao tác tra cứu, tìm kiếm, cập nhật nhanh chóng hiệu Khái niệm phân loại hệ quản trị sở liệu 2.1 Cơ sở liệu ? Để dễ dàng cho việc giải thích khái niệm, trước hết xem xét hệ thống bán vé máy bay máy tính Dữ liệu lưu trữ máy tính bao gồm thông tin hành khách, chuyến bay, đường bay,v.v Mọi thông tin mối quan hệ biểu diễn máy thông qua việc đặt chỗ khách hàng Vậy làm để biểu diễn liệu để đảm bảo cho khách hàng chuyến Dữ liệu lưu trữ máy theo quy định gọi sở liệu (viết tắt CSDL, tiếng Anh Database) Theo định nghĩa khác: sở liệu lưu trữ liệu tác nghiệp xí nghiệp, lưu trữ để phục vụ cho ứng dụng Ví dụ 2.1: Xí nghiệp thư viện, liệu tác nghiệp là: sách, độc giả, yêu cầu,v.v 2.2 Hệ quản trị sở liệu Phần chương trình để xử lý, thay đổi sở liệu gọi Hệ quản trị sở liệu (viết tắt HQTCSDL, tiếng Anh Database management system) Theo định nghĩa HQTCSDL có nhiệm vụ quan trọng diễn dịch (interpreter) với ngôn ngữ bậc cao nhằm giúp người sử dụng dùng hệ thống mà nhiều không cần quan tâm đến thuật toán chi tiết biểu diễn liệu máy Theo cách hiểu khác: HQTCSDL phần mềm cho phép tạo lập CSDL điều khiển truy nhập CSDL đó, đặc biệt HQTCSDL đảm bảo tính độc lập liệu (là bất biến chương trình ứng dụng thay đổi cấu trúc lưu trữ chiến lược truy nhập) Ví dụ 2.2: Một số Hệ QTCSDL thông dụng nay: MS Access, SQL Server (của hãng Microsoft), Oracle (của hãng Oracle), DB2, FoxPro,v.v a) Hệ quản trị sở liệu hỗ trợ tính sau: • Định nghĩa liệu (Database definition) • Xây dựng liệu (Database construction) : Chức định nghĩa xây dựng liệu hỗ trợ người dùng xây dựng liệu riêng • Thao tác liệu (Database manipulation): thao tác cập nhật, tìm kiếm, sửa, xoá, Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất Bài giảng Cơ sở liệu quan hệ http://www.ebook.edu.vn • Quản trị liệu (Database administrator): phân quyền sử dụng, bảo mật thông tin, • Bảo vệ liệu (Database protection): thực thao tác chép, phục hồi, tránh mát liệu b) Ngôn ngữ hệ quản trị sở liệu bao gồm: • Ngôn ngữ định nghĩa liệu (Database Definition Language - DDL): cung cấp câu lệnh cho phép mô tả, định nghĩa đối tượng CSDL • Ngôn ngữ thao tác liệu (Database Manipulation Language - DML): dùng để thao tác, xử lý đối tượng CSDL thêm, xoá, sửa, tìm kiếm,v.v • Ngôn ngữ kiểm soát liệu (Database Control Language - DCL): điều khiển tính đồng thời (tương tranh) liệu Hình 1- Hệ CSDL đa người dùng c) Hệ quản trị sở liệu đa người dùng: • Cơ sở liệu dạng hợp (hay tập hợp toàn liệu tác nghiệp xí nghiệp), có hai tính chất sau: • - Không dư thừa liệu: cố gắng tối thiểu kiểm soát dư thừa - Sử dụng chung nguồn liệu: chia sẻ nhiều người sử dụng Người sử dụng hệ QTCSDL bao gồm: - Người phân tích hệ thống (System analyst) - Người thiết kế CSDL (Database deginer) - Người viết chương trình ứng dụng (Application programer): xây dựng chương trình ứng dụng dựa sở liệu có - Người sử dụng cuối (end - user): người truy nhập vào CSDL từ thiết bị đầu cuối - Người quản trị CSDL (Database administrator): thường người nhóm người có nhiệm vụ điều khiển toàn hệ CSDL 2.3 Phân loại hệ quản trị sở liệu Hệ QTCDSL phân loại dựa theo nhiều tiêu chí khác nhau, cách phân loại có nihều kiểu hệ QTCSDL Trong phần mô tả kiểu hệ QTCSDL khác phân loại theo quan điểm chung a) Hệ QTCSDL loại 1: Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất Bài giảng Cơ sở liệu quan hệ http://www.ebook.edu.vn Người dùng vừa thiết kế, sử dụng, quản trị, hay gọi hệ QTCSDL đơn người dùng (hệ CSDL cá nhân, nhỏ) Thường sử dụng để giải nhiệm vụ đơn lẻ với người vài người Hình 2- Mô hình hệ QTCSDL đơn người dùng b) Hệ QTCSDL loại 2: Người sử dụng cuối truy nhập CSDL thông qua thiết bị truy nhập đầu cuối (terminal), gọi hệ QTCSDL đa người dùng (hệ QTCSDL trung tâm) Hình 3- Mô hình hệ QTCSDL đa người dùng c) Hệ QTCSDL loại 3: Những yêu cầu người sử dụng cuối trình ứng dụng xử lý máy trạm (Client), yêu cầu cần tới CSDL chuyển tới hệ QTCSDL nằm máy chủ (Server), mô hình hệ QTCSDL Client / Server Hình - Mô hình hệ QTCSDL Client / Server Nhận xét: Cả loại hệ QTCSDL đặt CSDL nơi Do hệ QTCSDL có tính chất tập trung Ví dụ 2.3: • Một công ty muốn lưu trữ trì thông tin nhân viên cung cấp (supplier) mặt hàng (part) • Các thông tin lưu trữ cần thiết nhân viên cung cấp bao gồm: số hiệu nhân viên, họ tên, ngày sinh, mức lương, địa thành phố • Thông tin mặt hàng bao gồm: số hiệu mặt hàng, tên mặt hàng, mầu sắc giá • Việc chuyển hàng mô tả thông qua số hiệu nhân viên, tên mặt hàng số lượng NHAN_VIEN s# Ho_Ten Thanh_Pho Nam_Sinh Luong 10 Lê Văn A Ha Noi 1960 400 20 Hoàng Thị B HCM 1970 500 30 Lê Văn Sơn Hai Phong 1945 600 Hình - Quan hệ NHÂN VIÊN Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất Bài giảng Cơ sở liệu quan hệ http://www.ebook.edu.vn Bµi Kiến trúc hệ sở liệu (1 tiết) Mô hình kiến trúc mức Một CSDL phân thành mức khác hình xem có CSDL đơn giản có hệ phần mềm QTCSDL Người dùng truy nhập thông qua mô hình ngoài, qua ánh xạ quan niệm vào mô hình quan niệm, qua ánh xạ quan niệm vào mô hình trong, truy nhập vào CSDL thực yêu cầu Sau thực yêu cầu, ánh xạ ngược trở lại phía người dùng Mức Bản ghi User Mô hình (View 1) User n Mô hình n (View n) ánh xạ ngoài-quan niệm Mức quan niệm Bản ghi quan niệm ánh xạ ngoài-quan niệm n Mô hình quan niệm ánh xạ quan niệm-trong Mức Bản ghi Người quản trị CSDL Mô hình CSDL Hình - Kiến trúc hệ QTCSDL Đây kiến trúc chuẩn mức: • Mức ngoài: mức sát với người dùng Mức tương ứng với cách nhìn riêng người dùng hệ QTCSDL • Mức (mức vật lý): mức sát với lưu trữ thực tệp liệu theo cấu trúc thiết bị nhớ thứ cấp (như đĩa từ, băng từ ) • Mức khái niệm: mức trung gian CSDL mức khái niệm biểu diễn trừu tượng CSDL vật lý (hay nói: CSDL mức vật lý cài đặt cụ thể CSDL mức khái niệm) Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất Bài giảng Cơ sở liệu quan hệ • http://www.ebook.edu.vn Các khung nhìn (view): cách nhìn hay quan niệm người sử dụng CSDL mức khái niệm Sự khác khung nhìn mức khái niệm thực chất không lớn Tương ứng với mức mô hình cụ thể hệ QTCSDL bao gồm: mô hình ngoài, mô hình quan niệm, mô hình Các mô hình tương tác thông qua ánh xạ (1) Mô hình ngoài: người dùng tập hợp tất liệu người dùng phép nhìn thấy truy nhập vào, thường phận toàn CSDL (2) Mô hình quan niệm: bao gồm tập toàn liệu xí nghiệp biểu diễn nhiều trừu tượng (3) Mô hình trong: bao gồm tập toàn liệu xí nghiệp biểu diễn sát với lưu trữ thật thiết bị nhớ Mô hình thường biểu diễn thông qua ghi gọi ghi ngoài, tương ứng với mô hình quan niệm mô hình ta có ghi quan niệm ghi Do có khác ghi ghi quan niệm, để ánh xạ tới người dùng cần có ánh xạ ngoài-quan niệm Tương ứng cần có ánh xạ quan niệm-trong mô hình quan niệm mô hình Thực chất mô hình ngoài, mô hình quan niệm mô hình sơ đồ kiểu ghi, tương ứng ánh xạ ánh xạ từ kiểu ghi sang kiểu ghi khác Hệ QTCSDL quản lý người quản trị CSDL: • Là người định nội dung thông tin CSDL, hoàn thành thông qua viết sơ đồ quan niệm hay biểu diễn mô hình quan niệm • Là người định cấu trúc lưu trữ số lượng truy nhập toàn liệu thông qua viết sơ đồ • Với giúp đỡ người sử dụng, viết sơ đồ tương ứng với người sử dụng • Đưa phương án lưu, phục hồi cho CSDL • Đưa cánh kiểm soát thẩm quyền kiểm tra tính đắn CSDL Ưu điểm kiếm trúc mức Tại phân chia hệ QTCSDL thành mức ? Việc phân chia có đạt mục tiêu đặt không ? Kiến trúc hệ CSDL cần bảo đảm mục tiêu sau: Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất Bài giảng Cơ sở liệu quan hệ http://www.ebook.edu.vn (1) Tránh dư thừa liệu (2) Tính độc lập liệu chương trình ứng dụng (3) Tra cứu, tìm kiếm, cập nhật liệu nhanh chóng (4) Đảm bảo tính an toàn toàn vẹn liệu Chứng minh tính đắn: (1) Tránh dư thừa liệu: Tất mô hình (thực chất ảo) truy nhập vào CSDL (tính hợp liệu) đảm bảo không dư thừa liệu (2) Tính độc lập: Ba mức hệ QTCSDL (mức ngoài, mức quan niệm mức trong) độc lập với nhau, xoá hay thêm logic diễn mô hình quan niệm tương ứng thay đổi vật lý diễn mô hình (cấu trúc lưu trữ), đảm bảo tính độc lập logic (tính bất biến ứng dụng với thay đổi sở mức logic) Ba mức đảm bảo tính độc lập: mô hình thay đổi cần sửa ánh xạ quan niệm, mô hình quan niệm ứng dụng người dùng không cần thay đổi (đảm bảo tính độc lập vật lý) Tương tự, mô hình quan niệm thay đổi cần sửa ánh xạ quan niệm (3) Tra cứu, tìm kiếm cập nhật liệu nhanh chóng: Sử dụng thuật toán (ví dụ: đánh số cho CSDL, ) cho phép tra cứu, tìm kiếm cập nhật nhanh liệu (4) Tính an toàn toàn vẹn liệu: Mô hình kĩ thuật đảm bảo tính an toàn, toàn vẹn liệu Mô hình quan niệm mô hình ổn định mô hình phụ thuộc người dùng, mô hình phụ thuộc thiết bị thứ cấp Kết luận Trong chương làm quen tìm hiểu khái niệm liên quan đến CSDL, kiến trúc ưu điểm hệ QTCSDL so với cách lưu trữ trước Vậy cần không cần tới hệ QTCSDL ? 3.1 Tại cần hệ QTCSDL - Để đảm bảo tính tiêu chuẩn hoá: hệ CSDL khác nhau, liệu chương trình ứng khác dựa tiêu chuẩn chung - Cung cấp công cụ định nghĩa thao tác liệu linh hoạt Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất Bài giảng Cơ sở liệu quan hệ - http://www.ebook.edu.vn Tích hợp với nhiều trình ứng dụng khác nhau: ngôn ngữ lập trình, ứng dụng hỗ trợ phân tích thiết kế, v.v 3.2 Khi không cần hệ QTCSDL - Khi giải vấn đề đơn giản mà chương trình ứng dụng thực tốt không cần tới hệ CSDL - Khi hệ thống CSDL không đáp ứng yêu cầu hiệu như: tốc độ, tính bảo mật, định dạng liêu cần lưu trữ, v.v - Khi không cần thiết đa người dùng truy nhập vào CSDL chung 3.3 Tài liệu tham khảo - Lê Tiến Vương, Nhập môn Cơ sở liệu quan hệ, NXB Thống kê, Chương1 - P O' Neil, Database - Principles, Programming, Performance, Chương 1.1, 1.2 - R Elmasri, S.B Navathe, Fundamentals of Database Systems, Chương Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất Bài giảng Cơ sở liệu quan hệ http://www.ebook.edu.vn Ch−¬ng MÔ HÌNH DỮ LIỆU Trong chương này, xem xét mô hình sử dụng hệ thống sở liệu Trong đặc biệt nhấn mạnh mô hình thực thể liên kết, mô hình dùng chủ yếu làm công cụ thiết kế CSDL Bµi Sơ đồ thực thể liên kết (1 tiết) Các khái niệm chung 1.1 Thực thể Thực thể định nghĩa đối tượng có thực hay trừu tượng mà ta muốn lưu trữ thông tin Để biểu diễn (hay kí hiệu) thực thể: sử dụng hình chữ nhật bao quanh tên thực thể (tên thực thể biểu diễn danh từ) A A: tên thực thể, danh từ 1.2 Thuộc tính Một thực thể xây dựng tập thuộc tính đặc trưng cho thực thể Biểu diễn: - a1 : thuộc tính thứ i thực thể A (là danh từ) - - an Ví dụ 1.2: Thực thể sách gồm thuộc tính: mã sách, tên sách, tác giả, nhà xuất 1.3 Liên kết thực thể Liên kết thực thể mối quan hệ ràng buộc thực thể Liên kết thực thể chia thành loại sau: a) Kiểu liên kết thực thể: Là liên kết thực thể với (hay gọi liên kết đệ quy) Biểu diễn: b) Kiểu liên kết hai thực thể: Liên kết hai thực thể mối liên kết hai thực thể khác Tên liên kết biểu diễn động từ Có loại liên kết hai thực thể: Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất Bài giảng Cơ sở liệu quan hệ • http://www.ebook.edu.vn Liên kết -1: liên kết thoả mãn điều kiện xuất thực thể A xuất thực thể B ngược lại Biểu diễn sau: • Liên kết - nhiều: liên kết thoả mãn điều kiện xuất thực thể A xuất nhiều thực thể B ngược lại, xuất thực thể B xuất nhiều thực thể A Biểu diễn sau: Ví dụ 1.3.1: Xét quan hệ nhân viên phòng công ty Đây quan hệ nhiều (một nhân viên thuộc phòng phòng có nhiều nhân viên) • Liên kết nhiều -nhiều: liên kết thoả mãn điều kiện xuất nhiều thực thể A xuất nhiều thực thể B ngược lại Biểu diễn sau: Ví dụ 1.3.2: Quan hệ thực thể sách thực thể độc giả quan hệ nhiều - nhiều (giả thiết độc giả mượn nhiều loại sách lúc loại sách có nhiều cho mượn) c) Liên kết nhiều thực thể: Là mối liên kết có nhiều hai thực thể Để biểu diễn liên kết nhiều thực thể đơn giản hoá biểu diễn ta quy liên kết nhiều thực thể liên kết hai thực thể cách đưa thêm vào thực thể trung gian (kí hiệu là: TG) Biểu diễn liên kết nhiều - nhiều - nhiều sau: A B ABC C Khi thêm thực thể trung gian (TG), liên kết nhiều - nhiều - nhiều chuyển thành liên kết - nhiều (đây liên kết hai thực thể) Biểu diễn sau: Theo định nghĩa liên kết thực thể ta coi liên kết thực thể dạng thực thể đặc biệt lưu trữ Do CSDL phải lưu trữ hai đối tượng: thực thể liên kết thực thể, đồng thời CSDL phải có khả biểu diễn hai đối tượng Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất 10 Bài giảng Cơ sở liệu quan hệ http://www.ebook.edu.vn Nhận xét: Trong mệnh đề tạo bảng sử dụng thêm yếu tố ràng buộc để hạn chế giá trị cho hay nhiều cột bảng, như: ràng buộc khoá chính, khoá ngoài, ràng buộc toàn vẹn tham chiếu, ràng buộc miền giá trị tương ứng sau: • NULL: cột không chứa giá trị • NOT NULL: cột phải chứa giá trị • PRIMARY KEY: ràng buộc khoá • REFERENCE: ràng buộc khoá • ON DELETE CASCADE: ràng buộc toàn vẹn tham chiếu 2.2 Xoá bảng Mệnh đề xoá bảng xoá bảng quan hệ (cả cáu trúc nội dung bảng) khỏi CSDL Bảng tạo lại cách sử dụng mệnh đề CREATE TABLE Mệnh đề xoá bảng có dạng tổng quát sau: Ví dụ 2.2: Xoá bảng SP ví dụ trên: DROP TABLE SP 2.3 Thêm liệu Đây mệnh đề thêm ghi vào bảng thường sử dụng để tổ chức vào liệu Dạng tổng quát sau: Có cách biểu diễn mệnh đề thêm liệu: Cách 1: INSERT INTO S(S#, SNAME, STATUS, CITY) VALUES (1,'VINH',30,'HA NOI' ) Cách 2: Nếu vị trí cột bảng cố định mệnh đề viết: INSERT INTO S VALUES (1,'VINH',30,'HA NOI' ) Cách 3: Nếu người vào liệu quên vị trí cột, biểu diễn sau: INSERT INTO S(S#, STATUS, CITY, SNAME) VALUES (1, 30,'HA NOI', 'VINH') Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất 28 Bài giảng Cơ sở liệu quan hệ http://www.ebook.edu.vn Bµi Ngôn ngữ thao tác liệu (3 tiết) Khối SELECT Cấu trúc đơn giản SQL khối SELECT đươc miêu tả cú pháp khối select - from - where Một cách tổng quát khối select bao gồm mệnh đề chính: • Select: Xác định nội dung cột cần đưa kết • From: Xác định bảng cần lấy thông tin • Where: Xác định ghi thoả mãn yêu cầu chọn lọc để đưa kết Ngoài ra, để mở rộng khả ngôn ngữ, khối SELECT bổ sung thêm mệnh đề group by, having, order by, hàm mẫu, Trong phần sau trình bày chi tiết mệnh đề Dạng tổng quát khối select biểu diễn sau: Trong mệnh đề WHERE biểu diễn số dạng sau: • WHERE [NOT] phép_so_sánh • WHERE [NOT] [NOT] LIKE • WHERE [NOT] [NOT] BETWEEN AND • WHERE [NOT] [NOT] IN ({danh sách / mệnh đề con}) • WHERE [NOT] phép_kết_nối • WHERE [NOT] • WHERE [NOT] {AND | OR} [NOT] Các mệnh đề tìm kiếm 2.1 Tìm kiếm theo câu hỏi đơn giản a) Tìm kiếm không điều kiện Trước hết, để đơn giản ta làm quen với câu hỏi liên quan tới bảng Trong mệnh đề select có danh sách cột, danh sách xác định tên cột cần có bảng kết Nếu sử dụng giá trị '*' có nghĩa chọn toàn cột bảng Ví dụ 1: Cho biết mã số nhà cung cấp ứng với mặt hàng SELECT S# SP (S#, P#, QTY, SDATE) FROM SP Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất 29 Bài giảng Cơ sở liệu quan hệ http://www.ebook.edu.vn Kết ( đại số quan hệ:ΠS#(SP) ) Chú ý: Sau thực lệnh SQL, để bảng kết quan hệ (có nghĩa trùng nhau), mệnh đề select cần thêm từ khoá DISTINCT Ví dụ 2: ví dụ SELECT DISTINCT S# FROM SP Tập kết gồm S1 S2 b) Tìm kiếm với điều kiện đơn giản Tìm mã số nhà cung cấp cung cấp mặt hàng P2: SELECT DISTINCT S# FROM SP WHERE P# = 'P2' Trong SQL phép so sánh sử dụng bao gồm >, =, b) Tìm kiếm có xếp Tìm tên mặt hàng mầu đỏ xếp theo thứ tự giảm dần mã số mặt hàng SELECT PNAME, P# FROM P WHERE COLOUR = 'Đỏ' ORDER BY P# ASC Sau mệnh đề Order by tên cột cần xếp đến chiều xếp tăng giảm (ASC DESC) Có thể xếp nhiều cột không chiều xếp hệ thống ngầm định chiều tăng (ASC) 2.4 Tìm kiếm với câu hỏi phức tạp Trong phần trình bày việc tìm kiếm với nhiều bảng qua việc sử dụng ánh xạ lồng qua phép kết nối Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất 32 Bài giảng Cơ sở liệu quan hệ http://www.ebook.edu.vn a) Phép kết nối Trong phép kết nối, cột tham gia kết nối phải có miền trị sánh (so sánh) với (ví dụ: kiểu integer, char, hay kiểu char varchar, ) Tên cột bảng khác viết tường minh qua tên bảng Trong ví dụ quan hệ người cung cấp - mặt hàng, bảng S chứa cột số hiệu mặt hàng S#, bảng SP chứa số hiệu mặt hàng S# Để phân biệt, viết tường minh tên cột S# qua tên bảng S.S# SP.S# Ví dụ 2.4: Với mặt hàng cung cấp, cho biết mã số mặt hàng địa hãng cung cấp mặt hàng Ta nhận thấy, bảng SP (bảng mặt hàng cung cấp) không chứa địa hãng cung cấp Do cần kết nối với bảng S để thu địa hãng cung cấp thông qua phép kết nối SELECT P#, CITY FROM SP,S WHERE SP S# = S S# PK SS # SS SS SS SS FK SNAME STATUS CTY ME US TY OMOM Goodod HNH O N DASOS Goodod HC O MC M1 - n) kết nối (quan hệ - - - - SS # SS SS n SS SS PP# PP1 QTYTY SDATE TE 10 - PP2 20 - PP2 50 - PP3 - - Hình 10 – Ví dụ bảng quan hệ S- SP Chú ý: Trong phép tìm kiếm có nhiều bảng, tên cột không bắt buộc phải viết tên cột dạng tường minh b) ánh xạ lồng Tìm tên hãng cung cấp mặt hàng P2 Phép lồng lồng nhiều mức sử dụng ánh xạ lồng với dẫn trỏ khối hướng tới bảng khác Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất 33 Bài giảng Cơ sở liệu quan hệ Ví dụ: http://www.ebook.edu.vn Tìm số hiệu tên hãng không cung ứng mặt hàng P1 c) Tìm kiếm có sử dụng lượng từ ANY ALL Tìm tên mặt hàng có mã số mặt hàng mặt hàng mà hãng S1 bán Tìm mã số hãng cung cấp số lượng lần mặt hàng lớn số lượng lần cung cấp hãng Mệnh đề hoàn toàn tương đương với: d) Tìm kiếm có chứa phép tính tập hợp Tìm mã số hãng thời chưa cung cấp mặt hàng Tìm tên hãng cung cấp tất mặt hàng Các mệnh đề cập nhật liệu Trong phần trước trình bầy mệnh đề để tạo bảng, vào liệu Phần trình bầy chi tiết mệnh đề cập nhật liệu SQL 3.1 Thêm liệu Mệnh đề thêm liệu có dạng tổng quát sau: INSERT INTO VALUES (bộ giá trị) [câu hỏi con] Ví dụ 3.1: Có thể bổ sung tập ghi kết xử lý câu hỏi đó, chẳng hạn: Nếu bảng W bảng S có lược đồ Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất 34 Bài giảng Cơ sở liệu quan hệ http://www.ebook.edu.vn SS WNAME STATUS CTY W# WNAME STATUS CTY # ME US TY W1 Good HN SS OMOMO Goodod HNH W2 Halida Normal HN W3 Kinh Đô Good HC SS M Hai Ha W4 - - N DASOSO Goodod HC MC - M Hình 11 – Ví dụ thêm liệu 3.2 Xoá ghi Mệnh đề xoá ghi thực cho nhiều ghi thoả mãn điều kiện Dạng tổng W Haiai W1 HaHa W Kinhnh W3 Đô§« Goodod HNH N Goodod HC MC M quát là: DELETE [FROM] [WHERE ] Ví dụ 3.2: Loại bỏ hãng S1 khỏi bảng S DELETE FROM S WHERE S# = 'S1' Loại bỏ mặt hàng cung cấp sau ngày 20 - -2000 DELETE FROM SP WHERE SDATE > '20 - -2000' Loại bỏ hãng chưa cung cấp mặt hàng DELETE FROM S WHERE S# NOT IN ( SELECT S# FROM SP) 3.3 Sửa đổi liệu Mệnh đề sửa đổi giá trị ghi bảng CSDL theo điều kiện có dạng tổng quát sau: Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất 35 Bài giảng Cơ sở liệu quan hệ http://www.ebook.edu.vn Ví dụ 3.3: Đổi mầu mặt hàng P2 thành mầu vàng UPDATE P SET COLOUR = 'Vàng' WHERE P# = 'P2' ALTER TABLE ADD 3.4 Thêm cột Ví dụ 3.4: Thêm cột PRICE (giá) cho bảng SP với kiểu số liệu dạng số thập phân ALTER TABLE SP ADD PRICE DECIMAL(8.2) Kết luận tập 4.1 Kết luận Chương trình bầy ngôn ngữ liệu SQL Đây ngôn ngữ mạnh, phổ dụng dễ sử dụng Hiện nay, hệ QTCSDL thông dụng như: Access, SQL Server, Oracle, DB2, hỗ trợ tốt ngôn ngữ Do để thao tác tốt hệ QTCSDL này, cần hiểu nắm vững ngôn ngữ SQL 4.2 Bài tập Bài 2, 3, (trang 175, 176), Sách Nhập môn Cơ sở liệu quan hệ, Lê Tiến Vương, NXB Thống Kê Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất 36 Bài giảng Cơ sở liệu quan hệ http://www.ebook.edu.vn Tổng quan Cơ sở liệu quan hệ Lời mở đầu Thuật ngữ Cơ sở Dữ liệu (Database) không xa lạ với người làm tin học Đây lĩnh vực tâp trung nghiên cứu phát triển Công nghệ thông tin, nhằm giải toán quản lí, tìm kiếm thông tin hệ thống lớn, phức tạp, nhiều người sử dụng Từ năm 70, mô hình liêu quan hệ Codd đưa với cấu trúc hoàn chỉnh tạo sở toán học cho vấn đề nghiên cứu liệu Với cấu trúc đơn giản khả hình thức hoá phong phú, CSDL quan hệ dễ dàng mô hệ thống thông tin đa dạng thực tế Lưu trữ thông tin tiết kiệm, có tính độc lập liẹu cao, dễ sửa đổi, bổ sung khai thác liệu ưu điểm bật CSDL quan hệ Sau đề cập tới khái niệm CSDL quan hệ I - Khái quát CSDL & CSDL quan hệ I.1 Khái niệm CSDL Định nghĩa Một sở liệu tập hợp liệu xí nghiệp lưu giữ máy tính, người sử dụng, có cách quản lí mô hình VD: Quản lí thi tuyển sinh CSDL bao gồm: + thí sinh (tên, ngày sinh, địa chỉ, số báo danh ) + phách (số báo danh, số phách) + điểm (số phách, điểm) Các tiêu chuẩn CSDL Một CSDL cần : + phản ánh tốt xí nghiệp cần quản lí + không dư thừa thông tin: thông tin nên có mặt lần hệ thống thông tin để tiết kiệm lưu trữ, đảm bảo truy cập + độc lập CSDL chương trình: sửa đổi chương trình không làm kéo theo việc sửa đổi CSDL + tính an toàn: không bị hỏng có nhiều người sử dụng có cố + hiệu suất sử dụng tốt: dù nhiều người sử dụng lúc, CSDL đảm bảo hiệu suất có người sử dụng Hệ QTCSDL Là tập hợp có thứ tự phần mền cho phép mô tả lưu giữ thao tác liệu CSDL, đảm bảo tính an toàn, bí mật môi trường có nhiều người sử dụng Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất 37 Bài giảng Cơ sở liệu quan hệ http://www.ebook.edu.vn Hệ thống thông tin Là tập hợp thông tin lưu giữ, tập hợp xử lí cho phép xây dựng lại hình ảnh trung thành xí nghiệp Kiến trúc CSDL Gồm thành phần + Thực thể: đối tượng có thực tế mà cần mô tả đặc trưng nó, đối tượng cụ thể trừu tượng + Thuộc tính: liệu thể đặc trưng thực thể + Ràng buộc: mối quan hệ Logic thực thể I.2.Các mô hình CSDL 10 Mô hình phân cấp Mô hình liệu cây, nút biểu diễn tập thực thể, nút nút cha liên hệ theo mối quan hệ xác định chủ-thành viên (1-n) 11 Mô hình mạng Mô hình biểu diễn đồ thị có hướng 12 Mô hình quan hệ Mô hình dựa sở khái niện lý thuyết tập hợp quan hệ I.3.Các khái niệm vê CSDL quan hệ 13 Thuộc tính + lô thông tin nhỏ sử dụng cách tự có ý nghĩa, độc lập với lô khác + mô hình , thuộc tính định vị sở thông tin, thuộc tính định nghĩa tên miền giá trị 14 Quan hệ +Quan hệ định nghĩa tập tích Đề D1*D2* *Dn Di miền giá trị thuộc tính i Ta xem quan hệ bảng gồm nhiều cột chứa tên thuộc tính, cột chứa miền gía trị thuộc tính, cột chứa miền giá trị thuộc tính + Mỗi hàng bảng giá trị quan hệ, hình ảnh thực thể 15 Phụ thuộc hàm Xét tập quan hệ Ri hai tập thuộc tính G1,G2 có mặt Ri Ta nói có phụ thuộc hàm G1,G2 với giá trị G1 kết hợp với giá trị G2 thời điểm cho trước Tính chất Ri mà có mặt G1,G2 Kí hiệu G1 > G2 Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất 38 Bài giảng Cơ sở liệu quan hệ http://www.ebook.edu.vn 16 Khoá Là một tập thuộc tính nguồn phụ thuộc hàm có đích thuộc tính khác quan hệ VD: + Sinh viên(Số thẻ Sv, Họ tên, Ngày sinh, Quê quán) Số thẻ Sv > Họ tên Số thẻ Sv > Ngày sinh Số thẻ Sv > Quê quán Như Số thẻ SV khóa quan hệ Sinh viên + Giảng dạy (Số phòng học,Thời gian, Tên giảng viên, Tên môn học) Số phòng học, Thời gian > Tên giảng viên, Tên môn học Như (Số phòng học, Thời gian) khoá quan hệ Giảng dạy I.4.Các phép toán quan hệ 17 Phép chiếu Xét tập thuộc tính C R tập quan hệ định nghĩa C Phép chiếu R tập G thuộc C thu hẹp R đến phần tử G Kí hiệu ΠG (R) 18 Phép nối Nối hai quan hệ có chứa thuộc tính tập thuộc tính nhau, quan hệ thu gồm có hàng hai quan hệ ban đầu đặt nối thuộc tính giống Phép nối hai quan hệ S T kí hiệu S |> Ngày mượn Số sách > Tên sách, Loại sách Số thẻ mượn >Tên độc giả, Địa độc giả II.2.Chuẩn hoá quan hệ Coi danh sách thuộc tính thu sau bước phụ thuộc hàm chúng quan hệ, thực việc chuẩn hoá quan hệ Mục đích trình giảm bớt dư thừa thông tin, bảo đảm tính thông tin, tiện lơi cho việc truy nhập cập nhật cho CSDL.Quá trình chuẩn hoá tiến hành qua nhiều bước Ta xét ví dụ sau : Xe máy (Số xe, Số máy, Loại xe, Ngày đăng kí, Tên chủ xe, Số điên thoại, Địa chỉ) + Nếu người có nhiều xe lặp lại (Số điện thoại, Địa ) chủ xe, dư thừa thông tin + Nếu người chủ xe thay đổi địa phải sửa nhiều lần, cập nhật rời rạc Như biên pháp để khắc phục tách quan hệ Chủ xe(Tên, Số điện thoại, Địa chỉ) 24 25 Đưa quan hệ dạng chuẩn NF Quan hệ chưa dạng chuẩn 1NF quan hệ chứa nhóm lặp lại Ta đưa dạng 1NF cách sau: + bỏ nhóm lặp lại khỏi quan hệ, chuyển nhóm thành quan hệ + cộng thêm vào khoá khoá quan hệ ban đầu để tạo khoá phức hợp Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất 40 Bài giảng Cơ sở liệu quan hệ http://www.ebook.edu.vn VD: xét quan hệ : R (Số hoá đơn, Ngày bán, Số khách hàng, Tên khách hàng, Số sản phẩm, Tên sản phẩm, Lượng yêu cầu) Nhóm (Số sản phẩm, Tên sản phẩm, Lượng yêu cầu ) nhóm lặp lại, ta tách R thành R1 R2 sau : + R1 (Số hoá đơn, Ngày bán, Số khách hàng, Tên khách hàng, Số sản phẩm) + R2 (Số hoá đơn, Số sản phẩm, Tên sản phẩm, Lương yêu cầu) 26 27 Đưa quan hệ dạng chuẩn 2NF Quan hệ dạng 1NF chưa dạng 2NF có tồn phụ thuộc hàm có nguồn tập khoá Ta đưa dạng 2NF cách sau: + nhóm vào quan hệ thuộc tính phụ thuộc hoàn toàn vào khoá giữ lại khoá quan hệ + nhóm vào quan hệ khác thuộc tính phụ thuộc vào phần khoá, lấy phần làm khoá cho quan hệ VD : quan hệ R2 (Số hoá đơn, Số sản phẩm, Tên sản phẩm, Lượng yêu cầu) có phụ thuộc hàm : Số sản phẩm > Tên sản phẩm Trong Số sản phẩm phần khoá, ta tách R2 thành R3 R4 sau : + R3 (Số hoá đơn, Số sản phẩm, Lượng yêu cầu) + R4 (Số sản phẩm, Tên sản phẩm) 28 29 Dạng chuẩn 3NF Quan hệ dạng 2NF chưa dạng 3NF có tồn phụ thuộc hàm gián tiếp Đưa dạng 3NF ta làm sau : + giữ lại quan hệ ban đầu thuộc tính phụ thuộc trực tiếp vào khoá + nhóm vào quan hệ khác thuộc tính bắc cầu, lấy thuộc tính bắc cầu làm khoá VD : quan hệ R1 (Số hoá đơn, Ngày bán, Số khách hàng, Tên khách hàng, Số sản phẩm) Có phụ thuộc hàm bắc cầu : Số hoá đơn > Số khách hàng > Tên khách hàng Ta tách R1 thành R5 R6 sau : + R5 (Số hoá đơn,Ngày bán, Số khách hàng, Số sản phẩm) + R6 (Số khách hàng ,Tên khách hàng) 30 Dạng chuẩn BCNF Quan hệ dạng 3NF chưa dạng BCNF có tồn phụ thuộc hàm có nguồn thuôc tính không thuộc khoá có đích thuộc tính thuộc khoá Ta xét ví dụ : R (Học sinh, Môn học, Giáo viên, Điểm) Phụ thuộc hàm Giáo viên > Môn học có nguồn không thuộc khoá đích thuộc khoá, ta tách R thành R1, R2 sau : Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất 41 Bài giảng Cơ sở liệu quan hệ http://www.ebook.edu.vn + R1 (Học sinh, Giáo viên, Điểm) + R2 (Giáo viên, Môn học) Các phụ thuộc hàm đơn trị dừng lại dạng chuẩn BCNF (Boyce - Codd) Đến kết thúc công việc chuẩn hoá Lời kết : Mô hình CSDL quan hệ công cụ tiện lợi để mô tả cấu trúc logic CSDL Như ỏ mức logic mô hình bao gồm quan hệ biểu diễn bảng Do đơn vị CSDL quan hệ bảng, dòng bảng ghi liệu cụ thể, cột thuộc tính Đối với người sử dụng nói CSDL quan hệ tập hợp bảng biến đổi theo thời gian Đôi với công việc thiết kế CDSL công việc phân tích tư liệu xí nghiệp chuẩn hoá quan trọng, phục vụ cho việc cài đặt thực tế Tài liệu tham khảo : - Cơ sở liệu kiến thức thực hành PGS Vũ Đức Thi - NXB thống kê 1997 - Nhập môn sở liệu quan hệ Lê Tiến Vương - NXB Khoa học kĩ thuật 1997 - Bài giảng môn Cơ sở liệu I - Khoa CNTT - Đại học KHTN Bộ môn Tin học Cơ bản, Khoa CNTT, ĐH Mỏ - Địa Chất 42 [...]... bng, khi ú mt dũng tng ng vi mt b ca quan h, mt ct tng ng vi cỏc giỏ tr ca mt thuc tớnh Quan h Bng Tp B Dũng Bn ghi Thuc tớnh Ct Trng Cú hai i lng o kớch thc quan h: S thuc tớnh ca quan h: gi l bc quan h S b: gi l lc lng ca quan h 2.2 nh ngha 2 Gi R = {A1,A2, , An} l tp hu hn ca cỏc thuc tớnh, mi thuc tớnh Ai vi i = 1, ,n cú min giỏ tr tng ng l DOM(A1) Khi ú r l quan h xỏc nh trờn n thuc tớnh nu r... h (3 tit) Trong bi ny s trỡnh by chi tit i s quan h nh l c s ca mt ngụn ng bc cao thao tỏc trờn cỏc quan h Bao gm cỏc phộp toỏn tp hp nh: hp, tr, giao, tớch Cỏc v cỏc phộp toỏn quan h nh: chn, chiu, kt ni, chia 1 nh ngha a) nh ngha 1: Hai quan h r v s gi l kh hp nu chỳng c xỏc nh trờn cựng tp min tr Vớ d: quan h r xỏc nh trờn min {D1,D2, ,Dn} cú bc n quan h s xỏc nh trờn min {D'1,D'2, ,D'm} cú bc... liu quan h http://www.ebook.edu.vn Chơng 3 Mễ HèNH D LIU QUAN H Mụ hỡnh d liu quan h l mụ hỡnh ph bin v quan trng, c E.Codd a ra vo nm 1970 Mt trong nhng u im ca mụ hỡnh d liu quan h l cú h tr cỏc ngụn ng khai bỏo, khỏ n gin nhng hiu qa v cỏc phộp toỏn trờn d liu Cỏc phộp toỏn ny cú th t hp v phõn tỏch d dng nh vo mt h thng kớ hiu i s gi l i s quan h (relational algebra) Bài 1 Cỏc khỏi nim c bn (1 tit)... chớnh ca quan h r nhng nú li l khoỏ chớnh ca quan h khỏc Vớ d 3.2: B mụn Tin hc C bn, Khoa CNTT, H M - a Cht 18 Bi ging C s d liu quan h http://www.ebook.edu.vn Thc th Sỏch cú khoỏ chớnh l Mó_Sỏch Thc th c gi cú khoỏ chớnh l Mó_c_Gi Thc th Mn cú khoỏ ngoi l Mó_Sỏch v Mó_c_Gi B mụn Tin hc C bn, Khoa CNTT, H M - a Cht 19 Bi ging C s d liu quan h http://www.ebook.edu.vn Bài 2 Cỏc phộp toỏn i s quan h (3... C s d liu quan h http://www.ebook.edu.vn 2 Quan h 2.1 nh ngha 1 Cho n tp D1, D2, Dn, khụng nht thit phõn bit nhau, khi ú R c nh ngha l 1 quan h trờn n tp ú nu R l mt tp no ú cỏc b c sp (d1, d2, dn) sao cho di Di Vớ d 2.1: quan h r = { ( d1i , d 2i , , d ni ) | i = 1 m } l n b c sp th i t tờn cỏc ct l A1, A2, An: A1 , Ai, An d11 , di1 , d n1 d12 ., di2 , d n2 M M M d1m , dim , d nm Mi quan h cú... 2.2 Phộp giao (Intersect) Giao ca hai quan h r v s kh hp, kớ hiu l r s, l tp cỏc b thuc c hai quan h r v s Biu din hỡnh thc cho phộp giao cú dng nh sau: Vớ d 2.2: Vi r v s l hai quan h trong vớ d trờn, giao ca chỳng l: rs= (A B C) a1 b1 c1 B mụn Tin hc C bn, Khoa CNTT, H M - a Cht 20 Bi ging C s d liu quan h http://www.ebook.edu.vn 2.3 Phộp tr (Minus) Hiu ca hai quan h r v s kh hp, kớ hiu r - s Biu... kớ hiu r - s Biu din hỡnh thc phộp tr cú dng nh sau: Vớ d 2.3: Vi r v s l hai quan h trong vớ d trờn, phộp tr ca chỳng l: r-s= (A B C) a2 b1 c2 a2 b2 c1 Chỳ ý: Phộp giao ca 2 quan h r s cú th biu din quan phộp tr: r s = r - (r-s) 2.4 Phộp chn (Selection) Phộp chn trờn mt quan h thc cht l phộp toỏn lc ra mt tp con cỏc b ca quan h tho món iu kin cho trc iu kin l biu thc chn, l mt t hp logic ca cỏc toỏn... Nu K l khoỏ ca quan h r(A1,A2, , An) thỡ K K' R, K' cng l khoỏ ca r, ngha l bt kỡ t1, t2 r t t1[K] t2 [K] luụn cú t1[K'] t2 [K'] K l khoỏ ti thiu ca nu nh K l khoỏ ca r v vi mi K' K, K' khụng l khoỏ ca quan h r Mt quan h cú th cú nhiu khoỏ ti thiu, do ú khụng cn xỏc nh ht khoỏ ti thiu m ch cn xỏc nh 1, 2 khoỏ ti thiu lm khoỏ chớnh, cỏc khoỏ khỏc l d b K c gi l khoỏ ngoi ca quan h r nu nh K...Bi ging C s d liu quan h http://www.ebook.edu.vn Bài 2 Cỏc mụ hỡnh d liu (2 tit) Hin nay cú nhiu loi mụ hỡnh d liu khỏc nhau Trong bi ny chỳng ta s ch nghiờn cu ba loi mụ hỡnh d liu c bn thng c s dng bao gm: mụ hỡnh quan h, mụ hỡnh mng, v mụ hỡnh phõn cp 1 Mụ hỡnh quan h (Relational model) Mụ hỡnh ny da trờn c s khỏi nim lý thuyt tp hp ca cỏc quan h, tc l tp cỏc k - b vi k c nh Hay... Cht 12 Bi ging C s d liu quan h http://www.ebook.edu.vn Chiu mi tờn hng ti u nhiu Vớ d 2: Xột quan h gia nhõn viờn v phũng trong mt cụng ty õy l quan h mt nhiu (mt nhõn viờn thuc ch mt phũng cũn mt phũng cú th cú nhiu nhõn viờn) 3 Mụ hỡnh phõn cp (Hierachical model) Mụ hỡnh d liu l mt cõy, trong ú cỏc nỳt biu din cỏc tp thc th, gia cỏc nỳt con v nỳt cha c liờn h theo mt mi quan h xỏc nh Mụ hỡnh phõn ... ngoi (View 1) User n Mụ hỡnh ngoi n (View n) ỏnh x ngoi -quan nim Mc quan nim Bn ghi quan nim ỏnh x ngoi -quan nim n Mụ hỡnh quan nim ỏnh x ngoi quan nim-trong Mc Bn ghi Ngi qun tr CSDL Mụ hỡnh CSDL... hỡnh quan nim v mụ hỡnh ta cú bn ghi quan nim v bn ghi Do cú s khỏc gia bn ghi ngoi v bn ghi quan nim, ỏnh x ti ngi dựng cn cú ỏnh x ngoi -quan nim Tng ng cn cú ỏnh x quan nim-trong gia mụ hỡnh quan. .. ca quan h, mt ct tng ng vi cỏc giỏ tr ca mt thuc tớnh Quan h Bng Tp B Dũng Bn ghi Thuc tớnh Ct Trng Cú hai i lng o kớch thc quan h: S thuc tớnh ca quan h: gi l bc quan h S b: gi l lc lng ca quan