Mô hình dữ liệu phân cấpMô 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
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
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 khi truy nhập dữ liệu
Tiêu chuẩn của một CSDL:
Trang 8Mứ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à chương trình
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ệ ứng dụng
Tính độc lập dữ liệu là " tính bất biến của các hệ ứng dụng đối với các thay đổi trong cấu trúc lưu trữ và chiến lượ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 đổi
hiệ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ết lạ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ần quan tâm tới thuật toán chi tiết hoặc biểu diễ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 cho ngườ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
máy Cho phép đưa dữ liệu vào máy tính theo cấu trúc đã tạo ra.
Cho phép khai thác CSDL đã lưu trữ
Tạo cơ chế đảm bảo an toàn, bí mật cho dữ liệu trong quá trình thao tác
Trang 14-
3 Các thành phần trong hệ QT CSDL:
Ngô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
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 cho mộ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ệ
Mô hình dữ liệu quan hệ do E.F
Codd đề xuất.
Nền tảng cơ bản của nó là khái
niệm lý thuyết tập hợp trên các quan
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
trưng cho từng loại đối tượng riêng biệt, được biể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ầu dụ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ố lượng các mẫu tin tham gia trong mỗi kết hợp Các loại liên hệ:
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ột chủ 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Ộ 1
Trang 234 Mô hình dữ liệu hướng đối tượng
- Cho phép biểu diễn các đối tượng
khá tự nhiên và sát với thực tế.
- Hỗ trợ các ngôn ngữ thao tác hướng đối tượng mạnh, cho phép người sử dụng dễ dàng biểu diễn cả các truy vấn phức tạp
Trang 24Bài 3 Mô hình quan hệ của E.F
• 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 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 27VD: 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ập con
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 tính Ai
Như vậy, quan hệ r là một tập hợp các n_ bộ có dạng :
r = {( a1, a2, , an) | ai ∈ Dom(Ai), i= 1,
2, ,n }
Trang 29 Có thể quan niệm quan hệ là một bảng hai
chiều, mỗi cột là một thuộc tính thường gọi là
dm1 dm2 dmn
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ệ
• 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}
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ồm mộ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êu
khoá
Trang 34
b.Khoá
Khoá 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ểu theo 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ất xá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ộc tí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ộc tí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ào mộ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
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
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ậc cao
để 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) (1≤i≤n)
- Cho hai quan hệ R1=(A1,A2, An) và
R2=(B1,B2, ,Bn) là hai quan hệ khả hợp, ta có định
nghĩa:
Trang 401.Phép hợp
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 hoặc thuộc cả hai quan hệ.
Biểu diễn hình thức:
r ∪ s = { t/ t ∈ r hoặc t ∈ s hoặc t ∈ r và s }
Ví dụ :
r ( A B C) s ( A B C) r ∪ s = ( A B C) _ _
a1 b1 c1 a1 b1 c1 a1 b1 c1 a2 b1 c2 a2 b2 c2 a2 b1 c2 a2 b2 c1 a2 b2 c2 a2 b2 c1
Trang 42a2 b2 c1
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.
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 :
Mã SV
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épchọ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ĩa qua.
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ủa hai
quan hệ và một trong hai thuộc tính đó bị loại bỏ, thì phép kế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
Trang 54- Quan hệ DT chứa thông tin về đề tài nhà trường quản lý Trong đó :
DT# : mã số đề tài TDT : tên đề tài
CN : họ và tên chủ nhiệm đề tài
KP : Kinh phí cấp cho đề tài ( triệu đồng)
- Quan hệ SD chứa thông tin về tình hình thực tập của các
sinh viên theo các đề tài Trong đó :
NTT : nơi thực tập
KM : khoảng cách từ nơi thực tập đến trường
KQ : kết quả thực tập theo đề tài đã chọn
* Giả thiết là mỗi sinh viên có thể tham gia nhiều đề tài, mỗi đề tài sinh viên đó thực tập tại một địa điểm.
Trang 57Yêu cầu :
- Hãy viết các biểu thức đại số quan hệ biểu diễn các yêu cầu sau :
1 Cho thông tin về những sinh viên sinh trước năm 1985 có quê
ở Hà Nội.
2 Cho biết các địa điểm thực tập xa trường (KM >100) của đề
tài số 5.
3 Cho thông tin về các đề tài có sinh viên thực tập.
4 Cho biết mã của các đề tài không có sinh viên nào tham gia.
5 Cho danh sách các tỉnh có sinh viên đến thực tập.
6 Cho thông tin về việc thực tập tại Hải Phòng của sinh viên.
7 Cho biết mã của những đề tài có kinh phí lớn hơn 1 triệu và
nhỏ hơn 2 triệu
8 Cho biết mã của sinh viên dưới 20 tuổi, thực tập khá ( có điểm
kết quả thực tập >=6.5)