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

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

File đính kèm:

  • pdfbai_giang_co_so_du_lieu_nguyen_hong_phuong.pdf