Giáo trình Cơ sở dữ liệu 1

CƠ SỞ DỮ LIỆU QUAN HỆ  
Số tuần lễ:…..……15..….…………….…  
Môn học:  
Cơ sở dữ liệu 1  
Số tiết lý thuyết:…45…………………...  
Số tiết BT,TN,TH,TKMH:.... ....…….  
Tổng số tiết:……..45……………………..  
Bộ môn phụ trách: Hệ thống thông tin  
Mục tiêu đào tạo  
- Cung cấp kiến thức cơ bản về cơ sở dữ liệu và mô hình cơ sở dữ liệu quan hệ.  
- Sinh viên nắm vững các kiến thức: Đại số quan hệ; Lý thuyết thiết kế cơ sở dữ liệu quan hệ;  
Chuẩn hóa cơ sở dữ liệu quan hệ…  
Phương thức đánh giá  
- Thi viết (bộ đề thi từ 8-12 đề).  
Đề cương chi tiết  
PHÂN BỔ SỐ TIẾT  
TS LT BT TH KT  
TÊN CHƯƠNG MỤC  
Chương 1. Tổng quan về cơ sở dữ liệu  
1.1. Giới thiệu.  
3
1.2. Các khái niệm  
1.2.1. Dữ liệu và thông tin  
1.2.2. Khái niệm Cơ sở dữ liệu  
Chương 2. Mô hình dữ liệu quan hệ  
2.1. Các khái niệm cơ bản.  
2.2. Miền giá trị.  
6
2.3. Định nghĩa quan hệ.  
2.4. Khoá của quan hệ  
2.4.1. Khoá  
2.4.2. Khoá nhỏ nhất (Siêu khoá)  
2.4.3. Khoá ngoại  
2.5. Các phép thay đổi dữ liệu trên cơ sở dữ liệu quan hệ.  
Chương 3. Thiết kế cơ sở dữ liệu quan hệ  
3.1. Mô hình thực thể quan hệ  
3.1.1. Các khái niệm cơ sở  
3.1.2. Sơ đồ thực thể liên kết sơ đồ ER  
3.1.3. Tính năng của các liên kết.  
3.2. Biến đổi các sơ đồ ER sang mô hình quan hệ  
3.3. Chuẩn hoá cơ sở dữ liệu  
Chương 4. Ngôn ngữ thao tác dữ liệu  
4.1. Các phép đại số quan hệ.  
4.1.1. Phép hợp.  
1
1
6
3
3
12  
3
4.1.2. Phép giao.  
4.1.3. Phép trừ.  
4.1.4. Tích đề các.  
4.1.5. Phép chiếu.  
4.1.6. Phép chọn.  
PDF created with pdfFactory Pro trial version www.pdffactory.com  
4.1.7. Phép kết nối.  
4.1.8. Phép chia.  
4.2. Tối ưu hoá các biểu thức đại số quan hệ.  
4.2.1. Các biến đổi tương đương của đại số quan hệ  
4.2.2. Chiến lược tối ưu hóa tổng quát  
4.3. Ngôn ngữ truy vấn dữ liệu SQL.  
4.3.1. Lệnh tạo bảng.  
3
6
4.3.2. Lệnh sửa đổi cấu trúc bảng.  
4.3.3. Lệnh xóa bảng  
4.3.4. Lệnh tạo, xóa index  
4.3.5. Các lệnh Cập nhật dữ liệu (Chèn, sửa xóa)  
4.3.5. Lệnh truy vấn SELECT  
4.3.6. Lệnh tạo, sửa, xóa view  
1
Chương 5. Phụ thuộc hàm và chuẩn hóa  
5.1. Phụ thuộc hàm.  
18  
6
5.1.1. Hệ tiên đề Amstrong:  
5.1.2. Bao đóng của tập thuộc tính.  
5.1.3. Tính toán bao đóng của tập thuộc tính.  
5.1.4. Phủ của tập phụ thuộc hàm.  
5.2. Phép tách các lược đồ quan hệ  
5.2.1. Phép tách không mất mát thông tin.  
5.2.2. Kiểm tra phép tách là không mất mát thông tin.  
5.3. Chuẩn hoá lược đồ quan hệ.  
3
6
5.3.1. Các dạng chuẩn.  
5.3.2. Phép tách bảo toàn tập phụ thuộc hàm về dạng chuẩn 3.  
5.3.3. Phép tách tập phụ thuộc hàm về dạng chuẩn Boye-Codd.  
5.4. Phụ thuộc hàm đa trị.  
3
5.4.1. Hệ tiên đề đối với các phụ thuộc hàm đa trị.  
5.4.2. Bao đóng của tập phụ thuộc hàm và tập thuộc tính.  
5.4.3. Phép tách không mất mát thông tin  
5.4.4. Dạng chuẩn 4  
2
PDF created with pdfFactory Pro trial version www.pdffactory.com  
NỘI DUNG  
Chương 1. Tổng quan về cơ sở dữ liệu ....................................................................................... 5  
1.1. Giới thiệu. ....................................................................................................................... 5  
1.2. Các khái niệm.................................................................................................................. 5  
1.2.1. Dữ liệu và thông tin .................................................................................................. 5  
1.2.2. Khái niệm Cơ sở dữ liệu ........................................................................................... 5  
Chương 2. Mô hình dữ liệu quan hệ ........................................................................................... 7  
2.1. Các khái niệm cơ bản....................................................................................................... 7  
2.2. Miền giá trị...................................................................................................................... 7  
2.3. Định nghĩa quan hệ.......................................................................................................... 8  
2.4. Khoá của quan hệ ............................................................................................................ 8  
2.4.1. Khoá......................................................................................................................... 8  
2.4.2. Khoá nhỏ nhất (Siêu khoá)........................................................................................ 9  
2.4.3. Khoá ngoại ............................................................................................................... 9  
2.5. Các phép thay đổi dữ liệu trên cơ sở dữ liệu quan hệ........................................................ 9  
Chương 3. Thiết kế cơ sở dữ liệu quan hệ................................................................................. 11  
3.1. Mô hình thực thể quan hệ .............................................................................................. 11  
3.1.1. Các khái niệm cơ sở................................................................................................ 11  
3.1.2. Sơ đồ thực thể liên kết sơ đồ ER ............................................................................. 11  
3.1.3. Tính năng của các liên kết....................................................................................... 12  
3.2. Biến đổi các sơ đồ ER sang mô hình quan hệ................................................................. 13  
3.3. Chuẩn hoá cơ sở dữ liệu................................................................................................. 13  
Chương 4. Ngôn ngữ thao tác dữ liệu ....................................................................................... 15  
4.1. Các phép đại số quan hệ................................................................................................. 15  
4.1.1. Phép hợp................................................................................................................. 15  
4.1.2. Phép giao................................................................................................................ 15  
4.1.3. Phép trừ. ................................................................................................................. 15  
4.1.4. Tích đề các.............................................................................................................. 16  
4.1.5. Phép chiếu. ............................................................................................................. 16  
4.1.6. Phép chọn. .............................................................................................................. 16  
4.1.7. Phép kết nối. ........................................................................................................... 17  
4.1.8. Phép chia. ............................................................................................................... 17  
4.2. Tối ưu hoá các biểu thức đại số quan hệ......................................................................... 18  
4.2.1. Các biến đổi tương đương của đại số quan hệ.......................................................... 18  
4.2.2. Chiến lược tối ưu hóa tổng quát .............................................................................. 19  
4.3. Ngôn ngữ truy vấn dữ liệu SQL..................................................................................... 19  
4.3.1. Lệnh tạo bảng. ........................................................................................................ 20  
4.3.2. Lệnh sửa đổi cấu trúc bảng...................................................................................... 20  
4.3.3. Lệnh xóa bảng ........................................................................................................ 20  
4.3.4. Lệnh tạo, xóa index................................................................................................. 20  
4.3.5. Các lệnh Cập nhật dữ liệu (Chèn, sửa xóa).............................................................. 20  
4.3.5. Lệnh truy vấn SELECT........................................................................................... 21  
4.3.6. Lệnh tạo, sửa, xóa view........................................................................................... 22  
Chương 5. Phụ thuộc hàm và chuẩn hóa................................................................................... 24  
5.1. Phụ thuộc hàm. .............................................................................................................. 24  
5.1.1. Hệ tiên đề Amstrong:.............................................................................................. 24  
5.1.2. Bao đóng của tập thuộc tính. ................................................................................... 25  
5.1.3. Tính toán bao đóng của tập thuộc tính..................................................................... 26  
5.1.4. Phủ của tập phụ thuộc hàm...................................................................................... 27  
3
PDF created with pdfFactory Pro trial version www.pdffactory.com  
5.2. Phép tách các lược đồ quan hệ ....................................................................................... 29  
5.2.1. Phép tách không mất mát thông tin.......................................................................... 29  
5.2.2. Kiểm tra phép tách là không mất mát thông tin........................................................ 30  
5.3. Chuẩn hoá lược đồ quan hệ............................................................................................ 30  
5.3.1. Các dạng chuẩn....................................................................................................... 30  
5.3.2. Phép tách bảo toàn tập phụ thuộc hàm về dạng chuẩn 3........................................... 31  
5.3.3. Phép tách tập phụ thuộc hàm về dạng chuẩn Boye-Codd......................................... 32  
5.4. Phụ thuộc hàm đa trị. ..................................................................................................... 32  
5.4.1. Hệ tiên đề đối với các phụ thuộc hàm đa trị............................................................. 33  
5.4.2. Bao đóng của tập phụ thuộc hàm và tập thuộc tính.................................................. 34  
5.4.3. Phép tách không mất mát thông tin ......................................................................... 34  
5.4.4. Dạng chuẩn 4.......................................................................................................... 35  
4
PDF created with pdfFactory Pro trial version www.pdffactory.com  
Chương 1. Tổng quan về cơ sở dữ liệu  
1.1. Giới thiệu.  
Trong thế giới thực có rất nhiều công việc, hoạt động cần có sự ghi nhớ các thông tin trong  
quá trình tác nghiệp. Ví dụ như việc tổ chức quản lý sách, một thư viện có rất nhiều sách và cần  
phải sắp xếp chúng sao cho quá trình tìm sách được dễ dàng. Các sách có thể được sắp xếp dựa  
trên những thông tin cơ bản của chúng như: Tên, tác giả, nhà xuất bản, số trang, năm xuất bản…  
Những thông tin trên được tập hợp và lưu trữ có cấu trúc trong một khối thống nhất thường gọi  
là cơ sở dữ liệu.  
Cơ sở dữ liệu được dùng để lưu trữ dữ liệu về các thuộc tính của những đối tượng trong thế  
giới thực nhằm phục vụ mục đích xử lý và tìm kiếm dữ liệu.  
1.2. Các khái niệm  
1.2.1. Dữ liệu và thông tin  
1.2.1.1. Dữ liệu  
Khái niệm: Dữ liệu là các vật thể, đối tượng… mang tính trực quan, có ý nghĩa trong môi  
trường của người quan sát.  
Dữ liệu trong đời sống rất đa dạng về chất liệu ví dụ như, Bức tranh, đồ vật, âm thanh, ánh  
sáng, hình ảnh, chữ viết,...  
1.2.1.2. Thông tin  
Khái niệm: Thông tin là dữ liệu được xem xét theo các cách để làm tăng hiểu biết của  
người quan sát.  
Thông tin thường mang tính chủ quan, phụ thuộc vào ngữ cảnh xem xét dữ liệu của người  
quan sát. Ví dụ như ký tự ‘I’, nếu xem xét trong ngữ cảnh là tiếng Anh thì có ý nghĩa là đại từ  
nhân xưng ‘Tôi’ chỉ người đang nói; còn trong ngữ cảnh là tiếng việt thì có ý nghĩa là một chữ  
cái ‘I’; trong ngữ cảnh chữ la mã dùng đánh số đầu các câu thì nó có ý nghĩa là số 1.  
1.2.1.3. Mối quan hệ giữa dữ liệu và thông tin.  
Thuật ngữ dữ liệu và thông tin có quan hệ chặt chẽ, tuy nhiên hay có sự nhập nhằng hai thuật  
ngữ này.  
Một dữ liệu có thể thể hiện rất nhiều thông tin tuỳ vào ngữ cảnh và ngược lại một thông tin  
có thể được biểu diễn trên rất nhiều loại dữ liệu khác nhau.  
Về cơ sở dữ liệu, người ta thấy chúng có mục đích lưu trữ thông tin và cho phép người dùng  
tìm kiếm, cập nhật thông tin theo yêu cầu. Thông tin là thứ có ích cho người quan sát tuy nhiên  
cái mà cơ sở dữ liệu lưu trữ lại là ‘chất liệu’ thể hiện các thông tin mà người quan sát mong  
muốn đó là dữ liệu. Tuy nhiên việc phân biệt này không thật quan trọng.  
1.2.2. Khái niệm Cơ sở dữ liệu  
Khái niệm: Cơ sở dữ liệu là tập hợp có tổ chức của các dữ liệu liên quan với nhau về mặt  
logic.  
5
PDF created with pdfFactory Pro trial version www.pdffactory.com  
Để có thể khai thác được các dữ liệu đã được lưu trữ thì đi kèm với các cơ sở dữ liệu bao giờ  
cũng có các phần mềm khai thác và quản lý. Các chương trình trợ giúp quản lý, xử lý, thay đổi  
dữ liệu lưu trong cơ sở dữ liệu đó được gọi là hệ quản trị cơ sở dữ liệu. Nó có nhiệm vụ rất quan  
trọng, đóng vai trò như một bộ diễn dịch giúp người sử dụng có thể dùng được hệ thống và ít  
nhiều không cần quan tâm quá chi tiết đến việc biểu diễn và xử lý dữ liệu trong máy.  
Hiện trên thế giới có rất nhiều các hệ quản trị cơ sở dữ liệu như: Oracle, MS SQL Server  
2005, MySQL, DB2...  
6
PDF created with pdfFactory Pro trial version www.pdffactory.com  
Chương 2. Mô hình dữ liệu quan hệ  
2.1. Các khái niệm cơ bản.  
Mô hình dữ liệu quan hệ, là một trong các mô hình được ứng dụng nhiều nhất hiện nay. Nó  
được hầu hết các hệ quản trị cơ sở dữ liệu hiện đại dùng để cài đặt các cơ sở dữ liệu.  
Trong các cơ sở dữ liệu theo mô hình dữ liệu quan hệ tất cả các dữ liệu được ghi trong các  
bảng được gọi là các quan hệ. Các bảng đều có một tập hợp hàng và cột ví dụ như:  
Ví dụ 2.1. Quan hệ Mặt hàng  
Mã số  
Tên hàng  
Đơn vị  
Chiếc  
Quy cách  
Sony 29”  
Mặt hàng  
1
2
3
Tivi  
Đầu DVD  
Chiếc  
Sony  
Ram  
Thanh  
Kingston 512  
Thông qua bảng, lưu giữ thông tin cơ bản về các đối tượng trong bài toán thực tế ví dụ như  
(1, Tivi, Chiếc, Sony 29”) thể hiện mặt hàng Tivi có mã số là 1, đơn vị tính là ‘Chiếc’, và quy  
cách là ‘Sony 29”’. Như trong ví dụ, tuỳ và0 đặc tính của từng cột thì các dữ liệu ghi vào các ô  
trên các cột đó sẽ có kiểu dữ liệu khác nhau ví dụ như cột Mã số thì dữ liệu có kiểu số, trong khi  
cột Tên hàng thì dữ liệu có kiểu là một xâu ký tự.  
Trong cách gọi thông thường thì các hàng của bảng còn được gọi là bản ghi, các cột của bảng  
được gọi là trường. Tuy nhiên khi nghiên cứu lý thuyết quan hệ người ta hay dùng các thuật ngữ  
khác: ‘Thuộc tính’ để chỉ cột (trường), ‘Bộ’ để chỉ hàng (bản ghi).  
2.2. Miền giá trị.  
Đối với mỗi thuộc tính của quan hệ, khi thiết kế người ta đều hạn chế về giá trị dữ liệu mà  
thuộc tính đó có thể nhận. Phạm vị giá trị có thể dùng cho một thuộc tính được gọi là miền giá  
trị, ví dụ như: miền số nguyên, miền chuỗi ký tự, miền giá trị ngày tháng.... Miền giá trị ở đây  
tương tự như khái niệm kiểu dữ liệu trong lập trình. Ngoài việc giới hạn phạm vi nhận giá trị của  
các thuộc tính, miền giá trị còn xác định các thao tác được phép sử dụng trên các dữ liệu. Ví dụ  
như đối với các dữ liệu số, người ta mới có thể dùng các phép toán số học...  
Trong thiết kế các quan hệ, sau khi xác định được một thuộc tính của quan hệ người ta cần  
tính ngay đến tên và miền giá trị của thuộc tính đó. Miền giá trị thường đơn giản và luôn nhận  
các giá trị đơn (không tách được). Ví dụ như việc mô tả thuộc tính địa chỉ nhà của một người  
như: 484 Lạch Tray, Ngô Quyền, Hải Phòng. Đây là một giá trị kép nó gồm số nhà, tên phố,  
quận, thành phố; và miền địa chỉ được gọi là miên đa giá trị. Khi đó nên tách thuộc tính này ra  
nhiều thuộc tính nhỏ hơn để đảm bảo giá trị thuộc tính là đơn giản. Tuy nhiên nhiều khi để dễ  
dàng cho việc thiết kế người ta thường bỏ qua việc làm này.  
Có một lưu ý là khi ghi dữ liệu vào các bảng, có thể tại một ô nào đó người ta có thể bỏ qua  
việc nhập dữ liệu ví dụ như:  
Ví dụ 2.2: Giá trị rỗng (NULL)  
Mã số  
Tên hàng  
Đơn vị  
Chiếc  
Quy cách  
Sony 29”  
Mặt hàng  
1
Tivi  
7
PDF created with pdfFactory Pro trial version www.pdffactory.com  
2
3
Đầu DVD  
Chiếc  
Sony  
RAM Kingston 512  
Thanh  
Để có thể thể hiện được hiện tượng này người ta đưa ra một khái niệm là giá trị rỗng ký kiệu  
là NULL.  
Giá trị rỗng: là giá trị có thể gán cho một thuộc tính khi không dùng giá trị khác được, hay  
khi người ta chưa biết giá trị cần gán.  
Một NULL là một giá trị đặc biệt với nghĩa “không giống với bất kỳ giá trị nào” thậm trí  
không giống với bất kỳ giá trị NULL khác; Và nó thuộc về mọi miền giá trị.  
2.3. Định nghĩa quan hệ.  
Định nghĩa 2.1: Quan hệ là một tập con của tập tích đề các của một hoặc nhiều miền giá trị.  
Ví dụ 2.3: Cho D1 = {0,1}, D2 = {a, b, c} là hai miền giá trị.  
Tập tích đề các D1xD2 = {(0,a), (0,b), (0,c), (1,a), (1,b), (1,c)}  
Khi đó tập R = {(0,a),(0,b)} là một quan hệ xác định trên các miền D1, D2  
Theo định nghĩa trên thi mỗi một quan hệ có thể là vô hạn, tuy nhiên người ta luôn giả thiết  
quan hệ là một tập hữu hạn. Một cách hình thức người ta định nghĩa quan hệ như sau:  
Định nghĩa 2.2: Gọi R = {A1, A2,..., An} là tập hữu hạn của các thuộc tính, mỗi thuộc tính Ai  
với i = 1, 2,..., n có miền giá trị tương ứng ký hiệu là dom(Ai). Quan hệ r trên tập thuộc tính R là  
tập con của tích đề các  
r ⊆ dom(A1) x dom(A2) x ... x dom(An)  
Khi đó ký hiệu là r(R) hoặc r(A1, A2,..., An)  
Ví dụ 2.4: Bảng sau thể hiện quan hệ Can_bo bao gồm các thuộc tính Ma_So, Ho_ten,  
Ngay_sinh, Que_quan, Chuc_vu  
Ma_so  
0001  
Ho_ten  
Ngay_sinh  
Que_quan  
Chuc_vu  
Trưởng phòng  
Nhân viên  
Can_bo  
t1  
Lê Thanh Hằng  
Hoàng Văn Cảnh  
Trần Bình Dương  
12/04/1970 Quảng Ninh  
15/10/1981 Nam Định  
20/01/1979 Ninh Bình  
t2  
t3  
0002  
0003  
Nhân viên  
Ví dụ 2.5. Quan hệ Can_bo  
Trong đó t1 = (“0001”, “Lê Thanh Hằng”, “12/04/1970”, “Quảng Ninh”, “Trưởng phòng”) là  
một bộ của quan hệ Can_bo  
2.4. Khoá của quan hệ  
Trong các bảng quan hệ, nhiều khả năng sẽ có các bộ dữ liệu trùng nhau khiến cho việc thể  
hiện và phân biệt các đối tượng trong thế giới thực bị nhầm lẫn. Để tránh việc này người ta đưa  
ra các khái niệm khóa.  
2.4.1. Khoá  
Khái niệm Khoá: Khoá của một quan hệ là một hoặc một tập thuộc tính dùng để định tên duy  
nhất các bộ trong quan hệ.  
8
PDF created with pdfFactory Pro trial version www.pdffactory.com  
Xét lại ví dụ 2.3 thì Ma_so là khoá của quan hệ Can_bo. Trong một số trường hợp người ta  
có thể kết hợp nhiều thuộc tính để tạo thành khoá như có thể kết hợp thuộc tính (Ho_ten,  
Ngay_sinh, Que_quan) hoặc (Ma_so, Ho_ten) của quan hệ Can_bo thành một khoá.  
Giả sử: R = {A1, A2,..., AN}, K ⊆ R, r là một quan hệ xác định trên R  
t1, t2 là 2 bộ bất kỳ thuộc r, người ta ký hiệu t1(K) ≠ t2(K) thể hiện cho mệnh đề sau: Tồn tại  
ít nhất một thuộc tính A ∈ r sao cho giá trị của bộ t1 và t2 khác nhau tại vị trí thuộc tính A.  
Định nghĩa Khoá: Khoá của quan hệ r trên tập thuộc tính R = {A1, A2,..., AN} là tập con K ⊆  
R sao cho bất kỳ hai bộ khác nhau t1, t2 ∈ r luôn thoả t1(K) ≠ t2(K).  
Theo định nghĩa như trên thì trong một quan hệ có thể có rất nhiều khoá. Một khoá là một tập  
con của tập các thuộc tính có trong quan hệ trừ tập rỗng. Nếu gọi số thuộc tính của quan hệ là N,  
thì số lượng các khoá tối đa của quan hệ có được sẽ là 2N-1.  
2.4.2. Khoá nhỏ nhất (Siêu khoá)  
Khái niệm Khoá nhỏ nhất: Khoá nhỏ nhất của quan hệ r trên tập thuộc tính R = {A1, A2,...,  
AN} là tập con K ⊆ R sao cho: K là khoá của r, và không tồn tại K’ ⊂ K mà K’ là khoá.  
2.4.3. Khoá ngoại  
Trong cơ sở dữ liệu có thể có rất nhiều các quan hệ, và đôi khi quan hệ này có những thuộc  
tính lấy dữ liệu từ một quan hệ khác, hay nói các khác là các thuộc tính này có miền giá trị là  
những giá trị được lưu tại một hoặc nhiều trường trong quan hệ khác hoặc chính nó.  
Ví dụ 2.6: Quan hệ Khen_thuong ghi nhận những thông tin khen thưởng của các cán bộ trong  
đơn vị, trong đó thuộc Ma_so_can_bo có miền giá trị là những giá trị lưu trong quan hệ Can_bo  
tại trường Ma_so, miền đó có các giá trị: 0001, 0002, 0003.  
Ma_so  
0001  
Ho_ten  
Ngay_sinh  
Que_quan  
Chuc_vu  
Trưởng phòng  
Nhân viên  
Can_bo  
Lê Thanh Hằng  
Hoàng Văn Cảnh  
Trần Bình Dương  
12/04/1970 Quảng Ninh  
15/10/1981 Nam Định  
20/01/1979 Ninh Bình  
0002  
0003  
Nhân viên  
Ma_so_can_bo  
Khen_thuong  
Ngay_khen  
Ly_do  
Khen_thuong  
0001  
Bằng khen công  
đoàn  
15/10/2001 Đã đạt thành tích xuất  
sắc trong lao động  
0002  
Bằng khen Bộ  
GTVT  
25/05/2002 Chiến sĩ thi đua cấp Bộ  
Các khoá ngoại rất quan trọng đối với cơ sở dữ liệu quan hệ. Chúng có ý nghĩa thể hiện dữ  
liệu bảng này liên kết với dữ liệu bảng khác.  
Khái niệm khoá ngoài (foreign key): Khoá ngoài là một hoặc một tập thuộc tính trong một  
quan hệ của cơ sở dữ liệu tham chiếu đến một hoặc một tập thuộc tính của quan hệ khác trong  
cùng cơ sở dữ liệu đó.  
2.5. Các phép thay đổi dữ liệu trên cơ sở dữ liệu quan hệ.  
9
PDF created with pdfFactory Pro trial version www.pdffactory.com  
Để phục vụ việc lưu trữ dữ liệu trong cơ sở dữ liệu người ta xây dựng các phép toán cơ bản  
mà nhờ đó một cơ sở dữ liệu có thể được thay đổi là: Phép chèn (insert), loại bỏ (delete) và thay  
đổi (update).  
Phép chèn (insert): Là phép toán thêm vào quan hệ một bộ mới thoả mãn các điều kiện logic  
của quan hệ.  
Phép sửa chữa (update): Là phép toán cho phép sửa chữa các mục dữ liệu thành phần tại các  
bộ thỏa mãn điều kiện đặt ra.  
Phép loại bỏ: Là phép toán cho phép loại bỏ khỏi quan hệ một hoặc nhiều bộ thỏa mãn điều  
kiện đặt ra.  
10  
PDF created with pdfFactory Pro trial version www.pdffactory.com  
Chương 3. Thiết kế cơ sở dữ liệu quan hệ  
Quá trình thiết kế một cơ sở dữ liệu bắt đầu với một sự phân tích những thông tin nào của thế  
giới thực mà cơ sở dữ liệu phải lưu trữ và các mối quan hệ giữa các thành phần của những thông  
tin này. Thông thường, cấu trúc của cơ sở dữ liệu hay còn được gọi là sơ đồ cơ sở dữ liệu được  
đặc tả bởi một ngôn ngữ đặc biệt hay một tập các ký hiệu thích hợp để biểu thị một thiết kế cơ sở  
dữ liệu. Mô hình dữ liệu là một sự hình thức hóa toán học đối với một tập ký hiệu để mô tả dữ  
liệu và một tập các phép toán được sử dụng để thao tác các dữ liệu này.  
3.1. Mô hình thực thể quan hệ  
Mô hình thực thể liên kết dựa trên cơ sở sự nhận thức của thế giới thực bao gồm một tập các  
đối tượng cơ sở được gọi là các thực thể và một tập các liên kết giữa các đối tượng này. Mô hình  
dữ liệu ER là một trong các mô hình dữ liệu ngữ nghĩa. Khía cạnh ngữ nghĩa của mô hình ở chỗ  
cố gắng biểu diễn các ngữ nghĩa của dữ liệu trong thế giới thực. Mô hình ER cực kỳ có ích trong  
việc ánh xạ các ngữ nghĩa và các tương tác của các đối tượng trong thế giới thực về các lược đồ  
khái niệm.  
3.1.1. Các khái niệm cơ sở  
Có ba ký hiệu cơ sở mà mô hình ER sử dụng: Tập các thực thể, các liên kết và thuộc tính.  
3.1.1.1. Các tập thực thể  
Một thực thể là một đối tượng cụ thể hay trừu tượng trong thế giới thực mà nó tồn tại và có  
thể phân biệt được với các đối tượng khác. Ví dụ một quyển sách là một thực thể. Một nhóm bao  
gồm các thực thể giống nhau hình thành một tập thực thể. Ví dụ tập thực thể khách hàng.  
3.1.1.2. Các thuộc tính và khóa  
Các tập thực thể có các đặc tính, được gọi là các thuộc tính, mà nó kết hợp với một thực thể  
trong tập thực thể một giá trị từ miền giá trị của thuộc tính. Thông thường, miền giá trị của một  
thuộc tính là tập các số nguyên, số thực hay các xâu kí tự.  
Việc lựa chọn các thuộc tính thích đáng đối với các tập thực thể là một bước quan trọng trong  
việc thiết kế cơ sở dữ liệu. Một thuộc tính hay một tập con các thuộc tính mà giá trị của nó xác  
định duy nhất mỗi thực thể trong tập thực thể được gọi là một khóa đối với tập thực thể này. Về  
nguyên tắc, mỗi tập thực thể có một khóa do chúng ta giả định rằng mỗi thực thể là được phân  
biệt với các thực thể khác.  
3.1.1.3. Các liên kết  
Một liên kết là một sự kết hợp giữa một số thực thể. Ví dụ, có thể xác định một liên kết mà  
nó kết hợp một nhân viên A với một phòng D. Liên kết này đặc tả rằng nhân viên A là một thành  
viên của phòng D. Một tập liên kết là một tập các liên kết cùng kiểu. Một cách hình thức, một  
liên kết giữa các tập thực thể là một danh sách có thứ tự các tập thực thể, một tập thực thể đặc  
biệt có thể xuất hiện nhiều hơn một lần trong danh sách.  
3.1.2. Sơ đồ thực thể liên kết sơ đồ ER  
11  
PDF created with pdfFactory Pro trial version www.pdffactory.com  
Việc tóm tắt những thông tin cần lưu trữ trong một cơ sở dữ liệu đối với một thiết kế sử dụng  
các sơ đồ ER là rất có ích. Trong sơ đồ ER chúng ta sử dụng các kí hiệu sau để biểu diễn các  
thành phần của sơ đồ.  
- Các hình chữ nhật biểu diễn các tập thực thể.  
- Các hình ô van biểu diễn các thuộc tính. Chúng được nối đến các tập thực thể của chúng  
bởi các cạnh vô hướng. Đôi khi, các thuộc tính thuộc khóa đối với tập thực thể của chúng sẽ  
được gạch chân.  
- Các hình thoi biểu diễn các liên kết. Chúng được nối đến các tập thực thể cấu thành bởi các  
cạnh, các cạnh có thể là có hướng hay không hướng.  
Hình 3.1.  
Lương  
Nhân viên  
Tên  
Tên  
Phòng ban  
Thuộc  
Điện thoại  
Vị trí  
Quản lý  
Tên  
Người quản lý  
3.1.3. Tính năng của các liên kết.  
Để mô hình hóa thế giới thực một cách thích hợp, người ta thường cần phải phân loại các liên  
kết phù hợp với thực tế có bao nhiêu thực thể từ một tập thực thể có thể được kết hợp với bao  
nhiêu thực thể của một tập thực thể khác.  
Liên kết một – một:  
Dạng liên kết đơn giản nhất và hiếm gặp của liên kết trên hai tập thực thể là dạng một – một,  
có nghĩa với mỗi thực thể trong tập thực thể này có nhiều nhất một thực thể trong tập thực thể  
kia kết hợp với nó và ngược lại. Ví dụ, liên kết Quản lý giữa Phòng ban và Người quản lý trong  
hình 3.1. có thể được khai báo là liên kết một – một. Nó thể hiện trong một phòng không thể có  
nhiều hơn 1 người quản lý, cũng không có một người quản lý hai hay nhiều phòng.  
Liên kết nhiều – một:  
Trong một liên kết nhiều – một, một thực thể trong tập thực thể E2 được kết hợp với không  
hay nhiều thực thể trong tập thực thể E1, nhưng mỗi thực thể trong tập thực thể E1 chỉ được kết  
hợp nhiều nhất với một thực thể trong tập thực thể E2. Điều này có nghĩa là liên kết này là một  
hàm bộ phần từ E1 đến E2. Ví dụ, liên kết giữa Nhân viên và Phòng ban như hình 3.1 có thể là  
12  
PDF created with pdfFactory Pro trial version www.pdffactory.com  
liên kết nhiều một từ Nhân viên đến Phòng ban. Có nghĩa là mỗi nhân viên được sắp xếp vào  
nhiều nhất một phòng.  
Liên kết nhiều – nhiều:  
Chúng ta cũng hay bắt gặp các liên kết nhiều – nhiều, ở đây không có sự hạn chế nào trên số  
các thực thể của một tập thực thể này liên kết với không hoặc nhiều thực thể của một tập thực thể  
khác và ngược lại.  
Trong các sơ đồ ER, chúng ta sử dụng các cung, có nghĩa là các cạnh có một hướng được chỉ  
định bởi một mũi tên để xác định một liên kết. Trong trường hợp đơn giản nhất, một liên kết  
nhiều –một R từ A đến B, chúng ta đặt một cung từ hình hình chữ nhật biểu diễn A qua hình thoi  
biểu diễn R đến hình chữ nhật biểu diễn B. Nếu R là một liên kết một – một giữa A và B, chúng  
ta vẽ các mỗi tên từ R đến cả hai A và B. Các liên kết nhiều – nhiều thì được biểu diễn bằng các  
cạnh vô hướng. Tuy nhiên khi thiết kế sơ đồ ER người ta thường tìm cách đưa các liên kết nhiều  
– nhiều về thành các liên kết nhiều một bằng cách thêm các thực thể mới.  
3.2. Biến đổi các sơ đồ ER sang mô hình quan hệ  
Tập các lược đồ quan hệ được sử dụng để biểu diễn thông tin đối với một tổ chức được gọi là  
một lược đồ cơ sở dữ liệu quan hệ hay đơn giản gọi tắt là lược đồ cơ sở dữ liệu quan hệ nếu  
không có sự hiểu nhầm. Các giá trị hiện thời của các quan hệ hình thành cơ sở dữ liệu quan hệ  
hay gọi tắt là cơ sở dữ liệu. Tất nhiên, chúng ta hoàn toàn tự do tạo lập các quan hệ với một tập  
thuộc tính nào đó như một lược đồ quan hệ và có thể đặt một sự diễn giải trên các bộ nếu chúng  
ta muốn. Tuy nhiên, có một kiểu thiết kế điển hình các sơ đồ cơ sở dữ liệu quan hệ mà chúng ta  
có thể xác định được các sơ đồ quan hệ khi biến đổi sơ đồ thực thể liên kết sang mô hình quan  
hệ.  
Biến đối các tập thực thể  
Một tập thực thể E được biến đổi thành một quan hệ mà lược đồ quan hệ của nó bao gồm tập  
các thuộc tính của tập thực thể. Mỗi bộ của quan hệ biểu diễn một thực thể trong thể hiện hiện  
thời cua E.  
Nếu E là một tập thực thể mà các thực thể của nó được xác định thông qua một liên kết với  
một tập thực thể khác F nào đó thì lược đồ quan hệ tương ứng với E chỉ chứa cá thuộc tính khóa  
của F.  
Biến đổi các liên kết  
Mỗi liên kết R giữa tập các thực thể E1, E2,…, Ek được biến đổi thành một quan hệ mà lược  
đồ quan hệ của nó bao gồm các thuộc tính trong khóa của mỗi E1, E2,…, Ek. Thông qua phép đặt  
lại tên nếu cần thiết, chúng ta đảm bảo chắc chắn không có hai tập thực thể trong danh sách có  
các thuộc tính cùng tên, thập chí nếu chúng thuộc cùng một tập thực thể.  
3.3. Chuẩn hoá cơ sở dữ liệu  
Các lược đồ quan hệ thu được từ biến đổi các sơ đồ ER về các lược đồ quan hệ chưa chắc đã  
là một thiết kế lý tưởng. Đôi khi chúng ta phải tìm cách chỉnh sửa, gộp các lược đồ quan hệ lại  
với nhau. Đặc biệt sau đó cần phải tiến hành chuẩn hóa lại các lược đồ để tránh các trường hợp:  
a. Dư thừa dữ liệu:  
13  
PDF created with pdfFactory Pro trial version www.pdffactory.com  
Ví dụ xem xét một lược đồ NhaCungCap(Ma, Ten, DiaChi, MatHang, Gia). Dễ dàng thấy  
rằng nếu một nhà cung cấp nào đó cung cấp nhiều mặt hàng khác nhau thi dữ liệu về nhà cung  
cấp đó sẽ xuất hiện lặp đi lặp lại trong nhiều bộ của quan hệ trên lược đồ này.  
b. Không nhất quán: Là hệ quả của việc dư thừa dữ liệu. Ví dụ dữ liệu về một nhà cung cấp  
lặp lại trong nhiều bộ dẫn đến khi sửa đổi địa chỉ của người cung cấp này, chúng ta chỉ sửa đổi  
một bộ nào đó còn các bộ khác vẫn giữ nguyên. Khi đó có hiện tượng một nhà cung cấp lại  
không có địa chỉ duy nhất.  
c. Dị thường khi thêm bộ: Nếu một nhà cung cấp chưa cung cấp một mặt hàng nào cả, khi  
thêm một bộ giá trị về người cung cấp này, chúng ta không thể đưa mặt hàng và giá cả vào bộ  
giá trị .  
d. Dị thường khi xóa bộ: Là vấn đề ngược lại của dị thường khi thêm bộ. Nếu một nhà cung  
cấp nào đó chỉ cung cấp một mặt hàng, khi đó trong quan hệ chỉ có một bộ lưu trữ dữ liệu về nhà  
cung cấp này. Khi chúng ta xóa dữ liệu về sự cung cấp mặt hàng bởi nhà cung cấp này hay xóa  
bộ giá trị đó chúng ta sẽ làm mất thông tin về người cung cấp này.  
Vấn đề chuẩn hóa các lược đồ sẽ được nghiên cứu trong các chương tiếp theo.  
14  
PDF created with pdfFactory Pro trial version www.pdffactory.com  
Chương 4. Ngôn ngữ thao tác dữ liệu  
4.1. Các phép đại số quan hệ.  
Đại số quan hệ là một ngôn ngữ đại số trong đó các bảng mới được định nghĩa bằng các toán  
tử liên hệ với các bảng khác.  
Đây là một ngôn ngữ biểu thức. Trong đó một bảng mới được định nghĩa như một biểu thức  
bao gồm các bảng khác và các toán tử.  
Những toán tử quan trọng là :  
• Phép chiếu tạo ra một bảng mới chứa vài cột của bảng khác.  
• Phép kết nối những dòng của bảng đầu tiên với những dòng của bảng thứ hai thoả mãn  
một điều kiện logic hoặc quan hệ giữa hai bảng.  
• Phép chọn trích ra vài dòng từ một bảng dựa vào một điều kiện cho trước trên các giá trị  
dòng.  
4.1.1. Phép hợp.  
* Tính khả hợp: r là quan hệ xác định trên tập thuộc tính R = {A1, A2,..., AN}, s là quan hệ  
xác định trên tập thuộc tính S = {B1, B2,..., BM}. r và s được gọi là hai quan hệ khả hợp khi và  
chỉ khi M = N và miền giá trị của Ai và Bi với i = 1, 2,..., N là tương đồng với nhau.  
Hợp của hai quan hệ r và s khả hợp, ký hiệu là r ∪ s là tập các bộ thuộc r hoặc s.  
Biểu diễn hình thức phép hợp có dạng:  
r ∪ s = {t | t ∈ r ∨ t ∈ s}  
Ví dụ 4.1:  
r ( A  
B
C
)
S( A  
b2  
b2  
B
c3  
c2  
C
)
A
B
C )  
c5  
c6  
c7  
c3  
c2  
r ∪ s =(  
a1  
a2  
a4  
b2  
b5  
b3  
c5  
c6  
c7  
a7  
a2  
a1 b2  
a2 b5  
a4 b3  
a7 b2  
a2 b2  
4.1.2. Phép giao.  
Giao của hai quan hệ r và s khả hợp, ký hiệu là r ∩ s là tập các bộ thuộc cả quan hệ r và s.  
Biểu diễn hình thức phép giao có dạng.  
r ∩ s = {t | t ∈ r ∧ t ∈ s}  
Ví dụ 4.2:  
r ( A  
B
C
)
S( A  
B
C
)
A
B
C )  
c7  
c5  
r ∩ s =(  
a1  
a2  
a4  
b2  
b5  
b3  
c5  
c6  
c7  
a1  
a2  
a4  
b2  
b2  
b3  
c5  
c2  
c7  
a4 b3  
a1 b2  
4.1.3. Phép trừ.  
Hiệu của hai quan hệ r và s khả hợp, ký hiệu r – s là tập các bộ thuộc r nhưng không thuộc s.  
15  
PDF created with pdfFactory Pro trial version www.pdffactory.com  
Biểu diễn hình thức phép trừ có dạng:  
r - s = {t | t ∈ r ∧ t ∉ s}  
Ví dụ 4.3:  
r ( A  
B
C
)
s( A  
B
C
)
r - s =( A  
a2  
B
b5  
C )  
c6  
a1  
a2  
a4  
b2  
b5  
b3  
c5  
c6  
c7  
a1  
a2  
a4  
b2  
b2  
b3  
c5  
c2  
c7  
Hệ quả: Phép giao của r và s có thể biểu diễn dưới dang: r ∩ s = r – (r – s)  
4.1.4. Tích đề các.  
Gọi r là quan hệ xác định trên tập thuộc tính {A1, A2,..., AN} và s là quan hệ xác định trên tập  
thuộc tính {B1, B2,..., BM}.  
* Phép ghép bộ: Giả sử a = (a1, a2,..., aN) ∈ r, b = (b1, b2,..., bM) ∈ s. Phép ghép bộ a với b  
được ký hiệu (a, b) hoặc a.b sẽ có dạng (a,b) = (a1, a2,..., aN, b1, b2,..., bM)  
Tích đề các của r và s ký hiệu r x s là tập các bộ với n thành phần đầu có dạng một bộ thuộc r  
và m thành phần sau có dạng của một bộ thuộc s.  
Biểu diễn hình thức phép tích đề các có dạng  
r x s = {t | t = (a,b) ∧ a ∈ r ∧ b ∈ s}  
Ví dụ 4.4:  
r ( A  
a1  
B
)
s( E  
e1  
e3  
F
f2  
f4  
)
r x s= ( A  
B
E
F )  
f2  
f4  
f2  
f4  
f2  
f4  
b2  
b5  
b2  
a1 b2  
a1 b2  
a2 b5  
a2 b5  
a3 b2  
a3 b2  
e1  
e3  
e1  
e3  
e1  
e3  
a2  
a3  
4.1.5. Phép chiếu.  
Giả sử R = {A1, A2,..., AN} là một tập các thuộc tính, A ∈ R, r là một quan hệ trên R, t là một  
bộ thuộc r. Khi đó ký hiệu t[A] là giá trị của bộ t tại thuộc tính A. Mở rộng ra, nếu X = {B1,  
B2,..., BM} ⊆ R với M ≤ N, Bi ∈ R với i = 1, 2,..., M thì t[X] = (t[B1], t[B2],..., t[BM]).  
Người ta định nghĩa phép chiếu như sau: Phép chiếu trên tập X của quan hệ r, ký hiệu là ∏X  
(r) hoặc r[X] được định nghĩa theo công thức ∏X (r) = {t[X] | t ∈ r}  
Ví dụ 4.5:  
r ( A  
B
C)  
c1  
c4  
c2  
X = {A, B}  
A
B )  
b2  
b5  
b2  
∏X =(  
a1  
a2  
a3  
b2  
b5  
b2  
a1  
a2  
a3  
4.1.6. Phép chọn.  
Phép chọn trên quan hệ r ký hiệu δF(r) là phép tính để xây dựng một tập con các bộ của r,  
thoả mãn biểu thức logic F.  
16  
PDF created with pdfFactory Pro trial version www.pdffactory.com  
Các phép toán sử dụng trong biểu thức F là:  
- Phép toán so sánh: >, <, =, >=, <=, <>  
- Phép toán logic: ∧, ∨, ¬  
Biểu diễn hình thức phép chọn:  
δF(r) = {t ∉ r | F(t) = TRUE}  
F(t) được hiểu là giá trị của các thuộc tính xuất hiện trong biểu thức F tại bộ t thoả các điều  
kiện của F.  
Ví dụ 4.6:  
r ( A  
B
C)  
c1  
c4  
c2  
A
a1 b2  
B
C )  
c1  
F ≡ (A = a1) δF(r) = (  
a1  
a2  
a3  
b2  
b5  
b2  
4.1.7. Phép kết nối.  
Phép kết nối của quan hệ r đối với thuộc tính A với quan hệ s đối với thuộc tính B được định  
nghĩa qua.  
r
s = {(t,u) | t ∈ r ∧ u ∈ s ∧ t[A] θ u[B]}  
Trong đó θ là một phép toán thể hiện mối quan hệ giữa các thuộc tính của hai quan hệ r và s.  
Trong trường hợp θ là một phép toán so sánh ‘=’, chúng ta gọi phép kết nối đó là phép kết  
nối bằng. Trường hợp phép kết nối bằng trên các thuộc tính cùng tên của hai quan hệ và sau khi  
kết nối một trong hai thuộc tính của phép so sánh ‘=’ được loại bỏ thông qua phép chiếu thì phép  
kết nối này được gọi là kết nối tự nhiên và sử dụng ký hiệu “*”. Phép kết nối tự nhiên của hai  
quan hệ được định nghĩa như sau:  
r(U) * s(V) = {t[U ∪ V] | t[U] ∈ r ∧ t[V] ∈ s}  
Ví dụ 4.7.  
r ( A  
B
)
s( E  
F
)
A
B
E
F )  
r
s= (  
B > E  
6
5
4
1
4
3
2
3
3
3
5
5
4
4
4
3
2
3
2
3
3
3
4.1.8. Phép chia.  
Gọi r là quan hệ trên tập R = {A1, A2,..., AN}, s là quan hệ trên tập S = {B1, B2,..., BM} với M  
< N. Phép chia r cho s ký hiệu r ÷ s là tập các bộ t sao cho với mọi bộ u ∈ s thì bộ (t,u) ∈ r.  
Biểu diễn hình thức phép chia:  
r ÷ s = {t | ∀ u ∈ s ⇒ (t,u) ∈ r}  
Ví dụ 4.8:  
r ( A  
B
b2  
b2  
C)  
c1  
c1  
s ( B C )  
( A )  
a1  
a2  
r ÷ s =  
a1  
a2  
b2 c1  
b2 c2  
17  
PDF created with pdfFactory Pro trial version www.pdffactory.com  
a1  
a3  
a2  
b2  
b3  
b2  
c2  
c3  
c2  
4.2. Tối ưu hoá các biểu thức đại số quan hệ.  
4.2.1. Các biến đổi tương đương của đại số quan hệ  
4.2.1.1. Các quy tắc liên quan đến phép kết nối và phép tích đề các  
L1. Quy tắc giao hoán của phép kết nối và phép tích đề các  
Nếu E1 và E2 là hai biểu thức đại số quan hệ, F là điều kiện trên các thuộc tính của E1 và E2.  
E1  
E2 ≡ E2  
E1  
F
F
E1 * E2 ≡ E2 * E1  
E1 x E2 = E2 x E1  
L2. Quy tắc kết hợp của phép kết nối và phép tích đề các  
(E1 E2) E3 ≡ E1 (E2  
E3)  
F1  
F2  
F1  
F2  
(E1 * E2) * E3 ≡ E1 * (E2 * E3)  
(E1 x E2) x E3 = E1 x (E2 x E3)  
4.2.1.2. Các quy tắc liên quan tới phép chọn và phép chiếu  
L3. Dãy các phép chiếu:  
∏X1(∏Y(E)) ≡ ∏X(E) Với giả thiết X ⊆ Y.  
L4. Dãy các phép chọn:  
δF1(δF2(E)) ≡ δF1 ∧ F2 (E).  
L5. Giao hoán phép chọn và phép chiếu:  
Giả sử phép chọn có điều kiện F chỉ liên quan đến tập thuộc tính Y, với Y ⊄ X trong đó X là  
tập thuộc tính của phép chiếu thì:  
∏X(δF(E)) ≡ ∏X(δF(∏XY(E)))  
L6. Luật giao giữa phép chọn và phép tích đề các:  
Nếu điều kiện F chỉ liên quan đến các thuộc tính của E1 thì  
δF(E1 x E2) = δF(E1) x E2  
Giả sử điều kiện F biểu diễn thành F1 ∧ F2 trong đó F1 chỉ liên quan đến các thuộc tính của  
E1, F2 chỉ liên quan đến các thuộc tính của E2 thì:  
δF(E1 x E2) = δF1(E1) x δF2(E2)  
Hơn nữa nếu F1 chỉ liên quan đến các thuộc tính của E1, nhưng F2 liên quan tới cả thuộc tính  
của E1 và E2 thì:  
δF(E1 x E2) = δF2(δF1(E1) x E2)  
L7. Giao hoán phép chọn và phép hợp:  
18  
PDF created with pdfFactory Pro trial version www.pdffactory.com  
Nếu có biểu thức E = E1 ∪ E2 có thể giả thiết các thuộc tính của E1 và E2 có cùng tên như  
của E hoặc ít nhất mỗi thuộc tính của E là phù hợp với một thuộc tính duy nhất của E1 và một  
thuộc tính duy nhất của E2. Khi đó:  
δF(E1 ∪ E2) ≡ δF(E1) ∪ δF(E2)  
Nếu tên các thuộc tính của E1 và/hoặc E2 khác vơi tên thuộc tính của E thì trong F ở vế phải  
của công thức cần thay đổi để sử dụng tên cho phù hợp.  
L8. Giao hoán phép chọn và phép hiệu tập hợp  
δF(E1 – E2) = δF(E1) - δF(E2)  
Giống như trong L7, nếu tên các thuộc tính của E1 và E2 là khác nhau thì cần phải chỉnh lại  
tên cho phù hợp.  
L9. Giao hoán một phép chiếu với một phép tích đề các:  
Giả sử X = YZ, trong đó Y là thuộc tính của E1, Z là thuộc tính của E2, khi đó:  
∏X(E1 x E2) = ∏Y(E1) x ∏Z(E2)  
L10. Giao hoán một phép chiếu với một phép hợp:  
∏X(E1 ∪ E2) = ∏X(E1) ∪ ∏X(E2)  
Như trong L7, nếu tên các thuộc tính của E1 và/hoặc E2 là khác với các thuộc tính trong E1  
∪ E2 thì cần phải thay đổi lại các thuộc tính của X bên vế phải của công thức với các tên phù  
hợp.  
4.2.2. Chiến lược tối ưu hóa tổng quát  
Áp dụng các phép biến đổi trình bày trong mục 4.2.1. biến đổi biểu thức đại số quan hệ tuân  
theo các quy tắc sau:  
1. Thực hiện các phép chọn và phép chiếu sớm nhất có thể.  
2. Tổ hợp ccs phép chọn xác định với phép tích đề các thành phép kết nối.  
3. Tổ hợp dãy các phép toán một ngôi như các phép chọn và phép chiếu.  
4. Xác định các biểu thức con chung trong một biểu thức.  
5. Xử lý các quan hệ trước khi tính toán một phép kết nối.  
6. Ước lượng chi phí và lựa chọn thư tự thực hiện thích hợp.  
4.3. Ngôn ngữ truy vấn dữ liệu SQL.  
SQL là ngôn ngữ hỏi có cấu trúc được giới thiệu từ những năm 1970, nhờ SQL người sử  
dụng cơ sở dữ liệu có thể thao tác (bổ xung, chỉnh sửa, xoá bỏ, tìm kiếm) trên các dữ liệu trong  
quan hệ, tăng cường các luật toàn vẹn dữ liệu và thực hiện các phép toán của đại số quan hệ. Đây  
là ngôn ngữ tập trung vào việc khai thác dữ liệu, không giống như các ngôn ngữ lập trình khác.  
SQL được chỉnh sửa và bổ xung lần mới nhất là vào năm 1992. Hiện đây là ngôn ngữ truy vấn  
được cài đặt khá phổ biến trong các hệ quản trị cơ sở dữ liệu quan hệ.  
Trong các hệ quản trị SQL đều được cài đặt thành 3 lớp ngôn ngữ:  
19  
PDF created with pdfFactory Pro trial version www.pdffactory.com  
- Ngôn ngữ định nghĩa (xác định) dữ liệu – DDL (data definition language): Gồm các câu  
lệnh cho phép xây dựng cơ sở dữ liệu, tức là các lệnh tạo mới, thay đổi và huỷ bỏ cơ sở dữ liệu  
cũng như các đối tượng trong cơ sở dữ liệu và các ràng buộc về dữ liệu.  
- Ngôn ngữ xử lý dữ liệu – DML (data manipulation language): Ngôn ngữ xử lý dữ liệu bao  
gồm các câu lệnh cho phép chỉnh sửa, truy vấn cơ sở dữ liệu, bao gồm các công việc như cập  
nhật, bổ xung, thay đổi và tìm kiếm dữ liệu.  
- Ngôn ngữ điều khiển dữ liệu – DCL (data control language): Ngôn ngữ điều khiển dữ liệu  
gồm các câu lệnh dùng để điều khiển cơ sở dữ liệu, gồm các công việc như quyết định quyền  
truy cập và khẳng định việc cập nhật dữ liệu.  
4.3.1. Lệnh tạo bảng.  
CREATE TABLE <tên bảng>(  
{<tên cột> <kiểu dữ liệu>[(độ rộng)] [NOT NUL] [DEFAULT <biểu thức>] [,]}  
{CONSTRAINT <tên ràng buộc> <PRIMARY KEY ({<tên cột> [,]})  
| FOREIGN KEY ({<tên cột> [,]}) REFERENCES <tên bảng>({<tên cột> [,]})  
| CHECK <biểu thức logic> [,]}  
)
4.3.2. Lệnh sửa đổi cấu trúc bảng.  
ALTER <tên bảng>  
ADD COLUMN <tên cột> <kiểu dữ liệu>[(độ rộng)] [NOT NUL] [DEFAULT <biểu thức>]  
| DROP COLUMN <tên cột>  
| CHANGE COLUMN <tên cột> <kiểu dữ liệu mới>[(độ rộng)] [NOT NUL] [DEFAULT  
<biểu thức>]  
| ADD CONTRAINT <tên ràng buộc> <kiểu ràng buộc>  
| DROP CONSTRAINT <tên ràng buộc>  
4.3.3. Lệnh xóa bảng  
DROP TABLE <tên bảng>  
4.3.4. Lệnh tạo, xóa index  
- Lệnh tạo Index:  
CREATE INDEX <tên index> ON <tên bảng>(<tên cột>) [ASC | DESC]  
- Lệnh xóa Index:  
DROP INDEX <tên index>  
4.3.5. Các lệnh Cập nhật dữ liệu (Chèn, sửa xóa)  
- Thao tác thêm một bản ghi mới:  
INSERT INTO <tên bảng>[(danh sách tên cột)] VALUES(Các giá trị)  
20  
PDF created with pdfFactory Pro trial version www.pdffactory.com  
Tải về để xem bản đầy đủ
pdf 35 trang Thùy Anh 19140 Free
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Cơ sở dữ liệu 1", để 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:

  • pdfgiao_trinh_co_so_du_lieu_1.pdf