Cơ sở dữ liệu Bậc cao đẳng

82 7 0
Cơ sở dữ liệu Bậc cao đẳng

Đ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

TRƯỜNG CAO ĐẲNG CƠNG NGHỆ THỦ ĐỨC Khoa Cơng Nghệ Thông Tin TÀI LIỆU GIẢNG DẠY | BẬC CAO ĐẲNG CƠ SỞ DỮ LIỆU | 2017 – Lưu hành nội | LỜI TÁC GIẢ Quyển tài liệu giảng dạy nhóm tác giả biên soạn dựa theo đề cương học phần Cơ sở liệu, bậc cao đẳng khoa Công Nghệ Thông Tin trường cao đẳng Công Nghệ Thủ Đức Tài liệu tài liệu sử dụng để học tập nghiên cứu chương trình đào tạo khoa Cơng Nghệ Thơng Tin Trong q trình sử dụng tài liệu này, nhóm tác giả mong nhận ý kiến đóng góp để tài liệu hồn chỉnh Mọi ý kiến đóng góp gửi cho chúng tơi theo địa email fit@tdc.edu.vn Tài liệu giảng dạy Cơ sở liệu Trang i GIỚI THIỆU Học phần sở liệu học phần quan trọng bắt buộc chương trình đào tạo hai ngành: Cơng nghệ thơng tin; Truyền thơng mạng máy tính Đây học phần sở ngành giúp sinh viên có kiến thức sở liệu, sử dụng hệ quản trị sở liệu để thực thao tác liệu Học phần tảng cho học phần liên quan ứng dụng quản lý liệu Ngoài ra, học phần giúp sinh viên phát triển kỹ làm việc nhóm Cấu trúc tài liệu bao gồm bốn chương: Chương 1: Các khái niệm sở liệu Chương 2: Mơ hình thực thể kết hợp Chương 3: Mơ hình liệu quan hệ Chương 4: Ngơn ngữ SQL Nội dung tài liệu hai giảng viên biên soạn Giảng viên Nguyễn Hoàng Nguyên biên soạn chương chương Giảng viên Hồng Cơng Trình biên soạn chương chương Nhóm tác giả Tài liệu giảng dạy Cơ sở liệu Trang ii MỤC LỤC CÁC KHÁI NIỆM CƠ SỞ DỮ LIỆU 1.1 | CÁC KHÁI NIỆM CƠ SỞ DỮ LIỆU 1.1.1 | KHÁI NIỆM CƠ SỞ DỮ LIỆU 1.1.2 | ƯU ĐIỂM CỦA CƠ SỞ DỮ LIỆU 1.1.3 | NHỮNG VẤN ĐỀ MÀ CƠ SỞ DỮ LIỆU CẦN PHẢI GIẢI QUYẾT 1.2 | HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU (DATABASE MANAGEMENT SYSTEM - DBMS) 1.3 | CÁC MỨC NHẬN THỨC 1.4 | ĐỐI TƯỢNG SỬ DỤNG DB 1.4.1 | QUẢN TRỊ VIÊN 1.4.2 | THIẾT KẾ VIÊN 1.4.3 | NGƯỜI DÙNG CUỐI 1.5 | CÁC LOẠI MƠ HÌNH CƠ SỞ DỮ LIỆU 1.5.1 | MƠ HÌNH CƠ SỞ DỮ LIỆU TẬP TIN 1.5.2 | MƠ HÌNH CƠ SỞ DỮ LIỆU PHÂN CẤP 1.5.3 | MƠ HÌNH CƠ SỞ DỮ LIỆU MẠNG 1.5.4 | MƠ HÌNH THỰC THỂ KẾT HỢP 1.5.5 | MƠ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ 1.5.6 | MÔ HÌNH CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 10 1.6 | BÀI TẬP CHƯƠNG I 10 12 MƠ HÌNH THỰC THỂ KẾT HỢP 12 2.1 | KHÁI NIỆM 13 2.2 | CÁC THÀNH PHẦN CỦA MƠ HÌNH THỰC THỂ KẾT HỢP 13 2.2.1 | THỰC THỂ (ENTITY) - TẬP THỰC THỂ (SET ENTITY) 13 2.2.2 | THUỘC TÍNH (ATTRIBUTE) 13 2.2.3 | MỐI KẾT HỢP (RELATIONSHIP) 14 2.2.4 | KHÓA CỦA TẬP THỰC THỂ 15 2.2.5 | MỐI QUAN HỆ ĐỆ QUI 16 2.2.6 | TỔNG QUÁT HÓA VÀ CHUYÊN BIỆT HÓA (IS-A) 16 2.2.7 | TẬP THỰC THỂ YẾU (WEAK ENTITY) 17 2.2.8 | BẬC CỦA MỐI KẾT HỢP (DEGREE) 18 2.2.9 | BẢN SỐ CỦA MỐI KẾT HỢP 18 2.3 | MƠ HÌNH THỰC THỂ KẾT HỢP 19 2.4 | CÂU HỎI VÀ BÀI TẬP CHƯƠNG 20 29 MƠ HÌNH DỮ LIỆU QUAN HỆ 29 3.1 | GIỚI THIỆU 30 3.2 | CÁC KHÁI NIỆM 30 3.2.1 | THUỘC TÍNH ( ATTRIBUTE) 30 3.2.2 | LƯỢC ĐỒ QUAN HỆ (RELATION SCHEMA) 31 3.2.3 | LƯỢC ĐỒ CƠ SỞ DỮ LIỆU (DATABASE SCHEMA) 32 3.2.4 | BỘ ( TUPLE / RECORD/ ROW) 32 3.2.5 | QUAN HỆ (RALTION) 32 3.2.6 | SIÊU KHÓA VÀ KHÓA CỦA LƯỢC ĐỒ QUAN HỆ 32 3.3 | CHUYỂN ĐỔI TỪ MƠ HÌNH THỰC THỂ KẾT HỢP SANG MƠ HÌNH QUAN HỆ 33 3.4 | RÀNG BUỘC TOÀN VẸN 37 Tài liệu giảng dạy Cơ sở liệu Trang iii 3.4.1 | RÀNG BUỘC KHĨA CHÍNH 38 3.4.2 | RÀNG BUỘC DUY NHẤT 38 3.4.3 | RÀNG BUỘC MIỀN GIÁ TRỊ 38 3.4.4 | RÀNG BUỘC KHÓA NGOẠI 39 3.4.5 | RÀNG BUỘC MẶC ĐỊNH, NOT NULL 39 3.5 | BÀI TẬP CHƯƠNG 39 42 NGÔN NGỮ SQL 42 4.1 | GIỚI THIỆU NGÔN NGỮ SQL 43 4.2 | NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU 43 4.3 | NGÔN NGỮ THAO TÁC DỮ LIỆU 45 4.3.1 | THÊM DỮ LIỆU 45 4.3.2 | CẬP NHẬT DỮ LIỆU 46 4.3.3 | XÓA DỮ LIỆU 47 4.4 | NGÔN NGỮ TRUY VẤN DỮ LIỆU 48 4.4.1 | PHÉP CHỌN 48 4.4.2 | PHÉP CHIẾU 57 4.4.3 | PHÉP KẾT 59 4.4.4 | SẮP XẾP 61 4.4.5 | THỐNG KÊ THEO NHÓM 63 4.4.6 | TRUY VẤN LỒNG 66 4.5 | BÀI TẬP CHƯƠNG 70 Tài liệu giảng dạy Cơ sở liệu Trang iv Danh mục từ viết tắt DB DBMS SQL DBA MHQH LĐQH Tài liệu giảng dạy Cơ sở liệu Database (Cơ sở liệu) Database Management System (Hệ quản trị sở liệu) Structured Query Language Database Administrator (Người quản trị sở liệu) Mơ hình quan hệ Lược đồ quan hệ Trang v CÁC KHÁI NIỆM CƠ SỞ DỮ LIỆU Sau học xong chương này, sinh viên có khả năng: Tài liệu giảng dạy Cơ sở liệu - Trình bày khái niệm sở liệu, hệ quản trị sở liệu - Trình bày mức nhận thức sở liệu - Phân biệt đối tượng sử dụng sở liệu - Liệt kê mô hình sở liệu Trang 1.1 | CÁC KHÁI NIỆM CƠ SỞ DỮ LIỆU 1.1.1 | KHÁI NIỆM CƠ SỞ DỮ LIỆU Cơ sở liệu (Database) tập hợp thành phần liệu có liên quan với quản lý dạng đơn vị 1.1.2 | ƯU ĐIỂM CỦA CƠ SỞ DỮ LIỆU - Giảm trùng lắp thông tin xuống mức thấp Bảo đảm tính quán tồn vẹn liệu Đảm bảo liệu truy xuất theo nhiều cách khác Khả chia sẻ thông tin cho nhiều người sử dụng 1.1.3 | NHỮNG VẤN ĐỀ MÀ CƠ SỞ DỮ LIỆU CẦN PHẢI GIẢI QUYẾT - Tính chủ quyền liệu Tính chủ quyền liệu thể phương diện an toàn liệu, khả biểu diễn mối liên hệ ngữ nghĩa liệu tính xác liệu Điều có nghĩa người khai thác DB phải có nhiệm vụ cập nhật thơng tin DB - Tính bảo mật quyền khai thác thông tin người sử dụng Do có nhiều người phép khai thác liệu cách đồng thời, nên cần thiết phải có chế bảo mật phân quyền hạn khai thác DB Các hệ điều hành nhiều người sử dụng hay hệ điều hành mạng cục có cung cấp chế Ngoài DBMS hỗ trợ cung cấp chế bảo mật phân quyền - Tranh chấp liệu Tài liệu giảng dạy Cơ sở liệu Trang Nhiều người phép truy nhập lúc vào tài nguyên liệu DB với mục đích khác nhau, cần thiết phải có chế ưu tiên truy nhập liệu Cơ chế ưu tiên thực việc cấp quyền ưu tiên cho người khai thác - Đảm bảo an toàn liệu có cố Việc quản lý liệu tập trung làm tăng khả mát sai lệch thơng tin có cố điện đột xuất, hay phần đĩa lưu trữ DB bị hư,… số hệ điều hành mạng có cung cấp dịch vụ lưu ảnh đĩa cứng, tự động kiểm tra khắc phục lỗi có cố Tuy nhiên, bên cạnh dịch vụ hệ điều hành, để đảm bảo DB ổn định, DB thiết phải có chế khơi phục liệu có cố xảy 1.2 | HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU (DATABASE MANAGEMENT SYSTEM - DBMS) Để giải tốt vấn đề mà DB đặt nói trên, cần thiết phải có phần mềm chuyên dùng để khai thác quản lý chúng Những phần mềm gọi DBMS Các DBMS có nhiệm vụ hỗ trợ cho nhà phân tích, thiết kế DB người khai thác DB Hiện nay, thị trường phần mềm có DBMS phổ biến như: MS Access, MySQL, Oracle, SQL Server… Một DBMS phải có: - Ngơn ngữ giao tiếp người sử dụng DB  Ngôn ngữ định nghĩa liệu (Data definition language - DDL) phép khai báo cấu trúc DB, khai báo mối liên hệ liệu (Data RelationShip) quy tắc (Rules, Constraint) quản lý áp đặt lên liệu  Ngơn ngữ thao tác liệu (Data Manipulation Language DML) cho phép người sử dụng them (Insert), xóa (Delete), sửa (Update) liệu DB  Ngôn ngữ truy vấn liệu, hay ngơn ngữ hỏi đáp có cấu trúc (Structured Query Language - SQL) cho phép người Tài liệu giảng dạy Cơ sở liệu Trang khai thác DB (chuyên nghiệp không chuyên) sử dụng để truy vấn thông tin cần thiết DB  Ngôn ngữ quản lý liệu (Data Control Language - DCL) cho phép người quản trị hệ thống thay đổi cấu trúc bảng liệu, khai báo bảo mật thông tin cấp quyền hạn khai thác DB cho người sử dụng - 1.3 | Từ điển liệu (Data Dictionary) Biện pháp bảo mật tốt có yêu cầu bảo mật Cơ chế giải vấn đề tranh chấp liệu Cơ chế lưu (Backup) phục hồi (Restore) liệu có cố Cung cấp giao diện (Interface) tốt, dễ sử dụng, dễ hiểu cho người sử dụng khơng chun Bảo đảm tính độc lập liệu chương trình CÁC MỨC NHẬN THỨC Một DB phân thành mức khác nhau, sau mức nhận thức DB: Mức ngoài, mức quan niệm, mức Tài liệu giảng dạy Cơ sở liệu Trang SELECT FROM < Table_name1, Table_Name2,…, Table_NameN > ORDER BY | [ASC | DESC], |< expression> [ASC | DESC], Liệt kê thuộc tính làm tiêu chuẩn xếp sau mệnh đề ORDER BY, thuộc tính xác định tăng dần thêm từ khóa ASC sau tên thuộc tính, ngược lại xác định giảm dần thêm từ khố DESC sau tên thuộc tính trường hợp xếp tăng dần khơng cần thêm từ khóa ASC sau tên thuộc tính - ASC: tăng dần (mặc định) - DESC: giảm dần Ví dụ: Hãy cho biết danh sách nhân viên theo thứ tự tăng dần theo tên, xếp tên trùng giảm dần theo mức lương SELECT * FROM NHANVIEN ORDER BY TENNV ASC,LUONG DESC Và kết là: Giới hạn số quan hệ kết Trong trường hợp cần chọn số quan hệ kết sử dụng từ khóa TOP sau mệnh đề SELECT Chúng ta chọn xác tỉ lệ phần trăm Cú pháp: Tài liệu giảng dạy Cơ sở liệu Trang 62 SELECT TOP [n|n PERCENT] [WITH TIES] Thông thường, sử dụng từ khóa TOP câu lệnh có thêm thao tác xếp Ví du: Hãy cho biết danh sách nhân viên có mức lương cao SELECT TOP * FROM NHANVIEN ORDER BY LUONG DESC Và kết là: Ví du: Hãy cho biết danh sách nhân viên có mức lương cao với tỉ lệ 25% toàn nhân viên SELECT TOP 25 PERCENT * FROM NHANVIEN ORDER BY LUONG DESC Và kết là: 4.4.5 | THỐNG KÊ THEO NHÓM Khi truy vấn liệu, cần thực số câu truy vấn có số thống kê Ví dụ, cần thống kê phịng ban có nhân viên, cần phải gom nhân viên phịng ban thành nhóm thực đếm nhóm có nhân viên Như vậy, thực gom nhóm dựa tiêu chí cần sử dụng thêm hàm thống kê, sau hàm thống kê thường sử dụng: Tài liệu giảng dạy Cơ sở liệu Trang 63 - COUNT:  COUNT(*) đếm số dịng  COUNT() đếm số giá trị khác NULL thuộc tính  COUNT(DISTINCT ) đếm số giá trị khác khác NULL thuộc tính - SUM: Tính tổng nhóm - MIN: Tìm giá trị nhỏ nhóm - MAX: Tìm giá trị lớn nhóm - AVG: Tính giá trị trung bình nhóm Cú pháp: SELECT FROM < Table_name1, Table_Name2,…, Table_NameN > GROUP BY < properties1, properties2,…, propertiesN > Các thuộc tính dùng làm tiêu chí gom nhóm đặt sau mệnh đề GROUP BY Các hàm thống kê đặt sau mệnh đề SELECT Ví dụ: Hãy cho biết phịng ban có nhân viên SELECT MAPHG,COUNT(*) AS TONGSO FROM NHANVIEN GROUP BY MAPHG Và kết là: Tài liệu giảng dạy Cơ sở liệu Trang 64 Lưu ý: Các thuộc tính mệnh đề SELECT (trừ hàm thống kê) phải xuất mệnh đề GROUP BY Mệnh đề WHERE kết hợp câu lệnh để chọn thỏa mãn kiện trước gom nhóm Ví dụ: Hãy cho biết phịng ban có nhân viên NAM Trong câu truy vấn này, thấy có sử dụng hàm thống kê để đếm phịng ban có nhân viên NAM, trước thực gom nhóm thống kê chọn nhân viên NAM mà thơi Khi câu lệnh viết sau: SELECT MAPHG,COUNT(*) AS [TSNV NAM] FROM NHANVIEN WHERE PHAI='NAM' GROUP BY MAPHG Và kết là: Điều kiện nhóm (điều kiện sau gom nhóm): dùng để chọn kết thỏa mãn điều kiện Ví dụ, cho biết phịng ban có từ bốn nhân viên trở lên, điều kiện đặt mệnh đề WHERE, mà phải đặt điều kiện mệnh đề HAVING Cú pháp: SELECT < column1, column2, …., columnN > FROM GROUP BY < properties1, properties2,…, propertiesN > HAVING Tài liệu giảng dạy Cơ sở liệu Trang 65 Ví dụ: Hãy cho biết phịng ban có từ bốn nhân viên trở SELECT MAPHG,COUNT(*) AS [TSNV NAM] FROM NHANVIEN GROUP BY MAPHG HAVING COUNT(*)>3 Và kết là: 4.4.6 | TRUY VẤN LỒNG Trong nhiều trường hợp truy vấn thống tin, câu hỏi nêu không cung cấp kiện cách tường minh, cần tìm kiếm thơng tin qua nhiều bước Kết bước trước kiện dùng biểu thức điều kiện bước sau Câu truy vấn gọi truy vấn lồng, lồng nhiều cấp câu truy vấn Truy vấn lồng câu lệnh truy vấn mà biểu thức điều kiện WHERE HAVING câu truy vấn khác, câu truy vấn nằm mệnh đề WHERE HAVING gọi câu truy vấn con, cịn câu truy vấn bên ngồi gọi câu truy vấn cha Câu truy vấn đặt dấu ( ) Có loại truy vấn lồng: lồng phân cấp lồng tương quan - Lồng phân cấp: câu truy vấn không tham chiếu đến thuộc tính bảng mệnh đề FROM câu truy vấn cha Câu truy vấn thực trước câu truy vấn cha thực lần Kết trả câu truy vấn giá trị đơn tập hợp Ví dụ: Hãy cho biết danh sách nhân viên có lương lớn lương nhân viên có mã số NV0006 SELECT * FROM NHANVIEN Tài liệu giảng dạy Cơ sở liệu Trang 66 WHERE LUONG>(SELECT LUONG FROM NHANVIEN WHERE MANV='NV0006') Và kết là: - Lồng tương quan: câu truy vấn tham chiếu đến thuộc tính bảng mệnh đề FROM câu truy vấn cha Câu truy vấn thực nhiều lần, lần ứng với truy vấn cha Ví dụ: Hãy cho biết danh sách nhân viên có mức lương lớn mức lương trung bình nhân viên phòng ban Mức lương trung bình phịng ban SELECT * FROM NHANVIEN n1 WHERE LUONG > (SELECT AVG(luong) FROM NHANVIEN n2 WHERE n1.MAPHG=n2.MAPHG) Và kết là: Tài liệu giảng dạy Cơ sở liệu Trang 67 Khi sử dụng câu truy vấn lồng thường sử dụng thêm từ khóa sau: Ví dụ: Hãy cho biết danh sách phịng ban có nhân viên SELECT * FROM PHONGBAN p WHERE EXISTS (SELECT * FROM NHANVIEN n WHERE p.MAPHG = n.MAPHG) Và kết là: Ví dụ: Hãy cho biết danh sách nhân viên có lương lớn nhân viên phòng số Tài liệu giảng dạy Cơ sở liệu Trang 68 SELECT * FROM NHANVIEN WHERE LUONG > ANY (SELECT LUONG FROM NHANVIEN WHERE MAPHG = 2) Và kết là: Ví dụ: Hãy cho biết danh sách nhân viên có lương lớn tất nhân viên phòng số SELECT * FROM NHANVIEN WHERE LUONG > ALL (SELECT LUONG FROM NHANVIEN WHERE MAPHG = 2) Và kết là: Tài liệu giảng dạy Cơ sở liệu Trang 69 4.5 | BÀI TẬP CHƯƠNG BÀI 1: Tạo sở liệu có tên QLDEAN BÀI 2: Từ sở liệu Bài Tạo Table, thiết lập khoá thiết lập ràng buộc sau: NHANVIEN (MANV, HONV, TENNV, NGSINH, DCHI, QQUAN, PHAI, LUONG, MANQL, MAPHG) Tân từ: Mỗi nhân viên công ty có: mã nhân viên, họ tên, ngày sinh, địa chỉ, quê quán, phái, mức lương hàng tháng, mã người quản lý trực tiếp nhân viên (không thiết trưởng phòng) mã phòng ban mà nhân viên trực thuộc THANNHAN (MANVIEN, HOTN, TENTN, PHAI, NGSINH, QUANHE) Tân từ: Mỗi nhân viên có nhiều thân nhân.Với thân nhân cần lưu trữ họ tên, phái, ngày sinh, mối quan hệ với nhân viên công ty PHONGBAN (MAPHG, TENPHG, TRPHG, NGNHANCHUC) Tân từ: Trong cơng ty gồm có phịng ban Mỗi phịng ban có mã số phịng ban để phân biệt với phòng ban khác, tên, nhân viên trưởng phịng(nếu có) ghi nhận ngày nhận chức trưởng phịng Mỗi phịng ban có nhiều địa điểm khác DIADIEM_PHG (MAPHG, DIADIEM) Tân từ: Mỗi phịng ban có nhiều địa điểm khác DEAN (MADA, TENDA, DIADIEM_DA, PHONG) Tân từ: Mỗi phịng ban chủ trì nhiều đề án Mỗi đề án có mã số phân biệt với đề án khác, tên, triển khai địa điểm phòng thực PHANCONG (MANV, SODA, THOIGIAN) Tân từ: Mỗi nhân viên làm việc phịng ban tham gia nhiều đề án (các đề án phòng ban khác thực hiện) với thời gian tham gia đề án tuần nhân viên ứng với đề án mà nhân viên tham gia Tài liệu giảng dạy Cơ sở liệu Trang 70 BÀI 3: Thêm liệu vào Table.: Tài liệu giảng dạy Cơ sở liệu Trang 71 BÀI 4: Cập nhật liệu cho Table Tăng mức lương thêm 10% cho nhân viên có thân nhân Tăng mức lương thêm 20% cho nhân viên trưởng phòng đồng thời có thân nhân Tăng mức lương thêm 30% cho nhân viên trưởng phịng có tuổi 50 BÀI 5: Xóa liệu Table Xố nhân viên có số đề án

Ngày đăng: 11/10/2022, 23:19

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

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

Tài liệu liên quan