CƠ SỞ DỮ LIỆU
Ệ
GV: ThS. Lê Thị Ngọc Thảo
Cơ Sở Dữ Liệu
www.tdt.edu.vn
1
Đề 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 3: Ngôn ngữ SQL
Chương 4: Ràng buộc toàn vẹn
Chương 5: Phụ thuộc hàm
Chương 6: Chuẩn hóa CSDL
Chương 7: Tối ưu hóa câu truy vấn
www.tdt.edu.vn
2
Cơ Sở Dữ Liệu
Phương thức tiến hành
Lý thuyết: 30 tiết
Bài tập:
tậ 15 tiết
Thực hành: 30
Tự học: 150 tiết
Mô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
– Phạm Hữu Khang
[[6]] Modern Database Management
g
– Jeffrey
y A.Hoffer –
2002
Internet
www.tdt.edu.vn
4
Cơ Sở Dữ Liệu
Phương thức đánh giá
Điểm kiểm tra 10%
Trung
T
bì h cộng
bình
ộ Điểm
Điể thảo
thả luận
l ậ nhóm
hó
Đ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
Tại sao cần có 1 CSDL
Định nghĩa CSDL
Các đối tượng
ợ g sử dụng
ụ g CSDL
Hệ Quản trị CSDL – DBMS
Các mức biểu diễn 1 CSDL
Sơ đồ tổng quát 1 Hệ QTCSDL
Tính độc lập giữa dữ liệu & chương trình
Các mô hình dữ liệu
www.tdt.edu.vn
6
Cơ Sở Dữ Liệu
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,
kiện khái niệm,
niệm hình thức (tuổi,
(tuổi chuỗi
ngày tháng, tên người , …)
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
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ách
Cá h truyền
t ề thống
thố
Được xử lý bằng các ngôn ngữ như:
COBOL FORTRAN
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ụ:
www.tdt.edu.vn
8
Cơ Sở Dữ Liệu
Tại sao cần có 1 CSDL
www.tdt.edu.vn
9
Cơ Sở Dữ Liệu
Tại sao cần có 1 CSDL
Hạn chế của cách tiếp cận cũ:
Có sự liên
liê kết chặt
hặt chẽ
hẽ giữa
iữ cấu
ấ trúc
t ú luận
l ậ
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
www.tdt.edu.vn
10
Cơ Sở Dữ Liệu
CSDL là gì?
Là một bộ sưu tập rất lớn về các loại dữ liệu
tá nghiệp
tác
hiệ
Bao gồm nhiều loại dữ liệu (âm thanh, tiếng
nói,
ói chữ
hữ viết,
iết văn
ă bả
bản, đồ hoạ,
h
hình
hì h ả
ảnh
h tĩ
tĩnh
h
hay hình ảnh động.... )
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
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.
www.tdt.edu.vn
11
Cơ Sở Dữ Liệu
Database
Database (DB): là cấu trúc hợp nhất,
có thể chia sẽ,
sẽ lưu trữ trong máy tính _
chứa một tập hợp dữ liệu bao gồm
• End_user
_
data , là những
g data mà người
g
dùng
g
quan tâm
• 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
g về dữ liệu
ệ
www.tdt.edu.vn
12
Cơ Sở Dữ Liệu
Cá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
thác CSDL
Những người quản trị CSDL
www.tdt.edu.vn
13
Cơ Sở Dữ Liệu
Hệ quản trị CSDL
DataBase Management System DBMS
Là phần mềm điều khiển các chiến lược
truy nhập CSDL
CSDL.
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 đó
đó,
HQTCSDL tiếp nhận và thực hiện các thao
tác trên CSDL lưu trữ.
www.tdt.edu.vn
14
Cơ Sở Dữ Liệu
Hệ quản trị CSDL bao gồm
Ngôn ngữ giao tiếp giữa User và CSDL
Từ điển
ể dữ liệu (Data Dictionary)
Có biện pháp bảo mật tốt
Cơ 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
User và CSDL
Ngôn ngữ mô tả dữ liệu (Data
Definition Language - DDL)
Ngôn ngữ thao tác dữ liệu (Data
Manipulation Language - DML)
Ngôn ngữ truy vấn dữ liệu, hay ngôn
ngữ hỏi đáp có cấu trúc (Structured
Query Language - SQL)
Ngôn ngữ quản lý dữ liệu (Data
Control Language - DCL)
www.tdt.edu.vn
16
Cơ Sở Dữ Liệu
Các mức biểu diễn CSDL
Mức trong (vật lý):
Mức
Mứ lưu
l
trữ
t ữ CSDL
CSDL: dữ liệu
liệ gì,
ì lưu
l
ttrữ
ữ như
h
thế nào? ở đâu? Cần các chỉ mục gì? Việc
truy 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?
Mối quan hệ giữa chúng?
Mứ ngoài.
Mức
ài
Mức của người sử dụng và các chương
trình ứng dụng
dụng.
www.tdt.edu.vn
17
Cơ Sở Dữ Liệu
Các mức biểu diễn CSDL
www.tdt.edu.vn
18
Cơ Sở Dữ Liệu
Các mô hình dữ liệu
Mô
Mô
Mô
Mô
Mô
hình
hì h
hình
hình
hình
hình
www.tdt.edu.vn
dữ
dữ
dữ
dữ
dữ
liệu
liệ
liệu
liệu
liệu
liệu
mạng
phân
hâ cấp
ấ
quan hệ
thực thể
ể - kết hợp
hướng đối tượng.
19
Cơ Sở Dữ Liệu
Các mô hình dữ liệu
Mô hình dữ liệu mạng
Biểu
Biể diễ
diễn bằ
bằng 1 đồ thị có
óh
hướng
ớ
Gồm các mẫu tin (Record), loại mẫu tin
(R
(Record
dT
Type)) và
à loại
l i liên
liê hệ (Set
(S t Type)
T
)
Đặc điểm:
Đơn
Đ giản,
iả dễ sử
ửd
dụng
Không thích hợp trong việc biểu diễn các
CSDL có
ó quy mô
ô lớn
lớ
www.tdt.edu.vn
20
Cơ Sở Dữ Liệu
VD–Mô hình dữ liệu mạng
www.tdt.edu.vn
21
Cơ Sở Dữ Liệu
Các mô hình dữ liệu
Mô hình dữ liệu phân cấp
Mô hì
hình
h là 1 cây,
â ttrong đó mỗi
ỗi nút
út của
ủ cây
â
biểu diễn 1 thực thể, giữa nút con và nút
cha đượ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)
www.tdt.edu.vn
22
Cơ Sở Dữ Liệu
VD–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ơ
ơ sở
ở lý thuyết
th ết vững
ữ
chắc:
hắ khái
niệm lý thuyết tập hợp trên các
quan hệ.
hệ
Các khái niệm: thuộc tính
(Attribute) quan hệ (Relation)
(Attribute),
(Relation), lược
đồ quan hệ (Relation Schema), bộ
(Tuple),
(
p ), khóa (
(Key).
y)
www.tdt.edu.vn
24
Cơ Sở Dữ Liệu
Mô hình dữ liệu thực thể-kết hợp
Do P.P.Chen đề xuất năm 1976
Cá khái niệm:
Các
iệ
Thực thể (Entity)
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
26
Cơ Sở Dữ Liệu
Ví dụ
www.tdt.edu.vn
Mô hình dữ liệu hướng đối tượng
Ra đời cuối những năm 1980
Dự trên
Dựa
t ê cách
á h tiếp
tiế cận
ậ hướ
hướng đối
tượng
Sử dụng
d
các
á khái niệm:
iệ
lớ (Class),
lớp
(Cl
)
sự kế thừa (inheritance), …
Không được sử dụng rộng rãi
www.tdt.edu.vn
27
Cơ Sở Dữ Liệu
CƠ SỞ DỮ LIỆU
Ệ
GV: ThS. Lê Thị Ngọc Thảo
www.tdt.edu.vn
Cơ Sở Dữ Liệu
1
Chương 2: Mô hình dữ liệu
quan hệ
Các
Các
Các
Các
khái niệm cơ bản
thao tác cơ bản trên quan hệ
phép toán tập hợp
phép toán quan hệ
www.tdt.edu.vn
2
Cơ Sở Dữ Liệu
Cá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)
ụ thuộc
ộ hàm (
(Functional Dependency)
p
y)
Phụ
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
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ãmôn,
ô Tên-môn,
Tê
ô Số-Đv-Học-Trình.
Số Đ H T ì h
Loại thực thể HỌC-VIÊN có một số thuộc tính Mãkhoa, Mã
Mã-học-viên,
học viên, Tên
Tên-học-viên,
học viên, Ngày
Ngày-sinh,
sinh, Quê
Quêquán
www.tdt.edu.vn
4
Cơ Sở Dữ Liệu
Thuộ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)
www.tdt.edu.vn
5
Cơ Sở Dữ Liệu
Thuộc tính (tt)
Tên thuộc tính
Có tính chất
ấ gợi nhớ
Đặt đúng quy định của hệ QTCSDL
Không nên đặt quá dài
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
A, B
B, C,
C D,
D …,
còn X, Y, Z, W, … dùng thay cho 1
nhóm thuộc
ộ tính.
www.tdt.edu.vn
6
Cơ Sở Dữ Liệu
Thuộc tính (tt)
Kiểu dữ liệu (Data Type): Mỗi thuộc
tí h đề
tính
đều phải
hải th
thuộc
ộ một
ột kiể
kiểu dữ liệ
liệu
nhất định
Kiểu văn bản
Kiểu số
Kiểu luận lý
Kiểu ngày giờ
Cơ Sở Dữ Liệu
7
www.tdt.edu.vn
Thuộc tính (tt)
Một số kiểu dữ liệu trong SQL Server
Tên kiểu
Loại
Bit
Số nguyên
1
Kiểu bit – giá trị 0 hoặc 1
Int
Số nguyên
4
-2
2,147,483,648
147 483 648 Æ +2,147,483,648
+2 147 483 648
SmallInt
Số nguyên
2
-32768 Æ 32767
Decimal
Số thực
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
www.tdt.edu.vn
Byte
Diễn giải
-1038 –1 Æ 1038 -1
8
Cơ Sở Dữ Liệu
Thuộc tính (tt)
Miền giá trị (Domain):
Mỗi
ỗ thuộc tính chỉ chọn những giá trị trong một tập
hợp con của kiểu dữ liệu.
Tập hợp các giá trị mà một thuộc tính A có thể
nhận được gọi là miền gi trị của A
Ký
ý hiệu:
ệ Dom(A),
( ), MGT(A)
( )
Giá trị NULL:
Trong
g nhiều hệ QTCSDL, người
g
ta đưa thêm vào
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
Quan hệ (Relation)
Một quan hệ R
có n ngôi
được định nghĩa trên tập các thuộc tính U = {A1, A2,
... An}
kèm theo nó là một tân từ (quy tắc để xác định mối
quan hệ giữa các thuộc tính Ai)
Ký
ý hiệu:
hiệ
R(
(A1, A2, ... An).
)
Ví dụ:
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
trường".
www.tdt.edu.vn
10
Cơ Sở Dữ Liệu
Bộ 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ệ.
còn được gọi là mẫu tin (Record),dòng (Row)
Về mặt
ặ hình thức,, một
ộ bộ
ộ q là:
một vectơ gồm n thành phần
thuộc tập hợp con của tích Đề-các miền giá trị của
các thuộc tính
thỏa mãn tân từ của quan hệ
q = (a
( 1,..., an) ∈ (MGT(A1) x ... x MGT(An))
Ví dụ:
Bộ giá trị của quan hệ HỌC-VIÊN:
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 nhắc
hắ đến
đế lược
lượ đồ quan hệ tức
tứ 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
định nghĩa cụ thể trên một lược đồ
quan hệ
q
ệ với các bộ
ộg
giá trịị của nó.
www.tdt.edu.vn
12
Cơ Sở Dữ Liệu
Thể hiện của quan hệ
Thể hiện (tình trạng) của quan hệ R
kýý hiệu bởi TR
là tập hợp các bộ giá trị của quan hệ R vào một
thời điểm.
ÎT i những
ÎTại
hữ thời
hời điểm
điể khác
khá nhau
h thì
hì quan hệ sẽ
ẽ
có những thể hiện khác nhau.
Ví dụ: Quan hệ MÔN-HỌC
Mã môn
Tên môn
CSLT
Cơ sở
ở Lập trình
3
LTHDT
Lập trình Hướng đối tượng
4
CSDL
Cơ sở Dữ liệu
3
www.tdt.edu.vn
Số Tín chỉ
13
Cơ Sở Dữ Liệu
Khóa (Key)
Siêu khóa của lược đồ quan hệ Q:
là tập hợp các thuộc tính có thể
ể dùng làm cơ sở để
ể
phân biệt 2 bộ khác nhau tùy ý trong 1 quan hệ bất
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},
www.tdt.edu.vn
14
Cơ Sở Dữ Liệu
Khó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)
nội).
1 lược đồ có ít nhất 1 khóa chỉ định
và có thể có nhiều khóa chỉ định.
Ví dụ:
SINHVIEN (MaSV, HoTen, NSinh, DC)
Æ Khóa chỉ định: {MaSV}
www.tdt.edu.vn
15
Cơ Sở Dữ Liệu
Khóa (Key) – (tt)
Khóa chính (Primary Key):
Trong trường hợp lược đồ
ồ quan hệ Q có nhiều
ề
khóa chỉ định
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
g khóa còn lại
ạ gọi
gọ là Khóa tương
g đương.
g
Chú ý:
Thuộc tính có tham g
gia vào 1 khóa g
gọi là thuộc tính
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ông
Khô sửa
ử đổi giá
iá trịị thuộc
h ộ tính
í h khóa
khó
www.tdt.edu.vn
16
Cơ Sở Dữ Liệu
Khóa (Key) – (tt)
Khóa ngoại (Foreign Key):
Giả sử có 2 quan hệ R, S.
Một tập thuộc tính K của R được gọi là khóa ngoại
của R nếu K là khóa nội của S
S.
Ví dụ:
Mã-khoa
Mã khoa trong LỚP
LỚP-HỌC
HỌC 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
Phụ thuộc hàm
(Functional Dependency)
Phụ thuộc hàm (PTH)
Quan hệ R được định nghĩa trên tập thuộc tính
U = {A1, A2, ..., An}.
X,
X Y ⊂ U là 2 tập con của tập thuộc tính U.
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
www.tdt.edu.vn
18
Cơ Sở Dữ Liệu
Rà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
dữ liệu trong CSDL.
Mỗi RBTV được
ợ định
ị
nghĩa
g
bằng
g một
ộ
thuật toán trong CSDL.
ụ
Ví dụ:
NHANVIEN (MaNV, HoTen, HSL)
Æ Ta có RBTV: HSL phải >=1 và <=10
∀nv ∈ NHANVIEN thì nv.HSL >=1 & nv.HSL <= 10
www.tdt.edu.vn
19
Cơ Sở Dữ Liệu
Các thao tác cơ bản
Phép thêm (INSERT)
Phép xóa (DELETE)
Phép sửa (UPDATE)
www.tdt.edu.vn
20
Cơ Sở Dữ Liệu
Phé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ử
mới: TR = TR ∪ t.
t
Cú pháp:
INSERT (R; Ai1=v
v1, Ai2 =v
v2, ... Aim
i = vm)
Ai1, Ai2, ... Aim là các thuộc tính
v1, v2, ... vm là các g
giá trị thuộc MGT(A
( i1)), MGT(A
( i2) ,
..., MGT(Aim) tương ứng.
www.tdt.edu.vn
21
Cơ Sở Dữ Liệu
Phép thêm (INSERT)- (tt)
Phép thêm có thể không thực hiện được
h ặ làm
hoặc
là mất
ất tính
tí h nhất
hất quán
á của
ủ dữ liệu
liệ
trong CSDL vì các lý do:
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
gp
phù hợp
ợp với lược
ợ đồ q
quan hệ:
ệ 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.
ứng
www.tdt.edu.vn
22
Cơ Sở Dữ Liệu