Vì một CSDL suy diễn được xem như tập các câu, tức là theo quan điểm lý thuyết mô hình, không một phép loại bỏ hay cập nhật nào được phép thực hiện trên sự kiện.. Chuyển đổi từ mô hình đ
Trang 1con (0,n)
cha, me
(1,1)
Ôn tập:
1. Các qui tắc ECA (Event-Condition-Action rules)
2. Các vấn đề cần xem xét khi thiết kế và cài đặt CSDL tích cực
3. Phân biệt Valid time, transaction time, bitemporal time trong CSDL thời gian
4. Mô hình và thao tác trên CSDL suy diễn
5. Mô hình cơ sở dữ liệu đối tượng
6. Chuyển đổi từ mô hình đối tượng sang mô hình quan hệ
7. Chuyển đổi từ mô hình ER sang mô hình quan hệ
8. Truy vấn trong cơ sở dữ liệu hướng đối tượng và ODMG 3.0
9. Phân mảnh trong CSDL phân tán
10.Xử lý truy vấn trong CSDL phân tán
11.Lịch tuần tự, khả tuần tự của các giao tác
12.Thuật toán khóa 2 pha
13.Deadlock và Starvation
14.Tiếp cận thời nhãn và ma trận tương thích
Bài làm
1 Các qui tắc ECA (Event-Condition-Action rules) : có tác dụng đảm bảo tính
toàn vẹn trong CSDL Một qui tác được cấu thành từ 3 thành phần (trong CSDL tích cực)
Qui tắc sự kiện (event): là các sự kiện luôn áp dụng cho cập nhật dữ liệu, gắn với CSDL Chúng cũng có thể là sự kiện thời gian hoặc một kiểu
CSDL tích cực nâng cao: nâng cao chức năng CSDL truyền thống với
đầy đủ các quy tắc - khả năng xử lý
CSDL tích cực cung cấp một máy có khả năng và hoạt động tương tự như bất kỳ ứng dụng hệ thống CSDL như:
+ Tích hợp ràng buộc+ Khung nhìn
+ Thống kê kết quả+ Giám sát hoặc thông báo,…
• TrongcơsởdữliệuquanhệcácquytắctíchcựcđượcviếtdướidạngcácTrigger.Vídụ: Với hai bảng:
o DonVi (MaDV, TenDV,TongLuong, MaNQL)
Trang 2o NhanVien (MaNV, TenNV, NgaySinh, GioiTinh,Luong, MaDV)
Một quytắcsẽ có dạngnhư sau:
o Event:Hành động Insert một bản ghi trongbảng NhanVien
o Condition:
GiátrịcủaMaDVđượcthêmvàokhôngcótrongtậpgiátrịhiệncótrong bảng DonVi
NếuMaDVđượcthêmvàolàđãcótrongbảngDonViTổnglươngcủa đơn
vị đó cần được thay đổi
o Action:
Sửađổi sai sótdo sự kiện gâyra
Thôngbáo lỗicho người dùng
2 Các vấn đề cần xem xét khi thiết kế và cài đặt CSDL tích cực:
Nguyên tắc 1: Hoạt động, ngừng hoạt động và nhóm qui tắc: Một hệ thống CSDL tích cực sẽ cho phép người sử dụng hoạt động, ngừng hoạt động và hủy các quy tắc bởi tên của quy tắc
Nguyên tắc 2: Hành động gây ra sẽ xảy ra trước, sau hoặc đồng thời với lúc bắt đầu sự kiện
Nguyên tắc 3: Hành động xảy ra hiện tại được suy xét như một sự thực hiện rời rạc hoặc là một phần của một thực hiện tương tự gây ra qui tắc
o Có 3 khả năng chính đối với qui tắc suy xét:
1 Suy xét trực tiếp: Điều kiện được ước lượng là một phần của thực hiện tương tự khi bắt đầu sự kiện, và được ước lượng trực tiếp Có 3 lựa chọn:
+ Ước lượng điều kiện trước khi sự kiện bắt đầu.+ Ước lượng điều kiện sau khi sự kiện bắt đầu
+ Ước lượng điều kiện thay thế việc thực hiện khi sự kiện bắt đầu
2 Trì hoãn sự suy xét: Điều kiện được ước lượng vào cuối của sự thực hiện bao gồm sự kiện bắt đầu
3 Suy xét tách rời: Điều kiện được ước lượng như một thực hiện rời rạc, được tái tạo từ lúc bắt đầu thực hiện
3 Phân biệt Valid time, transaction time, bitemporal time trong CSDL thời gian:
Valid time (VT): thời gian sự kiện xảy ra, thông tin cập nhật dữ liệu lấy kiểu thời gian thực
Trang 3 Transaction time (TT): thời gian thực hiện cập nhật vào CSDL (thời gian
hệ thống)
Bitemporal time (BT): bao gồm cả VT và BT
user-define time: do tùy người sử dụng
4 Mô hình và thao tác trên CSDL suy diễn:
4.1 Mô hình CSDL suy diễn:
Kí pháp toán học để mô tả hình thức dữ liệu và các quan hệ
Kỹ thuật để xử lý dữ liệu như trả lời các câu hỏi, kiểm tra điều kiện toàn vẹn
Logic bậc một được dùng như kí pháp toán học để mô tả dữ liệu trong mô hình CSDL suy diễn và dữ liệu được xử lý trong các mô hình như vậy nhờ việc đánh giá công thức logic
Tuy nhiên để dễ biểu diễn hình thức các khái niệm về CSDL suy diễn, người ta thường dùng phép toán vị từ, tức logic vị từ bậc nhất Logic vị từ bậc nhất là ngôn ngữ hình thức dùng để thể hiện các quan hệ giữa các đối tượng và để suy diễn ra quan hệ mới
Các định nghĩa:
o Định nghĩa 1: Mỗi một hằng số, một biến số hay một hàm số
áp lên các tên là một hạng thức (term) Hàm n ngôi f(x1,x2, ,xn); xi | i = 1,2, ,n là một hạng thức thì f(x1,x2,…,xn) là một term
o Định nghĩa 2: Công thức nguyên tố (công thức nhỏ nhất) là
kết quả của việc ứng dụng một vị từ trên các tham số của term dưới dạng P(t1, t2,…, tn)
Nếu P là vị từ có n ngôi và ti | i=1,2, ,n là một hạng thức(term)
o Định nghĩa 3: (Literal) Dãy các công thức nguyên tố hay phủ
định của công thức nguyên tố đã được phân tách qua các liên kết logic (∧, ∨, →, ↔, ¬, ∀, ∃) thì công thức đó được thiết lập đúng đắn
• iii) Nếu F là công thức thiết lập đúng đắn, mà x
là một biến tự do trong F => (∀x)F và (∃x)F cũng là các công thức thiết lập đúng đắn ( ∀x,
∃x trong F )
• Ví dụ 1: Cho quan hệ R(A1, A2,…, An) với n bậc (tức n thuộc tính) => là một vị từ n ngôi Nếu
Trang 4r∈R (r bộ của R) => (r.A1, r.A2,…, r.An ) => R(A1, A2, , An) nhận giá trị đúng Nếu r∉R (r
bộ của R) => gán (r.A1, r.A2,…, r.An ) => R(A1, A2, , An) nhận giá trị sai
o Định nghĩa 4: Câu(Clause)
Công thức có dạng P1∧P2∧….∧Pn → Q1∧Q2∧….∧Qn Trong đó: Pi và Qj (i,j=1,2,…,n) là các Literal dương
Trong hệ thống logic, Literal dương có dạng nguyên tố, nhỏ nhất, trái với Literal âm là phủ định của nguyên tố
o Định nghĩa 5: Câu Horn (Horn clause) là câu có dạng
4.2 Thao tác trên CSDL suy diễn:
4.2.1 Định nghĩa 1:Giao tác (Transaction)
Một giao tác trong CSDL suy diễn là một một xâu hữu hạn của các phép toán, hay các hành động bổ sung, loại bỏ hay cập nhật các câu.
Vì một CSDL suy diễn được xem như tập các câu, tức là theo quan điểm
lý thuyết mô hình, không một phép loại bỏ hay cập nhật nào được phép thực hiện trên sự kiện Các sự kiện là ngầm có trong CSDL
hư hỏng hệ thống, tính toán vô hạn
5 Mô hình cơ sở dữ liệu đối tượng:
Trang 5– Thuộc tính khoá có thể được sử dụng để xác định các bộ dữ liệu ở
những bảng khác được gọi là khoá ngoại (foreign key).
Mỗi đối tượng (thực thể) có một định danh ID để xác định duy nhất trong CSDL
Các CSDLĐT được thiết kế để làm việc tốt đối với những ngôn ngữ lập trình như Java, C++, C#, Smalltalk, v.v
Mục đích của CSDLHĐT là để quản trị hiệu quả những kiểu dữ liệu phức hợp như âm thanh, hình ảnh, dữ liệu đa phương tiện, v.v., nhằm khắc phục những hạn chế của CSDL quan hệ.
5.2 Kiến trúc của CSDL đối tượng:
CSDL đối tượng được tối ưu hóa cho truy cập điều hướng và điều phối các đối tượng giữa các máy chủ cơ sở dữ liệu Server và Client
Client-server architecture of an ODBMS
6 Chuyển đổi từ mô hình đối tượng sang mô hình quan hệ:
Có một số cách thức thực hiện:
Một trong các cách sử dụng phổ biến là là định nghĩa một bảng cho mỗi lớp, trong đó mỗi cột trong bảng đại diện cho một thuộc tính của lớp (attri đơn trị, hoặc đa trị)
Employee_Table
• Tất cả các thuộc tính của Employee được lưu trong bảng Employee
• Những thuộc tính trên cùng với các thuộc tính bổ sung của
HourlyEmployee sẽ được copy để lưu bảng HourlyEmployee
Trang 6Tương tự đối với bảng SalariedEmployee.
Nhận xét:
– Việc chuyển mô hình đối tượng về quan hệ khi có kế thừa sẽ phải copy
các thuộc tính của lớp cha sang lưu vào lớp con nên không bảo đảm
được các dạng chuẩn dữ liệu
– Một khi các sơ đồ cần thiết đã được định nghĩa mã chuyển đổi từ đối
tượng sang quan hệ được ghi Mã này là cần thiết để có một đối tượng,
khi nó được tạo ra và xử lý trong các ngôn ngữ lập trình và loại bỏ cấu
trúc (deconstruct) để biểu diễn chúng theo yêu cầu của cơ sở dữ liệu
– Ngoài ra khi cần tìm các đối tượng HourlyEmployee trong CSDL thì phải
kết nối các bảng HourlyEmployee và Employee Như vậy sẽ tốn kém
thời gian
– Vấn đề quan trọng nữa là khi cập nhật thông tin, vì có nhiều mối quan
hệ giữa các bảng thực thể nên độ phức tạp sẽ càng tăng
7 Chuyển đổi từ mô hình ER sang mô hình quan hệ:
Mỗi tập thực thể của mô hình ER chuyển đổi thành 1 lớp đối tượng có
cùng tên và cùng tập thuộc tính Các thuộc tính đa trị và phức hợp của mô
hình ER được chuyển thành các thuộc tính đa trị (sử dụng từ khóa set) và
phức hợp (sử dụng từ khóa tuple) cảu mô hình hướng đối tượng.
Việc xác định các phương thức cho mỗi lớp đối tượng được thực hiện sau
đó bởi người thiết kế hệ thống CSDL
Các qui tắc:
o Qui tắc chuyển đổi mối quan hệ is-a: nếu tập thực thể A là có mối
quan hệ is –a với tập thực thể B thì lớp A sẽ kế thừa tất cả các thuộc tính trong lớp B (tức: lớp A là lớp con của lớp B)
M« h ình quan hÖ
NGUOI(id, hoten, tuoi)NHANVIEN(id, luong)
Trang 7o Qui tắc 2 (qui tắc chuyển đổi mối quan hệ nhị nguyên không có thuộc tính) : nếu 2 tập thực thể A và B có mối quan hệ R (R không có các thuộc tính đính kèm), thì mỗi lớp tương ứng A và B sẽ được bổ sung thêm thuộc tính mối quan hệ R (khai báo thuộc tính đa trị/đơn trị là tùy thuộc vào bản số liên quan) Cụ thể:
TRUONGKHOA(id_tk, hoten, tuoi)
KHOA(id_k, tenkhoa, sodienthoai, id_tk)
TRUONGKHOA
KHOA
Trang 9Ví dụ: (Mối quan hệ 1 – nhiều)
Mô hình hướng đối tượng
GIAOVIEN(id_gv, hoten, tuoi)
MON(id_m, tenmon, sotiet)
tenkhoa
tuoi id_k
Trang 10o Qui tắc 3: Quy tắc chuyển đổi mối quan hệ nhị nguyên n-n có kèm thuộc tính
Nếu mối quan hệ R của 2 tập thực thể A1 và A2 có kèm thuộc tính, khi đó, ngoài 2 lớp A1 và A2 tương ứng, ta cần bổ sung 1 lớp mới C đóng vai trò trung gian Cụ thể, lớp C bao gồm các thuộc tính sau:
• Các thuộc tính của mối quan hệ R
• Hai thuộc tính có khai báo:
<Tên thuộc tính> : <Lớp A1>
<Tên thuộc tính> : <Lớp A2>
Ví dụ :
(1,1)
Mô hình quan hệ GIAOVIEN(id_gv, hoten, tuoi)
KHOA(id_k, tenkhoa, sodienthoai)
GVIEN_KHOA(id_gv, id_k, tongsotiet)
Mô hình hướng đối tượng
Trang 12NGUOI(id, hoten, tuoi, id_cha, id_me)
o Quy tắc 5: Quy tắc chuyển đổi mối quan hệ đa nguyên Việc chuyển đổi được thực hiện tương tự như mối quan hệ nhị nguyên n-n có thuộc tính (bước 3)
Ví dụ : mối quan hệ đa nguyên
Id_lop Id_monhoc Sotiet Kết quả chuyển đổi thành mô hình hướng đối tượng
Trang 138 Truy vấn trong cơ sở dữ liệu hướng đối tượng và ODMG 3.0 :
9 Phân mảnh trong CSDL phân tán:
Phân mảnh (theo chiều ngang, dọc, kết hợp), bản sao (replication), cấp phát trong CSDL phân tán:
Mô hình phân đoạn của một CSDL là việc định nghĩa tập các cách phân đoạn bao gồm các thuộc tính và tuple trong CSDL và việc thoả các điều kiện để có xây dựng CSDL ban đầu từ các phân đoạn bằng cách sử dụng các toán tử OUTER UNION (hoặc OUTER JOIN) và UNION
Nếu một phân đoạn được lưu trữ ở nhiều site, ta nói rằng phân đoạn
đó được sao lưu (replicated)
9.1 Phân mảnh ngang (horizontal fragmentation):
Trang 14 Phân mảnh ngang một quan hệ tổng thể n-bộ R là tách R thành các quan hệ con n-bộ R1, R2, , Rk sao cho quan hệ R có thể được khôi phục lại từ các quan hệ con này bằng phép hợp: R = R1∪ R2∪ ∪
hệ primary thông qua khoá ngoại
Phân đoạn ngang của quan hệ R được viết là (R) trong đại số quan hệ
9.2 Phân mảnh dọc (vertical fragmentation):
Phân đoạn dọc chia một quan hệ theo chiều dọc bởi các cột
Mỗi phân đoạn dọc của quan hệ chỉ lưu các thuộc tính của quan hệ
Phân đoạn dọc của quan hệ R được viết là trong đại số quan hệ
Một tập các phân đoạn dọc mà phép chiếu danh sách L1,L2,…,Ln gồm tất cả các thuộc tính trong R nhưng chỉ chia sẻ chỉ thuộc tính khoá của R gọi là phân đoạn đầy đủ của R
Trong trường hợp này, phép chiếu danh sách thoả:
R = R1 R2 ., Rk
9.3 Phân mảnh kết hợp (hybrid fragmentation):
Là việc tổ hợp phân đoạn dọc và phân đoạn ngang
Quan hệ ban đầu có thể xây dựng lại bằng cách áp dụng các toán tử UNION và OUTER UNION
Thông thường, mỗi phân đoạn của quan hệ R có được bằng cách tổ hợp toán tử SELECT−PROJECT, kí hiệu ΠL(σC(R)):
o If C = TRUE and L ≠ ATTRS(R): phân đoạn dọc
o If C ≠ TRUE and L = ATTRS(R): phân đoạn ngang
o If C ≠ TRUE and L ≠ ATTRS(R): phân đoạn hỗn hợp
Trang 15Ví dụ: Xét cơ sở dữ liệu của một công ty phần mềm được tổ chức như
• DUAN (MADA, TENDA, NGANSACH): quan hệ này chứa dữ liệu về các
dự án mà công ty đang thực hiện
HOSO (MANV, MADA, NHIEMVU, THOIGIAN): quan hệ này chứa dữ liệu
về hồ sơ của nhân viên được phân công thực hiện dự án)
Kỹ sư điệnPhân tích HTThiết kế DL
HOSO(G)
A1A2A3A4A5A6A7A8
NamTrungĐôngBắcTâyHùngDũngChiến
Phân tích HTLập trình viênPhân tích HTPhân tích HTLập trình viên
Kỹ sư điệnPhân tích HTThiết kế DL
DUAN(J)
Trang 1620000120002800025000
Trang 1710 Xử lý truy vấn trong CSDL phân tán:
Vai trò của thể xử lý vấn tin phân tán là ánh xạ câu truy vấn cấp cao trên một CSDL phân tán vào một chuỗi các thao tác của đại số quan hệ trên các mảnh, thể hiện các bước:
o Câu truy vấn phải được phân rã thành một chuỗi các phép toán quan hệ được gọi là vấn tin đại số
o Thứ hai, dữ liệu cần truy xuất phải được cục bộ hóa để các thao tác trên các quan hệ được chuyển thành các thao tác trên dữ liệu cục bộ (các mảnh)
o Cuối cùng câu truy vấn đại số trên các mảnh phải được mở rộng
để bao gồm các thao tác truyền thông và được tối ưu hóa để hàm chi phí là thấp nhất
Hàm chi phí muốn nói đến các tính toán như thao tác xuất nhập đĩa, tài nguyên CPU, và mạng truyền thông
Bài toán xử lí vấn tin:
Có hai phương pháp tối ưu hóa cơ bản được sử dụng trong các bộ
xử lý vấn tin:
o Phương pháp biến đổi đại số
o Chiến lược ước lượng chi phí
Trang 18 Phương pháp biến đổi đại số đơn giản hóa các câu vấn tin nhờ các phép biến đổi đại số nhằm hạ thấp chi phí trả lời câu vấn tin, độc lập với dữ liệu thực và cấu trúc vật lý của dữ liệu.
Nhiệm vụ chính của thể xử lý vấn tin quan hệ là biến đổi câu vấn tin cấp cao thành một câu vấn tin tương đương ở cấp thấp hơn được diễn đạt bằng đại số quan hệ Việc biến đổi này phải đạt được cả tính đúng đắn lẫn tính hiệu quả
Ví dụ 1:Xét một tập con của lược đồ CSDL đã được cho
NV( MNV, TênNV, Chức vụ)
PC (MNV, MDA, Nhiệm vụ, Thời gian)
Và một câu truy vấn đơn giản sau:
“Liệt kê tên của các nhân viên hiện đang quản lý một dự án”
Biểu thức truy vấn bằng phép tính quan hệ theo cú pháp của SQL là:
SELECT TênNV
FROM NV, PC
WHERE NV.MNV=PC.MNV
AND Nhiệmvụ=”Quảnlý”
Hai biểu thức tương đương trong đại số quan hệ do biến đổi chính xác
từ câu vấn tin trên là:
πTênNV( σNhiệmvụ=”Quảnlý” ∧ NV.MNV=PC.MNV (NV x PC))và
πTênNV(NV|><|MNV(σNhiệmvụ=” Quảnlý” (PC)))
- Hiển nhiên là trong câu vấn tin thứ hai, chúng ta tránh sử dụng tích Descartes, vì thế tiêu dùng ít tài nguyên máy tính hơn câu vấn tin thứ nhất và vì vậy nên được giữ lại
- Trong các hệ phân tán, đại số quan hệ không đủ để diễn tả các chiến
lược thực thi Nó phải được cung cấp thêm các phép toán trao đổi dữ liệu giữa các vị trí Bên cạnh việc chọn thứ tự cho các phép toán đại số quan hệ, thể xử lý vấn tin phân tán cũng phải chọn các vị trí tốt nhất để
xử lý dữ liệu, và có thể cả cách biến đổi dữ liệu
Ví dụ 2:Thí dụ này minh họa tầm quan trọng của việc chọn lựa vị trí và
cách truyền dữ liệu của một câu vấn tin đại số Chúng ta xét câu vấn tin của thí dụ trên:
πTênNV(NV|><|MNV(σNhiệmvụ=”Quảnlý”(PC)))chúng ta giả sử rằng các quan hệ NV và PC được phân mảnh ngang như sau:
NV1=σMNV ≤ “E3”(NV)
NV2=σMNV > “E3”(NV)
PC1=σMNV ≤ “E3”(PC)
PC2=σMNV ≥ “E3”(PC)
Các mảnh PC1, PC2, NV1, NV2 theo thứ tự được lưu tại các vị trí 1, 2, 3
và 4 và kết quả được lưu tại vị trí 5
Trang 19Mũi tên từ vị trí i đến vị trí j có nhãn R chỉ ra rằng quan hệ R được chuyển từ vị trí i đến vị trí j Chiến lược a) sử dụng sự kiện là các quan
hệ được phân mảnh theo cùng một cách để thực hiện song song các phép toán chọn và nối Chiến lược b tập trung tất cả các dữ liệu tại vị trí lưu kết quả trước khi xử lý câu truy vấn
Sử dụng mô hình chi phí đơn giản, giả sử:
Thao tác truy xuất một bộ (tuple access) được ký hiệu là tupacc,
là một đơn vị và thao tác truyền một bộ (tuple transfer) tuptrans
là 10 đơn vị
Các quan hệ NV và PC tương ứng có 400 và 1000 bộ, và có 20 giám đốc dự án thống nhất cho các vị trí
Các quan hệ PC và NV được gom cục bộ tương ứng theo các thuộc tính Nhiệmvụ và MNV Vì vậy có thể truy xuất trực tiếp đến các bộ của PC dựa trên giá trị của thuộc tính Nhiệmvụ
(tương ứng là MNV cho NV)
* Tổng chi phí của chiến lược a có thể được tính như sau: