Lợi ích của tính độc lập dữ liệu – Cho phép thêm bớt thuộc tính, bảng, các mối quan hệ mà không cần phải viết lại chương trình, .... Xử lý truy xuất đồng thời – Đảm bảo các xử lý có thể
Trang 1
LOGO
ntson
Trang 4ĐẶT VẤN ĐỀ
Trang 5MỤC TIÊU MÔN HỌC
hỏi
Trang 6NỘI DUNG MÔN HỌC
Trang 7NỘI DUNG MÔN HỌC
Trang 8NỘI DUNG MÔN HỌC
Trang 10PHẦN MỀM
Trang 11TÀI LIỆU THAM KHẢO
Trang 12
LOGO
Trang 13Nội dung
Trang 15Yêu cầu về dữ liệu trong CSDL
Trang 16Yêu cầu về dữ liệu trong CSDL
§
Schema
Trang 17Yêu cầu về dữ liệu trong CSDL
Trang 18Lợi ích của tính độc lập dữ liệu
– Cho phép thêm bớt thuộc tính, bảng, các mối quan hệ mà không cần phải viết lại chương trình,
– Cho phép thay đổi thiết bị lưu trữ, cách thức lưu trữ, các cấu trúc dữ liệu, các tổ chức tập tin khác nhau, các kiểu tổ chức chỉ mục khác nhau,
Schema
Trang 22Kiến trúc của một HQT CSDL
Ends
Parser Optimizer
Manager Manager
Manager
Engine Control
DATABASES
DBMS
interactions
references
Trang 27Xử lý truy xuất đồng thời
– Đảm bảo các xử lý có thể được thực hiện đồng thời mà làm không làm cho dữ liệu bị mất tính nhất quán (vi phạm các ràng buộc toàn vẹn)
Manager & Locking Manager)
– Sử dụng khái niệm giao tác (transaction) để biểu diễn một đơn vị xử
lý, một giao tác bao gồm các hành động mà được thực hiện tòn bộ hoặc không có hành động nào được thực hiện
Trang 28Điều khiển đồng thời (tt)
- - - - -
- - - - -
- - - - - -
-
-
-
- -
- -
- -
-
-
Trang 29Điều khiển đồng thời (tt)
– Do
–
–
Trang 33Mô hình phân cấp
DEPT
EMP
CHILD OFFICE
Trang 36Phân loại HQTCSDL
§
Trang 37TÓM TẮT CHƯƠNG 1
– Dữ liệu cần được trình bày ở nhiều
mức khác nhau
– Các đặc trưng cần phải có của dữ liệu
khi lưu trữ trong CSDL
– Tính chất độc lập dữ liệu
của HQTCSDL
– Giao diện lập trình – Xử lý đồng thời – An ninh và bảo mật – Khôi phục sau sự cố – Xử lý truy vấn
– Quản lý lưu trữ
– Theo mô hình dữ liệu – Theo kiến trúc tính toán – Theo đặc tính
HQTCSDL
Trang 38ĐỌC THÊM
Trang 39BÀI TẬP
(Có thể tham khảo các sách khác & google) và làm
những nội dung sau:
1.1 đến 1.8 (giải thích ngắn gọn, đầy đủ & súc tích):
Trang 40BÀI TẬP
(Có thể tham khảo các sách khác & google) và làm
những nội dung sau:
1.1 đến 1.8 (giải thích ngắn gọn, đầy đủ & súc tích):
Trang 41
LOGO
Trang 42Nội dung trình bày
Trang 44Giới thiệu – Một số tình huống
Trang 45Giới thiệu – Một số tình huống
§
–
à
Trang 46Giới thiệu – Một số tình huống
§
–
à
Trang 47Giới thiệu – Một số tình huống
§
–
à
1. Đọc số dư của tài khoản A vào X
2. Cập nhật số dư mới của tài khoản A bằng X – Số tiền
Trang 48Giới thiệu – Một số tình huống
§
–
à
Trang 50Nội dung trình bày
Trang 52Tính chất ACID của giao tác
Trang 53Ví dụ về tính chất ACID
Atomicity: Hoặc cả 2 bước trên đều thực hiện hoặc không bước nào được thực hiện Nếu có sự cố bước 2 thì HQT CSDL có cơ chế khôi phục lại dữ liệu như lúc ban đầu.
Trang 54Ví dụ về tính chất ACID
Atomicity
Consistency
Trang 55Ví dụ về tính chất ACID
Isolation:
Trang 56Đơn vị dữ liệu
gọi là đơn vị dữ liệu
Trang 57Các thao tác của giao tác
Trang 58Ví dụ về biểu diễn giao tác
Trang 59Giao tác: Ví dụ (tt)
Trang 60Các trạng thái của giao tác
Trang 61Khai báo giao tác trong T-SQL
Trang 62Nội dung trình bày
Trang 63Các cách thực hiện của các giao tác
Trang 67Lịch xử lý đồng thời
§
T1
T2
T4
T3
T5
Lịch xử lý đồng thời
S
Trang 69T3
T5 S
Trang 73Biểu diễn lịch thao tác
Trang 74Lịch khả tuần tự
§
§
§
Trang 77Conflict Serializability (tt)
§
Trang 78Conflict Serializability (tt)
§
S6 có khả năng chuyển đổi thành S6’ bằng cách hoán vị các cặp hành động không
xung đột hay không ?
Trang 80Conflict Serializability (tt)
§
§
Trang 81Conflict Serializability (tt)
Trang 82Kiểm tra Conflict Serializability
Trang 83Kiểm tra Conflict Serializability
§
–
–
Trang 84Kiểm tra Conflict Serializability
Trang 85Kiểm tra Conflict Serializability
Trang 86Kiểm tra Conflict Serializability
T
Trang 87Kiểm tra Conflict Serializability
T T
Trang 92Bài tập 4
Trang 95• Đều có T3 thực hiện việc ghi cuối cùng lên A T2, T3 không có lệnh đọc A à Dù
S hay S’ được thực hiện thì kết quả đọc A của Tf luôn giống nhau à
T T
Trang 96View-Serializability (tt)
– Một lịch S được gọi là khả tuần tự view nếu tồn tại một lịch tuần tự S’ được tạo từ các giao tác của S sao cho S và S’ đọc và ghi những giá trị giống nhau – Lịch S được gọi là khả tuần tự view khi và chỉ khi nó tương đương view
Trang 100Kiểm tra View Serializability
Trang 101Kiểm tra View-Serializability (tt)
Trang 102Kiểm tra View-Serializability (tt)
Trang 103Kiểm tra View-Serializability (tt)
Trang 104Write(A)
T 2
T 1
Write(A) S’
Trang 105Write(A)
T 2
T 1
Write(A) S’
Trang 106Write(A)
T 2
T 1
Write(A) S’
Trang 107Ví dụ (tt)
T 2
T 1
Write(A) S’
Read(A)
T 3 Read(A)
Write(A)
Write(A)
Read(A)
Trang 108Ví dụ (tt)
T 2
T 1
Write(A) S’
Read(A)
T 3 Read(A)
Trang 109Ví dụ (tt)
T 2
T 1
Write(A) S’
Read(A)
T 3 Read(A)
Trang 110Ví dụ (tt)
T 2
T 1
Write(A) S’
Read(A)
T 3 Read(A)
Trang 111Ví dụ (tt)
T 2
T 1
Write(A) S’
Read(A)
T 3 Read(A)
Trang 114Bài tập
T 2
T 1
Write(A) S
Trang 115Read(B)
Write(A) Write(B)
Trang 116TÀI LIỆU THAM KHẢO
Trang 117TÀI LIỆU THAM KHẢO
slides/slides3ed-‐english/Ch17_CC-‐95.pdf
§ http://djitz.com/neu-‐mscs/how-‐to-‐check-‐for-‐view-‐serializable-‐ and-‐con¦lict-‐serializable/
Trang 118
LOGO
Trang 119Nội dung trình bày
Trang 120Nội dung trình bày
Trang 124Vấn đề đọc dữ liệu rác
–
Trang 126Các kỹ thuật điều khiển đồng thời
§
Kỹ thuật khoá
Kỹ thuật nhãn thời gian
Kỹ thuật xác nhận hợp lệ
Trang 127Nội dung trình bày
Trang 128Kỹ thuật khoá đơn giản
Trang 129Kỹ thuật khóa đơn giản
Trang 130Kỹ thuật khóa đơn giản (tt)
Trang 131Kỹ thuật khóa đơn giản (tt)
§
–
–
S
Trang 132Kỹ thuật khóa đơn giản (tt)
§
Cho biết lịch nào hợp lệ? Giao tác nào là đúng đắn ?
Trang 133Kỹ thuật khóa đơn giản (tt)
§
Cho biết lịch nào hợp lệ? Giao tác nào là đúng đắn ?
Trang 134Kỹ thuật khóa đơn giản (tt)
Trang 135Kỹ thuật khóa đơn giản (tt)
18
S
Trang 136Kỹ thuật khóa đơn giản (tt)
Trang 137Kỹ thuật khóa đơn giản (tt)
Trang 138Nghi thức khoá 2 giai đoạn
Trang 139Tại sao lại cần nghi thức khoá 2 giai đoạn ?
§
Trang 140Kỹ thuật khóa đơn giản (tt)
Write(A) Unlock(A)
Giao tác nào thoả nghi thức
2 giai đoạn ?
Lock(B) Read(B) B=B-‐50 Write(B) Unlock(B) Lock(A) Read(A) A:=A+50 Write(A) Unlock(A)
Lock(A) Read(A) Unlock(A) Lock(B) Read(B) Unlock(B)
Trang 141Kỹ thuật khóa đơn giản (tt)
Unlock(B)
Lock(A)
Read(A) A:=A+50 Write(A)
Trang 142Kỹ thuật khóa đơn giản (tt)
25
T2
T1
Read(A,s) s:=s*2
S
T2
T1 S
Write(B,t); Unlock(B) Read(B,t); t:=t+100
t:=t+100; Write(A,t) Lock(A); Read(A,t) Lock(B); Unlock(A)
Read(B,t); t:=t*2 Write(B,t); Unlock(B)
s:=s*2; Write(A,s) Lock(A); Read(A,s)
được, phải chờ đến lúc này
Trang 143Kỹ thuật khóa đơn giản (tt)
Trang 144Kỹ thuật khoá đơn giản (tt)
Trang 145Nội dung trình bày
Trang 146Kỹ thuật khóa đọc ghi
Trang 147Kỹ thuật khóa đọc ghi (tt)
Trang 148Kỹ thuật khóa đọc ghi (tt)
Trang 149Kỹ thuật khóa đọc ghi (tt)
Trang 150Kỹ thuật khóa đọc ghi (tt)
Trang 151Kỹ thuật khóa đọc ghi (tt)
Trang 15235
Ví dụ
Trang 15336
Ví dụ
Trang 15437
Ví dụ
Trang 15538
Ví dụ
Trang 156Kỹ thuật khóa đọc ghi (tt)
§
39
T T
S
↓
↓
Trang 157Kỹ thuật khóa đọc ghi (tt)
Trang 158Kỹ thuật khóa đọc ghi (tt)
§
T T
S
Trang 159Nội dung trình bày
Trang 16144
Kỹ thuật khóa đa hạt (tt)
Trang 162Khối (Block) Khối (Block)
Bộ (Tuple) Bộ (Tuple) Bộ (Tuple) Bộ (Tuple)
Bộ (Tuple)
Bộ (Tuple) Bộ (Tuple)
Trang 163 Warning (intention to) shared lock: IS
Warning (intention to) exclusive lock: IX
Trang 16447
Kỹ thuật khóa đa hạt (tt)
Trang 16548
Kỹ thuật khóa đa hạt (tt)
Trang 172Kỹ thuật khóa đa hạt (tt)
§
55
MãTK SốDư Khoản
Trang 173Nội dung trình bày
Trang 174Giới thiệu
–
gán nhãn thời gian (timestamping)
–
Đồng hồ máy tính
Bộ lập lịch tự đếm
Trang 175Giới thiệu
§
–
Trang 17659
Nhãn thời gian toàn phần
nhận lại thời điểm phát sinh của T
lại TS(T) của giao tác T đã thao tác read/write thành công sau cùng lên X
Nếu TS(T) ≥ TS(X) thì cho T ghi X và gán TS(X) = TS(T)
Ngược lại T bị hủy (abort)
Trang 177Nhãn thời gian toàn phần
Trang 178Read(B) A=A*2
Write(A)
B=B+20 Write(B)
Read(B)
mới
Trang 179Nhãn thời gian toàn phần
Trang 180Nội dung trình bày
Trang 181Nhãn thời gian riêng phần
Trang 182Nhãn thời gian riêng phần
Trang 183Nhãn thời gian riêng phần
( l
Trang 184Nhãn thời gian riêng phần
l
Trang 185Nhãn thời gian riêng phần
§
l
l
à
Trang 186Nhãn thời gian riêng phần
Trang 187Nhãn thời gian riêng phần
§
l
l
à
Trang 188Nhãn thời gian riêng phần
Trang 189Nhãn thời gian riêng phần
Trang 190Nhãn thời gian riêng phần (tt)
Trang 191Write(B) Read(C) TS(T 1 )=100 WT(A)=0 WT(B)=0 RT(C)=0 WT(C)=0
2 2 2
Trang 192Read(C)
Trang 194T TS=175
T TS=255
Read(A)
Trang 195Nội dung trình bày
Trang 196Nhãn thời gian nhiều phiên bản
Trang 197Nhãn thời gian nhiều phiên bản (tt)
Trang 198Nhãn thời gian nhiều phiên bản (tt)
Trang 199Ví dụ
82
RT=150 WT=0
RT=0 WT=200
T 1
Read(A)
T 2 TS=200
A 0 RT=0
Read(A) Write(A) Write(A)
Read(A)
T 3 TS=175
T 4 TS=255
Read(A)
RT=0 WT=150 RT=200 WT=150
RT=200 WT=150
A 1 A 2
RT=255 WT=200
Trang 200Write(A) Write(B) Read(B)
Write(A)
A 0 RT=0 WT=0 RT=100 WT=0
A 1
RT=0 WT=200
B 0 RT=0 WT=0
B 1
RT=0 WT=200 RT=100
WT=0
A 1
RT=0 WT=100
A 2
RT=0 WT=200
Trang 201Nhãn thời gian nhiều phiên bản (tt)
Trang 202Tài liệu tham khảo
§
–
Trang 203LOGO
Trang 205Timestamp vs Locking
§
§
Trang 207Strict Timestamp Based Concurrency Control
§
–
§
Trang 212Timestamp-based approach
§
–
Trang 215
LOGO
Trang 216Nội dung trình bày
Trang 219Sự cố do nhập liệu sai ( Erroneous Data Entry )
Trang 220Sự cố trên thiết bị lưu trữ ( Media Failures )
Trang 221Sự cố giao tác (Transaction Failures)
Trang 223Mục tiêu của khôi phục sự cố
Log Data
Trang 224Các thao tác đọc ghi dữ liệu trong DBMS
Trang 225Nội dung trình bày
Trang 227Nhật ký giao tác (tt)
§
Trang 229Điểm kiểm tra (Check point)
Trang 230Điểm kiểm tra đơn giản
Trang 231Điểm kiểm tra đơn giản (tt)
Trang 232Điểm kiểm tra linh động
Trang 233Điểm kiểm tra linh động (tt)
Trang 234Nội dung trình bày
Trang 241Undo-Logging & Checkpoint
Trang 242Undo-Logging & Checkpoint (tt)
Trang 243Undo-Logging & Checkpoint (tt)
§
–
–
Trang 244Undo-Logging & Checkpoint (tt)
Trang 245Undo-Logging & Checkpoint (tt)
Trang 246Undo-Logging & Checkpoint (tt)
Trang 247Undo-Logging & Checkpoint (tt)
Trang 248Undo-Logging & Checkpoint (tt)
Trang 249Nội dung trình bày
Trang 252Ví dụ
Read(A,t) t:=t*2
Write(A,t)
Read(B,t) t:=t*2
Write(B,t)
Output(A) Output(B)
Trang 254lại
Trang 255Ví dụ
Read(A,t)
t:=t*2 Write(A,t)
Read(B,t)
t:=t*2 Write(B,t)
Trang 256Redo-Logging & Checkpoint
§
–
Trang 257Redo-Logging & Checkpoint (tt)
Trang 258Redo-Logging & Checkpoint (tt)
Trang 259Redo-Logging & Checkpoint (tt)
– –
Trang 260Redo-Logging & Checkpoint (tt)
Trang 261Redo-Logging & Checkpoint (tt)
Trang 262Nhận xét
Trang 263Nội dung trình bày
Trang 265Ví dụ
Trang 267lại
Trang 268Ví dụ
<commit T> đã được ghi xuống đĩa, thực hiện lại T, A=16 và B=16
T chưa kết thúc, khôi phục A=8
Trang 269Undo/Redo-Logging & Checkpoint
Trang 270Undo/Redo-Logging & Checkpoint (tt)
Trang 271Undo/Redo-Logging & Checkpoint (tt)
Trang 272Undo/Redo-Logging & Checkpoint (tt)
Trang 273Undo/Redo-Logging & Checkpoint (tt)
Trang 274Nội dung trình bày
Trang 277Cơ chế phân quyền
Trang 278Cơ chế phân quyền (tt)
§
Các đối tượng Dữ liệu Các đối tượng Người dùng
group
group role
role
Trang 279Cơ chế phân quyền (tt)
§
Các đối tượng Dữ liệu Các đối tượng Người dùng
group
group role
role
Trang 280Cơ chế phân quyền (tt)
Trang 281Cơ chế phân quyền (tt)
Trang 285Tài liệu tham khảo
§
–
Trang 286Backup & Recovery in SQL Server
Trang 287LOGO
Trang 288
LOGO
VẤN
Trang 289Nội dung chi tiết
Trang 292Giới thiệu (tt)
§
Câu truy vấn Kết quả truy vấn
Trang 293Nội dung chi tiết
Trang 294Phân tích cú pháp và ngữ nghĩa
Câu truy vấn Kết quả truy vấn
Trang 296SELECT FROM WHERE
Trang 297Ví dụ 1 (tt)
Trang 299Ví dụ 2 (tt)
Trang 300Phân tích cú pháp và ngữ nghĩa
Câu truy vấn Kết quả truy vấn
Kiểm tra ngữ nghĩa giữa
Trang 301Nội dung chi tiết
Trang 302Biến đổi sang ĐSQH
Câu truy vấn Kết quả truy vấn
Dạng biểu diễn trong :
Chính là Biểu thức Đại số
Quan hệ
Biểu diễn dưới dạng Cây :
Cây Đại số Quan hệ
(logical query plan)
Trang 304Biến đổi sang ĐSQH (tt)
Trang 305Xét ví dụ 2
π σ
Trang 306Biến đổi sang ĐSQH (tt)
§
–
–
σ
Trang 307Xét ví dụ 1 (Lồng phân cấp)
π
π
σ
Trang 308Biến đổi sang ĐSQH (tt)
§
–
• σC
Trang 309Xét ví dụ 1 (Lồng phân cấp)
π
π
σ
Trang 310Xét ví dụ 1 (tt)
π σ
π σ
à
Trang 311Xét ví dụ 1 (tt)
π σ
Trang 313Ví dụ 3 (tt)
π σ
ℑ
σc.custID=a.cusID
Ph
Trang 314Ví dụ 3 (tt)
π σ
ℑ
σc.custID=a.cusID
Trang 315S
X
?
Trang 318Nội dung chi tiết
Trang 319Tối ưu hóa cây truy vấn
Câu truy vấn Kết quả truy vấn
Trang 320Tối ưu hóa cây truy vấn (tt)
Trang 324Áp dụng quy tắc (tt)
§
Trang 334Xét ví dụ 2 (tt)
Customer Account Customer.cusID=Account.cusID
Trang 337Nội dung chi tiết
Trang 338Ước lượng kích thước cây truy vấn
Trang 339Ước lượng kích thước
Trang 341Ước lượng kích thước (tt)
Trang 343Ước lượng kích thước (tt)
Trang 346Ước lượng kích thước (tt)
§
–
–
1 2
Trang 347Ước lượng kích thước (tt)
Trang 348Ước lượng kích thước (tt)
Trang 349Ước lượng kích thước (tt)
§
–
Trang 350Chi phí ở nút lá không có ý nghĩa
1150
1100
Trang 351Nội dung chi tiết
Trang 352Tối ưu hóa cây truy vấn
Câu truy vấn Kết quả truy vấn
Trang 356Phát sinh mã (tt)
§
–
–
Trang 359Tài liệu tham khảo
§
–