intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Cơ sở dữ liệu - Nguyễn Hồng Phương

Chia sẻ: Minh Vũ | Ngày: | Loại File: PDF | Số trang:53

108
lượt xem
8
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

 Bài giảng "Cơ sở dữ liệu"  có cấu trúc gồm 6 chương cung cấp cho sinh viên các kiến thức: Đại cương về các hệ CSDL, các mô hình dữ liệu, ngôn  ngữ định  nghĩa  và thao tác dữ liệu đối với mô hình quan hệ, lý  thuyết  thiết  kế CSDL quan hệ, tối ưu hóa câu truy vấn, an toàn và toàn vẹn dữ  liệu. Mời các bạn cùng tham khảo nội dung chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Cơ sở dữ liệu - Nguyễn Hồng Phương

  1. Thông tin chung • Giảng viên Cơ sở dữ liệu – Nguyễn Hồng Phương – Bộ môn Hệ thống thông tin, khoa CNTT, phòng 325 – C1 Nguyễ Nguyễn Hồng Phương phuongnh- phuongnh-fit@mail.hut.edu.vn – Email: phuongnh-fit@mail.hut.edu.vn • Giờ tiếp sinh viên tại Bộ môn: Bộ môn Hệ thố thống thông tin – Chiều thứ hai hàng tuần. Việ Viện Công nghệ nghệ thông tin và và Truyề Truyền thông Đại học Bách Khoa Hà Nội – Ngoài ra, xin liên hệ trước. 1 2 Tổng quan về môn học Đánh giá môn học • Mục tiêu:Sau khi học xong môn học này, sinh viên ngành công nghệ • Dự lớp đầy đủ, tích cực xây dựng bài thông tin có thể: • Kiểm tra giữa kỳ – Chỉ ra nguyên lý của hệ cơ sở dữ liệu • Kiểm tra cuối kỳ (CSDL). – Thiết kế và xây dựng một hệ CSDL. • Khối lượng:4 tc, trong 15 tuần 3 4 Tài liệu học tập Nội dung môn học • Bài giảng trên lớp • Sách tham khảo: • Chương 1: Đại cương về các hệ CSDL. – Nguyễn Kim Anh, Nguyên lý của các hệ cơ sở dữ liệu, NXB Đại học Quốc gia, Hà Nội, 2004. • Chương 2: Các mô hình dữ liệu. – Tô Văn Nam, Giáo trình Cơ sở dữ liệu, NXB Giáo dục, 2006. • Chương 3: Ngôn ngữ định nghĩa và – Nguyễn Thiên Bằng, Phương Lan, Giáo trình SQL Server thao tác dữ liệu đối với mô hình quan 2000, 2004. hệ. – Nguyễn Ngọc Minh, Hoàng Đức Hải, Trần Tiến Dũng, Tự học Microsoft SQL Server 2000 trong 21 ngày, NXB Lao • Chương 4: Lý thuyết thiết kế CSDL động-Xã hội, 2002. – J.D.Ullman, A First Course in Database Systems, quan hệ. Prentice-Hall,1997. • Chương 5: Tối ưu hóa câu truy vấn – J.D.Ullman, Principles of Database and Knowledge-Base Systems,vol.1, Computer Science Press,1988. • Chương 6: An toàn và toàn vẹn dữ – Các tài liệu khác… 5 liệu. 6 1
  2. Danh ngôn Hồ Chí Minh “Trời có bốn mùa: Xuân, Hạ, Thu, Đông; Đất có bốn phương: Đông, Tây, Nam, Bắc; Người có bốn đức: Cần, Kiệm, Liêm, Chính; Thiếu một mùa không thể thành Trời; Thiếu một phương không thể thành Đất; Thiếu một đức không thể thành Người.” 7 8 2
  3. Nội dung chương này Chương 1 • 1.1 Các hệ thống xử lý tệp Đại cương về các hệ cơ sở dữ liệ liệu ) truyền thống và những hạn chế của nó. Nguyễ • 1.2 Các hệ CSDL: khái niệm, Nguyễn Hồng Phương phuongnh- phuongnh-fit@mail.hut.edu.vn khả năng, kiến trúc, người dùng của một hệ quản trị Bộ môn Hệ thố thống thông tin CSDL. Việ Viện Công nghệ nghệ thông tin và và Truyề Truyền thông • 1.3 Sự phân loại các hệ Đại học Bách Khoa Hà Nội CSDL. 1 2 1.1 Các hệ thố thống xử lý tệp truyề truyền thố thống Các hệ thố thống xử lý tệp truyề truyền thố thống • Bước khởi đầu của quá trình • Mỗi chương trình ứng dụng tin học hóa doanh nghiệp. định nghĩa và quản lý các tệp • Tập trung vào nhu cầu xử lý dữ liệu dữ liệu của riêng nó. của các phòng riêng lẻ trong tổ chức mà không xem xét tổng thể tổ chức • Trước khi xuất hiện các phần này. mềm hệ quản trị CSDL, trong • Viết một chương trình mới quá khứ các hệ thống trên cơ đối với mỗi ứng dụng đơn lẻ, sở tệp đã được tạo lập để xử không có kế hoạch, không có lý một số lượng lớn dữ liệu. mô hình hướng đến sự tăng trưởng. 3 4 Hạn chế của các hệ thống Nội dung chương này xử lý tệp truyền thống • Dư thừa và không nhất quán dữ liệu • 1.1 Các hệ thống xử lý tệp • Khó khăn trong truy nhập dữ liệu truyền thống và những hạn chế của nó. • Cô lập và hạn chế chia sẻ dữ liệu • 1.2 Các hệ CSDL: khái niệm, • Các vấn đề về an toàn và toàn vẹn ) khả năng, kiến trúc, người • Các vấn đề về độ tin cậy dùng của một hệ quản trị • Sự phụ thuộc dữ liệu của các chương CSDL. trình ứng dụng • 1.3 Sự phân loại các hệ CSDL. 5 6 1
  4. 1.2 Các hệ cơ sở dữ liệu Ví dụ về quản lý đào tạo • Thông tin cần quan tâm • CSDL (database) là gì ? – Khóa học, lớp học, sinh viên, giáo viên, • Tại sao phải sử dụng CSDL ? môn học,… – Thông tin về sinh viên: thông tin cá • Tại sao phải tìm hiểu về các hệ CSDL nhân, thông tin học tập,… (database systems) ? – Thông tin về môn học: khối lượng, giáo viên, lịch học,… • Cần lưu trữ những thông tin đa dạng Cơ sở dữ liệu 7 8 Ví dụ: khai thá thác thông tin “Hình dung” dung” về xây dựng một CSDL • Sinh viên – Các môn học của Khoa Công nghệ thông • Yêu cầu tin ? – Lưu trữ thông tin cần thiết một cách chính xác – Điểm thi môn “Hệ cơ sở dữ liệu” ? – Truy xuất thông tin hiệu quả • Giáo viên • Thực hiện – Danh sách sinh viên lớp Tin2-K49 ? – Xác định yêu cầu nghiệp vụ – Xác định thông tin cần lưu trữ – Thời khóa biểu của lớp Tin2-K49 ? – Xác định cách thức lưu trữ • Giáo vụ • Cần công cụ trợ giúp xây dựng một CSDL – Danh sách sinh viên K47 tốt nghiệp loại giỏi ?... Phần mềm quản trị CSDL Phần mềm ứng dụng 9 10 Các khái niệm cơ bản Cơ sở dữ liệu (database) • Là một tập hợp các dữ liệu ứng dụng – Biểu diễn một vài khía cạnh nào đó của thế hệ CSDL giới thực – Có liên hệ logic thống nhất – Được thiết kế và bao gồm những dữ liệu phục CSDL vụ một mục đích nào đó. • Là một bộ sưu tập các dữ liệu tác nghiệp được lưu trữ lại và được các hệ ứng dụng của một xí nghiệp cụ thể nào đó sử dụng. Hệ QTCSDL 11 12 2
  5. Hệ quả quản trị trị cơ sở dữ liệ liệu Hệ cơ sở dữ liệu (Database Management System- System-DBMS) • Là một hệ thống phần mềm cho • Là một hệ thống gồm 4 thành phần phép – Hệ quản trị CSDL – Định nghĩa, tạo lập: xác định kiểu, cấu – Phần cứng trúc, ràng buộc dữ liệu, lưu trữ dữ liệu trên các thiết bị nhớ. – CSDL và phần mềm ứng dụng – Thao tác: truy vấn, cập nhật, kết xuất,… – Những người sử dụng các CSDL cho các ứng dụng khác nhau • Ví dụ: Hệ quản lý đào tạo, hệ quản lý • Ví dụ: MS SQL Server, DB2, nhân sự, hệ quản lý kinh doanh,… MS Access, Oracle, FoxPro,… 13 14 Hệ CSDL Các tính năng của hệ quả quản trị trị CSDL • Quản lý dữ liệu tồn tại lâu dài Hệ Ứng dụng – Định nghĩa dữ liệu CSDL – Quản lý lưu trữ • Truy xuất dữ liệu một cách hiệu quả Hệ Quản Trị CSDL – Biểu diễn các thao tác dữ liệu – Xử lý câu hỏi – Quản trị giao dịch CSDL CSDL 15 16 Các tính năng của hệ quả quản trị trị CSDL Các ngôn ngữ • Ngôn ngữ định nghĩa dữ liệu (Data • Hỗ trợ ít nhất một mô hình dữ liệu Definition Language - DDL) • Đảm bảo tính độc lập dữ liệu – Cấu trúc dữ liệu – Mối liên hệ giữa các dữ liệu và quy tắc, ràng • Hỗ trợ các ngôn ngữ cấp cao nhất buộc áp đặt lên dữ liệu định cho phép người sử dụng định • Ngôn ngữ thao tác dữ liệu (Data Manipulation Language - DML) nghĩa cấu trúc của dữ liệu, truy nhập – Tìm kiếm, thêm, xóa, sửa dữ liệu trong CSDL và thao tác dữ liệu • Ngôn ngữ điều khiển dữ liệu (Data • Điều khiển truy nhập Control Language - DCL) – Thay đổi cấu trúc của các bảng dữ liệu • Phục hồi dữ liệu – Khai báo bảo mật thông tin – Quyền hạn của người dùng trong khai thác CSDL 17 18 3
  6. Sự trừu tượng hóa dữ liệu Tương ứng 3 mức với ngôn ngữ ngữ Pascal Type khach_hang = record Khung nhìn 1 ... Khung nhìn n ten:string; ngay_sinh:string; Mức khung nhìn dia_chi:string; (ngoài) mô tả cách mà người sử dụng có thể nhìn thấy dữ end; liệu • Mức vật lý: một bản ghi khach_hang được mô tả Sơ đồ khái niệm như một khối nhớ, chương trình dịch che dấu các (logic) định nghĩa cấu trúc logic của dữ liệu, dữ liệu nào chi tiết mức này đối với người lập trình. Mức quan niệm được lưu trữ và mối quan • Mức logic: mỗi bản ghi được mô tả bởi một định (logic) hệ giữa các dữ liệu nghĩa kiểu, người lập trình sử dụng ngôn ngữ lập trình làm việc tại mức trừu tượng này. định nghĩa cấu trúc các tệp và chỉ dẫn được sử • Mức khung nhìn: người sử dụng máy tính thấy Sơ đồ trong dụng trong cơ sở dữ liệu một tập các chương trình ứng dụng, che dấu (vật lý) (cách lưu trữ dữ liệu những chi tiết về các kiểu dữ liệu Mức lưu trữ như thế nào) (trong) 19 20 Kiế Kiến trú trúc của một hệ quả quản trị trị CSDL Quản lý lưu trữ Các thay đổi sơ đồ Các truy vấn Các thay đổi dữ liệu • Yêu cầu Bộ quản lý lưu trữ – lưu trữ và truy xuất Bộ xử lý dữ liệu trên các thiết Quản lý buffer Quản lý câu hỏi Bộ quản trị bị nhớ giao giao dịch dịch • Thực hiện Quản lý tệp Bộ quản lý – Tổ chức tối ưu dữ liệu lưu trữ trên thiết bị nhớ – Tương tác hiệu quả Metadata & với bộ quản lý tệp Data dictionary Data & index (từ điển dữ liệu) (chỉ mục) Siêu dữ liệu Dữ liệu (data) (metadata) 21 22 Xử lý câu hỏi Quản trị giao dịch • Yêu cầu Bộ xử lý câu hỏi – Tìm kiếm dữ liệu trả Bộ biên dịch • Yêu cầu lời cho một yêu cầu – Định nghĩa giao dịch: một tập các thao truy vấn. Bộ tối ưu tác được xử lý như một đơn vị không Bộ đánh giá • Thực hiện chia căt được. – Biến đổi truy vấn ở – Đảm bảo tính đúng đắn và tính nhất mức cao thành các Bộ quản lý quán của dữ liệu. yêu cầu có thể hiểu lưu trữ được bởi hệ CSDL. • Thực hiện – Lựa chọn một kế – Quản lý điều khiển tương tranh. Metadata & hoạch tốt nhất để trả Data dictionary Data & index – Phát hiện lỗi và phục hồi CSDL lời truy vấn này. 23 24 4
  7. Người dùng Người dùng • Người phân tích hệ thống và phát triển ứng • Người thiết kế và cài đặt hệ QTCSDL: dụng: chịu trách nhiệm xác định yêu cầu của chịu trách nhiệm thiết kế và cài đặt các người dùng cuối, xác định các giao dịch cần thiết module của hệ QTCSDL và các giao diện để đáp ứng các yêu cầu người dùng. Người lập trình ứng dụng cài đặt những yêu cầu này trong dưới hình thức các gói phần mềm chương trình, kiểm thử, gỡ rối, lập tài liệu cho chương trình • Người phát triển công cụ: chịu trách nhiệm thiết kế và cài đặt các gói phần mềm • Người thiết kế CSDL: chịu trách nhiệm xác định hỗ trợ cho việc thiét kê, sử dụng cũng như dữ liệu lưu trữ trong CSDL và cấu trúc biểu diễn tăng cường hiệu năng của các hệ CSDL. và lưu trữ những dữ liệu này 25 26 Người dùng Nội dung chương này • Người sử dụng cuối: là người khai thác các hệ • 1.1 Các hệ thống xử lý tệp CSDL truyền thống và những hạn • Người quản trị CSDL: chịu trách nhiệm cho chế của nó. phép truy nhập CSDL, điều phối và kiểm tra sử dụng CSDL, quản lý tài nguyên phần cứng và • 1.2 Các hệ CSDL: khái niệm, phân mềm khi cần thiết khả năng, kiến trúc, người • Người bảo trì hệ thống: là những người quản dùng của một hệ quản trị trị hệ thống chịu trách nhiệm việc hoạt động và CSDL. bảo trì môi trường (phần cứng và phần mềm) cho hệ CSDL ) • 1.3 Sự phân loại các hệ CSDL. 27 28 1.3 Phân loại các hệ CSDL Các hệ CSDL tập trung • Mô hình dữ liệu • Hệ CSDL cá nhân: một người sử dụng đơn – Mạng vs. phân cấp vs. quan hệ vs. hướng đối lẻ vừa thiết kế, tạo lập CSDL, cập nhật, tượng vs. ... bảo trì dữ liệu, lập và hiển thị báo cáo. đảm nhiệm vai trò: người quản trị CSDL, người • Số người sử dụng viết chương trình ứng dụng, end-user. – Một người dùng vs. nhiều người dùng • Hệ CSDL trung tâm: dữ liệu được lưu trữ • Tính phân tán của CSDL trên một máy tính trung tâm. – Tập trung vs. Phân tán • Hệ CSDL khách-chủ: • Tính thống nhất của dữ liệu – Các máy tính trung tâm lớn đắt so với các – Đồng nhất vs. Không đồng nhất máy nhỏ và máy trạm. – Các ứng dụng máy khách truy nhập dữ liệu • ... được quản lý bởi máy chủ. 29 30 5
  8. Các hệ hệ CSDL tậ tập trung (tiế (tiếp) Các hệ CSDL phân tán • CSDL phân tán? Là một tập các CSDL có Hệ CSDL trung quan hệ logic với nhau nhưng được trải ra tâm trên nhiều trạm làm việc của một mạng máy tính. Hệ CSDL cá nhân • Có 2 tính chất: quan hệ logic và phân tán • Hệ QTCSDL phân tán: Là một hệ thống phần mềm cho phép tạo lập CSDLPT và điều khiển các truy nhập đối với CSDLPT này. • Chia ra 2 loại: CSDLPT thuần nhất và không thuần nhất Hệ CSDL khách- chủ 31 32 Các hệ CSDLPT (tiếp) Kết luận • CSDL cho phép lưu trữ và khai thác dữ liệu một cách thống nhất và hiệu quả (đặc biệt trong trường hợp khối lượng dữ liệu lớn). • Sự trừu tượng về dữ liệu và tính độc lập dữ liệu cho phép phát triển ứng dụng “dễ dàng hơn”. • Hệ quản trị CSDL cung cấp các công cụ hữu hiệu trợ giúp việc tạo lập CSDL và phát triển ứng dụng 33 34 Sử dụng kiến thức môn học Các điểm cần lưu ý trong này trong tương lai chương này ‘‘More than 80 % of real world computer applications are associated with databases’’* • Cách tiếp cận tệp vs. cách tiếp cận * Korth & Silberschatz. Database System Concepts. CSDL • CSDL vs. hệ QTCSDL vs. hệ CSDL • Kiến trúc 3 mức của hệ CSDL • Các chức năng chính của một hệ Nghiên cứu QTCSDL Phát triển nghiên cứu và ứng dụng phát triển • Người sử dụng trong một hệ CSDL • Phân loại các hệ CSDL 35 36 6
  9. Lời hay ý đẹp Điều chúng ta biết chỉ là một giọt nước, điều không biết mênh mông như đại dương Einstein 37 38 7
  10. Nội dung • Tổng quan về mô hình dữ liệu Các mô hình dữ liệu • Mô hình phân cấp • Mô hình mạng Nguyễ Nguyễn Hồng Phương • Mô hình quan hệ phuongnh- phuongnh-fit@mail.hut.edu.vn • Mô hình thực thể liên kết Bộ môn Hệ thố thống thông tin • Mô hình hướng đối tượng Việ Viện Công nghệ nghệ thông tin và và Truyề Truyền thông • Đánh giá, bài tập Đại học Bách Khoa Hà Nội 1 2 Tổng quan về mô hình dữ liệ liệu Tổng quan...(tiếp) • Mô hình dữ liệu [Codd, 1980] gồm: – Một tập hợp các cấu trúc của dữ liệu • Nhiều mô hình còn bao gồm cả một tập – Một tập hợp các phép toán để thao tác với các các phép toán để thao tác các dữ liệu dữ liệu • Mô hình thuộc dạng ngữ nghĩa: tập trung – Một tập hợp các ràng buộc về dữ liệu về ngữ nghĩa của dữ liệu như mô hình • Mô hình dữ liệu là một tập hợp các khái thực thể liên kết, sử dụng để hỗ trợ người niệm dùng để mô tả: dùng có cái nhìn khái quát về dữ liệu – Dữ liệu • Mô hình thuộc dạng khái niệm: tập trung – Ngữ nghĩa của dữ liệu vào cách thức tổ chức dữ liệu tại mức khái – Các mối quan hệ trong dữ liệu niệm như mô hình mạng, mô hình liên kết, – Các ràng buộc dữ liệu mô hình quan hệ, độc lập với DBMS và hệ thống phần cứng để cài đặt cơ sở dữ liệu 3 4 Vài nét về lịch sử Một vài mô hình dữ liệ liệu Mô hình DB2, DB2, ORACLE-10i, ORACLE-10i, quan hệ Mô hình Mô hình quan hệ mở rộng SQL SQLServer ...... Server • Mô hình phân cấp phân cấp System SystemR(81), ORACLE, R(81),DB2, ORACLE,SQLSQL DB2, XML • Mô hình mạng IMS, Server, Server,Sybase, Sybase,...... dbXML,natix, • Mô hình quan hệ IMS, System System2k, 2k, dbXML,natix, ...... Tamino,... Tamino,... 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 • Mô hình thực thể liên kết Mô hình O2, O2,ORION, ORION, • Mô hình hướng đối tượng IRIS, IRIS,...... Thực thể-liên kết • Mô hình bán cấu trúc Mô hình IRDS(87), IRDS(87), mạng CDD+, Mô ... CDD+, hình ... • Mô hình dữ liệu của XML DMS(65), DMS(65), hướng đối Mô hình bán Lore Lore(97), (97), CODASYL CODASYL(71), (71), tượng cấu trúc ...... IDMS, IDMS,IDS IDS 5 6 1
  11. Mô hình dữ liệ liệu phân cấp Đặt vấn đề (Hierarchical data model) model) • Đặc điểm của các mô hình dữ liệu? • Ra đời những năm 60-65 • Biểu diễn bằng cây • Sự khác nhau giữa các mô hình dữ – Quan hệ cha-con liệu? – Mỗi nút có 1 cha duy nhất • Các mô hình dữ liệu phổ biến ngày – 1 CSDL = 1 tập các cây = 1 rừng nay • Các khái niệm cơ bản – Bản ghi – Móc nối – Các phép toán: GET, GET UNIQUE, GET NEXT, GET NEXT WITHIN PARENT,… 7 8 Mô hình dữ liệ liệu phân cấp – Ví dụ Mô hình dữ liệu phân cấp • Ưu điểm giao_vien – Dễ xây dựng và thao tác lop – Tương thích với các lĩnh vực tổ chức phân cấp – Ngôn ngữ thao tác đơn giản: duyệt cây. • Nhược điểm: – Sự lặp lại của các kiểu bản ghi Æ dữ liệu dư sinh_vien mon_hoc mon_hoc thừa và không nhất quán. • Giải pháp: bản ghi ảo – Hạn chế trong biểu diễn ngữ nghĩa của các diem_thi móc nối giữa các bản ghi (chỉ cho phép quan hệ 1-n) 9 10 Mô hình dữ liệ liệu mạng (Network data model) model) Mô hình dữ liệ liệu mạng – Ví dụ • Sự ra đời – Sử dụng phổ biến từ những năm 60, được định nghĩa lại vào giao_vien năm 71 • Biểu diễn bằng đồ thị có hướng giang_day • Các khái niệm cơ bản – Tập bản ghi (record) hoc lop mon_hoc • Kiểu bản ghi (record type) • Các trường (field) – Móc nối gom co_diem • Tên của móc nối • Chủ (owner) – thành viên (member): theo hướng của móc nối • Kiểu móc nối: 1-1, 1-n, đệ quy co sinh_vien diem_thi – Các phép toán • Duyệt: FIND, FIND member, FIND owner, FIND NEXT • Thủ tục: GET 11 12 2
  12. Mô hình dữ liệu mạng Mô hình dữ liệu quan hệ • Ưu điểm • Sự ra đời: vào năm 1970[Codd, 1970] – Đơn giản • Dữ liệu được biểu diễn dưới dạng bảng – Có thể biểu diễn các ngữ nghĩa đa dạng • Là mô hình dữ liệu khái niệm phổ biến cho với kiểu bản ghi và kiểu móc nối đến tận thời điểm hiện tại – Truy vấn thông qua phép duyệt đồ thị • Dựa trên lý thuyết toán học, đồng thời (navigation) cũng gần với cấu trúc tệp và cấu trúc dữ • Nhược điểm: liệu nên có hai loại thuật ngữ liên quan: – Số lượng các con trỏ lớn – Thuật ngữ toán học: quan hệ, bộ, thuộc tính – Hạn chế trong biểu diễn ngữ nghĩa của – Thuật ngữ hướng dữ liệu: bảng, bản ghi, trường các móc nối giữa các bản ghi 13 14 MON_HOC Ví dụ maMH tenmon soHT Mô hình dữ liệu quan hệ mô hình CNTT01 Nhập môn CSDL 4 dữ liệ liệu Ví dTruyền CNTT02 ụ DL và mạng 4 CNTT03 Phân tích và thiết kế hệ thống 4 quan hệ HTTT01 Quản lý dự án 3 • Các khái niệm cơ bản LOP – Thuộc tính, miền thuộc tính malop lop khoa GVCN loptruong – Quan hệ IT4 Tin 4 CNTT Ng. V. Anh Trần T. Bình IT5 Tin 5 CNTT Lê A. Văn Ng. Đ. Trung – Khóa IT6 Tin 6 CNTT Ng. T. Thảo Trần M. Quế IT7 Tin 7 CNTT Ng. V. Quý Ng. T. Phương SINH_VIEN maSV tenSV ngaysinh gt diachi malop SV0011 Trần T. Bình 1/4/1981 0 21 T. Q. B IT4 SV0025 Ng. Đ. Trung 3/2/1980 1 56 Đ. C. V IT5 SV0067 Trần M. Quế 26/3/1982 0 45 H. B. T IT6 15 16 SV0034 Ng. T. Phương 29/2/1980 0 86 L. T. N IT7 Mô hình dữ liệu quan hệ Mô hình dữ liệu quan hệ • Thuộc tính (~trường): là các đặc tính của • Quan hệ (~bảng):Cho n miền giá trị D1, một đối tượng D2 , …, Dn không nhất thiết phân biệt, r là một quan hệ trên n miền giá trị đó nếu r • Mỗi thuộc tính được xác định trên một miền là một tập các n-bộ (d1 , d2 , …, dn ) sao giá trị nhất định gọi là miền thuộc tính cho di Di • Ví dụ: • Một quan hệ có thể được biểu diễn dưới – Sinhviên (MãSV, TênSV, Nămsinh, GiớiTính, ĐịaChỉ) dạng 1 bảng trong đó 1 dòng trong bảng – dom(MãSV) = {char(5)} tương đương với 1 bộ , một cột trong bảng tương đương với 1 thuộc tính của quan hệ – dom(TênSV) = {char(30)} – dom(Nămsinh) = {date} • Bậc của 1 quan hệ là số các thuộc tính trong quan hệ – dom(GiớiTính) = {0, 1} • Lực lượng của 1 quan hệ là số các bộ – dom(ĐịaChỉ) = {char(50)} trong quan hệ 17 18 3
  13. Mô hình dữ liệu quan hệ Mô hình dữ liệu quan hệ • Định nghĩa (tiếp): Cho U = {A1, A2 • Định nghĩa Khoá của quan hệ r trên , …, An} là một tập hữu hạn các tập thuộc tính U = {A1 , A2 , …, An} thuộc tính trong đó dom(Ai ) = Di, r là một tập K U sao cho với bất kỳ 2 là quan hệ trên tập thuộc tính U ký bộ t1 , t2 thuộc r đều tồn tại một hiệu là r(U) nếu: thuộc tính A thuộc K mà t1[A] ≠ t2 [A] r ⊆ D1 × D2 × ... × Dn • Một quan hệ có thể có nhiều khoá • U được gọi là sơ đồ quan hệ (lược • Nếu K là khoá của r thì mọi K’ sao đồ quan hệ) cho K K’ đều là khoá của r. K’ được gọi là siêu khoá của r 19 20 Mô hình dữ liệu quan hệ Mô hình dữ liệ liệu quan hệ Ví dụ: • Định nghĩa: K là khoá tối • Quan hệ: SinhViên(MãSV, TênSV, NămSinh, thiểu của r nếu K là một khoá GiớiTính, Lớp) của r và bất kỳ tập con thực sự SV001 Nguyễn Văn An 1982 1 Tin 7 nào của K đều không phải là SV002 Nguyễn Văn An 1985 1 HTTT khoá của r SV003 Lê Văn Cường 1981 1 HTTT SV004 Nguyễn Thùy Linh 1981 0 BK65 • Định nghĩa: Một tập con K U • Siêu khoá: {MãSV, HọTên}; được gọi là khoá ngoài của • Khoá tối thiểu: {MãSV}; {HọTên, NămSinh} quan hệ r(U) tham chiếu đến • Khoá ngoài: TênLớp nếu coi nó là khoá chính một quan hệ r’ nếu K là khoá của quan hệ Lớp chính của r’ 21 22 Mô hình dữ liệu quan hệ - Mô hình thự thực thể thể liên kết nhận xét (Entity- Entity-Relationship data model) model) • Cho phép mô tả các dữ liệu có liên quan trong một xí nghiệp trong thế giới thực dưới • Ưu điểm dạng các đối tượng và các mối quan hệ của – Dựa trên lý thuyết tập hợp chúng. – Khả năng tối ưu hoá các xử lý phong • Được sử dụng cho bước đầu thiết kế CSDL, phú làm nền tảng để ánh xạ sang một mô hình khái niệm nào đó mà Hệ quản trị CSDL sẽ sử • Nhược điểm dụng – Hạn chế trong biểu diễn ngữ nghĩa • Trong mô hình thực thể liên kết, CSDL được – Cấu trúc dữ liệu không linh hoạt mô hình hóa như là: – Một tập hợp các thực thể 23 – Liên hệ giữa các thực thể này 24 4
  14. Mô hình thự thực thể thể liên kết Mô hình thự thực thể thể liên kết... Các khá khái niệ niệm cơ bản • Thực thể, tập • Thực thể: một đối tượng trong thế thực thể giới thực, tồn tại độc lập và phân biệt được với các đối tượng khác • Thuộc tính • Tập thực thể: một tập hợp các thực • Khoá thể có tính chất giống nhau • Liên kết, tập • Ví dụ: liên kết – Thực thể: một sinh viên, một lớp – Tập thực thể: toàn thể sinh viên của 1 lớp, toàn thể các lớp của 1 khoa 25 26 Mô hình thự thực thể thể liên kết... Mô hình thự thực thể thể liên kết... Kiểu thuộc tính • Thuộc tính là đặc tính của một tập thực thể sinh_viên • Thuộc tính đơn giản sinh_viên – Tập thực thể SinhViên có (thuộc tính nguyên các thuộc tính như: TênSV, NămSinh,… tố) •sv1 • Mỗi thực thể trong tập •sv2 – có kiểu dữ liệu tenSV gioitinh thực thể có một giá trị •sv3 nguyên tố maSV namsinh đặc tính nằm trong miền • Thuộc tính phức diachi giá trị của thuộc tính – Sinh viên 1 có: Họtên là maSV – có kiểu phức, định diachi so_pho quan thanh_pho Nguyễn Hải Anh, Năm sinh tenSV nghĩa bởi các thuộc gioitinh 1980 tính khác namsinh 27 28 Mô hình thực thể liên kết... Mô hình thực thể liên kết... Kiểu thuộc tính Khóa • Thuộc tính đa giá maMH • Một hay một tập thuộc tính mà giá trị của trị chúng có thể xác định duy nhất một thực – tương ứng với mỗi tenmon thể trong tập thực thể mon_hoc thực thể, có thể soHT – Tập thực thể SinhViên có thể dùng MãSV làm nhận nhiều giá trị khoá giao_vien • Khoá gồm nhiều thuộc tính thì gọi là khoá • Thuộc tính suy phức diễn sinh_viên • Một tập thực thể có thể có nhiều khoá – có thể tính toán nhưng chỉ một trong số các khoá được được từ (các) thuộc chọn làm khoá chính nam tính khác tenSV • Trong sơ đồ ER, thuộc tính nào được chọn tuoi maSV làm khoá chính sẽ được gạch chân ngaysinh 29 30 diachi 5
  15. Mô hình thực thể liên kết... Mô hình thực thể liên kết... Liên kết - Tập liên kết Liên kết - Tập liên kết - Ví dụ: • Một liên kết là một mối liên hệ có nghĩa giữa nhiều thực thể maSV maMH – Cho một thực thể SinhViên1 và LớpA, liên kết ThànhViên chỉ ra rằng SinhViên1 là 1 thành tenSV tenmon viên của LớpA ngaysinh sinh_viên diem_thi mon_hoc • Tập liên kết là một tập hợp các liên kết soHT nam cùng kiểu – Giữa tập thực thể SinhViên và Lớp có 1 tập liên diachi ket_qua kết ThànhViên, chỉ ra rằng mỗi sinh viên đều là thành viên của 1 lớp nào đó • Một liên kết có thể có thuộc tính 31 32 Mô hình thực thể liên kết... Cách lậ lập sơ đồ đồ thự thực thể thể - liên kế kết Ràng buộc của kết nối 1 • 1-1: Liên kết 1 thực thể lop_hoc chu_nhiem 1 giao_vien • Bước 1: Xác định các thực thể của một tập thực thể với nhiều nhất 1 thực thể của • Bước 2: Xác định các liên kết giữa tập thực thể khác • 1-n: Liên kết 1 thực thể lop_hoc 1 thanh_vien n sinh_vien các thực thể của một tập thực thể với – Bậc của liên kết nhiều thực thể của tập thực thể khác – Ràng buộc (1-1, 1-n, n-n, đệ quy) • n-n: Liên kết 1 thực thể n n sinh_viên dang_ky mon_hoc của một tập thực thể với nhiều thực thể của tập thực thể khác và ngược lại • đệ quy: Liên kết giữa các mon_hoc thực thể cùng kiểu dieu_kien 33 34 Bài tậ tập: Vẽ Vẽ sơ đồ đồ ER Ho Dem Ten Ten _phong Ma_phong Dia_diem • Bài toán: phân tích và thiết kế 1 CSDL gồm các SoBH HoTen Dia_chi Luong thông tin trong 1 công ty (nhân viên, phòng ban, dự án) Ngay_sinh 1 PHONG_BAN Gioi_tinh – Công ty được tổ chức bởi các phòng ban. Mỗi phòng ban có 1 tên duy nhất, 1 số duy nhất và 1 người quản lý 1 (thời điểm bắt đầu công tác quản lý của người này cũng 1 n La_NV 1 nguoiPT NHAN_VIEN được lưu lại trong CSDL). Mỗi phòng ban có thể có nhiều trụ sở làm việc khác nhau n 1 Phu_trach Quan_ly – Mỗi phòng điều phối một số dự án. Mỗi dự án có 1 tên nguoibiPT 1 và 1 mã số duy nhất, thực hiện tại một địa điểm duy n nhất Ngay_BD So_gio – Các thông tin về nhân viên cần được quan tâm gồm: Dieu_phoi tên, số bảo hiểm, địa chỉ, lương, giới tính, ngày sinh. Mỗi nhân viên làm việc tại một phòng ban nhưng có thể co tham gia nhiều dự án khác nhau. Những dự án này có Lam_viec n thể được điều phối bởi các phòng ban khác nhau. Thông n m tin về số giờ làm việc trong từng dự án (theo tuần) cũng DU_AN như người quản lý trực tiếp của các nhân viên cũng được CON lưu trữ – Thông tin về con cái của từng nhân viên: tên, giới tính, ngày sinh 35 Ten_DA Ma_DA 36 Dia_diem HoTen Gioi_tinh Ngay_sinh 6
  16. Biế Biến đổ đổi sơ đồ đồ thự thực thể thể liên kế kết Biến đổi các tập thực thể sang sơ đồ đ ồ quan hệ h ệ • Bước 1: 1 tập thực thể Æ 1 quan hệ • Biến đổi tập các thực thể – thuộc tính thuộc tính (trường) • Biến đổi các liên kết – 1 thực thể 1 bộ • Các khoá của các sơ đồ quan hệ – khoá của tập thực thể khoá của quanhệ sinh_viên • Các sơ đồ quan hệ với khoá chung maSV tenSV ngaysinh nam diachi malop SINH_VIEN •sv1 maSV •sv1 tenSV ngaysin gt diachi lop h •sv2 SV001 Trần T. Bình •sv2 1/4/81 0 21 T. Q. B IT4 SV002 Ng. Trung 3/2/80 1 56 Đ. C. V IT5 •sv3 SV006 •sv3 Trần M. Quế 26/3/82 0 45 H. B. T IT6 37 38 •sv4 SV003 Ng. Hương 29/2/80 0 86 L. T. N IT7 Biến đổi các tập thực thể Biế Biến đổ đổi cá các liên kế kết • Bước 3: Liên kết 1-1 • Bước 2: 1 tập thực thể xác định từ ¾ Thêm 1 quan hệ mới xác định bởi các tập thực thể khác (E) qua 1 liên kết thuộc tính nằm trong khoá của các thực Æ 1quan hệ chứa khoá cuả E: thể có liên quan CHU_NHIEM_LOP(malop,maGV) LOPTRUONG(maSV) hoặc ¾ Dùng khoá ngoài LOP_HOC(malop,lop,khoa,maGV) sinh_viên la_mot lop_truong maGV malop 1 1 ngaysinh lop lop_hoc chu_nhiem giao_vien trinhdo khoa khoa 39 40 Biến đổi các liên kết (tiếp) Biến đổi các liên kết (tiếp) • Bước 4: Liên kết 1-n • Bước 5: Liên kết n-n ¾ Thêm 1 quan hệ mới xác định bởi các thuộc tính nằm trong khoá của các thực thể có liên quan ¾Thêm 1 quan hệ mới xác định bởi các SINHVIEN_LOP(malop, maSV) thuộc tính nằm trong khoá của các hoặc thực thể có liên quan và các thuộc ¾ Dùng khoá ngoài: thêm khoá chính của quan hệ bên 1 vào quan hệ bên n làm khoá ngoài tính của liên kết SINH_VIEN(maSV, tenSV, ngaysinh, nam, diachi, malop) maSV DANG_KY(maSV,maMH, diem) tenSV diem maSV maMH ngaysinh malop 1 tenSV n m n ten lop lop_hoc gom sinh_vien nam ngaysinh sinh_viên dang_ky mon_hoc khoa nam diachi soHT 41 42 diachi 7
  17. Thuộc tính đa trị Mô hì hình dữ dữ liệ liệu hướ hướng đố đối tượ tượng (Object- (Object-oriented data model) • Bước 6: Với mỗi thuộc tính đa trị • Sự ra đời ¾Thêm 1 quan hệ mới xác định bởi – Khoảng đầu những năm 90 thuộc tính đa trị và khoá của tập • Biễu diễn: sơ đồ lớp • Các khái niệm cơ bản thực thể tương ứng – Đối tượng: một đối tượng trong thế giới thực, được xác MH_GV(maMH,giao_vien) định bởi một định danh duy nhất – Thuộc tính: biểu diễn một đặc tính của đối tượng, maMH – Phương thức : thao tác được thực hiện trên đối tượng. • Tất cả các truy nhập vào thuộc tính của đối tượng đều phải được tenmon thực hiện thông qua các phương thức này. mon_hoc – Lớp: một cách thức để khai báo một tập các đối tượng có soHT chung một tập thuộc tính và phương thức giao_vien 43 44 Mô hì hình dữ dữ liệ liệu hướ hướng đố đối tượ tượng Mô hì hình dữ dữ liệ liệu hướ hướng đố đối tượ tượng Ví dụ: Nhậ Nhận xé xét: class sinh_vien { string maSV; • Ưu điểm string tenSV; – Cho phép định nghĩa kiểu đối tượng phức tạp date ngaysinh; – Tính chất: bao đóng (encapsulation), kế thừa boolean nam; (heritage), đa hình (polymorphism) string diachi; string lop; • Nhược điểm – Cấu trúc lưu trữ phức tạp và có thể sử dụng string ten(); nhiều con trỏ string ngay_sinh(); string dia_chi(); – Khả năng tối ưu hoá các xử lý bị hạn chế trong string lop(); nhiều trường hợp void gan_DC(string DC_moi); void gan_lop(string lop); } 45 46 So sá sánh và và đá đánh giá giá Phân loạ loại cá các mô hì hình Nhắc lại: Mô hình dữ liệu là một tập hợp các khái niệm dùng để mô tả cấu trúc của một CSDL Phân cấp Thế hệ 1 Mô hình Mô hình Mô hình Mô hình Mô hình mạng phân cấp quan hệ TT-LK Mạng Các mô hình HĐT dựa trên biểu diễn hạn chế hạn chế tương đối đa dạng đa dạng đa dạng bản ghi ngữ nghĩa Quan hệ DL s/d nhiều dữ liệu dễ dàng và khó lưu cấu trúc Thế hệ 2 lưu trữ DL con trỏ lặp lại hiệu quả trữ phức tạp Thực thể-liên kết Các mô hình khả năng đơn giản đơn giản đa dạng đa dạng dựa trên truy vấn ngữ nghĩa đối tượng hiệu quả ít khả ít khả tối ưu không được không Thế hệ 3 xem xét h/q khi của truy năng tối năng tối hoá tốt ưu ưu (không hiệu s/d nhiều Đối tượng - Quan hệ Hướng đối tượng vấn quả) con trỏ 47 48 8
  18. Các bướ bước xây dự dựng mộ một hệ hệ CSDL Bài tậ tập • Cho sơ đồ thực thể liên kết bên dưới, hãy biến đổi 1: PHÂN TÍCH sang mô hình quan hệ: StudentName StudentID LecturerID LecturerName StudentBirth Students Lecturers Mô tả ứng dụng Mô hình hoá DL (vd: Sơ đồ thực thể-liên kết) LecturerPhone StudentAddress 2: THIẾT KẾ Belong to 3: CÀI ĐẶT ClassID Classes Learn Time ClassName ClassMonitor Subjects SubjectID Cài đặt với 1 hệ quản trị CSDL Mô tả DL logic với 1 mô hình DL cụ thể SubjectName (vd: ORACLE) (vd: Sơ đồ quan hệ) 49 50 Lời giả giải Lời giả giải (tiế (tiếp) • Biến đổi các tập thực thể và các quan hệ • Cải tiến thiết kế: Bảng Students và thành các bảng: bảng Belongto có cùng khóa Lecturers(LecturerID, LecturerName, (StudentID), ta nên kết hợp chúng LecturerPhone) Students(StudentID, StudentName, StudentBirth, lại: StudentAddress) Students’(StudentID, StudentName, Classes(ClassID, ClassName, ClassMonitor) StudentBirth, StudentAddress, ClassID) Subjects(SubjectID, SubjectName) Belongto(StudentID, ClassID) Learn(LecturerID,ClassID, SubjectID, Time) 51 52 Lời hay ý đẹp Trong 10 lần thành công thì có tới 9 lần thành công nhờ sự hăng hái và niềm tin trong công việc Teewilson 53 9
  19. Nội dung Ngôn ngữ định nghĩa • Các cách tiếp cận đối với thiết kế và thao tác dữ liệu đối ngôn ngữ của CSDL quan hệ với mô hình quan hệ – Giới thiệu một số ngôn ngữ và phân loại ¾So sánh và đánh giá Nguyễ Nguyễn Hồng Phương • Một số ngôn ngữ dữ liệu mức cao phuongnh- phuongnh-fit@mail.hut.edu.vn – QBE (Query By Example) – SQL (Structured Query Language) Bộ môn Hệ thố thống thông tin Việ Viện Công nghệ nghệ thông tin và và Truyề Truyền thông • Kết luận Đại học Bách Khoa Hà Nội 1 2 CSDL ví dụ 1 CSDL ví dụ 2 Supplier SID SNAME SIZE CITY Student Takes Enrol S1 Dustin 100 London SupplyProduct Id Name Suburb SID SNO SID Course S2 Rusty 70 Paris SID PID QUANTITY 1108 Robert Kew 1108 21 3936 101 S3 Lubber 120 London S1 P1 500 3936 Glen Bundoora 1108 23 1108 113 S4 M&M 60 NewYork S1 P2 400 S5 MBI 1000 NewOrlean 8507 Norman Bundoora 8507 23 8507 101 S1 P4 100 S6 Panda 150 London 8452 Mary Balwyn 8507 29 S2 P3 250 S2 P4 50 Course Subject Product S3 P1 300 PID PNAME COLOR S3 P2 350 No Name Dept No Name Dept P1 Screw red S3 P6 200 113 BCS CSCE 21 Systems CSCE P2 Screw green S4 P1 10 101 MCS CSCE 23 Database CSCE P3 Nut red S5 P2 200 29 VB CSCE P4 Bolt blue 18 Algebra Maths P5 Plier green 3 4 P6 Scissors blue Đặt vấn đề: các câu hỏi Câu hỏi (tiếp) Student Id Name Suburb • Tìm tên của các sinh Student • Tìm các sinh viên 1108 Robert Kew viên nào sống ở đăng ký khoá học 3936 Glen Bundoora Id Name Suburb Bundoora 1108 Robert Kew có mã số 113 8507 Norman Bundoora 8452 Mary Balwyn – Tìm các bộ của bảng 3936 Glen Bundoora – Tìm các giá trị SID Enrol Student có Suburb = 8507 Norman Bundoora trong bảng Enrol có SID Course Bundoora 8452 Mary Balwyn Course tương ứng 3936 101 – Đưa ra các giá trị của là 113 1108 113 – Đưa các bộ của 8507 101 thuộc tính Name của các bộ này bảng Student có Course SID trong các giá No Name Dept trị tìm thấy ở trên 113 BCS CSCE 5 101 MCS CSCE 6 1
  20. Phân loạ loại cá các ngôn ngữ ngữ truy vấ vấn • Ngôn ngữ đại số – 1 câu hỏi = 1 tập các phép toán trên các quan hệ – Được biểu diễn bởi một biểu thức đại số (quan hệ) Ngôn ngữ đại số quan hệ • Ngôn ngữ tính toán vị từ – 1 câu hỏi = 1 mô tả của các bộ mong muốn – Được đặc tả bởi một vị từ mà các bộ phải thoả mãn – Phân biệt 2 lớp: • ngôn ngữ tính toán vị từ biến bộ • ngôn ngữ tính toán vị từ biến miền 7 8 Phân loạ loại cá các phé phép toá toán đạ đại số số quan hệ hệ Tổng quan • Gồm các phép toán tương ứng với các • Phép toán quan hệ thao tác trên các quan hệ – Phép chiếu (projection) • Mỗi phép toán – Phép chọn (selection) – Đầu vào: một hay nhiều quan hệ – Phép kết nối (join) – Đầu ra: một quan hệ – Phép chia (division) • Biểu thức đại số quan hệ = chuỗi các phép • Phép toán tập hợp toán – Phép hợp (union) • Kết quả thực hiện một biểu thức đại số là – Phép giao (intersection) một quan hệ – Phép trừ (difference) • Được cài đặt trong phần lớn các hệ CSDL – Phép tích đề-các (cartesian product) hiện nay 9 10 Phép toán tập hợp Phép hợp • Đ/n: gồm các bộ thuộc ít nhất 1 trong 2 • Định nghĩa: Quan hệ khả hợp quan hệ đầu vào – 2 quan hệ r và s được gọi là khả hợp • 2 quan hệ đầu vào phải là khả hợp nếu chúng được xác định trên cùng 1 • Cú pháp: R = R1 R2 miền giá trị R1 R1 R2 R2 – r xác định trên D1x D2 x…x Dn Subject1 Kết quả Subject2 – s xác định trên D’1x D’2 x…x D’m Name Course Name Course Systems BCS – Æ Di = D’i và n=m Systems BCS Name Course Database BCS Database BCS DataMining MCS Database MCS Database MCS Writing BCS Algebra MCS Algebra MCS DataMining MCS 11 Writing 12 BCS 2
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2