Yêu cầu về dữ liệu trong CSDL... Yêu cầu về dữ liệu trong CSDL § Schema... Yêu cầu về dữ liệu trong CSDL... Lợi ích của tính độc lập dữ liệu § Độc lập l – Cho phép thêm bớt thuộc tính
Trang 1
LOGO
Trang 2Nội dung
Trang 4Yêu cầu về dữ liệu trong CSDL
Trang 5Yêu cầu về dữ liệu trong CSDL
§
Schema
Trang 6Yêu cầu về dữ liệu trong CSDL
Trang 7Lợi ích của tính độc lập dữ liệu
§ Độc lập l
– 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,
§ Độc lập vật lý:
– 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 10PostgreSQL dBASE
Trang 11Kiến trúc của một HQT CSDL
Ends
Parser Optimizer
Manager Manager
Manager
Engine Control
DATABASES
DBMS
interactions
references
Trang 16Xử lý truy xuất đồng thời
§ Mục tiêu:
– Đả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)
§ Phương pháp:
– 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
– Bộ lập lịch (scheduler)
– Sử dụng c lock
à
điểm à Hỗ trợ để lập lịch.
-
-
-
-
T
Trang 17Điều khiển đồng thời (tt)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
LỊ C H N G H Ờ LỊ C H U Ầ N T1 T2 T3 -
-
-
-
-
-
Trang 18Điều khiển đồng thời (tt)
§ Vấn đề d
– Do
–
–
Trang 19–
Trang 22Mô hình phân cấp
DEPT
EMP
Trang 25Phân loại HQTCSDL
§
Trang 26TÓ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
§ Kiến trúc tổng quan của
HQTCSDL
Trang 27ĐỌC THÊM
Trang 28BÀI TẬP
(Có thể tham khảo các sách khác & google) và làm
những nội dung sau:
§ A Trình bày lại nội dung phần 1.10 trong sách
§ B Trả lời các câu hỏi trong phần bài tập Exercises 1.1 đến 1.8 (giải thích ngắn gọn, đầy đủ & súc tích):
Trang 29BÀI TẬP
(Có thể tham khảo các sách khác & google) và làm
những nội dung sau:
§ A Trình bày lại nội dung phần 1.10 trong sách
§ B Trả lời các câu hỏi trong phần bài tập Exercises 1.1 đến 1.8 (giải thích ngắn gọn, đầy đủ & súc tích):
Trang 30
LOGO
Trang 31Nội dung trình bày
Trang 33Giới thiệu – Một số tình huống
Trang 34Giới thiệu – Một số tình huống
§
–
à
Trang 35Giới thiệu – Một số tình huống
§
–
à
Trang 36Giớ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 37Giới thiệu – Một số tình huống
§
–
à
Trang 39Nội dung trình bày
Trang 41Tính chất ACID của giao tác
Trang 42Ví 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 43Ví dụ về tính chất ACID
Atomicity
Consistency
Trang 44Ví dụ về tính chất ACID
Isolation:
Trang 45Đơn vị dữ liệu
gọi là đơn vị dữ liệu
Trang 46Các thao tác của giao tác
Trang 47Ví dụ về biểu diễn giao tác
Trang 48Giao tác: Ví dụ (tt)
Trang 49Các trạng thái của giao tác
Trang 50Khai báo giao tác trong T-SQL
Trang 51Nội dung trình bày
Trang 52Các cách thực hiện của các giao tác
Trang 56Lịch xử lý đồng thời
§
T1
T2
T4
T3
T5
Lịch xử lý đồng thời
S
Trang 57Lịch đồng thời
Ví dụ:
§ S3 là một lịch xử lý đồng thời vì các giao tác giao thoa với nhau
§ Lịch xử lý đồng thời S3 gây ra sự mất nhất quán dữ liệu
Trang 58Lịch khả tuần tự
§
T1
T2
T4
T3
T5
Trang 62Biểu diễn lịch thao tác
Trang 63Lịch khả tuần tự
§
§
§
Trang 66Conflict Serializability (tt)
§ Tóm lại, h
§
Trang 67Conflict 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 69Conflict Serializability (tt)
§
§
Trang 70Conflict Serializability (tt)
Trang 71Kiểm tra Conflict Serializability
Trang 72Kiểm tra Conflict Serializability
§
–
–
Trang 73Kiểm tra Conflict Serializability
Trang 74Kiểm tra Conflict Serializability
Trang 75Kiểm tra Conflict Serializability
T
Trang 76Kiểm tra Conflict Serializability
T T
Trang 81Bài tập 4
§ Cho lịch S:
§ Vẽ P(S)
§ S có conflict-serializable không ?
Trang 84S hay S’ được thực hiện thì kết quả đọc A của Tf luôn giống nhau à
T T
Trang 85View-Serializability (tt)
§ Khả tuần tự View (View-serializability):
– 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 89Kiểm tra View Serializability
Trang 90Kiểm tra View-Serializability (tt)
Trang 91Kiểm tra View-Serializability (tt)
Trang 92Kiểm tra View-Serializability (tt)
Trang 93Ví dụ
T 2
T 1
Write(A) S
Write(A)
T 3 Read(A)
Write(A)
T 2
T 1
Write(A) S’
Trang 96Ví dụ (tt)
T 2
T 1
Write(A) S’
Trang 97Ví dụ (tt)
T 2
T 1
Write(A) S’
Trang 98Ví dụ (tt)
T 2
T 1
Write(A) S’
Trang 99Ví dụ (tt)
T 2
T 1
Write(A) S’
Trang 100Ví dụ (tt)
T 2
T 1
Write(A) S’
Trang 103Bài tập
T 2
T 1
Write(A) S
Read(A)
T 3 Read(B)
Trang 105TÀI LIỆU THAM KHẢO
Trang 106TÀI LI ỆU THAM KHẢO
§ http://infolab.stanford.edu/~ullman/dscb/vs-‐old.pdf
§ http://pages.cs.wisc.edu/~dbbook/openAccess/thirdEdition/ slides/slides3ed-‐english/Ch17_CC-‐95.pdf
§ http://djitz.com/neu-‐mscs/how-‐to-‐check-‐for-‐view-‐serializable-‐ and-‐con¦lict-‐serializable/
§ http://inst.eecs.berkeley.edu/~cs186/fa05/lecs/18cc-‐6up.pdf
§ http://folk.uio.no/inf212/handouts/uke19_2.pdf
Trang 107
LOGO
Trang 108Nội dung trình bày
Trang 109Nội dung trình bày
Trang 113Vấn đề đọc dữ liệu rác
–
Trang 115Cá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 116Nội dung trình bày
Trang 117Kỹ thuật khoá đơn giản
Trang 118Kỹ thuật khóa đơn giản
Trang 119Kỹ thuật khóa đơn giản (tt)
Trang 120Kỹ thuật khóa đơn giản (tt)
§
–
–
S
Trang 121Kỹ 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 122Kỹ 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 123Kỹ thuật khóa đơn giản (tt)
Trang 124Kỹ thuật khóa đơn giản (tt)
18
S
Trang 125Kỹ thuật khóa đơn giản (tt)
Trang 126Kỹ thuật khóa đơn giản (tt)
Trang 127Nghi thức khoá 2 giai đoạn
Trang 128Tại sao lại cần nghi thức khoá 2 giai đoạn ?
§
Trang 129Kỹ 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 130Kỹ thuật khóa đơn giản (tt)
Unlock(B)
Lock(A)
Read(A) A:=A+50 Write(A)
Trang 131Kỹ thuật khóa đơn giản (tt)
25
T2
T1
Read(A,s) s:=s*2
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)
Lock(B) ; Ulock(A)
Read(B,t); t:=t*2 Write(B,t); Unlock(B)
s:=s*2; Write(A,s) Lock(A); Read(A,s)
Lock(B) Không phát khóa
được, phải chờ đến lúc này
Trang 132Kỹ thuật khóa đơn giản (tt)
Trang 133Kỹ thuật khoá đơn giản (tt)
Trang 134Nội dung trình bày
Trang 135Kỹ thuật khóa đọc ghi
Trang 136Kỹ thuật khóa đọc ghi (tt)
Trang 137Kỹ thuật khóa đọc ghi (tt)
Trang 138Kỹ thuật khóa đọc ghi (tt)
Trang 139Kỹ thuật khóa đọc ghi (tt)
Trang 140Kỹ thuật khóa đọc ghi (tt)
Trang 14135
Ví dụ
Trang 14236
Ví dụ
Trang 14337
Ví dụ
Trang 14438
Ví dụ
Trang 145Kỹ thuật khóa đọc ghi (tt)
§
39
T T
S
↓
↓
Trang 146Kỹ thuật khóa đọc ghi (tt)
Trang 147Kỹ thuật khóa đọc ghi (tt)
§
T T
S
Trang 148Nội dung trình bày
Trang 15044
Kỹ thuật khóa đa hạt (tt)
Trang 151Bộ (Tuple)
Khối (Block) Khối (Block)
Bộ (Tuple) Bộ (Tuple) Bộ (Tuple) Bộ (Tuple)
Bộ (Tuple)
Bộ (Tuple) Bộ (Tuple)
Trang 15347
Kỹ thuật khóa đa hạt (tt)
Trang 15448
Kỹ thuật khóa đa hạt (tt)
Trang 161Kỹ thuật khóa đa hạt (tt)
Trang 162Nội dung trình bày
Trang 163Giới thiệu
§ Ý tưởng:
–
gán nhãn thời gian (timestamping)
–
Trang 164Giới thiệu
§
–
Trang 16559
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
§ Khi đến lượt giao tác T thao tác trên dữ liệu X, so sánh TS(T)
Trang 166Nhãn thời gian toàn phần
Trang 167Read(B) A=A*2
Write(A)
B=B+20 Write(B)
Read(B)
Trang 168Nhãn thời gian toàn phần
Trang 169Nội dung trình bày
Trang 170Nhãn thời gian riêng phần
Trang 171Nhãn thời gian riêng phần
Trang 172Nhãn thời gian riêng phần
(
l
→
Trang 173Nhãn thời gian riêng phần
l
→
Trang 174Nhãn thời gian riêng phần
§
l
l
à
Trang 175Nhãn thời gian riêng phần
Trang 176Nhãn thời gian riêng phần
§
l
l
à
Trang 177Nhãn thời gian riêng phần
Trang 178Nhãn thời gian riêng phần
Trang 179Nhãn thời gian riêng phần (tt)
Trang 180Write(B) Read(C) TS(T 1 )=100 WT(A)=0 WT(B)=0 RT(C)=0 WT(C)=0
Trang 181Read(C)
Trang 183T TS=175
T TS=255
Read(A)
Trang 184Nội dung trình bày
Trang 185Nhãn thời gian nhiều phiên bản
Trang 186Nhãn thời gian nhiều phiên bản (tt)
Trang 187Nhãn thời gian nhiều phiên bản (tt)
Trang 188Ví 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 189RT=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 190Nhãn thời gian nhiều phiên bản (tt)
Trang 191Tài liệu tham khảo
§
–
Trang 192LOGO
Trang 194Timestamp vs Locking
§
§
Trang 196Strict Timestamp Based Concurrency Control
§
–
§
Trang 201Timestamp-based approach
§
–
Trang 204
LOGO
Trang 205Nội dung trình bày
Trang 208Sự cố do nhập liệu sai ( Erroneous Data Entry )
Trang 209Sự cố trên thiết bị lưu trữ ( Media Failures )
Trang 210Sự cố giao tác ( Transaction Failures )
Trang 212Mục tiêu của khôi phục sự cố
Log Data
Trang 213Các thao tác đọc ghi dữ liệu trong DBMS
Trang 214Nội dung trình bày
Trang 216Nhật ký giao tác (tt)
§
Trang 218Điểm kiểm tra (Check point)
Trang 219Điểm kiểm tra đơn giản
Trang 220Điểm kiểm tra đơn giản (tt)
Trang 221Điểm kiểm tra linh động
Trang 222Điểm kiểm tra linh động (tt)
Trang 223Nội dung trình bày
Trang 230Undo-Logging & Checkpoint
Trang 231Undo-Logging & Checkpoint (tt)
Trang 232Undo-Logging & Checkpoint (tt)
§
–
–
Trang 233Undo-Logging & Checkpoint (tt)
Trang 234Undo-Logging & Checkpoint (tt)
Trang 235Undo-Logging & Checkpoint (tt)
Trang 236Undo-Logging & Checkpoint (tt)
Trang 237Undo-Logging & Checkpoint (tt)
Trang 238Nội dung trình bày
Trang 241Ví dụ
Read(A,t) t:=t*2
Write(A,t)
Read(B,t) t:=t*2
Write(B,t)
Output(A) Output(B)
Trang 243lại
Trang 244Ví dụ
Read(A,t)
t:=t*2 Write(A,t)
Read(B,t)
t:=t*2 Write(B,t)
Trang 245Redo-Logging & Checkpoint
§
–
Trang 246Redo-Logging & Checkpoint (tt)
Trang 247Redo-Logging & Checkpoint (tt)
Trang 248Redo-Logging & Checkpoint (tt)
– –
Trang 249Redo-Logging & Checkpoint (tt)
Trang 250Redo-Logging & Checkpoint (tt)
Trang 251Nhận xét
Trang 252Nội dung trình bày
Trang 254Ví dụ
Trang 256lại
Trang 257Ví 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 258Undo/Redo-Logging & Checkpoint
Trang 259Undo/Redo-Logging & Checkpoint (tt)
Trang 260Undo/Redo-Logging & Checkpoint (tt)
Trang 261Undo/Redo-Logging & Checkpoint (tt)
Trang 262Undo/Redo-Logging & Checkpoint (tt)
Trang 263Nội dung trình bày
Trang 266Cơ chế phân quyền
Trang 267Cơ 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 268Cơ 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 269Cơ chế phân quyền (tt)
Trang 270Cơ chế phân quyền (tt)
Trang 274Tài liệu tham khảo
§
–
Trang 275Backup & Recovery in SQL Server
Trang 276LOGO
Trang 277
LOGO
VẤN
Trang 278Nội dung chi tiết
Trang 281Giới thiệu (tt)
§
Trang 282Nội dung chi tiết
Trang 283Phân tích cú pháp và ngữ nghĩa
Trang 285SELECT FROM WHERE
Trang 286Ví dụ 1 (tt)
Trang 288Ví dụ 2 (tt)
Trang 289Phân tích cú pháp và ngữ nghĩa
Kiểm tra ngữ nghĩa giữa
Trang 290Nội dung chi tiết
Trang 291Biến đổi sang ĐSQH
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 292§
– –
– –
–
Trang 293Biến đổi sang ĐSQH (tt)
Trang 294Xét ví dụ 2
π σ
Trang 295Biến đổi sang ĐSQH (tt)
§
–
–
σ
Trang 296Xét ví dụ 1 (Lồng phân cấp)
π
πσ
Trang 297Biến đổi sang ĐSQH (tt)
§
–
• σ C
Trang 298Xét ví dụ 1 (Lồng phân cấp)
π
πσ
Trang 299Xét ví dụ 1 (tt)
π σ
π σ
à
Trang 300Xét ví dụ 1 (tt)
π σ
Trang 302Ví dụ 3 (tt)
π σ
ℑ
σc.custID=a.cusID
Ph
Trang 303Ví dụ 3 (tt)
π σ
ℑ
σc.custID=a.cusID
Trang 304S
X
?
Trang 307Nội dung chi tiết
Trang 308Tối ưu hóa cây truy vấn
Trang 309Tối ưu hóa cây truy vấn (tt)
Trang 313Áp dụng quy tắc (tt)
§
Trang 326Nội dung chi tiết
Trang 327Ước lượng kích thước cây truy vấn
Trang 328Ước lượng kích thước
Trang 330Ước lượng kích thước (tt)
Trang 332Ước lượng kích thước (tt)
Trang 335Ước lượng kích thước (tt)
§
–
–
1 2
Trang 336Ước lượng kích thước (tt)
Trang 337Ước lượng kích thước (tt)
Trang 338Ước lượng kích thước (tt)
§
–
Trang 339Chi phí ở nút lá không có ý nghĩa
1150
1100
Trang 340Nội dung chi tiết
Trang 341Tối ưu hóa cây truy vấn
Trang 345Phát sinh mã (tt)
§
–
–
Trang 348Tài liệu tham khảo
§
–