



















Preview text:
LỜI NÓI ĐẦU
Ngày nay, cơ sở dữ liệu đã có nhiều ứng dụng trong mọi hoạt động của xã hội.
Muốn thiết kế và sử dụng cơ sở dữ liệu chúng ta phải nắm được các kỹ thuật cơ bản
của cơ sở dữ liệu. Tài liệu học tập này nhằm trình bày các kỹ thuật cơ sở của cơ sở
dữ liệu truyền thống, đó là mô hình liên kết thực thể, mô hình cơ sở dữ liệu quan hệ.
Tài liệu cũng trình bày cách thiết kế một cơ sở dữ liệu quan hệ, cách sử dụng các
phép toán đại số quan hệ để tạo, cập nhật và truy vấn cơ sở dữ liệu và khái niệm
phụ thuộc hàm ứng dụng trong lí thuyết thiết kế và chuẩn hóa cơ sở dữ liệu quan hệ.
Tài liệu học tập “Cơ sở dữ liệu” là sách hướng dẫn học tập dùng cho sinh
viên ngành công nghệ thông tin và ngành mạng máy máy tính & truyền thông dữ liệu.
Nội dung của tài liệu bao gồm:
Chương I: Cơ sở dữ liệu quan hệ
Chương II: Lý thuyết thiết kế cơ sở dữ liệu
Chương III: Ngôn ngữ truy vấn dữ liệu
Chương IV: Tối ưu hóa câu hỏi truy vấn
Chương V: Bảo mật và toàn vẹn dữ liệu
Tài liệu ”Cơ sở dữ liệu” không chỉ đề cập đến những vấn đề cơ sở lý thuyết
mà còn trình bày một số kỹ năng cần thiết để thiết kế và cài đặt các hệ cơ sở dữ liệu
cụ thể. Hy vọng sẽ có ích cho sinh viên và những người muốn xây dựng các hệ
thống tin học ứng dụng phục vụ cho sản xuất, quản lý trong các doanh nghiệp. Có
thể còn nhiều thiếu sót trong biên soạn, chúng tôi vẫn mạnh dạn giới thiệu tài liệu
này và mong nhận được sự góp ý của bạn đọc. Nhóm biên soạn 1 MỤC LỤC
LỜI NÓI ĐẦU ........................................................................................................... 1
MỤC LỤC .................................................................................................................. 2
DANH SÁCH CÁC TỪ VIẾT TẮT .......................................................................... 7
DANH SÁCH CÁC HÌNH ........................................................................................ 8
CHƯƠNG I .............................................................................................................. 10
CƠ SỞ DỮ LIỆU QUAN HỆ .................................................................................. 10
1.1.Tổng quan về lý thuyết cơ sở dữ liệu ................................................................ 10
1.1.1.Mở đầu ........................................................................................................ 10
1.1.2.Một số khái niệm cơ bản ............................................................................. 11
1.1.2.1.Cơ sở dữ liệu (CSDL) .......................................................................... 11
1.1.2.2.Hệ quản trị CSDL ................................................................................ 13
1.1.2.3.Ngôn ngữ dữ liệu .................................................................................. 14
1.1.3.Kiến trúc của một CSDL ............................................................................ 15
1.1.4.Mô hình CSDL dạng quan hệ ..................................................................... 15
1.1.4.1.Các khái niệm cơ bản .......................................................................... 15
1.1.4.2.Khóa ..................................................................................................... 17
1.1.4.3.Các phép tính trên CSDL .................................................................... 19
BÀI TẬP CHƯƠNG I ............................................................................................. 22
CHƯƠNG II............................................................................................................. 29
LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU .......................................................... 29
2.1. Phụ thuộc hàm .................................................................................................. 29
2.1.1. Định nghĩa phụ thuộc hàm ........................................................................ 29
2.1.2. Phụ thuộc hàm đầy đủ và không đầy đủ................................................... 30
2.1.3. Hệ tiên đề Amstrong .................................................................................. 30 2
2.1.4. Bao đóng ..................................................................................................... 32
2.1.4.1. Bao đóng của tập các phụ thuộc hàm ................................................ 32
2.1.4.2. Bao đóng của tập các thuộc tính ........................................................ 32
2.1.4.3. Thuật toán tìm bao đóng .................................................................... 33
2.1.5. Phủ tối thiểu ............................................................................................... 33
2.1.6. Khóa ........................................................................................................... 37
2.2. Phép tách - kết nối ............................................................................................ 38
2.2.1. Khái niệm ................................................................................................... 38
2.2.2. Phép tách-kết nối tự nhiên ......................................................................... 38
2.2.3. Phép tách - kết nối không mất mát thông tin. .......................................... 38
2.3. Chuẩn hóa lược đồ quan hệ .............................................................................. 41
2.3.1. Các dạng chuẩn .......................................................................................... 41
2.3.1.1. Dạng chuẩn thứ nhất (1NF – First Normal Form) ............................ 41
2.3.1.2. Dạng chuẩn thứ 2 (2NF) ..................................................................... 42
2.3.1.3. Dạng chuẩn thứ 3 (3NF) ..................................................................... 42
2.3.1.3. Dạng chuẩn Boye- Codd (BCNF) ....................................................... 42
2.3.2. Chuẩn hóa qua phép tách không làm mất mát thông tin......................... 43
2.3.3.Chuẩn hóa nhờ phép tổng hợp ................................................................... 46
BÀI TẬP CHƯƠNG II ............................................................................................ 50
CHƯƠNG III ........................................................................................................... 59
NGÔN NGỮ THAO TÁC DỮ LIỆU ...................................................................... 59
3.1. Đại số quan hệ ................................................................................................... 60
3.1.1. Phép hợp ..................................................................................................... 60
3.1.2. Phép giao .................................................................................................... 61
3.1.3. Phép trừ ...................................................................................................... 61
3.1.4. Tích Đề các ................................................................................................. 62
3.1.5. Phép chiếu .................................................................................................. 62 3
3.1.6. Phép chọn ................................................................................................... 63
3.1.7. Phép kết nối ................................................................................................ 64
3.1.8. Phép chia .................................................................................................... 65
3.2. Hệ quản trị CSDL SQL Server và ngôn ngữ SQL .......................................... 66
3.2.1. Giới thiệu về Hệ quản trị CSDL SQL Server ........................................... 66
3.2.2. Cấu trúc Cơ sở dữ liệu ............................................................................... 68
3.2.3. Tạo CSDL bằng công cụ SQL Server ....................................................... 70
3.2.4. Tạo CSDL bằng lệnh ................................................................................. 71
3.2.5. Quản trị CSDL trên SQL Server .............................................................. 73
3.2.5.1. Chế độ bảo mật ................................................................................... 73
3.2.5.2. Quản trị người dùng ........................................................................... 75
3.2.5.3. Quản trị xuất, nhập, sao lưu, phục hồi dữ liệu. ................................. 76
3.2.6. Ngôn ngữ SQL ........................................................................................... 84
3.2.6.1. Các phép toán định nghĩa CSDL ....................................................... 84
3.2.6.2. Truy vấn đơn giản .............................................................................. 89
2.2.6.3. Truy vấn lồng nhau............................................................................. 97
3.2.6.4. Truy vấn sử dụng hàm tính toán và gom nhóm .............................. 100
3.2.6.5. Khung nhìn (View) .......................................................................... 105
3.2.7. Giới thiệu về ngôn ngữ lập trình T-SQL trong SQL Server .................. 106 3.2.7.1. Biến cục bộ
(Local variable) ......................................................... 106
3.2.7.2. Biến hệ thống. .................................................................................... 108
3.2.7.3. Các toán tử. ....................................................................................... 109
3.2.8.Các lệnh cơ bản của T-SQL ..................................................................... 112
3.2.9. Thủ tục ..................................................................................................... 118
2.2.9.1 Thủ tục hệ thống ................................................................................ 118
3.2.9.2. Thủ tục người dùng .......................................................................... 119
3.2.10. Hàm ........................................................................................................ 120 4
3.2.10.1. Các hàm hệ thống ........................................................................... 121
3.2.10.2. Hàm do người dùng định nghĩa ..................................................... 124
BÀI TẬP CHƯƠNG III ........................................................................................ 126
CHƯƠNG IV ......................................................................................................... 138
TỐI ƯU HÓA CÂU HỎI TRUY VẤN ................................................................. 138
4.1. Mở đầu ............................................................................................................ 138
4.2. Tổng quan về tối ưu hóa câu hỏi ................................................................... 139
4.3. Nguyên tắc tối ưu hoá ..................................................................................... 141
4.4. Kỹ thuật tối ưu hoá các biểu thức đại số quan hệ. ........................................ 142
4.4.1. Biểu thức quan hệ .................................................................................... 142
4.4.2. Biến đổi biểu thức quan hệ ..................................................................... 143
4.4.3. Một số nhận xét khi thực hiện tối ưu hoá câu hỏi ................................ 144
4.5. Tối ưu hóa bằng khung nhìn (Materialized Views) ...................................... 145
4.5.1. Phép kết nối ............................................................................................. 146
4.5.2. Phép chọn và phép chiếu ........................................................................ 147
4.5.3. Các phép toán khối ................................................................................. 147
4.5.4 Các phép toán khác .................................................................................. 148
4.5.5. Tối ưu hóa các câu hỏi và các khung nhìn cụ thể hóa ........................... 148
4.5.6. Bài tập tối ưu hoá các câu hỏi.................................................................. 148
BÀI TẬP CHƯƠNG IV ......................................................................................... 156
CHƯƠNG V ........................................................................................................... 161
BẢO MẬT VÀ TOÀN VẸN DỮ LIỆU ................................................................. 161
5.1. Sự cần thiết phải bảo vệ an toàn CSDL ......................................................... 161
5.2. Tính toàn vẹn dữ liệu ...................................................................................... 162
5.2.1. Các ràng buộc toàn vẹn ........................................................................... 162
5.2.2 Các yếu tố của rằng buộc toàn vẹn (RBTV) ............................................ 164
5.2.3. Phân loại các ràng buộc toàn vẹn ............................................................ 164 5
5.3. Vấn đề an toàn và quyền truy nhập cơ sở dữ liệu ......................................... 168
5.3.1. Sự vi phạm an toàn cơ sở dữ liệu ............................................................ 168
5.3.2. Các mức độ an toàn cơ sở dữ liệu ........................................................... 169
5.3.3. Những quyền hạn khi sử dụng cơ sở dữ liệu .......................................... 170
5.3.4. Cấp phép các quyền truy nhập (bảo vệ tính riêng tư) ............................ 174
5.3.5. Kiểm tra dấu vết ...................................................................................... 175
BÀI TẬP CHƯƠNG V ........................................................................................... 176
TÀI LIỆU THAM KHẢO ....................................................................................... 181 6
DANH SÁCH CÁC TỪ VIẾT TẮT STT Từ viết tắt Diễn giải 1 CSDL Cơ sở dữ liệu 2 Hệ QTCSDL
Hệ quản trị cơ sở dữ liệu 3 CNTT Công nghệ thông tin 4 RBTV Rằng buộc toàn vẹn 5 DL Dữ liệu DataBase Management System - 6 DBMS
Hệ quản trị cơ sở dữ liệu 7 DANH SÁCH CÁC HÌNH
Hình 1.1. Sơ đồ kiến trúc của một cơ sở dữ liệu ........................................... 15
Hình 1.2. Quan hệ Điểm ................................................................................ 17
Hình 2.1. Phương pháp tìm khóa .................................................................. 38
Hình 2.2. Thiết lập bảng n cột k hàng ........................................................... 40
Hình 2.3. Áp dụng phụ thuộc hàm : A C ................................................. 40
Hình 2.4. Áp dụng phụ thuộc hàm: B C .................................................... 40
Hình 2.5. Áp dụng phụ thuộc hàm: CD ................................................... 41
Hình 2.6. Chuẩn hóa quan hệ về BCNF ........................................................ 45
Hình 3.1. Bảng Employees ............................................................................. 67
Hình 3.2. Bảng Jobs ....................................................................................... 68
Hình 3.3. Bảng Job_history ........................................................................... 68
Hình 3.4. Hộp thoại xem thuộc tính của SQL Server ..................................... 69
Hình 3.5. Cấu trúc cơ sở dữ liệu ................................................................... 70
Hình 3.6. Các lớp kiểm tra bảo mật chứng thực của SQL Server ................... 73
Hình 3.7. Quản trị người dùng ...................................................................... 75
Hình 3.8. Import data .................................................................................... 77
Hình 3.9. Export data .................................................................................... 80
Hình 3.10. Đặt mô hình khôi phục ................................................................ 81
Hình 3.11. Sao lưu dữ liệu ............................................................................. 83
Hình 3.12. Phục hồi dữ liệu ........................................................................... 84
Hình 3.13. Thủ tục ....................................................................................... 118
Hình 3.14. Thủ tục lưu trữ hệ thống ........................................................... 119
Hình 3.15. Các loại hàm ............................................................................... 121
Hình 4.1. Cây đại số quan hệ chưa tối ưu hoá ............................................ 140 8
Hình 4.2. Cây đại số được tối ưu hóa .......................................................... 141
Hình 4.3. a) Cây đại số ban đầu chưa tối ưu hóa .................................. 150
b) Cây đại số đã tối ưu hóa ................................................... 150
Hình 4.4. Cây đại số chưa tối ưu hóa ......................................................... 152
Hình 4.5. Cây cú pháp tối ưu hóa biểu thức quan hệ ............................... 154 9 CHƯƠNG I
CƠ SỞ DỮ LIỆU QUAN HỆ
Mục tiêu: Giới thiệu sự cần thiết tổ chức dữ liệu theo mô hình hệ cơ sở dữ liệu, mục
tiêu và tính độc lập của dữ liệu. Kiến trúc mô hình tổng quát 3 lớp và tính ổn định
trong mô hình quan niệm. Các mô hình truy xuất thông dụng hiện nay.
Trong chương này trình bày những khái niệm cơ bản về các hệ cơ sở dữ liệu.
Những khái niệm này bao gồm mục tiêu của một hệ cơ sở dữ liệu. Sự cần thiết phải tổ
chức dữ liệu dưới dạng cơ sở dữ liệu. Tính độc lập của dữ liệu thể hiện mô hình kiến
trúc 3 mức. Vì vậy có thể nói cơ sở dữ liệu phản ảnh tính trung thực, khách quan của
thế giới dữ liệu. Không dư thừa thông tin và cũng không thiếu thông tin. Nội dung của
chương bao gồm các phần:
Tổng quan về lý thuyết cơ sở dữ liệu Các khái niệm cơ bản
Kiến trúc của một cơ sở dữ liệu
Mô hình cơ sở dữ liệu
1.1. Tổng quan về lý thuyết cơ sở dữ liệu 1.1.1. Mở đầu
Nhu cÇu cña nh÷ng hÖ thèng lín: Ng©n hµng, hµng kh«ng ®ßi hái ph¶i tæ chøc lu
tr÷ th«ng tin víi kÝch cì lín mét c¸ch hiÖu qu¶ vµ khoa häc sao cho cã thÓ khai th¸c sö
dông hiÖu qu¶, an toµn dÔ cËp nhËt.
Khèi lîng d÷ liÖu ë d¹ng phi sè vµ bµi to¸n xö lý d¹ng d÷ liÖu nµy rÊt lín chiÕm
tû träng chñ yÕu trong sö dông m¸y tÝnh.
§Æc ®iÓm ph¸t triÓn m¹ng m¹ch, d÷ liÖu cã thÓ ph©n t¸n ®ßi hái khai th¸c d÷ liÖu
nhanh, an toµn cã c¬ chÕ b¶o mËt.
§ßi hái ra ®êi lý thuyÕt x©y dùng c¸c ch¬ng tr×nh øng dông.
LÞch sö ra ®êi vµ ph¸t triÓn:
Khoa häc c¬ së d÷ liÖu ph¸t triÓn qua 3 giai ®o¹n: 10
Giai ®o¹n nh÷ng n¨m 1960: ra ®êi 2 m« h×nh lý thuyÕt lµ m« h×nh m¹ng vµ m« h×nh ph©n cÊp.
Giai ®o¹n nh÷ng n¨m 1970: ra ®êi m« h×nh lý thuyÕt míi lµ m« h×nh quan hÖ (do
tiÕn SÜ F.F . Codd ®a ra)
Giai ®o¹n nh÷ng n¨m 1980 ®Õn nay:
§¸nh dÊu sù ph¸t triÓn m¹ng cña m« h×nh quan hÖ ph¸t triÓn lý thuyÕt.
M« h×nh quan hÖ thùc thÓ (Entity Relationship model)
M« h×nh d÷ liÖu híng ®èi tîng (Objest oriented Model) C¬ së d÷ liÖu tri thøc.
PhÇn mÒm: ra ®êi c¸c ng«n ng÷ xö lý dù liÖu m¹nh ngoµi nh÷ng d÷ liÖu nh sè,
v¨n b¶n cßn xö lý c¸c d÷ liÖu ©m thanh, h×nh ¶nh, siªu liªn kÕt.
1.1.2. Một số khái niệm cơ bản
1.1.2.1. Cơ sở dữ liệu (CSDL)
Dữ liệu (Data): Là các thông tin được cấu trúc hóa để lưu trữ trong máy tính.
CSDL (Database): là tập hợp dữ liệu có liên quan logic với nhau, có thể
dễ dàng chia sẻ và được thiết kế nhằm đáp ứng các nhu cầu sử dụng của một tổ chức, cá nhân nào đó.
Cơ sở dữ liệu là một bộ sưu tập rất lớn về các loại dữ liệu tác nghiệp, bao
gồm các loại dữ liệu âm thanh, tiếng nói, chữ viết, văn bản, đồ hoạ, hình ảnh
tĩnh hay hình ảnh động....được mã hoá dưới dạng các chuỗi bit và được lưu trữ
dưới dạng File dữ liệu trong các bộ nhớ của máy tính. Cấu trúc lưu trữ dữ liệu
tuân theo các quy tắc dựa trên lý thuyết toán học. Cơ sở dữ liệu phản ảnh trung
thực thế giới dữ liệu hiện thực khách quan.
Cơ sở dữ liệu là tài nguyên thông tin dùng chung cho nhiều người: Cơ sở
dữ liệu (CSDL) là tài nguyên thông tin chung cho nhiều người cùng sử dụng.
Bất kỳ người sử dụng nào trên mạng máy tính, tại các thiết bị đầu cuối, về
nguyên tắc có quyền truy nhập khai thác toàn bộ hay một phần dữ liệu theo chế
độ trực tuyến hay tương tác mà không phụ thuộc vào vị trí địa lý của người sử
dụng với các tài nguyên đó. 11
Cơ sở dữ liệu được các hệ ứng dụng khai thác bằng ngôn ngữ con dữ liệu
hoặc bằng các chương trình ứng dụng để xử lý, tìm kiếm, tra cưú, sửa đổi, bổ
sung hay loại bỏ dữ liệu. Tìm kiếm và tra cứu thông tin là một trong những
chức năng qua trọng và phổ biến nhất của các dịch vụ cơ sở dữ liệu. Hệ quản trị
CSDL – HQTCSDL (DataBase Management System - DBMS) là phần mềm
điều khiển các chiến lược truy nhập CSDL. Khi người sử dụng đưa ra yêu cầu
truy nhập bằng một ngôn ngữ con dữ liệu nào đó, HQTCSDL tiếp nhận và thực
hiện các thao tác trên CSDL lưu trữ.
Đối tượng nghiên cứu của CSDL là các thực thể và mối quan hệ giữa các
thực thể. Thực thể và mối quan hệ giữa các thực thể là hai đối tượng khác nhau
về căn bản. Mối quan hệ giữa các thực thể cũng là một loại thực thể đặc biệt.
Trong cách tiếp cận CSDL quan hệ, người ta dựa trên cơ sở lý thuyết đại số
quan hệ để xây dựng các quan hệ chuẩn, khi kết nối không tổn thất thông tin và
khi biểu diễn dữ liệu là duy nhất. Dữ liệu được lưu trữ trong bộ nhớ của máy
tính không những phải tính đến yếu tố về tối ưu không gian lưu trữ, mà phải
đảm bảo tính khách quan, trung thực của dữ liệu hiện thực. Nghĩa là phải đẩm
bảo tính nhất quán của dữ liệu và giữ được sự toàn vẹn của dữ liệu. Tính chất của CSDL:
Một CSDL biểu thị một khía cạnh nào đó của thế giới thực, những
thay đổi của thế giới thực phải được phản ánh một cách trung thực vào trong CSDL.
Một CSDL là một tập hợp dữ liệu liên kết với nhau một cách lôgic
và mang một ý nghĩa nào đó.
Một CSDL được thiết kế và tổ chức cho một mục đích riêng, nó có
một nhóm người sử dụng có chủ định và có một số ứng dụng được
xác định phù hợp với mối quan tâm của người sử dụng.
Một cơ sở dữ liệu phải thỏa mãn các yêu cầu sau:
- Không dư thừa dữ liệu
- Bảo đảm tính nhất quán dữ liệu khi cập nhật. 12
- Bảo đảm không có dị thường xảy ra khi thêm hoặc xóa DL.
- Bảo đảm tính toàn vẹn dữ liệu.
- Bảo đảm tính dùng chung.
1.1.2.2. Hệ quản trị CSDL
Hệ quản trị cơ sở dữ liệu (Database Management System - DBMS),
là phần mềm hay hệ thống được thiết kế để quản trị một cơ sở dữ liệu. Cụ thể,
các chương trình thuộc loại này hỗ trợ khả năng lưu trữ, sửa chữa, xóa và tìm
kiếm thông tin trong một cơ sở dữ liệu (CSDL).
Có rất nhiều loại hệ quản trị CSDL khác nhau: từ phần mềm nhỏ chạy
trên máy tính cá nhân cho đến những hệ quản trị phức tạp chạy trên một hoặc nhiều siêu máy tính.
Chức năng của hệ QTCSDL:
Lưu trữ các định nghĩa, các mối liên kết dữ liệu vào một từ điển dữ
liệu. Các chương trình truy cập đến CSDL thông qua hệ QTCSDL,
Hệ QTCSDL sử dụng dữ liệu trong từ điển DL để tìm kiếm các cấu
trúc thành phần DL và các mối liên kết được yêu cầu. Mọi sự thay
đổi trong CSDL sẽ tự động ghi lại vào từ điển dữ liệu.
Tạo ra các cấu trúc phức tạp theo yêu cầu để lưu trữ DL, giúp người
sử dụng định nghĩa và lập trình cho các đặc trưng vật lý của dữ liệu.
Biến đổi các DL nhập vào để phù hợp với các cấu trúc DL; tạo
khuôn dạng cho các DL được lấy ra, làm cho nó phù hợp với mong
muốn của người sử dụng.
Tạo hệ thống bảo mật và áp đặt tính bảo mật trong CSDL.
Tạo cấu trúc phức tạp cho phép người sử dụng truy cập đến dữ liệu.
Cung cấp các thủ tục sao lưu và phục hồi DL để đảm bảo sự an toàn và toàn vẹn DL. 13
Áp đặt các quy tắc an toàn, cho phép tối thiểu sự dư thừa DL và
làm tối đa tính nhất quán dữ liệu.
Cung cấp việc truy cập DL thông qua một ngôn ngữ truy vấn.
1.1.2.3. Ngôn ngữ dữ liệu
Ng«n ng÷ d÷ liÖu cã 3 chøc n¨ng:
- §Þnh nghÜa vµ m« t¶ d÷ liÖu. - CËp nhËt d÷ liÖu
- Hái d÷ liÖu (an toµn vµ toµn vÑn d÷ liÖu) Descrition Data Update Language Query Ng«n ng÷ (language) Ng«n ng÷ tù nhiªn Ng«n ng÷ h×nh thøc (Natural language)) (Forrmat language) Ngôn ngữ người Ng«n ng÷ sinh vËt D©n téc Format language Môc tiªu tæng qu¸t Giao tiếp người và máy
- M· ho¸, an toµn d÷ liÖu
- Các ngôn ngữ lập trình - V¨n ph¹m h×nh thøc - Ngôn ngữ dữ liệu 14
1.1.3. Kiến trúc của một CSDL
Mét CSDL ®îc ph©n thµnh c¸c møc kh¸c nhau.
CSDL vËt lý (møc vËt lý) lµ c¸c tÖp d÷ liÖu theo mét cÊu tróc nµo ®ã ®îc lu
trªn c¸c thiÕt bÞ nhí thø cÊp (nh ®Üa tõ, b¨ng tõ...).
CSDL møc kh¸i niÖm lµ mét sù biÓu diÔn trõu tîng cña CSDL vËt lý. Tøc lµ
CSDL møc vËt lý lµ sù cµi ®Æt cô thÓ cña CSDL møc kh¸i niÖm.
C¸c khung nh×n lµ c¸ch nh×n, lµ quan niÖm cña cña tõng ngêi sö dông ®èi víi
CSDL møc kh¸i niÖm. Khung nh×n bao gåm tËp tÊt c¶ d÷ liÖu mµ ngêi sö dông
®îc phÐp nh×n thÊy, ®îc phÐp truy nhËp vµo. V× vËy, ®èi víi ngêi sö dông khung nh×n chÝnh lµ CSDL. USER 1 Khung nh×n 1 USE R 1 Khung nh×n 1 CSDL møc CSDL møc kh¸i niÖm VËt lý (Logic) USE R 1 Khung nh×n 1
Hình 1.1. Sơ đồ kiến trúc của một cơ sở dữ liệu
1.1.4. Mô hình CSDL dạng quan hệ
1.1.4.1. Các khái niệm cơ bản
M« h×nh ph©n cÊp (hierachical model): M« h×nh d÷ liÖu lµ 1 c©y (c¸c nót biÓu
diÔn c¸c tËp thÓ, nót con vµ nót cha ®îc liªn hÖ theo 1 mèi quan hÖ x¸c ®Þnh).
M« h×nh m¹ng (network model): M« h×nh ®îc biÓu diÔn lµ 1 ®å thÞ cã híng. 15
M« h×nh quan hÖ (Relational Model): Dùa trªn c¬ së kh¸i niÖm lý thuyÕt tËp
hîp. C¸c ®èi tîng thÓ hiÖn díi d¹ng b¶ng (quan hÖ).
C¸c lo¹i m« h×nh d÷ liÖu trªn cã u ®iÓm:
• TÝnh trùc quan cao phï hîp víi thãi quen ®a sè cña ngêi dïng.
• Hç trî bëi lý thuyÕt to¸n häc chÆt chÏ (tiªn ®Ò ho¸) tiªn ®Ò Armstrong
(1977), ph¸t triÓn phÇn mÒm øng dông vµ tù ®éng ho¸ thiÕt kÕ.
• TÝnh ®éc lËp d÷ liÖu cao.
Một số khái niệm cơ bản : CSDL quan hệ:
• Được xây dựng từ một hay nhiều bảng quan hệ
• Mỗi bảng (quan hệ) gồm 2 phần:
- Lược đồ: Tên quan hệ, Tên các cột
- Thể hiện: Các dòng dữ liệu • Trong mỗi bảng:
- Các cột gọi là các trường hoặc các thuộc tính
- Các hàng dữ liệu gọi là các bản ghi hoặc các bộ • Yêu cầu: - Không có bộ trùng nhau
- Mỗi thuộc tính phải có một tên riêng
Thuộc tính: Thuộc tính là một đặc trưng của quan hệ. Mỗi thuộc tính bao giờ
cũng có tên và một miền giá trị gọi là miền xác định của thuộc tính. - Ký hiệu: dom(A)
Trong đó: A là tên thuộc tính
- Ví dụ: dom(giới tính) = {nam, nữ} 16 Ví dụ: Quan hệ ĐIỂM
Lược đồ gồm 5 thuộc tính MãSV TênSV Email Tuổi Điểm TI01 Jones jo@vnu.edu 18 6 Thể hiện gồm TI02 Smith mit@vnu.edu 18 8 3 bộ TI03 Smith sm@vnu.edu 19 7 Hình 1.2. Quan hệ Điểm
Quan hệ: Là một tập con của tích Đề-các của một hoặc nhiều miền thuộc tính.
Hay: Quan hệ r(R) là một quan hệ toán học cấp n trên các miền giá trị: dom(A1), dom(A
2) ... dom(An ) là tập con của tích Đề-các của các miền giá trị xác định trên R.
r (R) dom(A1) x dom(A2) x ... x dom(An)
Lược đồ quan hệ: Trên một quan hệ mà chỉ đề cập đến các thuộc tính thì người
ta gọi là một lược đồ quan hệ.
- Ký hiệu: R={A1, A2,...,An} hoặc R(A1, A2,...,An) 1.1.4.2. Khóa a. Siêu khóa:
- Gọi R={A1, A2,...,An} là tập hữu hạn các thuộc tính; K R
- K được gọi là siêu khóa trên R khi các giá trị của K là đủ để xác định
duy nhất bộ dữ liệu của bảng 17 b. Khóa
- Nếu K là siêu khóa và K là tối thiểu thì K được gọi là khóa của quan hệ Ví dụ: Quan hệ ĐIỂM MãSV TênSV Email Tuổi Điểm TI01 Jones jo@vnu.edu 18 6 TI02 Smith mit@vnu.edu 18 8 TI03 Smith sm@vnu.edu 19 7
Câu hỏi: Tìm các siêu khóa và khóa của quan hệ trên? Giải: - Siêu khóa:
• Mã SV, Tên SV, Email, Tuổi, Điểm
• Mã SV, Tên SV, Email, Tuổi • Mã SV, Tên SV, Email • Mã SV, Tên SV • Mã SV
• Tên SV, Email, Tuổi, Điểm • Mã SV, Email • Email, Tuổi, Điểm • Email, Tuổi • Email - Khóa: • Mã SV • Email
c. Khóa chính: Một siêu khóa được chọn đại diện cho một quan hệ được gọi là
khóa chính của quan hệ đó. 18
d. Khóa ngoài: Một tập các thuộc tính K được gọi là khóa ngoài của quan hệ r
nếu nó không là khóa chính của quan hệ r nhưng là khóa chính của quan hệ khác.
• Ví dụ: SV(MaSV, tenSV, ngsinh, quequan) MH(MaMH, tenMH, HSMH, Khoa)
BĐ(MaBĐ, MaMH, MaSV, tenSV, diem, ky)
1.1.4.3. Các phép tính trên CSDL a. Phép chèn
• Định nghĩa : Phép chèn dùng để chèn một hoặc nhiều bộ giá trị vào một quan hệ.
- Phép chèn cung cấp một danh sách các giá trị cho một bộ mới t được chèn
vào trong một quan hệ R. Phép chèn có thể vi phạm các kiểu ràng buộc
được mô tả ở trên. Các ràng buộc miền có thể bị vi phạm nếu một giá trị
thuộc tính được cho không thuộc vào miền tương ứng. Các ràng buộc
khóa có thể bị vi phạm nếu một giá trị khóa trong bộ mới t đã tồn tại trong
một bộ khác ở trong quan hệ r(R). Sự toàn vẹn thực thể có thể bị vi phạm
nếu khóa chính của bộ mới t là null. Sự toàn vẹn tham chiếu có thể bị vi
phạm nếu một giá trị của một khóa ngoài trong t tham chiếu đến một bộ
không tồn tại trong một quan hệ được tham chiếu.
- Nếu một phép chèn vi phạm một hoặc nhiều ràng buộc, tùy chọn mặc định
là loại bỏ phép chèn. Trong trường hợp này, thường là các hệ quản trị cơ
sở dữ liệu sẽ thông báo cho người sử dụng nguyên nhân của việc loại bỏ phép chèn. • Cú pháp:
1. INSERT(r; A1 = d1, A2 = d2, …, An = dn);
2. INSERT(r; d1, d2, …, dn); 19 b. Phép loại bỏ
• Định nghĩa: Phép loại bỏ dùng để loại bỏ 1 hoặc nhiều bộ giá trị của một quan hệ.
- Phép xóa được sử dụng để xóa một hoặc nhiều bộ giá trị của một quan
hệ. Phép xóa chỉ có thể vi phạm ràng buộc tham chiếu trong trường hợp
bộ bị xóa được tham chiếu bởi một khóa ngoài từ các bộ khác nhau trong
cơ sở dữ liệu. Để chỉ rõ một phép xóa, cần phải đưa ra một điều kiện trên
các thuộc tính của quan hệ để chọn các bộ sẽ bị xóa. -
Ba tùy chọn sẵn sàng được sử dụng nếu một phép xóa gây ra sự vi phạm.
Tùy chọn thứ nhất là loại bỏ phép xóa. Tùy chọn thứ hai là cố gắng lan
truyền phép xóa (cascade the deletion) bằng cách xóa đồng thời các bộ
tham chiếu đến bộ bị xóa. Tùy chọn thứ ba là sửa đổi các giá trị của các
thuộc tính tham chiếu gây ra sự vi phạm. Mỗi giá trị như vậy hoặc là làm
cho bằng null hoặc được thay đổi thành bộ có hiệu lực tham chiếu khác.
Chú ý rằng, nếu một thuộc tính tham chiếu gây ra sự vi phạm là một
phần của khóa chính thì không thể làm thành null, bởi vì nếu làm vậy thì
sẽ vi phạm ràng buộc toàn vẹn thực thể. Có thể kết hợp cả ba tùy chọn ở trên. • Cú pháp:
1. DEL(r; A1 = d1, A2 = d2, …, An = dn) 2. DEL(r; d1, d2, …, dn) c. Phép thay thế
• Định nghĩa : Là phép thay đổi giá trị một bộ trong quan hệ.
- Phép toán sửa đổi được dùng để thay đổi các giá trị của một hoặc nhiều
thuộc tính trong một (hoặc nhiều) bộ của một quan hệ R nào đấy. Để lựa
chọn các bộ cần thay đổi, người sử dụng phải chỉ ra một điều kiện trên các thuộc tính.
- Phép sửa đổi một thuộc tính không phải là một khóa chính hoặc một
khóa ngoài thường không gây ra các vi phạm ràng buộc. Hệ quản trị cơ 20