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 đủ
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:
bai_giang_co_so_du_lieu_nguyen_hong_phuong.pdf

