© Khoa Tin học Kinh tếKẾ HOẠCH GIẢNG DẠY HỌC PHẦN STT Nội dung Tổng số tiết Trong đó Ghi chú Lý thuyết Bài tập, thảo luận, kiểm tra 1 Chương 1: Cơ sở dữ liệu và các mô hình cơ
Trang 1© Khoa Tin học Kinh tế
CƠ SỞ DỮ LIỆU
© Khoa Tin học Kinh tế
Trường Đại học Kinh tế Quốc dân
National Economics University
1 Họ tên giảng viên:
2 Địa chỉ: Văn phòng Khoa Tin học kinh tế - Phòng 4.3 nhà
Trang 2© Khoa Tin học Kinh tế
KẾ HOẠCH GIẢNG DẠY HỌC PHẦN
STT Nội dung Tổng số
tiết
Trong đó
Ghi chú
Lý thuyết Bài tập, thảo
luận, kiểm tra
1 Chương 1: Cơ sở dữ liệu và các mô
hình cơ sở dữ liệu
Phòng máy tính có kết nối Internet và cài đặt
bộ phần mềm SQL và Microsoft Office
2 Chương 2: Một số ngôn ngữ khai thác
Trường Đại học Kinh tế Quốc dân
National Economics University
1 Thời điểm kiểm tra học phần: Tuần 10 hoặc 11
2 Phương pháp đánh giá học phần:
- Điểm lên lớp, thảo luận, thuyết trình: 10%
- Điểm kiểm tra: 20%
- Điểm thi kết thúc học phần: 70%
3 Yêu cầu của giảng viên:
Trang 3© Khoa Tin học Kinh tế
• CHƯƠNG 1: CƠ SỞ DỮ LIỆU VÀ MỘT SỐ MÔ HÌNH CƠ
• CHƯƠNG 5 TỐI ƯU HOÁ TRUY VẤN (CÂU HỎI)
• CHƯƠNG 6: AN TOÀN VÀ TOÀN VẸN DỮ LIỆU
© Khoa Tin học Kinh tế
TÀI LIỆU THAM KHẢO
+ Jeffrey Ullman, Nguyên lý các hệ cơ sở dữ liệu và cơ sở
tri thức (3 tập) – NXB Thống kê
+ Nguyễn Kim Anh Nguyên lý của các hệ cơ sở dữ liệu
Nhà xuất bản Đại học Quốc gia Hà nội, 2004
+ Nguyễn An Tuế Giáo trình Nhập môn Cơ sở dữ liệu quan
hệ Khoa CNTT, ĐHKHTN, Đại học Quốc gia TP HCM, 1996
+ Nguyễn Bá Tường Cơ sở dữ liệu: Lý thuyết và thực hành
Nhà xuất bản khoa học và kỹ thuật, 2001
+ Lê Tiến Vương Nhập môn Cơ sở dữ liệu quan hệ Nhà
xuất bản khoa học và kỹ thuật, 2000
Trang 4© Khoa Tin học Kinh tế
Chương này giới thiệu các khái niệm chung
của một hệ cơ sở dữ liệu như: Cơ sở dữ liệu
là gì, phân loại CSDL, các đối tượng sử dụng
CSDL, hệ quản trị CSDL, các mức biểu diễn
CSDL, kiến trúc tổng quan của một hệ quản
trị CSDL, tính độc lập giữa CSDL và chương
trình Các mô hình cơ sở dữ liệu
1.1 Tổng quan về cơ sở dữ liệu
- Dư thừa dữ liệu và tính không nhất quán
(Data redundancy and inconsistency)
- Khó khăn trong việc truy xuất dữ liệu
- Sự cô lập dữ liệu (Data isolation)
- Các vấn đề về tính toàn vẹn
- Tính bất thường trong truy xuất cạnh tranh
- Vấn đề an toàn (Security problems)
CHƯƠNG 1 Cơ sở dữ liệu và một số mô hình
cơ sở dữ liệu
Trang 5© Khoa Tin học Kinh tế
1.1 Tổng quan về cơ sở dữ liệu
1.1.2 Lịch sử phát triển của cơ sở dữ liệu
• 60 Mô hình mạng và cây phân cấp Đối tượng
Không Riêng biệt
• 70 Mô hình quan hệ Giá trị Có Riêng biệt
• 80 Mô hình cơ sở hướng đối tượng Đối tượng
Không Tích hợp
• 90 Mô hình cơ sở tri thức Giá trị Có Tích hợp
• Nay Mô hình cơ sở dữ liệu Web Giá trị Có Tích hợp
© Khoa Tin học Kinh tế
CHƯƠNG 1 Cơ sở dữ liệu và một số mô hình
cơ sở dữ liệu
1.1 Tổng quan về cơ sở dữ liệu
1.1.3 Các khái niệm cơ bản về cơ sở dữ liệu
Trang 6© Khoa Tin học Kinh tế
1.1 Tổng quan về cơ sở dữ liệu
1.1.3 Các khái niệm cơ bản về cơ sở dữ liệu
+ Cơ sở dữ liệu
• Ưu điểm của CSDL
• Vấn đề cần giải quyết
• Các đối tượng sử dụng cơ sở dữ liệu
+ Hệ quản trị cơ sở dữ liệu
• Các thành phần của hệ QTCSDL
• + Hệ cơ sở dữ liệu
CHƯƠNG 1 Cơ sở dữ liệu và một số mô hình
cơ sở dữ liệu
1.1 Tổng quan về cơ sở dữ liệu
1.1.4 Phân loại các hệ cơ sở dữ liệu
Trang 7© Khoa Tin học Kinh tế
1.2 Các mức biểu diễn của một cơ sở dữ liệu
1.2.1 Lược đồ và các thể hiện
© Khoa Tin học Kinh tế
CHƯƠNG 1 Cơ sở dữ liệu và một số mô hình
cơ sở dữ liệu
1.2 Các mức biểu diễn của một cơ sở dữ liệu
+Vấn đề cần giải quyết
• Dữ liệu gì, được lưu trữ thế nào?
• Ở đâu? (đĩa từ, băng từ, track, sector,… nào?)
•Cần các chỉ mục gì?
Trang 8© Khoa Tin học Kinh tế
1.2 Các mức biểu diễn của một cơ sở dữ liệu
+ CSDL cần lưu giữ bao nhiêu loại dữ liệu?
+ Đó là những dữ liệu gì?
+ Mối quan hệ giữa các dữ liệu này như thế nào?
CHƯƠNG 1 Cơ sở dữ liệu và một số mô hình
tin trong CSDL
Trang 9© Khoa Tin học Kinh tế
1.3 Kiến trúc tổng quát của một hệ quản trị CSDL
© Khoa Tin học Kinh tế
CHƯƠNG 1 Cơ sở dữ liệu và một số mô hình
cơ sở dữ liệu
1.3 Kiến trúc tổng quát của một hệ quản trị CSDL
Trang 10© Khoa Tin học Kinh tế
1.3 Kiến trúc tổng quát của một hệ quản trị CSDL
CHƯƠNG 1 Cơ sở dữ liệu và một số mô hình
cơ sở dữ liệu
1.4 Các mô hình cơ sở dữ liệu
1.4.1 Mô hình thực thể - liên kết (mô hình ER)
- Các khái niệm cơ sở
Trang 11© Khoa Tin học Kinh tế
1.4 Các mô hình cơ sở dữ liệu
1.4.2 Mô hình dữ liệu quan hệ
• Khi đó, r là quan hệ xác định trên tập thuộc tính U nếu
r dom(A 1 ) x dom(A 2 ) x… x dom(A n ) Lúc đó U là một lược đồ quan
hệ và nói quan hệ r xác định trên lược đồ U
© Khoa Tin học Kinh tế
CHƯƠNG 1 Cơ sở dữ liệu và một số mô hình
cơ sở dữ liệu
1.4 Các mô hình cơ sở dữ liệu
1.4.1 Mô hình dữ liệu quan hệ
Trang 12© Khoa Tin học Kinh tế
1.4 Các mô hình cơ sở dữ liệu
1.4.2 Mô hình dữ liệu quan hệ
• Khóa: U = {A1 , A 2 ,…, A n } Một tập K U đƣợc gọi là khóa
của quan hệ r nếu với bất kỳ hai bộ t 1 , t 2 với t 1 ≠ t 2 , đều
tồn tại một thuộc tính A thuộc K sao cho t 1 [A] ≠ t 2 [A]
1.4 Các mô hình cơ sở dữ liệu
1.4.2 Mô hình dữ liệu quan hệ
Biến đổi các sơ đồ ER sang mô hình quan hệ
- Biến đổi các tập thực thể
- Biến đổi các liên kết
- Các khóa của các sơ đồ quan hệ
Trang 13© Khoa Tin học Kinh tế
Trong chương này sẽ tìm hiểu về các ngôn ngữ cho phép
định nghĩa các đối tượng của một CSDL và biểu diễn các
yêu cầu trên CSDL đó mà một HQTCSDL có thể hỗ trợ Cụ
thể, sẽ xem xét ba cách tiếp cận chính đối với việc thiết kế
các ngôn ngữ biểu diễn các yêu cầu trên CSDL quan hệ
Các ký hiệu được sử dụng để biểu diễn các yêu cầu Các
khía cạnh không truy vấn của một ngôn ngữ thao tác dữ
liệu quan hệ liên quan đến các thao tác thêm, xóa, sửa đổi
các bộ Do vậy, các ngôn ngữ thao tác dữ liệu trước đây đôi
khi còn được gọi là ngôn ngữ truy vấn
Các ngôn ngữ truy vấn đối với mô hình quan hệ được chia
làm hai lớp
1/ Các ngôn ngữ đại số
2/ Các ngôn ngữ tính toán vị từ
© Khoa Tin học Kinh tế
CHƯƠNG 2: Một số ngôn ngữ khai thác cơ
sở dữ liệu 2.1 Đại số quan hệ
2.1.1 Phép hợp
Phép hợp của hai quan hệ khả hợp r và s, ký hiệu là r s, là
tập tất cả các bộ thuộc r hoặc thuộc s hoặc thuộc cả hai
quan hệ
r s = {t | t r t s}
Trang 14© Khoa Tin học Kinh tế
2.1 Đại số quan hệ
2.1.2 Phép giao
Phép giao của hai quan hệ khả hợp r và s, ký hiệu là r s,
là tập tất cả các bộ thuộc hai quan hệ r và s
r s = {t | t r t s}
CHƯƠNG 2: Một số ngôn ngữ khai thác cơ
sở dữ liệu 2.1 Đại số quan hệ
2.1.3 Phép trừ
Phép trừ của hai quan hệ khả hợp r và s, ký hiệu r – s, là tập
tất cả các bộ thuộc r nhưng không thuộc s
r – s = {t | t r t s}
Trang 15© Khoa Tin học Kinh tế
2.1 Đại số quan hệ
2.1.4 Phép tích Đề-các
Tích Đề-các của hai quan hệ r và s, ký hiệu r x s là tập tất cả
các (n+m)-bộ có n thành phần đầu tiên là một bộ thuộc r và
m thành phần sau là một bộ thuộc s
r x s = {t | t = (a 1 , a 2 ,…, a n , b 1 , b 2 , b m) (a 1 , …, a n ) r (b 1 , …, b m ) s}
© Khoa Tin học Kinh tế
CHƯƠNG 2: Một số ngôn ngữ khai thác cơ
sở dữ liệu
2.1 Đại số quan hệ
2.1.5 Phép chiếu
Phép chiếu của quan hệ r trên tập thuộc tính X, ký hiệu x (r), là
tập các bộ của r xác định trên tập thuộc tính X
x (r) = {t[X] | t r}
VD : Với X = {Tên, NS, QQ}
và Y = {Môn, Tiết}
Trang 16© Khoa Tin học Kinh tế
2.1 Đại số quan hệ
2.1.6 Phép chọn
Cho r là một quan hệ và F là một biểu thức logic trên các
thuộc tính của r Phép chọn trên quan hệ r với biểu thức
Trang 17© Khoa Tin học Kinh tế
2.1 Đại số quan hệ
2.1.8 Phép chia
Cho r là một quan hệ n ngôi xác định trên tập thuộc
tính U và s là một quan hệ m ngôi xác định trên tập
thuộc tính V, với n > m và s ≠ , có nghĩa là lực lượng
của s # 0 hay s có ít nhất 1 bộ Giả thiết V U Phép
chia quan hệ r cho quan hệ s, ký hiệu r s, là tập tất
cả các bộ t sao cho với mọi bộ v s thì t ghép với v
thuộc r
r s = {t | v s (t, v) r}
© Khoa Tin học Kinh tế
CHƯƠNG 2: Một số ngôn ngữ khai thác cơ
sở dữ liệu 2.2 Phép tính vị từ biến bộ
2.2.1 Định nghĩa hình thức
Là ngôn ngữ truy vấn phi thủ tục, mô tả thông tin
mong muốn mà không chỉ ra thủ tục đặc biệt để đạt
được các thông tin
Một biểu thức phép tính vị từ biến bộ có dạng {t|P(t)}
P: là một công thức, một số biến bộ có thể xuất hiện
trong một công thức Một biến bộ là một biến tự do
nếu không bị lượng hóa bởi một lượng từ hay Do
vậy trong {t| v s (t,v) r}
Trang 18© Khoa Tin học Kinh tế
2.2 Phép tính vị từ biến bộ
2.2.1 Định nghĩa hình thức
Một công thưc phép tính vị từ biến bộ được thiết lập từ
các công thức nguyên tố, có một trong các dạng:
• u r: u là một biến bộ; r là một quan hệ
• u[x] v[y]: u, v là các biến bộ; x là một thuộc tính mà
trên đó u xác định và y là một thuộc tính mà trên đó
y xác định; là phép toán so sánh
• u[x] c: u là một biến bộ; x là một thuộc tính mà trên
đó x xác định; c là một hằng trong miền xác định của
x; là một phép so sánh
CHƯƠNG 2: Một số ngôn ngữ khai thác cơ
sở dữ liệu 2.2 Phép tính vị từ biến bộ
2.2.1 Định nghĩa hình thức
Việc thiết lập các công thức nguyên tố
• Một công thức nguyên tố là một công thức
• Nếu P 1 là một công thức thì P 1 và (P 1 ) cũng là công
thức
• Nếu P 1 và P 2 là công thức thì P 1 P 2 , P 1 P 2 và
P 1 P 2 cũng là công thức
• Nếu P 1 là công thức chứa một biến bộ tự do u, và r là
một quan hệ thì u r (P 1 (u) và u r (P 1 (u)) cũng
là các công thức
Trang 19© Khoa Tin học Kinh tế
© Khoa Tin học Kinh tế
CHƯƠNG 2: Một số ngôn ngữ khai thác cơ
sở dữ liệu 2.2 Phép tính vị từ biến bộ
2.2.2 Tính an toàn của các biểu thức
Biểu thức phép tính vị từ biến bộ có thể sinh ra một
quan hệ vô hạn => để hạn chế cần phải có khái niệm
miền của công thức
Miền của P: dom(P) – là tập hợp tất cả các giá trị được
tham chiếu bởi P
• Các giá trị được viết ra trong chính P
• Giá trị xuất hiện trong một bộ của quan hệ được viết
ra trong P
dom((t r)) là tập các giá trị xuất hiện trong r, do
quan hệ của r được viết ra trong biểu thức
Trang 20© Khoa Tin học Kinh tế
x1,…, xn biểu diễn các biến miền
P biểu diễn một công thức được hợp thành từ các
công thức nguyên tố
CHƯƠNG 2: Một số ngôn ngữ khai thác cơ
sở dữ liệu 2.3 Phép tính vị từ biến miền
Trang 21© Khoa Tin học Kinh tế
2.3 Phép tính vị từ biến miền
2.3.1 Định nghĩa hình thức
Thiết lập công thức từ các công thức nguyên tố
• Một công thức nguyên tố là một công thức
• Nếu P 1 là một công thức thì P 1 và (P 1 ) cũng là công
© Khoa Tin học Kinh tế
CHƯƠNG 2: Một số ngôn ngữ khai thác cơ
sở dữ liệu 2.3 Phép tính vị từ biến miền
2.3.2 Tính an toàn cho biểu thức
Để đảm bảo tính an toàn cho biểu thức cần có các luật
Giả sử {<x 1 ,…, x n > | P(x 1 , …, x n )} là an toàn nếu
• Tất cả các giá trị xuất hiện trong các bộ của biểu thức là
các giá trị từ dom(P)
• Với mỗi công thức con ‘tồn tại’ có dạng x (P 1 (x), công
thức này đúng nếu và chỉ nếu có một giá trị trong
dom(P 1 ) sao cho P 1 (x) là đúng
• Với mỗi công thức ‘với mọi’ có dạng x (P 1 (x), công thức
này đúng nếu và chỉ nếu P 1 (x) là đúng với tất cả các giá
trị x từ dom(P 1 )
Trang 22© Khoa Tin học Kinh tế
2.4 Ngôn ngữ đại số quan hệ thuần túy
2.4 2 Các ví dụ về truy vấn bằng ngôn ngữ đại số
Trang 23© Khoa Tin học Kinh tế
2.5 SQL – Structure Query Language
SELECT – FROM – WHERE
SELECT A 1 , A 2 ,…, A n FROM r 1 , r 2 ,…., r n WHERE P
SELECT [DISTINCT] <d/s cột>|*|<biểu thức số học>
FROM <d/s tên bảng>|<d/sách các view>
[WHERE <biểu thức điều kiện>]
[GROUP BY <d/s tên cột> [HAVING <biểu thức điều
kiện>]]
[ORDER BY <d/s tên cột>|<biểu thức> [ASC|DESC]]
[UNION|INTERSECT|MINUS<câu truy vấn con>]
1 , , ( ( 1 2 ) )
n
© Khoa Tin học Kinh tế
CHƯƠNG 2: Một số ngôn ngữ khai thác cơ
sở dữ liệu 2.5 SQL – Structure Query Language
Trong đó WHERE có thể được biểu diễn dưới các dạng
• WHERE [NOT] <Biểu thức> <phép so sánh> <biểu thức>
• WHERE [NOT] <tên cột> [NOT] LIKE <xâu ký tự>
• WHERE [NOT] <biểu thức> [NOT] IN ({danh sách| câu truy
vấn}]
• WHERE [NOT] EXISTS (<câu truy vấn con>)
• WHERE [NOT]<biểu thức><phép so
sánh>{SOME|ANY|ALL( truy vấn con)}
• WHERE [NOT] <biểu thức logic>
• WHERE [NOT] <biểu thức logic> {AND|OR} [NOT] <biểu
thức logic>
Trang 24© Khoa Tin học Kinh tế
• Truy vấn trên 1 bảng
• SELECT Ten FROM SV
• SELECT DISTINCT Ten FROM SV
• Ký hiệu * để chỉ ra tất cả các cột được đưa ra
• SELECT * FROM SV
• SELECT * FROM SV, MON
• Truy vấn có điều kiện
• SELECT MASV FROM DIEM WHERE MAMON = ‘CSDL’
• SELECT MASV FROM DIEM WHERE KQUA BETWEEN 6
• Truy vấn với điều kiện có chứa xâu ký tự
Ký hiệu % : Thay thế cho 1 xâu con nào đó (nhóm ký tự
bất kỳ)
Ký hiệu _ : Thay thế cho 1 ký tự bất kỳ
LIKE : Xử lý các xâu ký tự gần đúng khi người sử dụng
không rõ giá trị cụ thể chính xác
• SELECT * FROM SV WHERE Ten LIKE ‘Ba%’
• Truy vấn trên nhiều bảng
• SELECT Ten
FROM SV, DIEM
WHERE SV.MASV = DIEM.MASV AND MAMON=’CSDL’
Trang 25© Khoa Tin học Kinh tế
• Phép đổi tên OLD_NAME AS NEW_NAME
• SELECT MASV, MAMON AS THILAI FROM DIEM WHERE
KQUA <5
• Truy vấn có sắp xếp
• SELECT TENMON FROM MON WHERE NHOM =’Tự chọn’
ORDER BY TENMON ASC
• Truy vấn với các phép toán tập hợp
• UNION, INTERSECT và MINUS tương ứng với các phép toán
, , –SELECT MASV FROM SV MINUS SELECT MASV
FROM DIEM
= SELECT MASV FROM SV WHERE MASV<>ALL(SELECT
MASV FROM DIEM)
• SELECT TEN FROM SV WHERE TUOI >=ALL(SELECT TUOI
FROM SV)
© Khoa Tin học Kinh tế
CHƯƠNG 2: Một số ngôn ngữ khai thác cơ
sở dữ liệu 2.5.2 Các hàm thư viện
• AVG, COUNT, SUM, MAX, MIN
• SELECT AVG(SOTIET) FROM MON WHERE
NHOM=’Tự chọn’
• Lưu ý : SUM và AVG thì đối số phải là tập hợp các
giá trị số, còn các hàm khác có thể phi số Với SUM
và AVG không được sử dụng từ khóa DISTINCT cho
dù kết quả không có sự thay đổi
• SELECT MASV, COUNT(MAMON) FROM DIEM
GROUP BY MASV
Trang 26© Khoa Tin học Kinh tế
DELETE FROM <tên bảng> [WHERE <biểu thức điều kiện>]
DELETE FROM MON WHERE SOTIET > 60
• Sửa dữ liệu
• UPDATE <tên bảng> SET <tên cột> =<biểu thức>,…
[WHERE <biểu thức điều kiện>]
• UPDATE MON SET SOTIET = 45 WHERE NHOM=’Tự chọn’
CHƯƠNG 2: Một số ngôn ngữ khai thác cơ
sở dữ liệu 2.2.4 Các lệnh định nghĩa dữ liệu
- Các kiểu dữ liệu trong SQL
Trang 27© Khoa Tin học Kinh tế
• Các lệnh đối với bảng
+ Tạo bảng
• CREATE TABLE <tên bảng> (<tên cột><kiểu dữ liệu>
[NOT NULL],…) [CONSTRAINT <tên ràng buộc><kiểu
ràng buộc>….])
• CREATE TABLE DIEM (MASV CHAR(8) NOT NULL,
MAMON CHAR(4), KQUA INT) CONSTRAINT Khóa
PRIMARY KEY (MASV, MAMON)
+ Thêm một cột cho bảng
• ALTER TABLE <tên bảng> ADD COLUMN <tên cột>
<kiểu dữ liệu> [NOT NULL]
• ALTER TABLE DIEM ADD COLUMN GHICHU
VARCHAR(20)
© Khoa Tin học Kinh tế
CHƯƠNG 2: Một số ngôn ngữ khai thác cơ
sở dữ liệu
• Các lệnh đối với bảng
+ Sửa kiểu dữ liệu của một cột trong bảng
• ALTER TABLE <tên bảng> CHANGE COLUMN <tên
cột><kiểu dữ liệu mới>
• ALTER TABLE DIEM CHANGE COLUMN GHICHU
CHAR (10)
+ Xóa bảng
• DROP TABLE <tên bảng>
Trang 28© Khoa Tin học Kinh tế
2.5.5 SQL dạng nhúng
Chuẩn SQL định nghĩa các dạng nhúng của SQL trong
các ngôn ngữ lập trình khác (ngôn ngữ chủ) và các cấu
trúc SQL được phép trong ngôn ngữ chủ này cấu
thành dạng nhúng
EXEC SQL <chỉ thị SQL dạng nhúng> AND-EXEC
Cú pháp chính xác đối với các yêu cầu SQL dạng
nhúng phụ thuộc vào ngôn ngữ chủ
- Các biến của ngôn ngữ chủ sử dụng trong chỉ thị
SQL phải đạt trước dấu (:)
- Để truy vấn trên một CSDL cần dung chỉ thị declare
cursor Dùng open và fetch để được bộ kết quả
CHƯƠNG 3 Lý thuyết thiết kế cơ sở dữ liệu
quan hệ
Mô hình CSDL quan hệ là một trong những mô
hình biểu diễn dữ liệu thông dụng nhất có các ứng
dụng thực tiễn Chương 3 trình bày các vấn đề về
Lý thuyết thiết kế cơ sở dữ liệu quan hệ như: Phụ
thuộc hàm, định nghĩa phụ thuộc hàm, các hệ tiên
đề cho phụ thuộc hàm, khoá của lược đồ quan hệ,
các vấn đề về chuẩn hoá lược đồ quan hệ, rút gọn
tập phụ thuộc hàm, tách lược đồ quan hệ Trong
chương trình bày các thuật toán và các ví dụ minh
họa để thể hiện các vấn đề lý thuyết thiết kế CSDL
quan hệ đã nêu trên
Trang 29© Khoa Tin học Kinh tế
3.1 Đặt vấn đề
Mục đích của thiết kế CSDL quan hệ là sản sinh ra tập
các lược đồ quan hệ cho phép lưu trữ các thông tin
không dư thừa đồng thời cho phép tìm kiếm thông tin
dễ dàng
SV(MaSV, TenSV, Tuoi, Diachi, Lop, Tenmon, Diem)
- Dư thừa dữ liệu (Redundancy)
- Không nhất quán (Inconsistency)
- Dị thường khi thêm bộ (Insertion anomalies)
- Dị thường khi xóa bộ (Deletion anomalies)
© Khoa Tin học Kinh tế
CHƯƠNG 3 Lý thuyết thiết kế cơ sở dữ liệu
quan hệ 3.1 Đặt vấn đề
3.1.1 Tập thuộc tính
- Xét U = {A 1 , A 2 , ,An} là tập hữu hạn khác rỗng Mỗi
phần tử trong U được gọi là một thuộc tính (attribute)
- AU, tồn tại một miền trị tương ứng với thuộc tính
A, kí hiệu dom(A) dom(A) có thể là hữu hạn hay vô hạn
các phần tử
- Với mỗi thuộc tính A i ta có miền giá trị tương ứng
dom(A i ) = d i , ký hiệu D = Thứ tự của các thuộc tính
trong U là không quan trọng
Trang 30© Khoa Tin học Kinh tế
3.1 Đặt vấn đề
Tập thuộc tính
Quan hệ r trên tập thuộc tính U là 1 tập ánh xạ t: U
D với t(Ai) Di Mỗi quan hệ được xem là một
tập hữu hạn Mỗi ánh xạ t là một bộ của quan hệ r
Ta có thể viết quan hệ r là tập con của tích Đề-các
của các miền giá trị của các thuộc tính:
r D1 x D2 x….x Dn
CHƯƠNG 3 Lý thuyết thiết kế cơ sở dữ liệu
quan hệ 3.2 Phụ thuộc hàm
3.2.1 Định nghĩa
R(U) với U={A 1 , A 2 ,…., A n ) X và Y là hai tập con của U, X xác
định hàm cho Y hay Y phụ thuộc hàm và X và ký hiệu X Y
nếu với mọi quan hệ r xác định trên R(U) và với 2 bộ
t 1 [X] = t 2 [X] thì t 1 [Y] = t 2 [Y]
Các hệ tiên đề cho phụ thuộc hàm
F trên R(U) và X Y, X, Y U Nói rằng X Y được suy diễn
logic từ F nếu với mỗi quan hệ r xác định trên R(U) thỏa
mãn các phụ thuộc hàm trong F thì cũng thỏa mãn X Y
Chẳng hạn F = {AB, BC} thì A C được suy diễn logic
từ F
Trang 31© Khoa Tin học Kinh tế
3.2 Phụ thuộc hàm
3.2.2 Hệ tiên đề Amstrong đối với các phụ thuộc hàm
Gọi R (U) là lược đồ quan hệ với U=(A 1 , A 2 ,…., A n ) là tập các
thuộc tính và X, Y, Z, W U và ký hiệu XY = XY
• Phản xạ: (reflexivity): Nếu YXU thì XY
• Tăng trưởng (augmentation): Nếu XY, ZU thì XZ YZ
• Bắc cầu (transitivity): Nếu XY, YZ thì XZ
Ví dụ: Cho R = (A, B, C) và F={ABC, CA} Chứng minh
BCABC
CA (giả thiết) => BC BA
AB C (giả thiết) thì ABABC
BC ABC (bắc cầu)
© Khoa Tin học Kinh tế
CHƯƠNG 3 Lý thuyết thiết kế cơ sở dữ liệu
quan hệ 3.2 Phụ thuộc hàm
3.2.2 Hệ tiên đề Amstrong đối với các phụ thuộc hàm
Trang 32© Khoa Tin học Kinh tế
3.2 Phụ thuộc hàm
3.2.2 Hệ tiên đề Amstrong đối với các phụ thuộc hàm
Một số bổ đề:
Bổ đề 1: “Hệ tiên đề Amstrong là đúng
Có nghĩa là nếu X Y là một phụ thuộc hàm được suy
dẫn từ F nhờ hệ tiên đề Amstrong thì X Y là đúng
trên một quan hệ thỏa mãn các phụ thuộc hàm trong F
Bổ đề 2: “X Y được suy dẫn từ hệ tiên đề Amstrong
khi và chỉ khi X+ Y”
CHƯƠNG 3 Lý thuyết thiết kế cơ sở dữ liệu
quan hệ 3.2 Phụ thuộc hàm
3.2.3.Tính toán bao đóng
Bao đóng của tập thuộc tính
Định nghĩa
Cho một lược đồ quan hệ = <U, F> và một tập thuộc
tính X U Bao đóng tập thuộc tính X trên U là tất cả
các thuộc tính A U sao cho: X A F + , ký hiệu là X +
.
Ta có thể biểu diễn bao đóng của tập thuộc tính X :
X +
F = { A | A U , X A F + }
Trang 33© Khoa Tin học Kinh tế
© Khoa Tin học Kinh tế
CHƯƠNG 3 Lý thuyết thiết kế cơ sở dữ liệu
quan hệ 3.2 Phụ thuộc hàm
3.2.3.Tính toán bao đóng
Bao đóng của tập thuộc tính
Thuật toán:
Đầu vào: Cho = <U,F> và X U;
Đầu ra: Bao đóng X+ của tập thuộc tính X ;
Phương pháp: Tính liên tiếp tập các thuộc tính X0, X1, X2, …theo các
bước sau:
Bước 1: Đặt X0 = X
Bước 2: Lần lượt xét các phụ thuộc hàm của F
Nếu Y Z và Y Xi thì Xi+1 = Xi Z
Loại bỏ phụ thuộc hàm Y Z khỏi F
Bước 3: Vì U hữu hạn nên sẽ tồn tại một chỉ số i nào đó mà
Xi = Xi+ 1 thì Xi chính là bao đóng của X (có thể viết X+ = Xi )