Bài giảng CƠ SỞ DỮ LIỆU

133 15 0
Bài giảng CƠ SỞ DỮ LIỆU

Đang tải... (xem toàn văn)

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

Thông tin tài liệu

KHƯƠNG THỊ QUỲNH Bài giảng CƠ SỞ DỮ LIỆU TRƯỜNG ĐẠI HỌC LÂM NGHIỆP - 2017 LỜI NÓI ĐẦU Các hệ sở liệu đóng vai trị quan trọng việc ứng dụng công nghệ thông tin vào sống hàng ngày xã hội đại Cùng với tiến kỹ thuật, nhiều ứng dụng sở liệu cuxng phát triển mạnh Để thiết kế, cài đặt ứng dụng tốt hệ sở liệu, trước hết cần hiểu rõ khái niệm cần thiết Bài giảng Cơ sở liệu nhằm trang bị cho sinh viên kỹ thuật sở liệu truyền thống Với kiến thức đó, sinh viên xây dựng sở liệu truyền thống để đưa vào ứng dụng sống hàng ngày sở để nghiên cứu sâu hơn, tạo sở liệu đáp ứng với yêu cầu ứng dụng Bài giảng gồm chương: Chương Tổng quan sở liệu Chương trình bày khái niệm hệ sở liệu sở liệu, hệ quản trị sở liệu, mơ hình sở liệu, ngơn ngữ giao diện, người sử dụng hệ sở liệu Thông qua chương này, người đọc nắm định nghĩa ý nghĩa thuật ngữ dùng hệ sở liệu Chương Mơ hình thực thể liên kết Chương trình bày khái niệm mơ hình thực thể liên kết cách thiết kế mơ hình Chương Mơ hình sở liệu quan hệ Chương giúp sinh viên làm quen với khái niệm mô hình sở liệu quan hệ, ràng buộc mơ hình cách thiết kế sở liệu quan hệ việc chuyển đổi từ mơ hình thực thể liên kết Ngoài ra, cung cấp cho sinh viên kiến thức phép toán đại số quan hệ Chương Phụ thuộc hàm chuẩn hóa sở liệu quan hệ Chương đề cập tới định nghĩa tính chất phụ thuộc hàm, dạng chuẩn quan hệ, phương pháp tách (chuẩn hóa) quan hệ Chương SQL Chương giới thiệu câu lệnh ngơn ngữ truy vấn SQL Bài giảng có ích cho sinh viên ngành Hệ thống thông tin tất muốn tìm hiểu sở liệu Mặc dù cố gắng trình bày vấn đề cách xác dễ hiểu, nhiên thời gian kinh nghiệm hạn chế, chắn giảng cịn nhiều thiếu sót Mặt khác, giảng nhập môn nên khơng có điều kiện để trình bày nhiều khía cạnh khác sở liệu quản trị sở liệu, an ninh sở liệu,… Tác giả mong nhận ý kiến đóng góp độc giả để lần tái sau, giảng hoàn chỉnh Tác giả Chương TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU Trong nhiều năm gần đây, thuật ngữ sở liệu – Database trở nên quen thuộc nhiều lĩnh vực Các ứng dụng tin học quản lý ngày nhiều đa dạng, hầu hết lĩnh vực kinh tế, xã hội,…đều ứng dụng thành tựu tin học vào phục vụ công tác chuyên môn Chính lẽ mà ngày nhiều người quan tâm đến thiết kế, xây dựng ứng dụng sở liệu Trong chương này, tìm hiểu sở liệu, hệ quản trị sở liệu, mơ hình sở liệu khái niệm khác 1.1 Dữ liệu Dữ liệu (Data) mô tả vật, người kiện giới thực mà gặp hàng ngày nhiều cách thể khác Một số dạng thường dùng để biểu diễn liệu văn (Text), số (Number), biểu tượng (Symbol), hình ảnh (Image), âm (Audio), phim ảnh (Video) (Ngồi định nghĩa cịn có nhiều định nghĩa khác liệu) 1.2 Thông tin Thông tin (Information) liệu, có nhiều cách định nghĩa khác Một định nghĩa bao quát xem thông tin liệu đặt vào ngữ cảnh với hình thức thích hợp có lợi cho người sử dụng cuối Ví dụ: Có liệu giá vàng ngày tháng; ta biểu diễn giá vàng điểm giá trị mặt phẳng theo trục thời gian với ngày/tháng tăng dần từ trái sang phải, nhận thông tin “sự biến động giá vàng tháng” mà để dạng bảng thường nhận thông tin biến động 1.3 Cơ sở liệu 1.3.1 Tại cần tới hệ CSDL? Trước hệ sở liệu(CSDL) đời, chương trình ứng dụng có tệp liệu tương ứng chương trình ứng dụng cần sửa đổi mở rộng tệp liệu tương ứng phải thay đổi theo Cho đến số đơn vị kinh tế, hành nghiệp… sử dụng mơ hình hệ thống tệp tin cổ điển Các tệp tin tổ chức riêng rẽ, phục vụ cho mục đích đơn vị số đơn vị trực thuộc cụ thể, khơng có mơ hình tổng thể cho toàn đơn vị Việc sử dụng hệ thống tệp tin để lưu trữ liệu cách riêng lẻ có số ưu điểm khuyết điểm - Ưu điểm: + Việc xây dựng hệ thống tệp tin riêng đơn vị quản lý tốn thời gian khối lượng thơng tin cần quản lý khai thác nhỏ, không đòi hỏi đầu tư vật chất chất xám nhiều, triển khai ứng dụng nhanh + Thơng tin khai thác phục vụ mục đích hẹp nên khả đáp ứng nhanh chóng, kịp thời - Nhược điểm: + Thông tin tổ chức riêng rẽ nhiều nơi nên việc cập nhật dễ làm tính quán liệu, dễ xảy tình trạng liệu bị trùng lặp, số lượng liệu tăng nhanh + Hệ thống thông tin tổ chức thành hệ thống tệp tin riêng lẻ nên thiếu chia sẻ thông tin nơi Như vậy, nhận thấy việc tổ chức liệu theo hệ thống tệp tin hồn tồn khơng phù hợp với hệ thốngthông tin lớn Việc xây dựng hệ thống thông tin đảm bảo tính chất quán mặt liệu, đáp ứng nhu cầu khai thác đồng thời nhiều người thực cần thiết 1.3.2 Định nghĩa sở liệu Cơ sở liệu kỹ thuật sở liệu có ảnh hưởng lớn đến việc sử dụng máy tính Có thể nói sở liệu đóng vai trị quan trọng lĩnh vực có sử dụng máy tính giáo dục, thương mại, kỹ nghệ, khoa học, thư viện,… Thuật ngữ sở liệu trở thành thuật ngữ phổ biến Như vậy, sở liệu gì? Một sở liệu(CSDL)là tập hợp liệu dùng chung(1), có liên quan với nhau, với mô tả chúng, thiết kế cho nhu cầu thông tin tổ chức Khái niệm dùng chung, chia sẻ liệu dùng rộng rãi nhiều ứng dụng với nghĩa nhiều người dùng truy cập liệu thời điểm Ví dụ: Để quản lý việc học tập môi trường đại học, liệu thông tin sinh viên, môn học, điểm thi… Chúng ta tổ chức liệu thành bảng lưu giữ chúng vào sổ sách sử dụng phần mềm máy tính để lưu giữ chúng máy tính Ta có tập liệu có liên quan đến mang nhiều ý nghĩa, sở liệu 1.3.3 Các tính chất CSDL Một sở liệu có tính chất sau: Một sở liệu biểu thị khía cạnh giới thực hoạt động công ty, nhà trường, ngân hàng… Những thay đổi giới thực phải phản ánh cách trung thực vào sở liệu Những thông tin đưa vào sở liệu tạo thành không gian sở liệu “thế giới thu nhỏ” Một sở liệu tập hợp liệu liên kết với cách logic mang ý nghĩa cố hữu Một sở liệu khơng phải tập hợp tuỳ tiện Một sở liệu thiết kế phổ biến cho mục đích riêng Nó có nhóm người sử dụng có chủ định có số ứng dụng xác định phù hợp với mối quan tâm người sử dụng Nói cách khác, sở liệu có nguồn cung cấp liệu, mức độ tương tác với kiện giới thực nhóm người quan tâm tích cực đến nội dung Một sở liệu có cỡ tuỳ ý có độ phức tạp thay đổi Có sở liệu gồm vài trăm ghi (như sở liệu phục vụ việc quản lý lương quan nhỏ), có sở liệu có dung lượng lớn (như sở liệu phục vụ cho việc tính cước điện thoại, quản lý nhân phạm vi lớn) Các sở liệu phải tổ chức quản lý cho người sử dụng tìm kiếm liệu, cập nhật liệu lấy liệu cần thiết Một sở liệu tạo trì cách thủ cơng tin học hoá Một sở liệu tin học hố tạo trì nhóm chương trình ứng dụng hệ quản trị sở liệu 1.4 Hệ quản trị CSDL 1.4.1 Định nghĩa hệ quản trị CSDL Một hệ quản trị sở liệu (Database Management System) tập hợp chương trình giúp cho người sử dụng tạo ra, trì khai thác sở liệu Nó hệ thống phần mềm phổ dụng, làm đơn giản hóa q trình định nghĩa, xây dựng thao tác sở liệu cho ứng dụng khác Hay nói cách khác, hệ quản trị sở liệu (HQTCSDL) phần mềm tương tác với chương trình ứng dụng người dùng sở liệu - Định nghĩa sở liệu bao gồm việc đặc tả kiểu liệu, cấu trúc ràng buộc cho liệu lưu trữ sở - Xây dựng sở liệu trình lưu trữ liệu phương tiện lưu trữ hệ quản trị sở liệu kiểm soát - Thao tác sở liệu bao gồm chức truy vấn sở liệu để lấy liệu cụ thể, cập nhật sở liệu để phản ánh thay đổi giới nhỏ tạo báo cáo từ liệu Hình 1.1.Mối quan hệ CSDL, HQTCSDL ứng dụng Các hệ quản trị sở liệu dùng để thể sở liệu tin học hố có thểlà phần mềm đóng gói chuyên dụng (là tập phần mềm tạo với mục đích riêng) Ví dụ: Microsoft Office Access, Microsoft SQL Server, Oracle, Foxpro, IBM DB2… 1.4.2 Các chức hệ quản trị sở liệu Hệ quản trị sở liệu có chức sau:  Quản lý từ điển liệu: Hệ quản trị quản lý tất liệu dùng để mơ tả liệu Nó lưu định nghĩa cấu trúc quan hệ từ điển liệu Cho phép thực trừu tượng hóa liệu nhằm đảm bảo tính độc lập liệu độc lập cấu trúc  Quản lý lưu trữ: Hệ quản trị tạo cấu trúc phức tạp để lưu trữ từ liệu đơn giản đến phức tạp, từ định nghĩa biểu mẫu, biểu báo đến ràng buộc liệu đoạn mã chương trình  Quản lý nhập xuất: Hệ quản trị biến đổi liệu phù hợp với cấu trúc lưu trữ, nhờ ta khơng cần quan tâm đến định dạng vật lý liệu kết xuất liệu theo yêu cầu logic người sử dụng  Quản lý bảo mật: Hệ quảntrị tạo hệ thống bảo mật kiểm soát quyền sử dụng người dùng  Điều khiển truy xuất nhiều người dùng: Hệ quản trị tạo cấu trúc phức tạp dùng giải thuật tinh vi nhằm bảo đảm sở liệu luôn quán  Quản lý lưu phục hồi sở liệu: Hệ quản trị cung cấp thủ tục lưu phục hồi liệu đảm bảo liệu an toàn toàn vẹn xảy cố có yêu cầu từ người dùng  Quản lý toàn vẹn liệu: Hệ quản trị cung cấp chế nhằm giảm dư thừa tăng quán, đặc biệt sở liệu nhiều người dùng  Ngôn ngữ truy xuất sở liệu giao diện lập trình ứng dụng: Hệ quản trị cung cấp chế truy xuất liệu qua ngôn ngữ truy xuất sở liệu ngôn ngữ hỏi gồm: ngôn ngữ định nghĩa liệu DDL (Data Defitintion Language) ngôn ngữ thao tác liệu DML (Data Manipulation Language) Nó cung cấp giao diện cho ngơn ngữ lập trình  Giao diện giao tiếp với sở liệu: Hệ quản trị cung cấp thủ tục giao tiếp đặc biệt thiết kế cho phép sở liệu đáp ứng yêu cầu người dùng cuối môi trường mạng 1.4.3 Các thành phần hệ quản trị sở liệu Nhằm mục đích cung cấp chức dịch vụ kể trên, hệ quản trị sở liệu hệ thống phần mềm tinh vi có độ phức tạp cao Một hệ quản trị CSDL chia thành số thành phần, thành phần modul phần mềm chịu số trách nhiệm cụ thể Hình 1.2 Thành phần hệ quản trị CSDL Về bản, hệ quản trị sở liệu có thành phần sau: Bộ xử lý câu hỏi (Query Processor): Là thành phần hệ quản trị CSDL với nhiệm vụ dịch câu lệnh ngôn ngữ truy vấn thành câu lệnh mức thấp để chuyển cho quản lý CSDL  Bộ quản lý CSDL (Database Mangager): giao tiếp với chương trình ứng dụng người dùng câu lệnh truy vấn Nó tiếp nhận yêu cầu truy vấn kiểm tra lược đồ lược đồ khái niệm(1) để xác định ghi khái niệm yêu cầu Sau gọi đến phận quản lý tệp tin để thực yêu cầu Có thể nhìn thấy chi tiết thành phần tạo nên quản lý CSDL hình 1.3, gồm: - Trình quản lý quyền truy cập (Authorization Control); - Trình xử lý câu lệnh (Command Processor); - Trình kiểm tra tính tồn vẹn (Integrity Checker); - Trình tối ưu hóa câu hỏi (Query Optimizer);  Các loại lược đồ ngoài, lược đồ khái niệm đề cập mục 1.7 Kiến trúc hệ sở liệu 10 Ví dụ 19: Liệt kê danh sách dự án có địa điểm thực có chứa từ UBND chứa từ UB: SELECT * FROM DUAN WHERE DiaDiemDA LIKE ‘%UBND%’ OR DiaDiemDA LIKE ‘%UB%’ Ví dụ 20: Liệt kê danh sách nhân viên có tên Vân có giới tính nữ: SELECT * FROM NHANVIEN WHERE HoTen LIKE ‘%Van’ OR GioiTinh = ‘Nu’  Các phép toán phạm vi + IS [NOT] NULL SQL cho phép dùng giá trị NULL để thiếu vắng thông tin giá trị thuộc tính Đó giá trị tồn thực tế chưa biết, giá trị khơng tồn hay khơng áp dụng Với từ khóa IS NULL, SQL cho phép câu lệnh chọn dựa vào việc kiểm tra giá trị có NULL hay không Kết phép so sánh chứa NULL xem nhận giá trị FALSE Ví dụ 21: Cho biết tên mã số dự án mà địa điểm NULL: SELECT MaDA, TenDA FROM DUAN WHERE DiaDiemDA IS NULL + [NOT] IN () Trong SQL, toán tử IN dùng để kiểm tra xem giá trị có tồn tập hợp giá trị hay không Nếu giá trị mà thuộc tập giá trị tốn tử trả giá trị TRUE, ngược lại trả giá trị FALSE 119 Ví dụ 22: Liệt kê danh sách nhân viên Hà Nội, Hải Phòng Hưng Yên: SELECT * FROM NHANVIEN WHERE DiaChi IN (‘Ha Noi’, ‘Hai Phong’, ‘Hung Yen’) + [NOT] BETWEEN AND Kiểm tra giá trị có nằm phạm vi định hay không Trả giá trị TRUE nằm khoảng giá trị ngược lại trả giá trị FALSE Ví dụ 23: Cho biết họ tên nhân viên có giới tính nữ có lương từ triệu đến triệu đồng SELECT HoTen, GioiTinh FROM NHANVIEN WHERE GioiTinh = ‘Nu’ AND Luong BETWEEN 2000000 AND 4000000 d Mệnh đề ORDER BY ORDER BY< Danh sách thuộc tính xếp>] [ASC | DESC] Nói chung khơng thể xếp hàng (các bộ) bảng kết câu truy vấn SQL theo thứ tự tùy ý, dùng từ khóa ORDER BY khiến bảng kết xuất theo thứ tự tăng dần giảm dần (ngầm định tăng dần) giá trị số cột Ví dụ 24: Liệt kê nhân viên nữ theo thứ tự tăng dần lương: SELECT * FROM NHANVIEN WHERE GioiTinh = ‘Nu’ ORDER BY Luong ASC Ví dụ 25: Liệt kê mã nhân viên tham gia dự án DA1 theo số công giảm dần: 120 SELECT MaNV FROM CHAMCONG WHERE MaDA = ‘DA1’ ORDER BY SoGio DESC Việc xếp thứ tự thực nhiều thuộc tính Ví dụ 26: Liệt kê nhân viên tham gia dự án DA1, DA2, DA3 theo số công giảm dần mã dự án tăng dần: SELECT * FROM CHAMCONG WHERE MaDA IN (‘DA1’, ‘DA2’, ‘DA3’) ORDER BY SoGio DESC, MaDA ASC e Sử dụng hàm gộp mệnh đề GROUP BY, HAVING  Các hàm gộp nhóm SQL cung cấp hàm gộp cài đặt sẵn: + SUM < Tên thuộc tính>: Tính tổng giá trị thuộc tính; + MAX< Tên thuộc tính> : Tính giá trị lớn thuộc tính; + MIN < Tên thuộc tính> : Tìm giá trị nhỏ thuộc tính; + AVG < Tên thuộc tính>: Tính giá trị trung bình thuộc tính; + COUNT (*): Đếm số dòng bảng; + COUNT< Tên thuộc tính>: Đếm giá trị khác null thuộc tính Những hàm gộp nhóm thực cột bảng trả giá trị chúng xuất mệnh đề SELECT HAVING Các hàm COUNT, MIN, MAX áp dụng cho cột mà miền giá trị kiểu số hay số, SUM, AVG áp dụng cho cột miền trị thuộc kiểu số Ví dụ 27: Có nhân viên lương cao 3000000: SELECT COUNT(*) AS SoLuong FROM NHANVIEN WHERE Luong>3000000 121 Ví dụ 28: Cho biết có nhân viên làm việc phịng P1 tính tổng lương họ: SELECT COUNT(*) AS SoNV, SUM(Luong) AS TongLuong FROM NHANVIEN WHERE MaPhong = ‘P1’ Ví dụ 29: Tìm lương cao nhất, lương thấp trung bình cộng lương nhân viên: SELECT MAX(Luong) AS CN, MIN(Luong) AS TN, AVG(Luong) AS TB FROM NHANVIEN f Gom nhóm SQL không cho phép áp dụng hàm gộp tập mà cho phép áp dụng hàm gộp nhóm có giá trị hay số cột Để làm điều câu truy vấn phải sử dụng từ khóa GROUP BY SELECT < danh sách thuộc tính nhóm> FROM < danh sách bảng> [WHERE < Điều kiện>] GROUP BY < danh sách thuộc tính nhóm> Khi từ khóa GROUP BY sử dụng, giá trị mục liệt kê sau từ khóa SELECT giá trị cho nhóm Danh sách mục đứng sau từ khóa SELECT là: Tên cột, Các hàm gộp, Các Một biểu thức chứa tổ hợp mục Cần ý rằng, tất tên cột xuất danh sách sau từ khóa SELECT phải xuất mệnh đề GROUP BY trừ tên cột xuất khai báo hàm gộp Ví dụ 30: Cho biết lương cao tổng lương đơn vị: SELECT MaPhong, MAX(Luong) AS LuongCN, SUM(Luong) AS TongLuong FROM NHANVIEN GROUP BY MaPhong 122 Khi thực truy vấn ví dụ 30, có giá trị cột mã phịng tạo thành nhóm hàm MAX hàm SUM áp dụng cho nhóm Bảng kết câu truy vấn thực là: MaPhong Luong CN TongLuong P1 1500000 1500000 P2 4500000 8500000 P3 3000000 6400000 Trường hợp khơng muốn áp dụng hàm gộp cho nhóm theo tác động GROUP BY mà áp dụng cho số nhóm thỏa mãn điều kiện đó, SQL cung cấp từ khóa HAVING nhằm mục đích Điều kiện chọn nhóm áp dụng hàm gộp nhóm viết câu HAVING SELECT < Danh sách thuộc tính> FROM < Danh sách bảng> [WHERE < Điều kiện>] GROUP BY HAVING < Điều kiện nhóm> Ví dụ 31: Cho biết mã phịng phịng có tổng lương lớn triệu: SELECT MaPhong FROM NHANVIEN GROUP BY MaPhong HAVING SUM(Luong)>4000000 Cần phân biệt mục đích WHERE HAVING Mặc dù có cú pháp tương tự, câu lệnh WHERE lọc lấy số bảng để đưa vào kết quả, câu lệnh HAVING lọc lấy số nhóm để đưa vào bảng kết Theo chuẩn ISO, tên cột dùng câu lệnh HAVING phải có mặt danh sách tên cột câu lệnh GROUP BY hàm gộp Thực tế điều kiện chọn câu HAVING ln chứa hàm gộp, khơng điều kiện chuyển vào mệnh đề WHERE Nên nhớ rằng, hàm gộp không dùng mệnh đề WHERE 123 Trường hợp câu truy vấn có WHERE HAVING (dĩ nhiên có GROUP BY) trước tiên điều kiện chọn WHERE áp dụng Các thỏa điều kiện tạo thành nhóm câu GROUP BY Tiếp theo, câu HAVING loại nhóm khơng thỏa mãn điều kiện đặt sau từ HAVING Các nhóm cịn lại câu SELECT sử dụng để tạo kết câu truy vấn g Truy vấn nâng cao  Truy vấn lồng Trong SQL, số truy vấn có điều kiện kết nối điều kiện chọn giá trị cho trước mà lại kết truy vấn Để thực truy vấn vậy, người ta thường phải sử dụng đến khái niệm truy vấn lồng Một biểu thức SELECT…FROM…WHERE lồng truy vấn khác gọi truy vấn Kết truy vấn sử dụng cho câu truy vấn SELECT…FROM…WHERE bên để định nội dung kết trả Câu truy vấn xuất mệnh đề SELECT, FROM, WHERE hay mệnh đề HAVING truy vấn ngồi Có ba loại truy vấn con: - Truy vấn vô hướng: Trả bảng có cột hàng, nghĩa trả giá trị Về nguyên tắc, truy vấn vơ hướng đặt vào chỗ cần giá trị - Truy vấn hàng: Trả bảng có nhiều cột hàng Một truy vấn hàng đặt vào chỗ vần có giá trị hàng - Truy vấn bảng: Trả bảng có hay nhiều cột nhiều hàng Một truy vấn bảng dùng chỗ cần bảng Ví dụ 32: Cho biết mã nhân viên, họ tên nhân viên nhân viên làm việc phòng kĩ thuật SELECT MaNV, HoTen FROM NHANVIEN WHERE MaPhong = (SELECT MaPhong FROM PHONG_BAN WHERE TenPhong = ‘Ki thuat’) 124 Ví dụ 33: Cho biết họ tên, lương nhân viên có lương đạt mức lương trung bình tất nhân viên: SELECT HoTen, Luong FROM NHANVIEN WHERE Luong > (SELECT AVG(Luong) FROM NHANVIEN) Ví dụ 34: Cho biết mã nhân viên nhân viên có lương thấp triệu có tham gia dự án DA1: SELECT MaNV FROM NHANVIEN, (SELECT MaNV FROM CHAM_CONG WHERE MaDA = ‘DA1’) AS TABLE1 WHERE Luong < 3000000 AND NHANVIEN.MaNV=TABLE1.MaNV Ví dụ 35: Cho biết họ tên nhân viên có lương đạt mức lương trung bình tất nhân viên, đồng thời cho biết mức chênh lệch này: SELECT HoTen, Luong – (SELECT AVG(Luong) FROM NHANVIEN) FROM NHANVIEN WHERE Luong > (SELECT AVG(Luong) FROM NHANVIEN)  So sánh tập hợp Khi thực truy vấn lồng nhau, để so sánh giá trị đơn với tập hợp giá trị ta sử dụng số toán tử sau: + IN: Kiểm tra tồn giá trị tập hợp; + ALL: So sánh giá trị với tất giá trị tập hợp; + SOME ANY: So sánh giá trị với giá trị tập hợp; 125 + [NOT] EXITS: Kiểm tra xem có giá trị trả thực câu truy vấn hay không EXIST có giá trị TRUE có trả kết có giá trị FALSE trường hợp ngược lại Ví dụ 36: Cho biết họ tên nhân viên có lương cao lương tất nhân viên làm việc phòng P1: SELECT HoTen, Luong FROM NHANVIEN WHERE Luong > ALL (SELECT Luong FROM NHANVIEN WHERE MaPhong = ‘P1’)  Các phép tốn tập hợp Trong SQL có phép tốn UNION, INTERSECT EXCEPT thao tác quan hệ tương ứng với phép hợp, giao, trừ đại số quan hệ Các quan hệ tham gia phép tốn phải tương thích, nghĩa có số thuộc tính thuộc tính tương ứng có miền trị kiểu độ dài Ví dụ 37: Cho biết mã nhân viên nhân viên lương thấp triệu có tham gia dự án DA1: (SELECT MaNV FROM NHANVIEN WHERE Luong < 3000000) UNION (SELECT MaNV FROM CHAM_CONG WHERE MaDA = ‘P1’) Ví dụ 38: Cho biết mã nhân viên nhân viên vừa lương thấp triệu tham gia dự án có mã dự án DA1: (SELECT MaNV 126 FROM NHANVIEN WHERE Luong < 3000000) INTERSECT (SELECT MaNV FROM CHAM_CONG WHERE MaDA = ‘DA1’) Ví dụ 39: Cho biết mã nhân viên nhân viên vừa lương thấp triệu không tham gia dự án DA1: (SELECT MaNV FROM NHANVIEN WHERE Luong < 3000000) EXCEPT (SELECT MaNV FROM CHAM_CONG WHERE MaDA = ‘DA1’) Các phép UNION, INTERSECT, EXCEPT tự động loại bỏ trùng lặp, không muốn dùng thêm toán tử ALL vào sau phép toán UNION ALL, INTERSECT ALL, EXCEPT ALL DANH MỤC TÀI LIỆU THAM KHẢO Hồ Thuần – Hồ Cẩm Hà (2009).Các hệ sở liệu lí thuyết thực hành NXB Giáo dục Đỗ Trung Tuấn (1999).Cơ sở liệu NXB Giáo dục Nguyễn Tuệ (2009).Giáo trình nhập môn hệ sở liệu NXB Giáo dục 127 CÂU HỎI VÀ BÀI TẬP A CÂU HỎI Câu 1.Bảng ngôn ngữ SQL khác với quan hệ mô hình hóa chương nào? Bình luận khác Tại SQL cho phép ghi bảng trùng nhau? Câu 2.Liệt kê nêu chức sáu mệnh đề câu truy vấn SQL Những mệnh đề bắt buộc, mệnh đề tùy chọn? Câu 3.Nêu khác mệnh đề WHERE mệnh đề HAVING Câu Chứng minh rằng, SQL ALL đồng với NOT IN Câu Hãy cho biết ưu nhược điểm SQL Câu Giải thích khác thực truy vấn liệu hay nhiều bảng sử dụng INNER JOIN WHERE B BÀI TẬP Bài Cho lược đồ CSDL quan hệ sau: KHOA(MaKhoa, TenKhoa, NamThanhLap) NGANH(MaNganh, TenNganh, MaKhoa) LOP(MaLop, TenLop, MaNganh) SV(MaSV, HoTen, Gtinh, Nsinh, DiaChi, MaLop) MON(MaMon, TenMon, SoTC) BANGDIEM(MaSV, MaMon, Diem) a) Liệt kê danh sách sinh viên có giới tính nữ, học lớp K56AKTO có học mơn MH01 b) Cho biết mã SV, họ tên SV sinh viên học môn Tin đại cương Pháp luật đại cương c) Tính tổng số tín mà sinh viên SV01 học d) Cho biết tên môn học mà sinh viên SV01 học e) Cho biết sinh viên SV01 không học môn học nào? f) Cho biết sinh viên SV01 học môn học mà sinh viên SV02 học 128 Bài Cho lược đồ CSDL quan hệ sau: NHA_CC(MaNCC, TenNCC, DiaChi, DienThoai) LOAI_HANG(MaLoai, TenLoai, MaNCC) HANG_HOA(MaHang, TenHang, ĐVT, MaLoai) HOA_DON(SoHD, MaHang, SoLuong, DonGia) a) Liệt kê danh sách loại mặt hàng cung cấp nhà cung cấp NCC0112 b) Cho biết tên mặt hàng thuộc loại hàng văn phòng phẩm c) Cho biết nhà cung cấp NCC0112 cung cấp loại mặt hàng d) Tính thành tiền cho hàng hóa hóa đơn HD01 e) Tính tổng tiền phải trả hóa đơn f) Liệt kê hóa đơn mua mặt hàng HH01 mà khơng mua mặt hàng HH02 Bài Cho lược đồ CSDL NHANVIEN sau: NHANVIEN(Hoten, Duong_Pho, ThanhPho) LAMVIEC(Hoten, TenCongTi, Luong) CONGTI(TenCongTi, ThanhPho) QUANLI(Hoten, TenQuanLi) a) Tìm họ tên thành phố sinh sống tất nhân viên làm việc cho công ty FBC b) Tìm họ tên tên đường phố thành phố sinh sống tất nhân viên làm việc cho FBC có lương lớn 10 triệu c) Tìm tất nhân viên CSDL sống thành phố công ty nơi họ làm việc d) Tìm tất nhân viên sống thành phố phố với thủ trưởng họ e) Tìm cơng ty có nhiều nhân viên f) Tìm tất nhân viên khơng làm việc cho FBC 129 MỤC LỤC LỜI NÓI ĐẦU Chương1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU 1.1 Dữ liệu 1.2 Thông tin 1.3 Cơ sở liệu 1.3.1 Tại cần tới hệ CSDL? 1.3.2 Định nghĩa sở liệu 1.3.3 Các tính chất CSDL 1.4 Hệ quản trị CSDL 1.4.1 Định nghĩa hệ quản trị CSDL 1.4.2 Các chức hệ quản trị sở liệu 1.4.3 Các thành phần hệ quản trị sở liệu 1.5 Hệ thống sở liệu (Database System) 12 1.5.1 Khái niệm 12 1.5.2 Các thành phần hệ thống sở liệu 12 1.5.3 Con người hệ sở liệu 12 1.6 Mơ hình liệu, lược đồ thể 14 1.6.1 Các loại mơ hình sở liệu 15 1.6.2 Lược đồ trạng thái CSDL 16 1.7 Kiến trúc hệ sở liệu 17 1.8 Sự độc lập liệu 18 DANH MỤC TÀI LIỆU THAM KHẢO 20 CÂU HỎI VÀ BÀI TẬP 21 Chương2 MƠ HÌNH THỰC THỂ LIÊN KẾT 22 2.1 Sử dụng mơ hình quan niệm bậc cao để thiết kế CSDL 22 2.2 Các thành phần mơ hình ER 24 2.2.1 Thực thể, tập thực thể 24 2.2.2 Thuộc tính 25 2.2.3 Thuộc tính khóa 29 2.2.4 Liên kết, tập liên kết ràng buộc liên kết 30 130 2.2.5 Thực thể yếu 37 2.3 Ví dụ thiết kế mơ hình ER 38 2.4 Mơ hình thực thể liên kết mở rộng EER (Enhanced Entity Relationship) 41 2.4.1 Lớp cha, lớp kế thừa 42 2.4.2 Chuyên biệt hóa, tổng quát hóa 43 2.4.5 Sơ đồ mơ hình EER 47 DANH MỤC TÀI LIỆU THAM KHẢO 47 CÂU HỎI VÀ BÀI TẬP 48 Chương MƠ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ 50 3.1.Các khái niệm mơ hình quan hệ 50 3.1.1 Các định nghĩa 51 3.1.2 Các tính chất quan hệ 54 3.2.Các ràng buộc quan hệ, lược đồ sở liệu quan hệ 56 3.2.1 Các ràng buộc miền 56 3.2.2 Ràng buộc khoá ràng buộc giá trị không xác định (Null) 56 3.2.3 Cơ sở liệu quan hệ lược đồ sở liệu quan hệ 58 3.2.4 Toàn vẹn thực thể, tồn vẹn tham chiếu khố ngồi 60 3.3.Các phép tốn mơ hình quan hệ 61 3.3.1 Các phép toán cập nhật 61 3.3.2 Các phép toán đại số quan hệ 63 3.3.3 Một số ví dụ truy vấn đại số quan hệ 73 3.4 Chuyển đổi mơ hình ER thành mơ hình quan hệ 73 3.4.1 Các quy tắc chuyển đổi 74 3.4.2 Chuyển đổi mơ hình cụ thể 77 DANH MỤC TÀI LIỆU THAM KHẢO 78 CÂU HỎI VÀ BÀI TẬP 79 Chương PHỤ THUỘC HÀM VÀ CHUẨN HÓA CSDL QUAN HỆ 81 4.1.Các nguyên tắc thiết kế lược đồ quan hệ 81 4.1.1 Ngữ nghĩa thuộc tính quan hệ 81 4.1.2 Thông tin dư thừa dị thường cập nhật 82 4.1.3 Các giá trị không xác định 83 4.1.4 Sinh giả 83 131 4.2.Các phụ thuộc hàm 85 4.2.1 Định nghĩa phụ thuộc hàm 85 4.2.2 Các quy tắc suy diễn phụ thuộc hàm 87 4.2.3 Bao đóng tập thuộc tính 88 4.2.4 Bao đóng khóa 89 4.2.5 Sự tương đương tập phụ thuộc hàm 90 4.2.6 Các tập phụ thuộc hàm tối thiểu 91 4.3 Các dạng chuẩn dựa khóa 93 4.3.1 Khái niệm chuẩn hóa 93 4.3.2 Các dạng chuẩn 94 4.4 Chuẩn hóa quan hệ 97 4.4.1 Q trình chuẩn hóa 97 4.4.2 Bài tập áp dụng 101 DANH MỤC TÀI LIỆU THAM KHẢO 103 CÂU HỎI VÀ BÀI TẬP 104 Chương NGÔN NGỮ TRUY VẤN SQL 106 5.1 Giới thiệu SQL 106 5.2 Các câu lệnh định nghĩa dư liệu 108 5.2.1.Kiểu liệu 108 5.2.2.Các lệnh định nghĩa liệu 109 5.3 Các câu lệnh thao tác liệu 111 5.3.1.Các câu lệnh cập nhật liệu 111 5.3.2.Các câu lệnh truy vấn liệu 113 DANH MỤC TÀI LIỆU THAM KHẢO 144 CÂU HỎI VÀ BÀI TẬP 128 MỤC LỤC 130 132 ... phải nhân viên có con), ngược lại, tham gia kiểu thực thể CON toàn (người phải nhân viên) Ngoài ra, kiểu thực thể CON kiểu thực thể yếu 40 Sau phân tích trên, ta tiến hành rà so? ?t loại bỏ thuộc... việc nhân viên dự án 11.Kiểu liên kết NHÂNVIÊN CON biểu thị mối liên hệ kiểu thực thể NHÂNVIÊN kiểu thực thể CON (một nhân viên có người con) Kiểu liên kết có tỷ số lực lượng 1:N (một nhân... quản lý CSDL hình 1.3, gồm: - Trình quản lý quyền truy cập (Authorization Control); - Trình xử lý câu lệnh (Command Processor); - Trình kiểm tra tính tồn vẹn (Integrity Checker); - Trình tối ưu

Ngày đăng: 02/08/2020, 11:38

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan