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

