1. 1. T Tạ ại i sao sao c cầ ần n ph phả ải i c có ó m mộ ột t CSDL? CSDL? H Hệ ệ th thố ống ng c cá ác c t tậ ập p tin tin c cổ ổ đi điể ển n : : • • Đư Đượ ợc c t tổ ổ ch chứ ức c riêng riêng r rẽ ẽ, , ph phụ ục c v vụ ụ m mộ ột t m mụ ục c đ đí ích ch hay hay m mộ ột t b bộ ộ ph phậ ận n n nà ào o đ đó ó c củ ủa a doanh doanh nghi nghiệ ệp p. . • • Như Nhượ ợc c đi điể ểm m: : T Tí ính nh ph phụ ụ thu thuộ ộc c gi giữ ữa a chương chương tr trì ình nh v và à d dữ ữ li liệ ệu u . . Lưu Lưu tr trữ ữ tr trù ùng ng l lặ ặp p d dữ ữ li liệ ệu u Vi Việ ệc c chia chia s sẻ ẻ d dữ ữ li liệ ệu u b bị ị h hạ ạn n ch chế ế T Tố ốn n th thờ ời i gian gian xây xây d dự ựng ng Chi Chi ph phí í cho cho b bả ảo o tr trì ì chương chương tr trì ình nh l lớ ớn n
Trang 2B ài 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
1 Tại sao cần phải có một CSDL?
- Hệ thống các tập tin cổ điển :
• Được tổ chức riêng rẽ, phục vụ một mục đích hay một
bộ phận nào đó của doanh nghiệp.
• Nhược điểm:
- Tính phụ thuộc giữa chương trình và dữ liệu
- Lưu trữ trùng lặp dữ liệu
- Việc chia sẻ dữ liệu bị hạn chế
- Tốn thời gian xây dựng
- Chi phí cho bảo trì chương trình lớn
Trang 43 Cơ sở dữ liệu là gì?
ĐN: CSDL là một tập hợp các dữ liệu có cấu trúc
về một tổ chức nào đó được lưu trữ trên các thiết
bị lưu trữ thông tin thứ cấp như băng từ, đĩa từ,
Mục đích: Nhằm thoả mãn nhu cầu khai thác
thông tin của một hay nhiều người sử dụng phục vụ cho nhiều mục đích khác nhau
Điểm khác nhau nổi bật giữa CSDL và hệ thống File là : Các dữ liệu trong CSDL được lưu trữ tại một vị trí Với cùng một CSDL có thể được nhiều người sử dụng và phục vụ cho nhiều mục đích khác nhau.
Trang 5 Ưu điểm của CSDL:
Tối thiểu hoá dư thừa thông tin
Tính độc lập chương trình- ứng dụng
Nâng cao tính nhất quán dữ liệu
Nâng cao tính chia sẻ dữ liệu
Nâng cao chất lượng dữ liệu
Nâng cao khả năng truy cập và trả lại dữ liệu
Giảm chi phí bảo trì chương trình
Trang 6 Tính bảo mật
Tính độc lập
Tránh sự dư thừa thông tin
Có khả năng lưu trữ, phục hồi khi gặp sự cố
Hiệu suất sử dụng tốt, đảm bảo chế độ ưu tiên khitruy nhập dữ liệu
Tiêu chuẩn của một CSDL:
Trang 8Gồm 3 mức :
Mức ngoài : là tập tất cả các dữ liệu mà người sử dụng
cụ thể có thể nhìn thấy và được phép truy cập, là mức củangười sử dụng và các chương trình ứng dụng
Mức quan niệm : giải quyết vấn đề lưu trữ dữ liệu loại
gì, lưu trữ bao nhiêu, mối quan hệ trong CSDL và mối quan
hệ giữa các loại dữ liệu này như thế nào?
Mức trong( mức vật lý): Đây là mức lưu trữ dữ liệu Mục đích của mức này giải quyết vấn đề dữ liệu là gì, dữliệu được lưu trữ như thế nào và nhằm mục đích gì
5 Các mức biểu diễn một CSDL.
Trang 9CSDL mức khái niệm
View 1
View 2
View k
CSDL mức vật lý
User 1
User 2
User k
Mức ngoài Mức trung gian Mức vật lý
View ( khung nhìn) của một user là một tập hợp tất cảcác dữ liệu mà user đó nhìn thấy, được phép truy cập vào
Hình biểu diễn Sự phân mức một CSDL
Trang 106 Tính độc lập giữa dữ liệu và
Một CSDL là độc lập dữ liệu nếu nó có hoặc có thể cókhả năng phát triển mà không ảnh hưởng tới các hệ ứngdụng
Tính độc lập dữ liệu là " tính bất biến của các hệ ứngdụng đối với các thay đổi trong cấu trúc lưu trữ và chiếnlược truy nhập"
Có hai mức độc lập dữ liệu:
Trang 11 Độc lập dữ liệu mức vật lý : Có thể tổchức lại CSDL vật lý (như thay đổi các tổchức, cấu trúc dữ liệu) để làm thay đổihiệu quả tính toán của các chương trìnhứng dụng nhưng không đòi hỏi phải viếtlại chương trình ứng dụng.
Độc lập dữ liệu mức logic: Có thể
thay đổi lược đồ khái niệm như thêm, xoá , bớt thông tin của các thực thể
đang tồn tại trong CSDL nhưng không
làm ảnh hưởng tới các lược đồ con, do
đó không cần phải viết lại các chương
trình ứng dụng
Trang 12II Hệ quản trị CSDL
1 Khái niệm
- Là một phần mềm điều khiển mọi truy
nhập đối với CSDL Nó giúp người sử dụng
có thể dùng được hệ thống mà không cầnquan tâm tới thuật toán chi tiết hoặc biểudiễn dữ liệu trong máy
- Mỗi hệ QT CSDL được cài đặt dựa trên
mô hình dữ liệu cụ thể và hỗ trợ tối đa chongười dùng thực hiện các thao tác trên
đó
- VD : FOXPRO, ACCESS, ORACLE, v.v
Trang 132.Tính năng của hệ QTCSDL:
Tạo cấu trúc lưu trữ dữ liệu trên
Trang 14Ngôn ngữ giao tiếp với người sử dụng: Gồm :ngôn ngữ
mô tả , thao tác , truy vấn và quản lý dữ liệu
- Từ điển dữ liệu : là một CSDL của hệ QT CSDL sử dụng
để lưu trữ cấu trúc CSDL, các thông tin bảo mật, bảo đảm
an toàn dữ liệu và các cấu trúc ngoài
- Các biện pháp bảo mật
- Cơ chế giải quyết tranh chấp dữ liệu Các biện pháp:
+ Cấp quyên ưu tiên cho NSD + Đánh dấu yêu cầu truy xuất, phân chia thời gian, người nào yêu cầu trước thì có quyền truy xuất trước
Trang 15- Cơ chế phục hồi, sao lưu dữ liệu khi
Trang 16Bài 2 NHỮNG CÁCH TIẾP CẬN MỘT CSDL
Mô hình dữ liệu là sự trừu tượng hoá
môi trường thực, nó là biểu diễn dữ liệu ởmức quan niệm
Mỗi loại mô hình dữ liệu đặc trưng chomột cách tiếp cận dữ liệu khác nhau của
những nhà phân tích thiết kế CSDL
Một số loại mô hình dữ liệu phổ biến :
Trang 171 Mô hình dữ liệu quan hệ
hệ, tức là tập các bộ giá trị
Trang 182 Cách tiếp cận theo mô hình dữ liệu
mạng
Mô hình dữ liệu mạng (lưới) là mô hìnhđược biểu diễn bởi một đồ thị có hướng
Loại mẫu tin (Record Type): là mẫu đặc
trưng cho từng loại đối tượng riêng biệt, đượcbiểu diễn bởi một hình chữ nhật
Loại liên hệ ( Set Type): là sự liên kết
giữa một loại mẫu tin chủ với một loại mẫu tin thành viên, được biểu diễn bởi một hình bầudục
Sự liên kết giữa 2 loại mẫu tin được thểhiện bởi các cung có hướng đi từ loại mẫu tin chủ tới loại liên hệ và từ loại liên hệ tới loại
mẫu tin thành viên
Trang 19 Trong loại liên kết, cần chỉ ra số
1-1
1-n
n-1
Đệ quy
Trang 201-1
Hình 3 Mô hình dữ liệu mạng ( Network Model)
Trang 213 Mô hình dữ liệu phân cấp
Mô hình dữ liệu phân cấp là một cây ( Tree) trong đó mỗi nút của cây biểu diễn một thực thể, giữa nút con và nút cha được liên hệ với nhau theo một mối quan hệ xác định.
Loại mẫu tin : Giống trong mô hình mạng
Loại liên hệ : Kiểu liên hệ là phân cấp, theo cách:
Mẫu tin thành viên chỉ đóng vai trò thành viên
của một mối liên hệ duy nhất, tức là thuộc mộtchủ duy nhất
- Như vậy, mối liên hệ từ mẫu tin chủ tới các mẫu tin thành viên là 1-n, và từ mẫu tin thành viên tới mẫu tin chủ là 1-1.
- Giữa hai loại mẫu tin chỉ tồn tại một mối liên hệ duy nhất
Trang 22NK 1
HỘ2
…
HỘ 1
Trang 234 Mô hình dữ liệu hướng đối tượng
Trang 24Bài 3 Mô hình quan hệ của E.F Codd
I Khái quát chung
Mô hình quan hệ :
• Biểu thị dữ liệu trong một CSDL như một tập các quan
hệ
• Một quan hệ là một bảng các giá trị gồm các dòng và các cột.
• Mỗi dòng trong bảng là một tập các giá trị có liên quan đến nhau, biểu thị một sự kiện tương ứng với một thực thể hay một mối quan hệ tương ứng với thế giới thực
Trang 25VD: Quan hệ :
SINH_VIEN (Ma SV, Hoten, Nam sinh, DiaChi, Diem)
t3 8
Tây Hồ 1985
Hoàng Hà 003
t2 10
Ba Đình 1980
Minh Tuấn 002
t1 9
Hoàn Kiếm
1986 Ngọc Anh
001
Điem Diachi
Namsinh Hoten
Mã SV
Trang 26II Các khái niệm của mô hình quan hệ
1 Thuộc tính :
• Mỗi đối tượng quản lý đều có các đặc tính riêng biệt, gọi
là các thuộc tính Kí hiệu các thuộc tính là A, B, C, A1, A2,
• VD: Mã sinh viên, họ tên, quê quán, ngày sinh,
• Các thuộc tính được đặc trưng bởi một tên gọi, kiểu giá trị, miền giá trị của chúng
2 Lược đồ quan hệ :
Một lược đồ quan hệ được đặc trưng bởi tên lược đồ và một tập hữu hạn các thuộc tính U={A1, A2, , An} Lược đồ R với tập thuộc tính là U= { A1, A2, An} được kí hiệu là R(U) hay R ( A1, A2, An).
Trang 273 Miền giá trị :
- Là tập hợp các giá trị nguyên tử mà thuộc tính có thểnhận
- Để đặc tả một miền, người ta dùng:
tên miền, một kiểu dữ liệu và khuôn dạng dữ liệu
VD: Miền Mã SV là tập hợp các dãy kí tự có độ dài từ 5
ki tự Miền Điểm là tập các giá trị số thuộc [0 10]
Trang 284 Quan hệ :
Một quan hệ trên một tập thuộc tính là một tậpcon của tích Desscartes cuả một hay nhiều miền
Cho một quan hệ r xác định trên tập thuộc
tính ={ A1, A2, ,An}
Khi đó r Dom(A1) x Dom(A2) x x Dom(An), trong đó Dom(Ai ) là miền của thuộc
Trang 29 Có thể quan niệm quan hệ là một bảng haichiều, mỗi cột là một thuộc tính thường gọi là
trường, mỗi dòng là một bộ n
VD: Quan hệ R= {(di1,di2, ,din ) / i=1 m}
An
A2
A1
dmn
d22
d21
d1n
d12
d11
Trang 30 Một số chú ý :
- Các tập D1= Dom ( A1), , Dn=Dom ( An)
là tập các miền trị của R
- n được gọi là bậc của quan hệ r
- M được gọi là lực lượng của r
- Quan hệ bậc 1 là quan hệ nhất nguyên, quan hệ bậc hai là quan hệ nhị nguyên, quan hệbậc n là qua hệ n nguyên
Trang 31 Các tính chất dặc trưng của một quan hệ.
• Một quan hệ có một tên phân biệt với các quan hệ khác
• Mỗi ô trong bảng quan hệ chứa một giá trị nguyên tố
• Mỗi thuộc tính trong một quan hệ có một tên phân biệt
• Các giá trị của một thuộc tính thuộc cùng một miền
• Thứ tự của các thuộc tính, các bộ là không quan trọng
• Các bộ trong quan hệ là phân biệt
Trang 32VD: Quan hệ TKB( Ngày, tiết thứ, môn, phòng, GV}
là một quan hệ 5 ngôi
t3 Hoàng Hà
200 CSDL
3 26/3
t2 Minh Tuấn
102 NN
2 25/3
t1 Ngọc Anh
202 CSB2
1 24/3
GV Phòng
Môn Tiết thứ
Ngày
t1 (24/3, 1, CSB2, 202, Ngoc Anh)= t1(R)
Chú ý : Các khái niệm tương đương
(Fox)(SQL-Access)
(NN ĐSQH)
Bản ghiDòng
Bộ
TrườngCột
Thuộc tính
TệpBảng
Quan hệ
Trang 334 Khoá và siêu khoá
a Siêu khoá
• Siêu khoá của một quan hệ R là một tập hợp gồmmột hay nhiều thuộc tính của lược đồ R có tính chất xác
định duy nhất một bộ trong mỗi thể hiện của R
• Nếu SK là siêu khoá của R=< ,F> thì SK vàtrong một quan hệ bất kỳ của lược đồ R không thể có hai
bộ khác nhau nhưng có cùng một giá trị trên SK
• Mỗi quan hệ có ít nhất một siêu khoá, đó là - tập tất
cả các thuộc tính của quan hệ
• Mọi tập con của chứa một siêu khoá cũng là siêukhoá
Trang 34Khoá của một lược đồ quan hệ R là một siêu khoá
của lược đồ này sao cho mọi tập con thực sự của nó
không là siêu khoá
Như vậy, một khoá là một siêu khoá tối thiểu hiểutheo nghĩa, đó là một siêu khoá mà chúng ta không thể bỏbớt thuộc tính nào ra khỏi nó mà vẫn giữ được tính chấtxác định duy nhất cho mỗi bộ
VD: Xét quan hệ SINH_VIEN
- Các siêu khoá : {Mã SV, Họ tên} hay {Mã SV, ngày
sinh, điểm,},
- Khoá : {Mã SV}
Trang 35•- Một lược đồ quan hệ có nhiều hơn một khoá, khi đómỗi khoá được gọi là một khoá dự tuyển.
• Thông thường có một khoá dự tuyển được chọn làm
khoá chính Ta nên chọn khoá dự tuyển có một thuộctính hoặc có ít thuộc tính nhất làm khoá chính
• Khoá chính là khóa được dùng để nhận diện một bộtrong quan hệ do đó các giá trị của các bộ ở các thuộctính trong khoá chính không được null
• Thuộc tính khoá : là các thuộc tính có tham gia vàomột khoá ( khoá dự tuyển hay khoá chính)
• Ngược lại, thuộc tính không tham gia vào một khoánào gọi là thuộc tính không khoá.
Trang 36VD: Quan hệ KHOA
- Quan hệ trên có 3 khoá dự tuyển là { Mã khoa}, {
Tên khoa}, {Điện thoại } Người ta thường chọn Mã khoa làm khoá chính Như vậy, thuộc tính không khoá
chỉ còn là : Địa chỉ và Chủ nhiệm khoa
Nguyễn AnhA3
04.768343
CNTTSPCN
Hoài NamA4
04.768945
VănSPV
Nguyễn AnhA3
04.768459
ToánSPT
Chủ nhiệm
khoa
Địa chỉ
Điện thoại
Tên khoa Mã
khoa
Trang 37c Khoá ngoài :
Một tập thuộc tính K là khoá ngoài của một quan hệ
r nếu K không là khoá chính của quan hệ r nhưng lại
là khoá chính của một quan hệ khác
VD: Có hai quan hệ:
SINHVIEN (Mã SV, Tên SV, , Mã lớp)LOP( Mã lớp, Tên lớp, )
Mã lớp là khoá ngoài của quan hệ SINHVIEN
Trang 38Bài 4 Đại số quan hệ
I Đại số quan hệ
Đại số quan hệ là cơ sở của một ngôn ngữ bậccao để thao tác trên các quan hệ Đại số quan hệ gồm 8 phép toán cơ bản Bằng các phép toán này, ta có thể trích
dữ liệu từ một hay nhiều quan hệ để tạo ra các quan hệmới
Trang 39II Các phép toán lý thuyết tập hợp
-Gọi r là quan hệ trên tập thuộc tính R={A1, ,An}.
Giả thiết rằng r là tập hữu hạn các bộ
- Khái niệm khả hợp : Hai lược đồ quan hệ R1 và
R2 được goị là khả hợp nếu có cùng bậc n và
DOM(Ai) = DOM(Bi) (1in)
- Cho hai quan hệ R1=(A1,A2, An) và
R2=(B1,B2, ,Bn) là hai quan hệ khả hợp, ta có địnhnghĩa:
Trang 401.Phép hợpHợ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 hoặc thuộc cả hai quan hệ.
a2 b2 c1
Trang 423 Phép trừ
Hiệu 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 nhưng không thuộc s
Chú ý : phép giao của hai quan hệ có thể biểu diễn qua phép trừ:
r s = r- ( r - s )
Trang 434 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} Tích Đề - Các
r x s của r và s là tập ( n + m ) - 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.
a2 b2 c2 d e f a2 b2 c2 d1 e1 f1
Trang 445 Phép chiếu
Phép chiếu trên một quan hệ thực chất là loại bỏ đi một số thuộc tính và giữ lại những thuộc tính còn lại của quan hệ đó Dạng tổng quát : < ds_thuộc tính> (< tên quan hệ >)
là kí hiệu phép chiếu
< ds_thuộc tính> : danh sách các thuộc tính được lấy ra
Nếu < ds_thuộc tính > chỉ có những thuộc tính không khoá thì phép chiếu sẽ tự bỏ đi những bộ lặp.
Phép chiếu không có tính giao hoán.
Nếu <ds1 > < ds2> thì
<ds1>( <ds2>(R)) = <ds1>(R)
Trang 45Ví dụ :
Cho quan hệ SV ( Mã SV, Họ tên, Ngày sinh, điểm) như sau :
10 004
7 003
9 002
8 001
Điểm
Mã SV
Thì phép chiếu Mã Sv, Điểm (SV) sẽ cho ta một quan hệ mới chỉ gồm hai thuộc tính là Mã SV và Điểm
10 21/6/85
Hồng Vân 004
7 25/3/87
Xuân Mai 003
9 13/4/85
Ngọc Bích 002
8 23/4/86
Trần Anh 001
Điểm Ngày sinh
Họ tên
Mã SV
DIEM( Mã SV, Điểm ) :
Trang 466 Phép chọn
Phép chọn dùng để trích chọn một tập con trong một quan hệ, các bộ được trích chọn phải thoả mãn điều kiện chọn ( Phép chọn trích ra các hàng trong quan hệ)
Dạng tổng quát : < điều kiện > (< Tên quan hệ >)
là kí hiệu phép chọn
Kết quả thu được từ phép chọn là một quan hệ có danh sách thuộc tính được chỉ ra trong Tên quan hệ
Điều kiện : là các biểu thức điều kiện cần thoả mãn Các
biểu thức này được nối với nhau bằng các phép: ( phủ định ),
(giao), (hợp)
Phép chọn có tính giao hoán.
Trang 477 Phép kết nối
Phép kết nối : Dùng để kết hợp hai bộ có liên quan từ hai quan hệ thành một bộ.
Trước hết ta làm quen với khái niệm xếp cạnh nhau:
Cho bộ d =( d1, d2, ,dm) và bộ e= (e1, e2, ,
em) Phép xếp cạnh nhau được định nghĩa qua :
d e = ( d1, d2, , dm,e1, e2, ,em).
Trang 48Gọi là một trong các phép so sánh Phép kết nội
được định nghĩa:
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ĩaqua
r s = { (t u ) | t r và u s và t[A] u[B] }
A B
Trang 49 Kết quả của phép kết nối là một quan hệ Q có ( n+m) thuộc tính, mỗi bộ trong Q thoả mãn điều kiện kết nối.
Các bộ có giá trị rỗng tại thuộc tính kết nối
thì không xuất hiện trong kết quả của phép kết.
Bản chất của phép kết nối là phép lấy tích
Đề - Các của hai quan hệ và chọn ra các bộ thoả mãn điều kiện kết.
Trang 50Ví dụ :
r ( A B C ) s( C D E ) r s = ( A B C C D E)
a1 1 1 1 d1 e1 a1 1 1 1 d1 e1 a2 2 1 2 d2 e2 a2 2 1 1 d1 e1 a1 2 2 3 d3 e3 a2 2 1 2 d2 e2
a1 2 2 1 d1 e1 a1 2 2 2 d2 e2
B≥ C
Trang 51 Nếu điều kiện kết nối chứa phép so sánh (=) bằng thìphép kết nối được gọi là phép kết nối bằng.
Trường hợp kết nối bằng tại thuộc tính cùng tên củahai quan hệ và một trong hai thuộc tính đó bị loại bỏ, thì phépkết nối được gọi là kết nối tự nhiên Kí hiệu là " * ".
Biểu diễn của phép kết nối tự nhiên :
r(ABC) * s(CDE) = { t[ABCDE]/ t[ABC] r và t[CDE ] s}
VD : với hai quan hệ r và s nêu trên thì :
r(ABC) * s(CDE) = ( A B C D E)
a1 1 1 d1 e1 a2 2 1 d1 e1 a1 2 2 d2 e2
Trang 53Cơ sở dữ liệu minh hoạ
Cho một cơ sở dữ liệu Thực tập gồm 3 quan hệ sau đây:
SV( SV#, HT, NS, QUE, HL) DT(DT#, TDT, CN, KP)
SD(SV#, DT#, NTT, KM, KQ)
-Quan hệ SV chứa thông tin về các sinh viên trong một lớp của một trường đại học Trong đó:
SV# : mã số sinh viên
HT : Họ và tên sinh viên
NS : Năm sinh của sinh viên QUE: quê quán
HL : Học lực thể hiện qua điểm trung bình