Liên lạc • Email cá nhân – trungtv@soict.hust.edu.vn Đại cương hệ CSDL Trần Việt Trung Vũ Tuyết Trinh trungtv@soict.hust.edu.vn Bộ môn Hệ thống thông tin, Viện CNTT&TT Đại học Bách Khoa Hà Nội • Email group – Trong thời gian học – a-hust+subscribe@googlegroups.com – Khi kết thúc học – x-hust+subscribe@googlegroups.com Bài tập lớn + luyện tập kỹ • Learning by doing • Tìm hiểu cách tổ chức liệu – Magento – Moodle – Liferay – Alfresco – … Ví dụ: quản lý đào tạo • Thông tin cần quan tâm – Khoá học, lớp học, sinh viên, môn học, giáo viên, – Thông tin sinh viên: thông tin cá nhân, thông tin học tập – Thông tin môn học: khối lượng học tập, giáo viên, lịch học – Ø Cần lưu trữ thông tin đa dạng Ø Cơ sở liệu Đặt vấn đề • CSDL gì? • Tại phải sử dụng CSDL? • Tại phải tìm hiểu hệ CSDL? Ví dụ: khai thác thông tin • Sinh viên – Các môn học khoa CNTT? – Điểm thi môn « Nhập môn CSDL »? • Giáo viên – Danh sách sinh viên lớp Tin 1? – Thời khoá biểu lớp Tin 1? • Giáo vụ – Danh sách sinh viên khoá K47? – Tỷ lệ sinh viên thi đạt môn học? Ø Cần xây dựng phần mềm cho phép khai thác CSDL Ø Phần mềm ứng dụng «Hình dung» xây dựng CSDL • Yêu cầu: Các khái niệm – Lưu trữ thông tin cần thiết cách xác – Truy xuất thông tin hiệu ứng dụng • Thực – Xác định yêu cầu nghiệp vụ – Xác định thông tin cần lưu trữ – Xác định cách thức lưu trữ hệ CSDL CSDL Ø Cần công cụ trợ giúp xây dựng CSDL Ø Phần mềm quản trị CSDL (QTCSDL) Hệ QTCSDL Characteristics of the Database Approach Cơ sở liệu • Một tập hợp liệu – Biểu diễn vài khía cạnh giới thực – Có liên hệ logic thống – Được thiết kế bao gồm liệu phục vụ mục đích Ví dụ: CSDL quản lý đào tạo gồm thông tin - giáo viên - sinh viên - môn học - lớp học - điểm thi - • Self-Describing nature of a database system • Insulation between programs data and data, data abstraction • Support of multiple views of the data • Sharing of data and multiuser transaction processing Advantages of using the DBMS approach Hệ quản trị sở liệu • Một phần mềm cho phép – Định nghĩa xác định kiểu, cấu trúc, ràng buộc liệu – Tạo lập • • • • lưu trữ liệu thiết bị nhớ – Thao tác truy vấn, cập nhật, kết xuất, CSDL cho ứng dụng khác Ví dụ: MS Access, MS SQL Server, ORACLE, IBM DB2, • • • • • Controlling redundancy Restricting unauthorized access Providing persistent storage for program objects Providing storage structures and search techniques for efficient query processing Providing backup and recovery Providing multiple user interfaces Representing complex relationships among data Enforcing integrity constraints Permitting inferencing and actions using rules Hệ sở liệu Môi trường hệ CSDL • Một hệ thống gồm thành phần : – – – – Hệ QTCSDL Phần cứng CSDL phần mềm ứng dụng Những người sử dụng Hệ CSDL Ứng dụng Hệ QTCSDL Ví dụ: hệ quản lý đào tạo, quản lý nhân sự, Chức hệ QTCSDL • Quản lý liệu tồn lâu dài • Truy xuất liệu cách hiệu – Biểu diễn thao tác liệu – Xử lý câu hỏi – Quản trị giao dịch Sự trừu tượng hoá liệu Khung nhìn n Mức khung nhìn (ngoài) Các ngôn ngữ – Cấu trúc liệu – Mối liên hệ liệu quy tắc, ràng buộc áp đặt lên liệu • Ngôn ngữ thao tác liệu (Data Manipulation Language - DML) – Tìm kiếm, thêm, xoá, sửa liệu CSDL • Ngôn ngữ điều khiển liệu (Data Control Language - DCL) – Thay đổi cấu trúc bảng liệu – Khai báo bảo mật thông tin – Quyền hạn người dùng khai thác CSDL The three-schema architecture & data independence • Logical data independence • Physical data independence mô tả cách mà người sử dụng nhìn thấy liệu Sơ đồ khái niệm (logic) Mức quan niệm (logic) Mức lưu trữ (trong) CSDL • Ngôn ngữ định nghĩa liệu (Data Definition Language - DDL) – Định nghĩa liệu – Quản lý lưu trữ Khung nhìn CSDL Sơ đồ (vật lý) định nghĩa cấu trúc logic liệu, liệu lưu trữ mối quan hệ liệu định nghĩa cấu trúc tệp dẫn sử dụng sở liệu (cách lưu trữ liệu nào) Ví dụ Ví dụ (2) • Mức quan niệm • Mức khung nhìn type lop = record Tin1 = { end; } type sinh_vien = record NVA = { maSV=« SV001 » ten=« Nguyễn Văn A » nam=1; ngay_sinh=« 1/4/1983 » dia_chi=«1 Tạ Quang Bửu» ma_lop=1 } ma_lop : string; ten: string; heDT: string; dia_diem: string; maSV : string; ten: string; nam: boolean; ngay_sinh: date; dia_chi: string ; ma_lop: string; end; ma_lop=1 ten=« CNTT1_K47 » heDT=« chinh quy » dia_diem=« DHBKHN » Sơ đồ thể (schema vs instance) CN_NVA = { ten=« Nguyễn Văn A » nam=1; ngay_sinh=« 1/4/1983 » } type ds_sinhvien = record ten: string; nam: boolean; ngay_sinh: date; end; Các module hệ QTCSDL Ứng dụng Sơ đồ Thể -cấu trúc/kiểu liệu - giá trị/đối tượng liệu - ít - thường thay đổi đổi phức tạp - thay - dễ Hệ QTCSDL xuyên thay đổi dàng thay đổi Bộ xử lý câu hỏi Bộ quản lý lưu trữ DL Bộ xử lý câu hỏi Quản lý lưu trữ • Thực Bộ quản lý lưu trữ • Yêu cầu: – Tổ chức tối ưu liệu thiết bị nhớ (ngoài) – Tương tác hiệu với quản lý tệp Quản lý tệp Metadata & Data dictionary • Thực Quản lý giao dịch Data & index Bộ xử lý câu hỏi Bộ quản lý Giao dịch Bộ quản lý lưu trữ Bộ xử lý câu hỏi Tìm kiếm liệu trả lời cho yêu cầu truy vấn Bộ quản lý lưu trữ Quản lý buffer DL Xử lý câu hỏi Bộ quản lý Giao dịch • Yêu cầu lưu trữ truy xuất liệu thiết bị nhớ (ngoài) Bộ quản lý Giao dịch Bộ biên dịch Bộ tối ưu – Biến đổi truy vấn biểu diễn mức cao thành yêu cầu hiểu hệ CSDL – Lựa chọn kế hoạch tốt để trả lời truy vấn Bộ đánh giá Bộ quản lý lưu trữ Metadata & Data dictionary Data & index Bộ xử lý câu hỏi Quản lý giao dịch Bộ quản lý Giao dịch Bộ quản lý lưu trữ • Yêu cầu – Đ/n giao dịch: tập thao tác xử lý đơn vị không chia cắt – Đảm bảo tính quán tính đắn liệu • Thực Người dùng Hệ CSDL Ứng dụng Hệ QTCSDL CSDL CSDL • Người thiết kế cài đặt hệ QTCSDL: chịu trách nhiệm thiết kế cài đặt module hệ QTCSDL giao diện hình thức gói phần mềm • Người phát triển công cụ: chịu trách nhiệm thiết kế cài đặt gói phần mềm hỗ trợ cho việc thiét kê, sử dụng tăng cường hiệu hệ CSDL – Quản lý điều khiển tương tranh – Phát lỗi phục hồi sở liệu Người dùng Hệ CSDL Ứng dụng Hệ QTCSDL CSDL Người dùng Hệ CSDL CSDL • Người phân tích hệ thống phát triển ứng dụng: chịu trách nhiệm xác định yêu cầu người dung cuối, xác định giao dịch cần thiết để đáp ứng yêu cầu người dùng Người lập trình ứng dụng cài đặt yêu cầi chương trình, kiêm thử, gỡ rối, lập tài liệu cho chương trình • Người thiết kế CSDL: chịu trách nhiệm xác định liệu lưu trữ CSDL cấu trúc biểu diễn lưu trữ liệu Ứng dụng Hệ QTCSDL CSDL CSDL • Người sử dụng cuối: người khai thác hệ CSDL • Người quản trị CSDL: chịu trách nhiệm cho phép truy nhập CSDL, điều phối kiểm tra sử dụng CSDL, quản lý tài nguyên phần cứng phân mềm cần thiết • Người bảo trì hệ thống: người quản trị hệ thống chịu trách nhiệm việc hoạt động bảo trì môi trường (phần cứng phần mềm) cho hệ CSDL Hạn chế Hệ thống xử lý tệp • Mức độ diễn tả ngữ nghĩa hạn chế • Dữ liệu riêng lẻ, rời rạc • Quản lý, khai thác mức thấp Sinh viên Giáo viên Học tập Sinh viên Giáo viên Lớp học Điểm thi Môn học Ưu điểm cách tiếp cận CSDL Hệ sở liệu Giáo viên CSDL hệ QTCSDL Học tập Giáo viên Sinh viên Lớp học Môn học Điểm thi • Tính trừu tượng hoá liệu • Hỗ trợ nhiều khung nhìn liệu • Chia sẻ liệu nhiều người dùng hỗ trợ quản lý giao dịch Sinh viên Đặc điểm cách tiếp cận CSDL • Biểu diễn ngữ nghĩa phong phú quan hệ phức tạp liệu • Kiểm soát tính dư thừa đảm bảo ràng buộc toàn vẹn liệu • Hỗ trợ lưu trữ truy vấn liệu cách hiệu • Chia sẻ liệu nhiều người dùng • Phân quyền người dùng kiểm soát tính hợp lệ truy xuất liệu • Hỗ trợ dịch vụ lưu phục hồi liệu Phân loại hệ CSDL • Mô hình liệu – Mạng vs phân cấp vs quan hệ vs hướng đối tượng vs • Số người sử dụng – Một người dùng vs nhiều người dùng • Tính phân tán CSDL – Tập trung vs Phân tán • Tính thống liệu – Đồng vs Không đồng • Kết luận • CSDL cho phép lưu trữ khai thác liệu cách thống hiệu (đặc biệt trường hợp khối lượng liệu lớn) • Sự trừu tượng liệu tính độc lập liệu cho phép phát triển ứng dụng « dễ dàng » • Hệ QTCSDL cung cấp công cụ hữu hiệu trợ giúp việc tạo lập CSDL phát triển ứng than 80 % of real world computer applications dụng‘‘More are associated with databases’’* * Korth Trọng tâm môn học Hệ CSDL Ứng dụng Hệ QTCSDL CSDL CSDL & Silberschatz Database System Concepts Sử dụng kiến thức môn học tương lai Các điểm cần lưu ý • Phát triển ứng dụng • Cách tiếp cận tệp vs cách tiếp cận CSDL • Nghiên cứu phát triển (R&D) • Nghiên cứu • CSDL vs hệ QTCSDL vs hệ CSDL • Kiến trúc ANSI/SPARC (hay mức) hệ CSDL • Sơ đồ vs thể • Các chức hệ QTCSDL • Người sử dụng hệ CSDL • Đặc điểm hệ CSDL