- Trang Chủ
- Kỹ thuật lập trình
- Giáo trình Cơ sở dữ liệu (Nghề: Lập trình máy tính, Tin học ứng dụng - Trình độ CĐ/TC) - Trường Cao đẳng Nghề An Giang
Xem mẫu
- ỦY BAN NHÂN DÂN TỈNH AN GIANG
TRƯỜNG CAO ĐẲNG NGHỀ AN GIANG
GIÁO TRÌNH
Cơ sở dữ liệu
NGHỀ LẬP TRÌNH MÁY TÍNH & TIN
ỨNG DỤNG
TRÌNH ĐỘ CAO ĐẲNG NGHỀ & TRUNG CẤP NGHỀ
(Ban hành theo Quyết định số: /QĐ-CĐN ngày tháng năm 20
của Hiệu trưởng trường Cao đẳng nghề An Giang)
Tên tác giả : Trần Thị Kim Ngọc
Năm ban hành: 2018
- TUYÊN BỐ BẢN QUYỀN
Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể đƣợc
phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo.
Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh
doanh thiếu lành mạnh sẽ bị nghiêm cấm.
1
- LỜI GIỚI THIỆU
Bài giảng cơ sở dữ liệu đƣợc viết nhằm để giảng dạy cho sinh viên chuyên
ngành CNTT trƣờng Cao Đẳng Nghề An giang. Bài giảng đƣợc thiết kế theo
chƣơng trình môn học cơ sở dữ liệu của Bộ ban hành theo hệ cao đẳng nghề và
trung cấp nghề. Bài giảng này bao gồm 6 chƣơng, Trƣớc tiên bài giảng trình bày về
các kiến thức cơ bản nhƣ: mô hình cơ sở dữ liệu quan hệ, ngôn ngữ dữ liệu SQL và
các dạng chuẩn và vấn đề chuẩn hóa. Thêm vào đó, cuối chƣơng sẽ có các bài tập
tƣơng ứng để sinh viên có thể ôn lại lý thuyết và tùy vào mỗi chƣơng mà có một số
bài tập nâng cao để khuyến khích sinh viên tự học và nghiên cứu.
Giáo trình này gồm các nội dung chính sau:
Chƣơng 1: Tổng quan về cơ sở dữ liệu
Chƣơng 2: Mô hình cơ sở dữ liệu quan hệ
Chƣơng 3: Ngôn ngữ dữ liệu SQL
Chƣơng 4: Ràng buộc toàn vẹn và phụ thuộc hàm
Chƣơng 5: Dạng chuẩn và chuẩn hóa lƣợc đồ cơ sở dữ liệu quan hệ
Chƣơng 6: Tối ƣu hóa câu hỏi
Trong quá trình biên soạn, mặc dù đã cố gắng tham khảo nhiều tài liệu và
giáo trình khác nhƣng tác giả không khỏi tránh đƣợc những thiếu sót và hạn chế.
Tác giả chân thành mong đợi những nhận xét, đánh giá và góp ý để cuốn giáo trình
ngày một hoàn thiện hơn.
Cuốn tài liệu giảng dạy này vẫn còn nhiều thiếu sót và hạn chế. Rất mong nhận
đƣợc ý kiến đóng góp của sinh viên và các bạn đọc để bài giảng ngày càng hoàn
thiện hơn.
Chân thành cảm ơn quý Thầy Cô trong Hội đồng thẩm định của trƣờng Cao
Đẳng Nghề An Giang để bài giảng cơ sở dữ liệu đƣợc hoàn chỉnh.
An Giang, ngày tháng năm 2018
Tham gia biên soạn
Trần Thị Kim Ngọc
2
- MỤC LỤC
ĐỀ MỤC TRANG
TUYÊN BỐ BẢN QUYỀN 1
LỜI GIỚI THIỆU 2
MỤC LỤC 3
GIÁO TRÌNH MÔN HỌC CƠ SỞ DỮ LIỆU 4
CHƢƠNG I. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU 5
I. Một số khái niệm 5
II. Các mô hình dữ liệu 6
Bài tập 10
CHƢƠNG II. MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ 12
I. Các khái niệm cơ bản 12
II. Các phép toán trên đại số tập hợp 18
III. Các phép toán trên đại số quan hệ 21
Bài tập 23
CHƢƠNG III. NGÔN NGỮ DỮ LIỆU SQL 26
I. Khái niệm về ngôn ngữ dữ liệu SQL 26
II. Các lệnh liên quan đến cấu trúc của cơ sở dữ liệu 26
III. Các lệnh cập nhật cơ sở dữ liệu 35
IV. Các lệnh truy vấn cơ sở dữ liệu 38
Bài tập 47
CHƢƠNG IV. RÀNG BUỘC TOÀN VẸN VÀ PHỤ THUỘC HÀM 51
I. Các vấn đề liên quan đến ràng buộc toàn vẹn 51
II. Các loại ràng buộc toàn vẹn 51
III. Phụ thuộc hàm 56
Bài tập 65
CHƢƠNG V. DẠNG CHUẨN VÀ CHUẨN HÓA LƢỢC ĐỒ CƠ SỞ 68
DỮ LIỆU QUAN HỆ
I. Dạng chuẩn 68
II. Chuẩn hóa lƣợc đồ cơ sở dữ liệu 77
Bài tập 83
CHƢƠNG VI. TỐI ƢU HÓA CÂU HỎI 86
I. Các nguyên tắc tổng quát để tối ƣu hóa câu hỏi 86
II. Ví dụ một thuật toán tối ƣu hóa biểu thức quan hệ 87
III. Thuật toán tối ƣu hóa câu hỏi trong ngôn ngữ Đại số quan hệ 89
Bài tập 89
CÁC THUẬT NGỮ CHUYÊN MÔN 91
TÀI LIỆU THAM KHẢO 92
3
- GIÁO TRÌNH MÔN HỌC CƠ SỞ DỮ LIỆU
Tên môn học: CƠ SỞ DỮ LIỆU
Mã số môn học: MH 10
Vị trí, tính chất, ý nghĩa và vai trò của môn học:
- Vị trí: Thuộc nhóm môn cơ sở. Đƣợc bố trí sau các môn: toán cho tin học
và tin học căn bản.
- Tính chất: Là môn học chuyên môn nghề bắt buộc, là nền tảng để HSSV có
thể thiết kế cơ sở dữ liệu xây dựng ứng dụng và học các môn học mô đun liên
quan.
-Ý nghĩa và vai trò của môn học: giúp các em có kiến thức cơ bản về xây
dựng cơ sở dữ liệu làm nền tảng cho các môn học sau.
Mục tiêu của môn học:
- Về kiến thức
Trình bày đƣợc các bƣớc, ý nghĩa của việc thiết kế cơ sở dữ liệu.
Trình bày đƣợc các khái niệm về cơ sở dữ liệu nhƣ: khóa, lƣợc đồ quan
hệ, phụ thuộc hàm,...
Ghi nhớ đƣợc các ngôn ngữ thao tác dữ liệu, ngôn ngữ truy vấn dữ liệu
SQL.
- Về kỹ năng
Xây dựng đƣợc các mô hình quan hệ.
Thiết kế đƣợc cơ sở dữ liệu
Phân tích đƣợc chƣơng trình: xác định nhiệm vụ chƣơng trình (phải làm
gì).
- Về năng lực tự chủ và trách nhiệm
Nghiêm túc trong học tập và thực hiện tốt các yêu cầu đƣợc giao.
Luôn động não suy nghĩ. Thƣờng xuyên luyện tập tƣ duy trong việc học
Thực hiện học tập và thực hành nhóm.
4
- Chƣơng 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
Mục tiêu:
Nhằm cung cấp kiến thức về khái niệm cơ sở dữ liệu, hệ quản trị cơ sở dữ
liệu, sơ lƣợc về một số mô hình cơ sở dữ liệu.
Nội dung:
I. MỘT SỐ KHÁI NIỆM:
1. Cơ sở dữ liệu:
Cơ sở dữ liệu (Database, viết tắt là CSDL) là 1 lĩnh vực nghiên cứu các mô
hình, nguyên lý, phƣơng pháp tổ chức dữ liệu trên các vật mang tin.
Để dễ dàng cho việc giải thích các khái niệm, trƣớc tiên ta hãy thử xem xét
hệ thống bán vé máy bay bằng máy tính. Dữ liệu lƣu trữ trong máy tính bao gồm
thông tin về hành khách, chuyến bay, đƣờng bay… Mọi thông tin về mối quan hệ
này đƣợc biểu diễn trong máy thông qua việc đặt chỗ của khách hàng. Vậy làm thế
nào để biểu diễn đƣợc dữ liệu đó và đảm bảo cho hành khách đi đúng chuyến? Dữ
liệu nêu trên đƣợc lƣu trữ trong máy theo một quy định nào đó và đƣợc gọi là cơ
sở dữ liệu.
Nhƣ vậy, cơ sở dữ liệu là tập hợp các thông tin có quan hệ với nhau đƣợc
lƣu trữ trong máy tính theo một quy định nhất định nhằm phục vụ cho một mục
đích nào đó.
2. Hệ quản trị cơ sở dữ liệu (Database Management System):
Hệ quản trị cơ sở dữ liệu là hệ thống các chƣơng trình nhằm tạo lập, xử lý,
thay đổi, quản lý và khai thác các cơ sở dữ liệu.
Một số hệ quản trị cơ sở dữ liệu hiện nay: Foxpro, Access, Oracale, … với
các phiên bản khác nhau. Có hai đặc điểm để phân biệt một hệ quản trị cơ sở dữ
liệu với các hệ thống lập trình khác:
(1) Khả năng quản lý những dữ liệu cố định.
(2) Khả năng truy xuất có hiệu quả một số lƣợng lớn dữ liệu.
Điểm (1) khẳng định rằng có một cơ sở dữ liệu tồn tại thƣờng xuyên và nội
dung của cơ sở dữ liệu này là những dữ liệu đƣợc hệ quản trị cơ sở dữ liệu truy
xuất và quản lý. Điểm (2) phân biệt một hệ quản trị cơ sở dữ liệu với một hệ thống
quản lý tập tin cùng quản lý dữ liệu cố định nhƣng nói chung không cho phép truy
xuất nhanh chóng các thành phần tùy ý của dữ liệu. Ngòai ra, còn có một số khả
năng khác thƣờng gặp trong các hệ quản trị cơ sở dữ liệu trên thị trƣờng:
5
- + Hệ quản trị cơ sở dữ liệu hổ trợ ít nhất một mô hình dữ liệu, nhờ đó ngƣời
sử dụng có thể xem đƣợc dữ liệu.
+ Hệ quản trị cơ sở dữ liệu hổ trợ một số ngôn ngữ bậc cao cho phép ngƣời
sử dụng định nghĩa các cấu trúc dữ liệu, truy xuất dữ liệu và thao tác dữ liệu.
+ Hệ quản trị cơ sở dữ liệu quản lý các giao dịch, nghĩa là cho phép nhiều
ngƣời sử dụng truy xuất đồng thời và chính xác đến một cơ sở dữ liệu.
+ Hệ quản trị cơ sở dữ liệu điều khiển quá trình truy xuất, là khả năng giới
hạn các quá trình truy xuất dữ liệu của những ngƣời không đƣợc phép và khả năng
kiểm tra độ tin cậy của dữ liệu.
+ Hệ quản trị cơ sở dữ liệu có khả năng tự thích ứng là khả năng phục hồi lại
dữ liệu do sự cố của hệ thống mà làm mất dữ liệu.
II. CÁC MÔ HÌNH DỮ LIỆU:
Phân loại các mô hình:
Phân cấp
Thế hệ 1 Các mô hình
Mạng dựa trên bản
ghi
Quan hệ
Thế hệ 2
Thực thể - liên kết
Các mô hình
Ngữ nghĩa dựa trên đối
tƣợng
Thế hệ 3
Đối tƣợng – Quan hệ Hƣớng đối tƣợng
6
- 1. Mô hình mạng (Network model):
Là mô hình thực thể liên hệ trong đó các mối liên hệ bị hạn chế trong kiểu
nhị phân (hai thực thể) và nhiều - một hoặc một - một và đƣợc biểu diễn bởi một
đồ thị có hƣớng.
- Ƣu điểm: Đơn giản, có thể biểu diễn các ngữ nghĩa đa dạng với kiểu bản
ghi và kiểu móc nối, truy vấn thông qua phép duyệt đồ thị (navigation)
- Nhƣợc điểm: Số lƣợng các con trỏ lớn, hạn chế trong biểu diễn ngữ nghĩa
của các móc nối giữa các bản ghi
2. Mô hình phân cấp (Hierachical model):
Là mô hình mạng có nhiều cây trong đó tất cả các đƣờng nối chỉ đi theo
hƣớng từ con đến cha.
- Ƣu điểm: Dễ xây dựng và thao tác, tƣơng thích với các lĩnh vực tổ chức
phân cấp (vd: tổ chức nhân sự trong các đơn vị, ...), ngôn ngữ thao tác đơn giản
(duyệt cây)
- Nhƣợc điểm: Sự lặp lại của các kiểu bản ghi → dƣ thừa dữ liệu và dữ liệu
không nhất quán , hạn chế trong biểu diễn ngữ nghĩa của các móc nối giữa các bản
ghi (chỉ cho phép quan hệ 1-n)
3. Mô hình quan hệ (Relation model):
Là mô hình dựa vào ký hiệu là tập các tên và cơ sở toán học của nó là các
phép toán tập hợp và ánh xạ. Nó là mô hình phổ biến hiện nay. Tập các phép toán
trong mô hình này dựa trên hai hệ ký hiệu: hệ ký hiệu đại số và hệ ký hiệu logic.
7
- LOP
Malop Lop Khoa GVCN loptruong
IT4 Tin 4 CNTT Ng.V.Anh Trần.T.Bình
IT5 Tin 5 CNTT Lê A.Văn Ng.Đ.Trung
IT6 Tin 6 CNTT Ng.T.Thảo Trần.M.Quế
SINHVIEN
MaSV tenSV Ngyasinh Nam Diachi Lop
SV0011 Trần T.Bình 1/4/1981 0 21 T.Q.B IT4
SV0025 Ng.Đ.Trung 3/2/1980 1 56 Đ.C.V IT5
SV0067 Trần M.Quế 26/3/1982 0 45 H.B.T IT6
- Ƣu điểm: Dựa trên lý thuyết tập hợp, khả năng tối ƣu hoá các xử lý phong
phú
- Nhƣợc điểm: Hạn chế trong biểu diễn ngữ nghĩa, cấu trúc dữ liệu không
linh hoạt
4. Mô hình thực thể liên kết (Entity Relationship model):
Là mô hình cho phép mô tả các thực thể thông qua các thuộc tính và mối
liên hệ giữa các thực thể. Một trong các cách biểu thị mô hình thực thể là dùng đồ
thị, sơ đồ khối.
- Ƣu điểm: Dễ dàng biểu diễn cái mà con ngƣời nhận thức từ thế giới thực,
biểu diễn ngữ nghĩa phong phú của các thực thể và quan hệ giữa các thực thể
8
- - Nhƣợc điểm: Không dễ dàng ánh xạ vào những cấu trúc lƣu trữ trên máy
tính
* Mô hình hóa dữ liệu: Dựa trên các khái niệm chính
+ Thực thể: một đối tƣợng trong thế giới thực
+ Tập thực thể: các thực thể có cùng các tính chất
+ Thuộc tính: một đặc tính của một tập thực thể
+ Khoá:xác định sự duy nhất của 1 thực thể
+ Liên kết: mối liên hệ có nghĩa giữa nhiều thực thể
1-1: Liên kết 1 thực thể của một tập thực thể với nhiều nhất 1 thực thể của
tập thực thể khác
1-n: Liên kết 1 thực thể của một tập thực thể với nhiều thực thể của tập thực
thể khác
n-m: Liên kết 1 thực thể của một tập thực thể với nhiều thực thể của tập thực
thể khác và ngƣợc lại
đệ quy: Liên kết giữa các thực thể cùng kiểu
mon_hoc
Dieu_kie
n
1 1
lop_hoc chu_nhiem giao_vien
1 n
lop_hoc gom sinh_vien
n m
sinh_vien dang_ky mon_hoc
+ Tập liên kết: tập hợp các liên kết cùng kiểu
* Lập sơ đồ thực thể - liên kết:
B1: Xác định các thực thể
B2: Xác định các liên kết giữa các thực thể: Bậc của liên kết, ràng buộc (1-1,
1-n, n-m, đệ quy)
5. Mô hình hƣớng đối tƣợng (Object Oriented model):
9
- Là mô hình cung cấp đặc tính nhận dạng đối tƣợng. Trong đó mỗi lớp đối
tƣợng đƣợc đặc trƣng bởi hai yếu tố:
+ Tập các thuộc tính (properties) để nhận dạng đối tƣợng.
+ Tập các phƣơng thức (methods) để thao tác với đối tƣợng.
Ví dụ:
class sinh_vien {
string maSV;
string tenSV;
date ngaysinh;
boolean nam;
string diachi;
string lop;
string ten();
string ngay_sinh();
string dia_chi();
string lop();
void gan_DC(string DC_moi);
void gan_lop(string lop);
}
- Ƣu điểm: Cho phép định nghĩa kiểu đối tƣợng phức tạp, tính chất: bao
đóng (encapsulation), kế thừa (heritage), đa hình (polymorphism)
- Nhƣợc điểm: Cấu trúc lƣu trữ phức tạp và có thể sử dụng nhiều con trỏ,
khả năng tối ƣu hoá các xử lý bị hạn chế trong nhiều trƣờng hợp
Bài tập:
Phân tích và thiết kế 1 CSDL (theo mô hình thực thể - liên kết) gồm các
thông tin trong 1 công ty (nhân viên, phòng ban, dự án)
Công ty đƣợc tổ chức bởi các phòng ban. Mỗi phòng ban có 1 tên duy nhất,
1 số duy nhất và 1 ngƣời quản lý (thời điểm bắt đầu công tác quản lý của ngƣời
này cũng đƣợc lƣu lại trong CSDL).
Mỗi phòng ban có thể có nhiều trụ sở làm việc khác nhau. Mỗi phòng điều
phối một số dự án. Mỗi dự án có 1 tên và 1 mã số duy nhất, thực hiện tại một địa
điểm duy nhất
10
- Các thông tin về nhân viên cần đƣợc quan tâm gồm: tên, số bảo hiểm, địa
chỉ, lƣơng, giới tính, ngày sinh. Mỗi nhân viên làm việc tại một phòng ban nhƣng
có thể tham gia nhiều dự án khác nhau.
Những dự án này có thể đƣợc điều phối bởi các phòng ban khác nhau.
Thông tin về số giờ làm việc trong từng dự án (theo tuần) cũng nhƣ ngƣời quản lý
trực tiếp của các nhân viên cũng đƣợc lƣu trữ
Thông tin về con cái của từng nhân viên: tên, giới tính, ngày sinh
11
- Chƣơng 2 MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
Mục tiêu:
Nhằm cung cấp các kiến thức về khái niệm quan hệ, thuộc tính, các loại
khóa, lƣợc đồ quan hệ, bộ giá trị và phụ thuộc hàm, qua đó thực hiện đƣợc các
phép toán trên đại số tập hợp và các phép toán trên đại số quan hệ.
Nội dung:
I. CÁC KHÁI NIỆM CƠ BẢN:
1. Thuộc tính (Attribute):
Chẳng hạn với bài tóan quản lý điểm thi của sinh viên, với đối tƣợng sinh
viên ta cần phải chú ý đến các đặc trƣng riêng nhƣ họ tên, ngày sinh, giới tính, tỉnh
thƣờng trú, học bổng, lớp mà sinh viên theo học,… các đặc trƣng này gọi là các
thuộc tính.
Các thuộc tính đƣợc phân biệt qua tên gọi và phải thuộc vào một kiểu dữ
liệu nhất định (số, chuỗi, ngày tháng, logic, hình ảnh,…). Kiểu dữ liệu ở đây là
kiểu đơn. Trong cùng một đối tƣợng không có hai thuộc tính cùng tên. Thông
thƣờng mỗi thuộc tính chỉ chọn lấy giá trị trong một tập con của kiểu dữ liệu và tập
hợp con đó gọi là miền giá trị của thuộc tính đó. Thuộc tính ngày trong tháng thì có
kiểu dữ liệu là số nguyên, miền giá trị của nó là 1 đến (tối đa là) 31. Hoặc điểm thi
của sinh viên chỉ là các số nguyên từ 0 đến 10.
Thƣờng ngƣời ta dùng các chữ cái hoa A,B,C,… để biểu diễn các thuộc tính,
hoặc A1,A2,…., An để biểu diễn một số lƣợng lớn các thuộc tính.
2. Quan hệ (Relation):
Sự thể hiện của lƣợc đồ quan hệ Q ở một thời điểm nào đó đƣợc gọi là quan
hệ, rõ ràng là trên một lƣợc đồ quan hệ có thể định nghĩa rất nhiều quan hệ.
Thƣờng ta dùng các ký hiệu nhƣ R, S, Q để chỉ các lƣợc đồ quan hệ, còn quan hệ
đƣợc định nghĩa trên nó tƣơng ứng đƣợc ký hiệu là là r, s, q.
3. Bộ giá trị (Tuple):
Bộ là tập mỗi giá trị liên quan của tất cả các thuộc tính của một lƣợc đồ quan
hệ.
Chẳng hạn quan hệ sau có 2 bộ.
MASV HOTEN NU NGAYSINH MALOP TINH HB
99001 TRAN DAN THU TRUE 15-03-1977 CĐTH2B TIEN GIANG 120000
99002 NGUYEN HA DA THAO TRUE 25-04-1986 TCTH29C TPHCM 120000
12
- Thƣờng ngƣời ta dùng các chữ cái thƣờng (nhƣ t,p,q,…) để biểu diễn các bộ.
Chẳng hạn để nói bộ t thuộc quan hệ r ta viết: t r.
Về trực quan thì mỗi quan hệ xem nhƣ một bảng, trong đó mỗi cột là thông
tin về một thuộc tính, mỗi dòng là thông tin về một bộ. Chẳng hạn sau đây là các
thể hiện của các quan hệ định nghĩa trên lƣợc đồ cơ sở dữ liệu quản lý sinh viên ở
trên:
rSv
MASV HOTEN NU NGAYSINH MALOP TINH HB
99001 TRAN DAN THU TRUE 15-03-1977 CĐTH2B TIEN GIANG 120000
99002 NGUYEN HA DA THAO TRUE 25-04-1986 TCTH29C TPHCM 120000
99003 PHẠM ANH HUY FALSE 16-08-1977 CĐTH2B BAC LIEU
99004 NGUYEN NGOC THUAN FALSE 24-12-1980 CĐTH2B CA MAU
99005 LE THANH TRUNG FALSE 20-11-1978 CĐAV1 CA MAU 120000
99006 NGUYEN HONG VAN FALSE 19-09-1979 CĐAV1 SOC TRANG
99007 VU THI LOAN TRUE 15-03-1975 CĐAV1 CA MAU
99008 TRUONG KIM QUANG FALSE 15-05-1979 CĐTH2B HA NOI
99009 TON THAT QUYEN FALSE 26-06-1976 CĐTH2B VUNG TAU 60000
99010 HA VAN LONG FALSE 14-04-1973 CĐAV1 BAC LIEU
99011 BUI VAN ANH FALSE 22-12-1972 CĐAV1 AN GIANG
99012 LE HUU CHI FALSE 28-08-1977 CĐĐT2 CAN THO 60000
99013 VU THANH CONG FALSE 29-03-1979 CĐTH2B KIEN GIANG 60000
99014 TRAN QUANG CUONG FALSE 30-05-1981 CĐĐT2 DONG THAP 120000
99015 PHAM VAN HAI FALSE 30-06-1976 CĐĐT2 CA MAU
99016 HUYNH THANH HOANG FALSE 29-07-1982 CĐĐT2 TPHCM 80000
99017 TRAN MINH LAM FALSE 21-08-1977 CĐTH2B TRA VINH
99018 PHAN VAN SANG FALSE 19-05-1979 CĐDL1 DONG THAP 120000
99019 PHAM THI HUYEN FALSE 16-06-1982 CĐDL1 CAN THO 120000
99020 NGUYEN THI NGAN TRUE 11-11-1981 CĐTH2B CA MAU 120000
99021 PHAM TAN QUANG FALSE 01-01-1980 CĐDL1 CA MAU
13
- 99022 TRAN PHUOC QUYEN FALSE 12-12-1979 CĐTH2B BAC LIEU 60000
99023 LE THI THANH VAN TRUE 11-11-1980 CĐDL1 TPHCM 120000
RKh rMh
MAKH TENKHOA SOCBGD MAMH TENMH ST
CNTT CONG NGHE THONG TIN 60 CSDL CO SO DU LIEU 90
AV ANH VAN 60 FOX FOXPRO 120
HOA HOA CHAT 20 THVP TIN HOC VAN PHONG 90
MT MOI TRUONG 10 AVTH ANH VAN TIN HOC 60
XD XAY DUNG 10 KTS KY THUAT SO 60
DL DU LICH 5 CTDL CAU TRUC DU LIEU 60
TTIN TOAN - TIN HOC 30 TTNT TRI TUE NHAN TAO 45
SINH CONG NGHE SINH HOC 30 MANG MANG MAY TINH CB 45
VL VAT LY 20 VB VISUAL BASIC 90
ĐT ĐIEN TU 20 AC ACCESS 180
LR LAP RAP MAY TINH 60
INTER CAC DICH VU INTERNET 45
HDH HE DIEU HANH 60
KTLT LY THUAT LAP TRINH 45
VIFOX VISUAL FOXPRO 60
rLop
MALOP TENLOP SISO MAKHOA
CĐTH2B CAO DANG TIN HOC KHOA 2000B 60 CNTT
TCTH29C TRUNG CAP TIN HOC KHOA 29C 121 CNTT
CĐAV1 CAO DANG ANH VAN 1 120 AV
CĐĐT2 CAO DANG DIEN TU 2 80 ĐT
CĐDL1 CAO DANG DU LICH 1 42 DL
14
- rKq
MASV MAMH DIEMTHI
99001 CSDL 3.0 99006 MANG 6.0 99016 KTS 7.0
99002 CSDL 8.0 99007 MANG 2.0 99017 KTS 7.0
99003 CSDL 8.0 99008 MANG 7.0 99017 FOX 7.0
99004 CSDL 3.0 99009 MANG 3.0 99017 MANG 4.0
99005 CSDL 2.0 99010 TTNT 5.0 99017 CSDL 8.0
99001 THVP 6.0 99011 FOX 4.0 99017 TTNT 6.0
99002 THVP 3.0 99012 FOX 5.0 99002 MANG 8.0
99003 THVP 8.0 99013 FOX 7.0 99004 MANG 4.0
99004 THVP 9.0 99014 VB 7.0 99018 TTNT 7.0
99005 THVP 5.0 99015 VB 3.0 99019 CSDL 8.0
99020 THVP 7.0 99023 TTNT 3.0 99021 CSDL 8.0
99021 MANG 7.0 99023 THVP 6.0 99021 THVP 9.0
99022 MANG 6.0 99023 FOX 8.0 99022 FOX 5.0
99023 CSDL 8.0 99023 VB 9.0 99022 TTNT 6.0
99023 MANG 6.0 99023 KTS 6.0
4. Lƣợc đồ quan hệ (Relation Schema):
Tập tất cả các thuộc tính cần quản lý của một đối tƣợng cùng với mối liên hệ
giữa chúng đƣợc gọi là lƣợc đồ quan hệ. Lƣợc đồ quan hệ Q với tập thuộc tính
{A1,A2,...,An} đƣợc viết là Q(A1,A2,...,An). Tập các thuộc tính của Q đƣợc ký
hiệu là Q+. Chẳng hạn lƣợc đồ quan hệ sinh viên (Đặt tên là Sv) với các thuộc tính
nhƣ trên là:
Sv(MASV, HOSV,TENSV,NU, NGAYSINH, MALOP, HOCBONG,
TINH)
Thƣờng khi thành lập một lƣợc đồ, ngƣời thiết kế luôn gắn cho nó một ý
nghĩa nhất định, ý nghĩa đó gọi là tân từ của lƣợc đồ quan hệ đó. Dựa vào tân từ
ngƣời ta xác định đƣợc tập thuộc tính khóa của lƣợc đồ quan hệ (khái niệm khoá sẽ
đƣợc trình bày ở phần sau).
15
- Khi phát biểu tân từ cho một lƣợc đồ quan hệ, ngƣời thiết kế cần phải mô tả
đầy đủ ý nghĩa để ngƣời khác tránh hiểu nhầm. Chẳng hạn tân từ của lƣợc đồ quan
hệ trên là: ”mỗi sinh viên có một mã sinh viên MASV duy nhất, mỗi mã sinh viên
xác định tất cả các thuộc tính của sinh viên đó nhƣ họ tên HOTEN, nữ (NU), ngày
sinh (NGAYSINH), lớp theo học (MALOP), học bổng (HOCBONG), tỉnh cƣ trú
(TINH).
Nhiều lƣợc đồ quan hệ cùng nằm trong một hệ thống quản lý đƣợc gọi là
một lƣợc đồ cơ sở dữ liệu.
Ví dụ 2.1: Lƣợc đồ cơ sở dữ liệu để quản lý điểm sinh viên có thể gồm các
lƣợc đồ quan hệ sau:
Sv(MASV, HOSV,TENSV, NU, NGAYSINH, MALOP, TINH,
HOCBONG)
Lop(MALOP,TENLOP,SISO,MAKHOA)
Kh(MAKHOA,TENKHOA, SOCBGD)
Mh(MAMH, TENMH, SOTIET)
Kq(MASV, MAMH, DIEMTHI)
Phần giải thích các thuộc tính:
MASV Mã sinh viên
HOTEN Tên sinh viên
NU Nữ
NGAYSINH Ngày sinh
LOP Lớp
TENLOP Tên lớp
SISO Sỉ số lớp
MAKHOA Mã khoa
HOCBONG Học bổng
TINH Tỉnh
TENKHOA Tên khoa
SOCBGD Số cán bộ giảng dạy
MAMH Mã môn học
TENMH Tên môn học
SOTIET Số tiết
16
- DIEMTHI Điểm thi
5. Thể hiện của quan hệ:
Quan hệ r là một thể hiện (relation instance) của lƣợc đồ quan hệ tại một
thời điểm
6. Khóa – siêu khóa – khóa chỉ định – khóa chính – khóa ngoại:
Cho lƣợc đồ quan hệ R, SR. S đƣợc gọi là một siêu khóa (superkey) của
lƣợc đồ quan hệ R nếu với hai bộ tùy ý trong quan hệ R thì giá trị của các thuộc
tính trong S là khác nhau.
Một lƣợc đồ quan hệ có thể có nhiều siêu khoá. Siêu khoá chứa ít thuộc tính
nhất đƣợc gọi là khóa chỉ định, trong trƣờng hợp lƣợc đồ quan hệ có nhiều khóa
chỉ định, thì khóa đƣợc chọn để cài đặt gọi là khóa chính (Primary key) (trong các
phần sau khóa chính đƣợc gọi tắt là khóa)
Các thuộc tính tham gia vào một khóa đƣợc gọi là thuộc tính khóa (prime
key), ngƣợc lại đƣợc gọi là thuộc tính không khóa (non prime key).
Một thuộc tính đƣợc gọi là khóa ngoại nếu nó là thuộc tính của một lƣợc đồ
quan hệ này nhƣng lại là khóa chính của lƣợc đồ quan hệ khác.
Ví dụ 2.2: Ta hãy xem lƣợc đồ quan hệ sau:
Xe(SODANGBO, QUICACH, HINHDANG, MAUSAC, SOSUON,
SOMAY, MAXE, QUOCGIA)
Siêu khóa: (SOSUON,QUICACH),...
Khóa chỉ định: (SODANGBO,QUOCGIA), (SOSUON), (SOMAY),
(MAXE)
Khóa chính: MAXE
Thuộc tính khóa: SODANGBO,QUOCGIA, SOSUON, SOMAY, MAXE
Thuộc tính không khóa: QUICACH, HINHDANG, MAUSAC
Khóa của Sv là (MASV), Khoá của Mh là (MAMH), khoá của Kh là
(MAKHOA), khóa của Kq là (MASV,MAMH) khóa của Lop là MALOP, trong
Lop thuộc tính MAKHOA là khóa ngoại
7. Phụ thuộc hàm (Functional dependendies):
Là công cụ để biểu diễn 1 số ràng buộc toàn vẹn
8. Ràng buộc toàn vẹn (Intergrity constraints):
Ràng buộc toàn vẹn sử dụng các luật để định nghĩa các điều kiện đảm bảo
cho cơ sở dữ liệu luôn ở trạng thái an toàn. Chúng quyết định các trạng thái và các
17
- biến đổi hợp lệ của cơ sở dữ liệu. Ràng buộc toàn vẹn đƣợc dùng để ngăn chặn
việc đƣa các dữ liệu không hợp lệ vào cơ sở dữ liệu để cơ sở dữ liệu luôn an toàn
trong điều kiện đó. Do đó 1 ràng buộc toàn vẹn là một yêu cầu chặt chẽ mà phải
đƣợc đảm bảo đúng sau mỗi thao tác cập nhật cơ sở dữ liệu.
Các phép cập nhật trên cơ sở dữ liệu không nên đƣợc thực hiện một cách tùy
tiện, có thể đƣa cơ sở dữ liệu đến một tình trạng “xấu”, không còn phản ánh đúng
thế giới thực mà nó đại diện. Các phép cập nhật trên cơ sở dữ liệu phải tuân thủ
theo một số quy tắc ràng buộc nhất định. Các quy tắc ràng buộc này đƣợc gọi là
ràng buộc toàn vẹn.
Ví dụ: Mức lƣơng nhân viên không đƣợc vƣợt quá trƣởng phòng.
9. Các thao tác cơ bản trên các quan hệ:
Ngƣời ta có thể truy cập dữ liệu trong cơ sở dữ liệu quan hệ thông qua đại số
quan hệ, gồm một số phép toán cơ bản và phép toán dẫn xuất.
II. CÁC PHÉP TOÁN TRÊN ĐẠI SỐ TẬP HỢP:
1. Phép hợp (Union operation):
Cho hai lƣợc đồ quan hệ Q1 và Q2 có cùng tập thuộc tính {A1,A2,..,An}. r1
và r2 lần lƣợt là hai quan hệ trên Q1 và Q2. Phép hợp của hai lƣợc đồ quan hệ Q1
và Q2 sẽ tạo thành một lƣợc đồ quan hệ Q3. Q3 đƣợc xác định nhƣ sau:
Q3 = {A1,A2,..,An}
r3 = r1+r2 = {t | t r1 hoặc t r2}
Ví dụ 2.3:
r1 r2 r3 = r1 + r2
MASV MAMH DIEMTHI MASV MAMH DIEMTHI MASV MAMH DIEMTHI
99001 CSDL 5.0 99002 CTDL 2.0 99001 CSDL 5.0
99002 CSDL 2.0 99001 TTNT 5.0 99002 CTDL 2.0
99003 MANG 8.0 99003 CSDL 6.0 99003 MANG 8.0
99001 TTNT 5.0
99003 CSDL 6.0
2. Phép giao (Intersection):
Cho hai lƣợc đồ quan hệ Q1 và Q2 có cùng tập thuộc tính {A1,A2,..,An}. r1
và r2 lần lƣợt là hai quan hệ trên Q1 và Q2. Phép giao của hai lƣợc đồ quan hệ Q1
và Q2 sẽ tạo thành một lƣợc đồ quan hệ Q3 nhƣ sau:
18
- Q3 ={A1,A2,..,An}
r3 = r1*r2= {t | t r1 và t r2}
Ví dụ 2.4:
r1 r2 r3 = r1 * r2
MASV MAMH DIEMTHI MASV MAMH DIEMTHI MASV MAMH DIEMTHI
99001 CSDL 5.0 99002 CTDL 2.0 99002 CTDL 2.0
99002 CSDL 2.0 99001 TTNT 5.0
99003 MANG 8.0 99003 CSDL 6.0
3. Phép trừ (Minus, difference):
Cho hai lƣợc đồ quan hệ Q1 và Q2 có cùng tập thuộc tính {A1,A2,..,An}. r1
và r2 lần lƣợt là hai quan hệ trên Q1 và Q2. Phép trừ lƣợc đồ quan hệ Q1 cho Q2
sẽ tạo thành một lƣợc đồ quan hệ Q3 nhƣ sau:
Q3={A1,A2,..,An}
r3 = r1 - r2= {t | t r1 và t ∉ r2}
Ví dụ 2.5:
r1 r2 r3 = r1 - r2
MASV MAMH DIEMTHI MASV MAMH DIEMTHI MASV MAMH DIEMTHI
99001 CSDL 5.0 99002 CTDL 2.0 99001 CSDL 5.0
99002 CSDL 2.0 99001 TTNT 5.0 99003 MANG 8.0
99003 MANG 8.0 99003 CSDL 6.0
4. Phép tích Đề các (Cartesian Product, product):
Cho hai lƣợc đồ quan hệ Q1(A1,A2,..,An), Q2(B1,B2,..,Bm). r1 và r2 lần
lƣợt là hai quan hệ trên Q1 và Q2. Tích Descartes của hai lƣợc đồ quan hệ Q1 và
Q2 sẽ tạo thành một lƣợc đồ quan hệ Q3 nhƣ sau:
Q3 = Q1 Q2 = {A1,..., B1,...}
r3 = r1 x r2 = {(t1,t2)| t1 r1 và t2 r2}
Ví dụ 2.6:
19
nguon tai.lieu . vn