Tài liệu môn Hệ quản Trị CSDL
Trang 2Mô hình dữ liệu quan hệ
Là mô hình quan hệ do EF.Codd đề xuất năm 1970
Gồm một hệ thống khái niệm như quan hệ, bộ,
như phép toán tập hợp, phép toán quan hệ.
Ràng buộc toàn vẹn quan hệ.
Nền tảng lý thuyết 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ủa các bộ giá trị
Mô hình dữ liệu quan hệ là mô hình được nghiên cứu nhiều nhất, và thực tiễn đã cho thấy rằng nó có cơ sở lý thuyết
vững chắc nhất
Mô hình dữ liệu này cùng với mô hình thực thể kết hợp
đang được sử dụng rộng rãi trong việc phân tích và thiết kế CSDL hiện nay
NN
CSDL hiện nay.
Trang 3…Mô hình dữ liệu quan hệ
Cung cấp một cấu trúc dữ liệu đơn giản và
Trang 4Các khái niệm của mô hình quan hệ
Quan hệ (Relation)
Thuộc tính (Attribute)
Lược đồ (Schema) ợ ( )
Bộ (Tuple)
Miền giá trị (Domain)
Miền giá trị (Domain)
Lượng số (Cardinality)
Bậc (Degree)
NN
Trang 7Thuộc tính
cùng kiểu dữ liệu
Trang 8Lược đồ quan hệ
Tên của quan hệ
Tên của tập thuộc tính
NN
Trang 9Lược đồ CSDL
Gồm nhiều lược đồ quan hệ
Trang 10Bộ (tuple)
Là các dòng của quan hệ (trừ dòng tiêu
đề-tê ủ á th ộ tí h)
tên của các thuộc tính)
Thể hiện dữ liệu cụ thể của các thuộc tính
trong quan hệ
NN
Trang 11Miền giá trị (domain)
Trang 13Bậc (degree)
Là số lượng các thuộc tính của quan hệ
Số thuộc tính Bậc của quan hệ
11 quan hệquan hệ nhất phân (unary relation)nhất phân (unary relation)
33 quan hệquan hệ tam phân (ternary relation)tam phân (ternary relation)
33 quan hệquan hệ tam phân (ternary relation)tam phân (ternary relation)
nn quan hệquan hệ n phânn phân
Trang 14Siêu khoá (superkey)
một tập các thuộc tính dùng để xác định duy
nhất một bộ của quan hệ
Siê kh á hiể hiê là tậ tất ả á th ộ tí h
Siêu khoá hiển nhiên là tập tất cả các thuộc tính của quan hệ
NN
14
Trang 15Ví dụ
Ví dụ siêu siêu khó khóa a
Xét 1 lược đồ quan hệ
STUDENT (StudentID, FirstName, LastName,
BirthDate, Major, SSN, ClassID)
Xác định các siêu khóa có thể có của R???
Trang 16Khoá dự tuyển (candidate key)
khoá K mà không có một tập con thực sự bất kỳ K’ ⊂ K lại là một siêu khoá
Tính duy nhất (uniqueness): các giá trị của K
Tính duy nhất (uniqueness): các giá trị của K trong các bộ của r là duy nhất
Tính tối giản (irreducibility hay minimality)
không có tập con thực sự K’ ⊂ K lại có tính duy
nhất.
Ví dụ: khóa dự tuyển của quan hệ STUDENT???
NN
16
Trang 17Khóa chính (primary key)
Khóa chính (primary key): là một khóa dự
tuyển được chọn để xác định duy nhất một bộ
của quan hệ Khóa chính có thể chỉ có 1 thuộc
tính hay khóa phức hợp
tính hay khóa phức hợp
Ví dụ: khóa chính của quan hệ STUDENT???
Trang 18Các định nghĩa khác về khoá…
là thuộc tính tham gia vào khoá dự tuyển
thuộc tính không tham gia vào khóa dự tuyển
nhiều hơn một thuộc tính
NN
18
Trang 19tập thuộc tính của 1 quan hệ tham chiếu đến
khóa dự tuyển của 1 quan hệ khác hay của
khóa dự tuyển của 1 quan hệ khác hay của
cùng 1 quan hệ
có chứa khóa ngoại
Trang 20Ví dụ
Xét các lược đồ quan hệ sau:
Xét các lược đồ quan hệ sau:
Employee(Emp_ID, Name, Dept_Name, Salary)Training(Emp ID Course Date Completed)
Trang 22Quan hệ (hay thể hiện quan hệ)
Một quan hệ r của lược đồ quan hệ R(A 1 , A 2 ,
A ) ký hiệu r(R) là một tập các bộ r = {t
…, A n ), ký hiệu r(R), là một tập các bộ r = {t 1 , t 2 , …, t k }
Trong đó mỗi t i là 1 danh sách có thứ tự của n giá
Trong đó mỗi t i là 1 danh sách có thứ tự của n giá trị t i =<v 1 , v 2 , …, v n >
Mỗi v j là một phần tử thuộc miền giá trị DOM(A j )
hoặc giá trị rỗng
NN
Trang 23Cơ sở dữ liệu quan hệ
(Relational database)
Là 1 tập hợp hữu hạn các quan hệ ập ợp ạ q ệ
(relation)
Dữ liệu được lưu trữ trong các quan hệ
Dữ liệu được lưu trữ trong các quan hệ
(table)
Có nhiều mối quan hệ giữa các bảng
Có nhiều mối quan hệ giữa các bảng
Trang 24Định nghĩa hình thức Khoá quan hệ
(Relational Keys)
Định nghĩa khóa theo quan hệ toán học:
Khóa (key) của R(U) với tập thuộc tính U={A1,
trong khoảng từ 1 đến n (n<=m), phải thỏa
mãn đồng thời 2 điều kiện sau:
Trang 25 DOM(A) hay MGT(A)
t.A hay t[A]
t.A hay t[A]
Trang 26Các ràng buộc toàn vẹn (Integrity constraints)
là các ràng buộc
là các ràng buộc
tính chính xác (accurary) và toàn vẹn dữ liệu
(data integrity) trong CSDL
lược đồ thì trách nhiệm của các DBMS là phải
bảo đảm sao cho chúng không bị vi phạm khi có bất kỳ giao dịch (transaction) nào được thực thi
bất kỳ giao dịch (transaction) nào được thực thi trong CSDL đó
NN
26
Trang 27Các ràng buộc toàn vẹn (Integrity constraints)
nghiệp vụ Các ràng buộc này thường nằm
nghiệp vụ Các ràng buộc này thường nằm
trong phần tài liệu về yêu cầu (requirement
Document) của ứng dụng
Nhân viên không thể có lương cao hơn giám đốc
Sinh viên phải thỏa mãn các điều kiện tiên
quyết mới được đăng ký môn học đó
Trang 29Toàn vẹn thực thể (Entity Integrity)
nhất của mỗi hàng trong bảng
nhất của mỗi hàng trong bảng
Để bảo toàn thực thể thì mỗi quan hệ có 1 khóa chính và giá trị của khóa chính không chứa giá trị g ị g g ị rỗng (null)
Ràng buộc khóa chính (primary key)
Ràng buộc duy nhất (unique, null, có thể có nhiều ràng buộc này trong một bảng)
Ràng buộc nhận dạng (identity, số, duy nhất,
tự động tăng) ự ộ g g)
Trang 30Giá trị Null
Dùng để chỉ:
Giá trị chưa biết của thuộc tính
Giá trị đã biết nhưng đang bị thiếu ị g g ị
Giá trị null khác số 0 hay chuỗi rỗng “”
NN
30
Trang 31Toàn vẹn miền (Domain Integrity)
liệu trong 1 thuộc tính
“Tất cả giá trị xuất hiện trong 1 thuộc tính của 1 quan hệ phải cùng 1 miền trị”
quan hệ phải cùng 1 miền trị
Trang 32Toàn vẹn tham chiếu
Trong SQL server thì toàn vẹn tham chiếu dựa vào mối
Trong SQL server, thì toàn vẹn tham chiếu dựa vào mối quan hệ giữa khóa ngoại và khóa chính của các bảng.
Bảng chứa khóa chính: được gọi là bảng chính
Trang 33Toàn vẹn tham chiếu
Referential integrity…
ắ
qua 3 quy tắc sau:
Không thể thêm các bản ghi vào bảng quan hệ nếu không có bản ghi tương ứng trong bảng
nếu không có bản ghi tương ứng trong bảng chính.
Không thể thay đổi giá trị trong bảng chính nếu g y g ị g g làm cho các bản ghi tương ứng trong bảng quan
hệ bị mất tham chiếu Không thể xóa các bản ghi trong bảng chính nếu
Không thể xóa các bản ghi trong bảng chính nếu
nó được tham chiếu bởi 1 số bản ghi trong bảng quan hệ
Trang 34…Toàn vẹn tham chiếu
(Reference Integrity)
mỗi giá trị khóa ngoại phải tương ứng với 1 giá
trị khóa chính trong một quan hệ khác (hoặc
trong cùng quan hệ này) hoặc giá trị khóa ngoại g g q ệ y) ặ g ị g ạphải là giá trị rỗng”
NN
34
Trang 35Ví dụ về khóa ngoại
Trang 36Toàn vẹn do người dùng xác định
(User
(User defined integrity) defined integrity)
không thuộc vào các loại toàn vẹn khác
xác định phụ thuộc vào mỗi DBMS
xác định phụ thuộc vào mỗi DBMS
Các ràng buộc mức bảng
Stored procedure
Trigger
20 nhân viên”
NN
36
Trang 37Quan hệ có cấu trúc tốt
(Well
(Well structured relation) structured relation)
Là một quan hệ có dư thừa dữ liệu là tối
thiểu và cho phép người sử dụng thêm,
xóa hay sửa đổi các bộ của quan hệ mà
không bị sai hay mâu thuẩn dữ liệu (data inconsistency)
Trang 38 Bất thường khi xóa bỏ
Bất thường khi sửa đổi
NN
38
Trang 39Ví dụ về bất thường dữ liệu
Xét quan hệ:
Emplo ee(Emp ID N me Dept N me S l Co e
Employee(Emp_ID, Name, Dept_Name, Salary, Course,
Date_Completed)
- Khi thêm 1 nhân viên mới mà nhân viên này không tham ê â ê ớ à â ê ày ô g a gia bất kỳ khóa học nào
- Nếu 1 nhân viên chỉ tham gia 1 khóa học và khóa học
này chỉ có duy nhất 1 nhân viên, nếu nhân viên này bị
xóa
- Khi 1 nhân viên tham gia nhiều khóa học, xuất hiện Khi 1 nhân viên tham gia nhiều khóa học, xuất hiện
nhiều lần trong quan hệ, nếu nhân viên này được tăng
lương
Æ Employee có phải là quan hệ cấu trúc tốt???