Dữ liệu và Thông tin Dữ liệu là một mô tả hình thức về những sự kiện khái niệm hình thức tuổi chuỗingày tháng, tên người , … Thông tin là kết quả của quá trình xử lý dữ Thông tin là
Trang 1CƠ Ơ SỞ DỮ LIỆU SỞ DỮ LIỆU Ệ
GV: ThS Lê Thị Ngọc Thảo
11 www.tdt.edu.vn Cơ Sở Dữ Liệu
Đề cương môn học
Chương 1: Giới thiệu
Chương 2: Mô hình dữ liệu quan hệ
Chương 4: Ràng buộc toàn vẹn Chương 3: Ngôn ngữ SQL
Chương 5: Phụ thuộc hàm Chương 4: Ràng buộc toàn vẹn
Chương 6: Chuẩn hóa CSDL
Chương 7: Tối ưu hóa câu truy vấn
Trang 2Môn học được phân bổ : 15 tuần
www.tdt.edu.vn 3 Cơ Sở Dữ Liệu
Tài liệu tham khảo
Tóm tắt bài giảng (slide)
Các giáo trình:
[2] Giáo trình cơ sở dữ liệu – ĐH Tôn Đức Thắng
[3] Giáo trình nhập môn cơ sở dữ liệu – Nguyễn An Tế
[4] CSDL – Lý thuyết & Thực hành – Nguyễn Bá Tường
[5] Lập trình ứng dụng chuyên nghiệp SQL server 2000
[5] Lập trình ứng dụng chuyên nghiệp SQL server 2000 – Phạm Hữu Khang
[6] Modern Database Management – Jeffrey A.Hoffer – [ ] g y 2002
Internet
Trang 3Phương thức đánh giá
Điểm kiểm tra 10%
Trung bình cộng Điểm thảo luận nhóm
Điểm cộng của mỗi lần làm bài tập
ể
Điểm thi giữa học kỳ 20%
Kiểm tra trên máy - Đề mở
Thời lượng: 30 - 45 phút
Kết quả thi cuối học kỳ 70%
Kiểm tra trên giấy - Đề mở
Thời lượng: 90 - 120 phút
www.tdt.edu.vn 5 Cơ Sở Dữ Liệu
Chương 1: Giới thiệu
Trang 4Dữ liệu và Thông tin
Dữ liệu là một mô tả hình thức về những
sự kiện khái niệm hình thức (tuổi chuỗingày tháng, tên người , …)
Thông tin là kết quả của quá trình xử lý dữ
Thông tin là kết quả của quá trình xử lý dữliệu để rút ra “con số có nghĩa “
Dữ liệu là nền tảng để tạo ra thông
Dữ liệu là nền tảng để tạo ra thông tin, và từ đó là cơ sở để có được tri thức
www.tdt.edu.vn 7 Cơ Sở Dữ Liệu
Tại sao cần có 1 CSDL
Hướng tiếp cận hệ tập tin:
Cá h t ề thố
Cách truyền thống
Được xử lý bằng các ngôn ngữ như:
COBOL FORTRAN PASCAL
Mỗi ứng dụng sẽ có một tập hợp các tập tin riêng chứa dữ liệu riêng
Ví dụ:
Trang 5 Có sự liên kết chặt chẽ giữa cấu trúc luận
lý và cấu trúc vật lý của các tập tin và
chương trình ứng dụng
Trùng lắp dữ liệu
Dữ liệu thiếu nhất quán
Dữ liệu thiếu nhất quán
Trang 6 Dữ liệu được mã hoá dưới dạng các chuỗi
Dữ liệu đượ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
Cấu trúc lưu trữ dữ liệu tuân theo các quy
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ớiCơ sở dữ liệu phản ánh trung thực thế giới
dữ liệu hiện thực khách quan
www.tdt.edu.vn 11 Cơ Sở Dữ Liệu
• Metadata , là data về data
Metadata chứa mô tả về các đặc tính của dữ liệu và các mối liên kết của nó trong Database
Là dữ liệu bổ sung về dữ liệu ệ g ệ
Trang 7Các đối tượng sử dụng
Những người sử dụng CSDL không chuyên
Các chuyên viên tin học biết khai
Khi người sử dụng đưa ra yêu cầu truy
nhập bằng một ngôn ngữ dữ liệu nào đó
nhập bằng một ngôn ngữ 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ữ
Trang 8Cơ chế giải quyết tranh chấp dữ liệu.
Có cơ chế sao lưu (Backup) và phục hồi (Restore) dữ liệu khi có sự cố xảy ra
Cung cấp một giao diện (Interface) tốt
Bảo đảm tính độc lập giữa dữ liệu và
chương trình
www.tdt.edu.vn 15 Cơ Sở Dữ Liệu
Ngôn ngữ giao tiếp giữa
Ngôn ngữ quản lý dữ liệu (Data
Ngôn ngữ quản lý dữ liệu (Data
Control Language - DCL)
Trang 9truy xuất như thế nào?
Mức quan niệm (logic):
CSDL cần lưu những loại dữ liệu nào?
CSDL cần lưu những loại dữ liệu nào?
Mối quan hệ giữa chúng?
Trang 10Các mô hình dữ liệu
Mô hình dữ liệu mạng
Mô hì h dữ liệ hâ ấ
Mô hình dữ liệu phân cấp
Mô hình dữ liệu quan hệ
ể
Mô hình dữ liệu thực thể - kết hợp
Mô hình dữ liệu hướng đối tượng
www.tdt.edu.vn 19 Cơ Sở Dữ Liệu
Các mô hình dữ liệu
Mô hình dữ liệu mạng
Biể diễ bằ 1 đồ thị ó h ớ
Biểu diễn bằng 1 đồ thị có hướng
Gồm các mẫu tin (Record), loại mẫu tin
Trang 11cha được liên hệ với nhau theo 1 mối quan
hệ xác định
Gồm các loại mẫu tin (giống mô hình
mạng) và loại mối liên hệ (kiểu phân cấp)
Trang 12VD–Mô hình dữ liệu phân cấp
www.tdt.edu.vn 23 Cơ Sở Dữ Liệu
Mô hình dữ liệu quan hệ
Do E.F.Codd đề xuất năm 1970
Các khái niệm: thuộc tính
(Attribute) quan hệ (Relation) lược
đồ quan hệ (Relation Schema), bộ (Tuple), khóa (Key).
Trang 13 Loại thực thể (Entity Type)
Thuộc tính (Entity Attribute)
Khóa (Entity Key)
Mối kết hợp (Entity Relationship)
Số ngôi của mối kết hợp (Degree)
Thuộc tính của mối kết hợp (Attribute)
Bản số (RelationShip Cardinal)
www.tdt.edu.vn 25 Cơ Sở Dữ Liệu
Ví dụ
Trang 14Mô hình dữ liệu hướng đối tượng
Ra đời cuối những năm 1980
Dự t ê á h tiế ậ hướ đối
Dựa trên cách tiếp cận hướng đối tượng
Sử d á khái iệ lớ (Cl )
Sử dụng các khái niệm: lớp (Class),
sự kế thừa (inheritance), …
Không được sử dụng rộng rãi
Không được sử dụng rộng rãi
www.tdt.edu.vn 27 Cơ Sở Dữ Liệu
Trang 15CƠ Ơ SỞ DỮ LIỆU SỞ DỮ LIỆU Ệ
GV: ThS Lê Thị Ngọc Thảo
11 www.tdt.edu.vn Cơ Sở Dữ Liệu
Chương 2: Mô hình dữ liệu
quan hệ
Các khái niệm cơ bản
Các khái niệm cơ bản
Các thao tác cơ bản trên quan hệ
Các phép toán tập hợp
Các phép toán tập hợp
Các phép toán quan hệ
Trang 16Các khái niệm cơ bản
Thuộc tính (Attribute)
Quan hệ (Relation)
Bộ giá trị (Tuple)
Lược đồ quan hệ (Relation Schema)
Thể hiện của quan hệ
Khóa (Key)
Phụ thuộc hàm (Functional Dependency) ụ ộ ( p y)
Ràng buộc toàn vẹn (Integrity
Constraint)
www.tdt.edu.vn 3 Cơ Sở Dữ Liệu
Thuộc tính (Attribute)
Thuộc tính:
là một tính chất riêng biệt của một đối tượng là một tính chất riêng biệt của một đối tượng
cần được lưu trữ trong CSDL để phục vụ cho việc khai thác dữ liệu về đối tượng
Ví dụ:
Loại thực thể MÔN-HỌC có một số thuộc tính
Mã-ô Tê ô Số Đ H T ì h
môn, Tên-môn, Số-Đv-Học-Trình.
Loại thực thể HỌC-VIÊN có một số thuộc tính
Mã-khoa, Mã-học-viên, Tên-học-viên, Ngày-sinh, khoa, Mã học viên, Tên học viên, Ngày sinh, Quê
Quê-quán
Trang 17Thuộc tính (tt)
Các đặc trưng của thuộc tính:
Tên gọi (Name)
Kiểu dữ liệu (Data Type)
Miền giá trị (Domain)
Miền giá trị (Domain)
www.tdt.edu.vn 5 Cơ Sở Dữ Liệu
Không nên đặt quá dài
Không nên đặt quá dài
Nếu không cần lưu ý đến ngữ nghĩa
Nếu không cần lưu ý đến ngữ nghĩa thì tên thuộc tính thường được ký
hiệu bằng các chữ cái A B C D
hiệu bằng các chữ cái A, B, C, D, …, còn X, Y, Z, W, … dùng thay cho 1
nhóm thuộc tính ộ
Trang 18Thuộc tính (tt)
Kiểu dữ liệu (Data Type): Mỗi thuộc
tí h đề hải th ộ ột kiể dữ liệ
Kiểu ngày giờ
www.tdt.edu.vn 7 Cơ Sở Dữ Liệu
Thuộc tính (tt)
Một số kiểu dữ liệu trong SQL Server
Tên kiểu Loại Byte Diễn giải
Bit Số nguyên 1 Kiểu bit – giá trị 0 hoặc 1
Int Số nguyên 4 -2 147 483 648 Æ +2 147 483 648
Int Số nguyên 4 2,147,483,648 Æ +2,147,483,648
SmallInt Số nguyên 2 -32768 Æ 32767
Decimal Số thực -10 38 –1 Æ 10 38 -1
Float Số thực 8 -1.79E+308 Æ +1.79E+308
DateTime Ngày giờ 8 1/1/1753 Æ 31/12/9999
Char Ký tự ý ự Chiều dài cố định ị
VarChar Ký tự Chiều dài thay đổi
Trang 19nhận được gọi là miền gi trị của A
Ký hiệu: Dom(A), MGT(A) ý ệ ( ), ( )
Giá trị NULL:
Trong nhiều hệ QTCSDL, người ta đưa thêm vào g g miền giá trị của các thuộc tính một giá trị đặc biệt gọi là giá trị rỗng (NULL)
www.tdt.edu.vn 9 Cơ Sở Dữ Liệu
KHOA (Mã-khoa, Tên-khoa), là một quan hệ 2 ngôi.
Tân từ: "Mỗi khoa có một tên gọi và một mã số duy nhất để phân biệt với tất cả các khoa khác của
nhất để phân biệt với tất cả các khoa khác của
trường".
Trang 20Bộ giá trị (Tuple)
Một bộ giá trị:
là các thông tin của một đối tượng thuộc quan hệ là các thông tin của một đối tượng thuộc quan hệ
còn được gọi là mẫu tin (Record),dòng (Row)
Bộ giá trị của quan hệ HỌC VIÊN:
Bộ giá trị của quan hệ HỌC-VIÊN:
q = (01334,Lê Văn Nam,27/03/80,Cà Mau, 07TH1D)
www.tdt.edu.vn 11 Cơ Sở Dữ Liệu
Lược đồ quan hệ
(Relation Schema)
Lược đồ quan hệ:
là sự trừu tượng hóa của quan hệ
ở mức độ cấu trúc của một bảng hai chiều
Khi hắ đế lượ đồ hệ tứ là
Khi nhắc đến lược đồ quan hệ tức là
đề cập đến cấu trúc tổng quát của
một quan hệ
Khi đề cập tới quan hệ thì đó là một bảng có cấu trúc cụ thể hoặc một
bảng có cấu trúc cụ thể hoặc một
định nghĩa cụ thể trên một lược đồ
quan hệ với các bộ giá trị của nó
Trang 21Thể hiện của quan hệ
Thể hiện (tình trạng) của quan hệ R
kỳ được định nghĩa trên lược đồ quan hệ Q
1 lược đồ có ít nhất 1 siêu khóa và
có thể có nhiều siêu khóa.
Ví dụ:
SINHVIEN (MaSV, HoTen, NSinh, DC) ( )
Siêu khóa: {MaSV}, {MaSV, HoTen}, {MaSV,
NSinh},
Trang 22Khóa (Key) – (tt)
Khóa chỉ định:
Trong số những siêu khóa của 1 lược đồ quan hệ Q
chọn ra những Siêu khóa “nhỏ nhất” gọi là khóa chỉ định (Khóa nội)
Khi cài đặt trên 1 hệ QTCSDL:
Khi cài đặt trên 1 hệ QTCSDL:
• user chọn 1 khóa chỉ định làm khóa chính
• những khóa còn lại gọi là g ạ gọ Khóa tương đương g g
Chú ý:
Thuộc tính có tham gia vào 1 khóa gọi là thuộc tính g g khóa, ngược lại – thuộc tính không khóa.
Thuộc tính khóa không chứa giá trị NULL
Khô ử đổi iá ị h ộ í h khó
Không sửa đổi giá trị thuộc tính khóa
Trang 23 Mã-khoa Mã khoa trong trong LỚP-HỌC LỚP HỌC là khóa ngoại vì nó là là khóa ngoại vì nó là
khóa nội của quan hệ KHOA.
Mã-lớp trong HỌC-VIÊN là khóa ngoại vì nó là
Ớ khóa nội của quan hệ LỚP-HỌC
www.tdt.edu.vn 17 Cơ Sở Dữ Liệu
X Y ⊂ U là 2 tập con của tập thuộc tính U
X, Y ⊂ U là 2 tập con của tập thuộc tính U
Nếu tồn tại một ánh xạ f: X → Y thì ta nói rằng X
xác định hàm Y, hay Y phụ thuộc hàm vào X và ký hiệu là X → Y
Ví dụ:
SINHVIEN (MaSV, HoTen, NamSinh)
Æ Ta có PTH: MaSV Æ HoTen
Trang 24Ràng buộc toàn vẹn
(Integrity Constraint)
Ràng buộc toàn vẹn (RBTV):
Là một quy tắc định nghĩa trên một (hay nhiều)
quan hệ do môi trường ứng dụng quy định
Đó chính là quy tắc để đảm bảo tính nhất quán của
Đó chính là quy tắc để đảm bảo tính nhất quán của
Trang 25Phép thêm (INSERT)
Phép thêm
Thêm 1 bộ giá trị mới t vào quan hệ R (A1, A2, An)
Làm cho thể hiện TR của nó tăng thêm 1 phần tử
Giá trị khóa của bộ mới là rỗng ( NULL ) hoặc trùng
Giá trị khóa của bộ mới là rỗng ( NULL ) hoặc trùng
với giá trị khóa đã có
Bộ mới không phù hợp với lược đồ quan hệ ộ g p ợp ợ q ệ : sai thứ
tự, sai kiểu hoặc độ lớn của các thuộc tính
Một số giá trị của bộ mới không thuộc miền giá trị
của thuộc tính tương ứng
của thuộc tính tương ứng
Trang 26 A =v (j = 1 2 m) được coi như những điều kiện
Aij=vj (j = 1, 2, , m) được coi như những điều kiện thỏa một số thuộc tính của bộ t để loại bỏ 1 bộ ra
khỏi quan hệ.
www.tdt.edu.vn 23 Cơ Sở Dữ Liệu
Phép sửa (UPDATE)
Một số hệ QTCSDL đưa ra nhiều câu lệnh
khá h để ử dữ liệ EDIT UPDATE
khác nhau để sửa dữ liệu: EDIT, UPDATE
Cú pháp:
UPDATE (R; A i1 =c 1 , A i2 =c 2 , A im = c m ; A i1 =v 1 ,
A i2 =v 2 , A im = v m )
R là quan hệ cần sửa đổi; R là quan hệ cần sửa đổi;
Aij= cj (j = 1, 2, , m) là điều kiện tìm kiếm bộ giá trị
để sửa
Aij= vj (j = 1, 2, , m) là giá trị mới của bộ
Trang 27Hội của 2 quan hệ R và S:
được ký hiệu là R được ký hiệu là R ∪ S ∪ S
là một quan hệ Q có cùng thứ tự thuộc tính như trong quan hệ R và S,
Trang 28Phép hội (Union)
Maso HoTen Phai ChucVu
Ví dụ
DS ĐƠNVỊ A
Maso HoTen Phai ChucVu
100 Nguyen Van Nam Nam GD
101 Hoang Thi Xuan Nu KTT
C
103 Dang Ngoc Chien Nam TK
Maso HoTen Phai ChucVu
221 D H N N PP
DS ĐƠNVỊ B
221 Do Huu Ngoc Nam PP
101 Hoang Thi Xuan Nu KTT Maso HoTen Phai ChucVu
DS CTY
Maso HoTen Phai ChucVu
100 Nguyen Van Nam Nam GD
101 Hoang Thi Xuan Nu KTT
103 D N Chi N TK
103 Dang Ngoc Chien Nam TK
221 Do Huu Ngoc Nam PP
Trang 29 Giao của 2 quan hệ R và S là 1 quan hệ với các bộ
giá trị là các bộ giống nhau của cả 2 quan hệ R và S
29 www.tdt.edu.vn Cơ Sở Dữ Liệu
Phép giao (Intersection)
Ví dụ:
R (ABC) S (ABC) R ∩S = (ABC)
R (ABC) S (ABC) R ∩S (ABC)
Trang 30Phép giao (Intersection)
100 Nguyen Van Nam Nam GD
101 Hoang Thi Xuan Nu KTT
103 Dang Ngoc Chien Nam TK
103 Dang Ngoc Chien Nam TK
Maso HoTen Phai ChucVu
DS ĐƠNVỊ B
Maso HoTen Phai ChucVu
221 Do Huu Ngoc Nam PP
101 Hoang Thi Xuan Nu KTT
DS CTY
31
101 Hoang Thi Xuan Nu KTT
www.tdt.edu.vn C Cơơ Sở Dữ Liệu Sở Dữ Liệu
Hiệu của 2 quan hệ R và S
• là 1 quan hệ với các bộ giá trị của R là 1 quan hệ với các bộ giá trị của R
• sau khi đã loại bỏ các bộ có trong quan hệ S.
Trang 31Phép trừ (Minus)
100 Nguyen Van Nam Nam GD
100 Nguyen Van Nam Nam GD
101 Hoang Thi Xuan Nu KTT
103 Dang Ngoc Chien Nam TK Maso HoTen Phai ChucVu
DS ĐƠNVỊ B
221 Do Huu Ngoc Nam PP
101 Hoang Thi Xuan Nu KTT
DS CTY
100 Nguyen Van Nam Nam GD
DS CTY
g y
103 Dang Ngoc Chien Nam TK
Trang 33Phép chia 2 quan hệ R và S
Ký hiệ là R S là ột hệ Q ó ôi
Ký hiệu là R÷S là một quan hệ Q có n - m ngôi
Được định nghĩa như sau:
Q = R ÷ S = { t / sc: ∀u ∈ S (t u) ∈ R }
Q = R ÷ S = { t / sc: ∀u ∈ S, (t,u) ∈ R }
37 www.tdt.edu.vn Cơ Sở Dữ Liệu
Trang 34Phép chia (Division)
Ví dụ: Cho quan hệ KHẢ-NĂNG (MSPC, MSMB)
MSPC MSMB Hỏi: Cho biết các Phi công lái được
MSPC MSMB
32 102
30 101
Hỏi: Cho biết các Phi công lái được
cả 3 loại máy bay 100, 101, 103
Trả lời Đó là th ơng của phép
Trang 35Phép bù (complement)
Ví dụ:
Cho QH CUNG-CẤP (MANCC,MAHH) ( )
Với MANCC={S1, S2, S3} & HANG={Đinh, Oc, Vít}
Phép kết tự nhiên (Natural Join)
Phép kết tự nhiên (Natural – Join)
Trang 36Phép chiếu quan hệ R trên tập thuộc tính X:
Là 1 quan hệ Q xác định trên tập thuộc tính X, ký
Phép chiếu (Projection)
Ngữ nghĩa:
Trích từ R một số thuộc tính nào đó để tạo thành
Trích từ R một số thuộc tính nào đó để tạo thành
một quan hệ mới.
Số ngôi của quan hệ mới này bằng số thuộc tính
của tập con X.
Các bộ giá trị của các cột được trích nếu giống
nhau sẽ được loại bỏ để chỉ giữ lại một bộ duy
nhất.
Trang 37Phép chiếu (Projection)
Ví dụ:
Cho R(ABCD) X={A B} Y={A C}
• Chiếu của Bảng PHONGBAN
trên thuộc tính DIADIEM
DIADIEM Q5
trên thuộc tính DIADIEM
• Π DIADIEM(PHONGBAN)
Q5 Q6 Q8
Trang 38Phép chọn (Selection)
Giả sử:
R (A ( 11, Ann) là 1 quan hệ ) q
F là 1 điều kiện dựa trên tập con thuộc tính R +
Đánh giá điều kiện F trên bộ giá trị t ∈ R ký hiệu: F(t)
Mỗi biểu thức cơ sở chứa một phép so sánh:
Mỗi biểu thức cơ sở chứa một phép so sánh:
<, <=, >, >=, = và ≠ (<>) có dạng:
Thuộc tính so sánh với thuộc tính ộ ộ
Thuộc tính so sánh với hằng (literal)
Trang 40Gọi v là bộ ghép nối u vào t (hay bộ giá trị t
và u được "xếp cạnh nhau") được định nghĩa
và u được xếp cạnh nhau ) được định nghĩa như sau:
v = (t, u) = (a 1 , , a n , b 1 , , b m )
51 www.tdt.edu.vn Cơ Sở Dữ Liệu
Phép θ - kết (Theta – Join)
Ta có:
A A ∈ R và B ∈ S là 2 thuộc tính có thể so sánh được ∈ R + và B ∈ S + là 2 thuộc tính có thể so sánh được.
θ là 1 trong các phép toán so sánh {<, <=, >, >=, =, ? }
Phép kết nối 2 quan hệ R với S:
trên các thuộc tính A và B với phép so sánh θ
được định nghĩa qua:
A θB
A θB
R ⎥><⎜ S = {v = (t, u) ⎜ t ∈ R , u ∈ S và t.A θ u.B}
Trang 41Phép θ - kết (Theta – Join)
Phép kết nối 2 quan hệ R và S có thể xem
như được thực hiện qua 2 bước:
Bước 1: Tích Đề-các 2 quan hệ R và S.
Bước 2: Chọn các bộ giá trị thỏa mãn điều kiện A ? B ọ ộ g ị ệ
53 www.tdt.edu.vn Cơ Sở Dữ Liệu
Trang 42Phép kết tự nhiên
Nếu θ là phép toán so sánh bằng nhau (=)
thì đó là hé kết ối bằ (E i J i )
thì đó là phép kết nối bằng (Equi Join)
Nếu các thuộc tính so sánh là giống tên
h thì t kết ả ủ hé kết ối ẽ
nhau thì trong kết quả của phép kết nối sẽ loại bỏ đi 1 trong 2 thuộc tính đó
Îkhi đó phép kết nối được gọi là phép kết
Îkhi đó phép kết nối được gọi là phép kết nối tự nhiên (Natural Join)