Tải bản đầy đủ (.doc) (35 trang)

đề thi quản trị cơ sở dữ liệu phân tán 4

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (995.77 KB, 35 trang )

Quản trị dữ liệu phân tán (từ trang 17)
2(2-1-0-4)
Học phần học trước: IT3080
Học phần song hành: IT4610
Mục tiêu: Nhằm cung cấp cho sinh viên những kiến thức cơ bản về tính tương tranh, nhất quán,
toàn vẹn, tin cậy , riêng tư và an ninh trong một hệ thống cơ sở dữ liệu phân tán. Giới thiệu
các ứng dụng cơ sở dữ liệu phân tán. Thông qua đó, định hướng cho sinh viên phát triển
các ứng dụng dựa trên việc xây dựng, khai thác cơ sở dữ liệu phân tán .
Nội dung: Tổng quan về cơ sở dữ liệu phân tán và quản trị cơ sở dữ liệu phân tán. Những vấn
đề cơ bản và các giải pháp ( tương tranh, xử lý câu hỏi , nhân bản, chịu lỗi, an toàn – an
ninh) . Các ứng dụng cơ sở dữ liệu phân tán. Các hệ quản trị cơ sở dữ liệu phân tán tiêu
biểu: SQL Server, Oracle.

11

IT4660

Quản trị cơ sở dữ liệu phân tán

2(2-0-1-4)

IT3090


IT4660 Quản trị CSDL phân tán
1. Tên học phần: QUẢN TRỊ CSDL PHÂN TÁN
2. Mã số:
IT4660
3. Khối lượng:
2(2-0-1-4)
• Lý thuyết: 30 giờ


• Thực hành-Thí nghiệm: 15 giờ
4. Đối tượng tham dự: Sinh viên chuyên ngành Truyền thông và Mạng máy tính từ học kỳ 8.
5. Điều kiện học phần:
• Học phần tiên quyết:
• Học phần học trước: IT3080
• Học phần song hành: IT4610
6. Mục tiêu học phần: Nhằm cung cấp cho sinh viên những kiến thức cơ bản về tính tương
tranh, nhất quán, toàn vẹn, tin cậy , riêng tư và an ninh trong một hệ thống cơ sở dữ liệu phân
tán
7. Nội dung vắn tắt học phần: Tổng quan về cơ sở dữ liệu phân tán và quản trị cơ sở dữ liệu
phân tán. Các hệ quản trị cơ sở dữ liệu phân tán tiêu biểu: SQL Server, Oracle...
8. Nhiệm vụ của sinh viên:
• Dự lớp: đầy đủ theo quy chế
• Bài tập: hoàn thành các bài tập của học phần
9. Đánh giá kết quả: KT/BT(0.3)-T(TN/TL:0.7)
• Điểm quá trình: trọng số 0.3
- Bài tập làm đầy đủ
- Hoàn thành tốt bài thí nghiệm theo yêu cầu giáo viên
• Thi cuối kỳ (trắc nghiệm / tự luận): trọng số 0.7
10. Tài liệu học tập
1. M. Tamer Ozsu , Patrick Valduriez, Principles of Distributed Database Systems, Prentice Hall,
2nd edition
2. M. T. Ozsu and P. Valduriez, Principles of Distributed Databases, Prentice-Hall, (2nd edition),
3. Elmasri , Navathe, Fundamentals of database systems , Addison-Wesley Longman, (3rd
edition).
11. Nội dung chi tiết học phần:


QUẢN TRỊ CSDL PHÂN TÁN
Người soạn:

Th.S Hồ Sĩ Bàng
TS. Hà Quốc Trung










CHƯƠNG I: NHỮNG NGUYÊN LÝ CƠ BẢN (số tiết 6 )

1. 1

Giới thiệu

Nêu được nhu cầu phân tán/các vấn đề đặt ra/ưu nhược điểm
H:\ddbs\ddbs1\Distributed Database Concepts.htm
Nhu cầu phân tán và quản trị
(xem csdlpt1.pdf+++CSDL_phan tan_1.pdf)
Cách thức thực hiện (syllabus-quan tri csdlpt.pdf)


A. NHU CẦU
Tại sao cần CSDL-PT?
Ví dụ: Công ty Big Corp. Có văn phòng tại London, New York, và Hong Kong.
Dữ liệu Employee :
– EMP(ENO, NAME, TITLE, SALARY, …)

Chúng ta nên đặt dữ liệu EMP này ở đâu?
Big Corp. Dữ liệu mẫu
Hầu như, dữ liệu nhân viên được quản lý tại văn phòng nơi mà nhân viên làm
Ví dụ: Luơng, phụ cấp, tiền thuê..
Định kỳ, Big Corp cần hợp nhất truy xuất đến dữ liệu nhân viên
– Ví dụ: Tính tông số lương cần trả cho bảng cân đối lương
– Ví dụ: Thưởng thêm hàng năm phụ thuộc lợi ích mạng toàn cục

Tập trung

Phân tán
Những vấn đề đòi hỏi:


-

Sự phân tán hỗ trợ việc xử lý song song(Chạy ở cả LD,NY,HK)
Việc lặp lại dữ liệu làm tăng hiệu năng(dữ liệu HK có thể ở NY)
-

Mô hình tập trung
 Tăng khả năng thông tin trên các thiết bị nhớ là rất khó khăn
 Độ sẵn sàng của CSDLkhoong cao khi số NSD tăng
 Khả năng tính toán của các máy tính đơn lẻ đang dần đến giới hạn vật lý
 Mô hình không phù hợp với các tổ chức kinh tế, xã hội, đa quốc gia
B. TẠI SAO CSDLPT CẦN THIẾT & PHÁT TRIỂN
Những lý do tổ chức và kinh tế : (Organizational and economic reasons)
Liên kết với dữ liệu đã có (Interconnection of existing database)
Sự tăng trưởng ( Incremental growth)
Giảm chi phí truyền thông (Reduced communication overhead)

Cân đối hiệu năng ( Performance consideration)
Độ tin cậy và tính sẵn sàng (Reliability and availability)
- Độ tin cậy : là xác suất một hệ thống chạy ở một số thời điểm chính.
- Độ sẵn sàng : là xác suất một hệ thống liên tục sẵn sàng trong một khoảng thời gian.


Khi dữ liệu và hệ quản trị được phân tán trên nhiều site thì một site nào đó có thể bị lỗi
trong khi các site khác vẫn hoạt động. Như vậy chỉ dữ liệu ở site bị lỗi là không thể truy
cập được (ưu điểm so với hệ thống trung tâm)
MỘT SỐ NHƯỢC ĐIỂM KHI SỬ DỤNG HỆ PHÂN TÁN
Sự thiếu kinh nghiệm: (Lack of Experience)
Sự phức tạp (Complexity)
Chi phí : (Cost)
Tính an toàn: (Security)
Khó khăn khi chuyển đổi (Difficulty of change) từ tập trung sang phân tán

1. 2

Các khái niệm

A. Định nghĩa: CSDLPT là tập CSDL có quan hệ logic với nhau và được trải trên một
mạng máy tính. Mỗi trạm của mạng có khả năng xử lý tự quản và có thể thực hiện các
ứng dụng cục bộ, mỗi một trạm cũng có thể tham gia vào ít nhất 1 ứng dụng toàn cục, có
yêu cầu truy xuất dữ liệu tại nhiều trạm.
Chú ý: có thể dữ liệu được phân tán (vật lý) trên nhiều máy. Tuy nhiên, nếu việc truy
xuất
dữ liệu chỉ tại duy nhất một máy tích hợp dữ liệu của các máy trên. Trường hợp này,
không thuộc loại hệ thống có CSDL phân tán được xem xét.

Cơ sở dữ liệu phân tán(Các CSDL MFG.ACME.COM, HQ.ACME.COM và SALES.

ACME.COM)
Các ứng dụng CSDL bao gồm ba phần : Xử lý ứng dụng, Phần mềm CSDL và bản
thân CSDL


Các mô hình kiến trúc vật lý về truy cập CSDL(5): CSDL tập trung + CSDL File Server
+ Xử lý từng phần CSDL + CSDL Clietn/Server + CSDL pt
Sự hợp nhất của 2 hướng tiếp cận quá trình xử lý dữ liệu: Lý thuyết các hệ CSDL và
công nghệ mạng máy tính
Xử lý phân tán: tập các phần tử xử lý tự tri (không đồng nhất) được kết nối với nhau bởi
một mạng máy tính và phối hợp thực hiện những công việc theo chức năng. Có 2 khái
niệm xử lý phân tán (Client/Server: tính toán trên mỗi phần và các giao dịch được
t.hiện phức tạp trên nhiều hệ thống)
Hệ thống xl pt : tập hợp các máy tính cài đặt CSDL và phần mềm cho phép nhiều người
chia xẻ thong tin chung. Các đối tượng phân tán bao gồm 3 (Logic xl pt : các phân tử hay
các chức năng phân tán, có thể ủy quyền; Pt dữ liệu: ; Đk pt: các gdich trên các nút )
CSDL phân tán lien quan đến 2 khía cạnh: Tính pt và Mối quan hệ logic
Mô hình tham chiếu CSDL pt : (lược đồ toàn cục /Lược đồ phân mảnh/Lược đồ cấp
phát/Lược đồ ánh xạ cục bộ/Hệ QTCSDL ở các site cục bộ)
B. HỆ QUẢN TRỊ CSDL - PT
ĐỊNH NGHĨA: Là phần mềm cho phép tạo lập CSDL phân tán, điều khiển mọi
truy cập đối với CSDL-PT đảm bảo trong suốt đối với người sử dụng.
– Chương trình quản trị DL địa phương
– Chương trình quản trị DL phân tán
– Chương trình quản trị truyền thông DL
– Chương trình quản trị tự điển DL
Các chức năng đặc thù của Hệ QTCSDL-PT
– Chương trình quản trị tự điển DL
– Đánh giá câu hỏi phân tán
– Quản trị giao dịch phân tán

– Các chức năng phục hồi & toàn vẹn DL
Các thành phần của Hệ QTCSDL-PT (Xử lý tương tác người dùng và Xử lý dữ
liệu)
 Xử lý tương tác người dùng
 Xử lý giao diện
 Kiểm soát dl ngữ nghĩa
 Phân rã và tối ưu hóa truy vấn toàn cục
 Giám sát thực hiện phân tán phối hợp thực hiện phân tán yêu cầu NSD
 Xử lý dữ liệu
 Bộ tối ưu hóa truy vấn cục bộ(chọn đường dẫn truy cập tốt nhất vào các mục dl)
 Bộ quản lý khôi phục cục bộ( duy trì tính nhất quán)
 Bộ hõ trợ thời gian thực hiện (lập lịch biểu)


PHÂN LOẠI HỆ QTCSDL-PT
 . Hệ thống Homogenous và hệ thống Heterogenous:
THUẦN NHẤT(Homogeneous)
-DDBMS với hệ quản trị CSDL như nhau tại mỗi trạm , ngay cả khi máy tính và / hoặc
hệ điều hành là không như nhau
KHÔNG THUẦN NHẤT (Heterogeneous)
- DDBMS với hệ quản trị CSDL khác nhau tại mỗi trạm - Có chức năng chuyển đổi giữa
các mô hình dữ liệu khác nhau của các hệ quản trị CSDL cục bộ khác nhau

Hệ thống không thuần nhất
Về Platform
IBM
Về DBMS
DB2
Về Hệ ĐH
MVS

Về Protocol
APPC LU 6.2

DEC_VAX
VAX rdb
MVS
DECnet

IBM AS400
SQL/400
OS/400
3270

RISC PC
Infomix
UNIX
TCP/IP

Pentium CPU
Oracle
Windows
NetBIOS

 CÁC QUAN ĐIỂM PHÂN LOẠI HỆ QTCSDL-PT KHÁC
Theo Bochmann, các loại hệ xử lý phân tán có thể phân loại dựa theo các tiêu
chuẩn :
Độ kết dính : (degree of coupling)là số đo mức độ nối kết chặt chẽ giữa các phần tử được
xử lý, được tính bằng tỷ số giữa lượng dữ liệu trao đổi với lượng xử lý tại chỗ, được thực
hiện trọng việc hoàn thành 1 giao tác



Cấu trúc nối kết ( Interconnection structure) Nối kết điểm - diểm (point-to-point) giữa
các phần tử xủ lý hay dùng kênh truyền chung
Sự đồng bộ hóa: (Synchronization) Sự đồng bộ hóa giữa các phần tử xử lý có thể được
duy trì bởi các phương cách đồng bộ hay bất đồng bộ
C. PHÂN ĐOẠN
i. Phân đoạn ngang : # chia csdl thành tập hợp các hàng (bộ).#chia một quan hệ thành
các tập con của các hàng trong quan hệ ban đầu, mỗi tập con có một ý nghĩa về mặt logic
nào đó.
vd : Phân đoạn quan hệ DU_AN với MaDV=1, MaDV=4, MaDV=5
Phân đoạn ngang hoàn thiện của quan hệ R : là một tập các phân đoạn ngang với các
điều kiện C1,C2,…Cn phải bao gồm tất cả các hàng của R ( nghĩa là mỗi hàng sẽ thỏa
mãn điều kiện C1 or C2 or … or Cn)
ii. Phân đoạn dọc : # chia csdl thành các quan hệ nhỏ, mỗi quan hệ nhỏ là một tập con
các thuộc tính của quan hệ ban đầu.#chia quan hệ dọc theo các thuộc tính vì đôi khi một
site không cần tất cả các thuộc tính của một quan hệ.
vd : quan hệ NHANVIEN được chia thành 2 quan hệ : thông tin cá nhân (Tên, Ngày
sinh,địa chỉ, giới tính ), thông tin về công việc (MãNV, lương, mãNQL, mãDV)
Phân đoạn dọc hoàn thiện của quan hệ R : là tập hợp các phân đoạn dọc có các phép
chiếu L1,L2,…,Ln bao gồm tất cả các thuộc tính của R nhưng chỉ chia sẻ khóa chính của
R. Nghĩa là :
1) L1 U L2 U … U Ln= tập các thuộc tính của R
2) Li ∩ Lj =Pk(R) cho bất cứ i≠j
iii. Phân đoạn hỗn hợp : kết hợp cả 2 kiểu phân đoạn ngang và dọc.
D. NHÂN BẢN DỮ LIỆU
Nhânbản dữ liệu nhằm làm tăng khả năng sẵn sàng của csdl bằng các tạo ra nhiều bản sao
của csdl và lưu ở trên nhiều site khác nhau.
Có2 kiểu nhân bản dữ liệu :
- Nhânbản toàn phần : thường làm chậm việc cập nhật dữ liệu
- Nhân bản một phần : chỉ một phân đoạn của csdl được nhân bản.

Lược đồ nhân bản : là mô tả của việc nhân bản các phân đoạn.
D. ĐỊNH VỊ DỮ LIỆU
- Định vị dữ liệu : là việc đăng ký một bản sao của một phân đoạn của csdl cho một site
cụ thể.
- Sự lựa chọn site và cấp độ của nhân bản phụ thuộc vào mục tiêu thực thi và sẵn sàng
của mỗi hệ thống và phụ thuộc vào kiểu, mật độ giao dịch của mỗi site.
Ví dụ về phân đoạn, định vị, nhân bản CSDL
Yêu cầu : Một công ty có 3 mạng máy tính cho bộ phận chỉ huy và 2 đơn vị số 4 và 5
(site 3 và 2). Mỗi mạng máy tính, chúng ta sẽ thường xuyên truy cập vào quan hệ
NHANVIEN, DU_AN để lấy thông tin của nhân viên làm việc cho một đơn vị và dự án
do đơn vị đó quản lý (chủ yếu truy cập vào các thuộc tính Tên, MãNV,lương, MãNQL
của quan hệ NHANVIEN). Site 1 được dùng cho bộ phận chỉ huy của công ty, và thường


xuyên truy cập thông tin của cac nhân viên, dự án và theo dõi thông tin về PhuThuoc cho
mục đích bảo hiểm.
Đáp án :
1. Theo yêu cầu của bài toán này thì tất cả CSDL được lưu ở site 1.
2. Phân đoạn :
Phân đoạn ngang quan hệ DONVI theo thuộc tính khóa MãDV.
Phân đoạn ngang quan hệ NHANVIEN, DU_AN, DONVI_DIADIEM dựa trên các khóa
ngoài của chúng là MãDV.
Rồi phân đoạn dọc quan hệ NHANVIEN để lấy các thuộc tính (Tên, MãNV,lương,
MãNQL), gọi quan hệ mới này là NHANVIEN2 - Phân đoạn quan hệ
NHANVIEN_DUAN theo đơn vị mà nhân viên đó làm việc, và theo đơn vị quản lý dự
án.
3. Nhân bản, định vị
- Nhân bản các phân đoạn của các quan hệ NHANVIEN2, DONVI, DU_AN,
DONVI_DIADIEM , NHANVIEN_DUAN với Mã DV=4 và 5 rồi lưu tương ứng ở các
site 3 và 2.

Kết quả : ở site 2 ta có các thông tin liên quan đến đv số 5, ở site 3 ta có các thông tin
liên quan đến đv số 4
(xem ổ đĩa ? distributed_database..pdf )

1. 3

Đặc điểm

Tổ chức/bảo mật/Kinh phí

NHỮNG ĐẶC ĐIỂM CỦA CSDL PHÂN TÁN SO VỚI CSDL TẬP TRUNG
Điều khiển tập trung (Centralize control)
->Tự quản trạm (site autonomy): tính tự trị địa phương. Người quản tị CSDL(DBA)
đkhiển phân cấp: (DBA toàn cục và DBA địa phương có sự độc lập nhất định)
 độc lập vị trí
Độc lập dữ liệu (Data independence)
->Tính trong suốt p.tán CSDL (transparent)
i. Trong suốt phân tán : có 2 loại
- Trong suốt vị trí : câu lệnh do người dùng thực hiện không phụ thuộc vào vị trí của dữ
liệu và vị trí của hệ thống đang được dùng.
- Trong suốt tên : Một khi đã được gán tên trong hệ thống thì vật thể được truy cập mà
không cần cung cấp thêm bất cứ thông tin nào khác.
ii. Trong suốt nhân bản: Nhiều copy của dữ liệu có thể được lưu ở nhiều nơi để nâng
cao tốc độ thực hiện, độ tin cậy. Người dung không biết về sự hiện hữu của nhiều bản
copy này.
Giảm dư thừa ( Reduction of redundancy)
->Tính lặp dữ liệu (replication)
 Làm tăng tính cục bộ
 Làm tăng tính sẵn sàng
CHú ý khi các ứng dụng chỉ đọc thì nhân bản tốt hơn



Cải thiện hiệu năng
 Phân mảnh(cục bộ hóa dữ liệu)
 Tính song song của các hệ thống phân tán(truy vấn song song và truy vấn nội bộ)
->Chương trình chỉ đường (navigational)
Sự ràng buộc toàn vẹn, phục hồi và điều khiển tương tranh (Intergrity, recovery,
and concurrency control)
Giao dịch: chuỗi các thao tác CSDL được thực hiện chuyển từ trạng thái CSDL nhất quán
này sang trạng thái CSDL nhất quán khác
 Các giao dịch phân tán hạn chế lỗi đơn lẻ
 Các giao dịch tuân theo quy tắc toàn vẹn CSDL
Tính riêng rẽ & tính an toàn: (Privacy and security)
NHỮNG VẤN ĐỀ CẦN GIẢI QUYẾT KHI TIẾP CẬN CSDL PHÂN TÁN
Thiết kế CSDL phân tán (Distributed Database Design): Hai pp đặt dữ liệu:
Phân vùng (rời nhau) và nhân bản( toàn bộ hay phân vùng)
-> Tối ưu hóa chi phí, cấu trúc, lưu trữ CSDL , giao dịch
Xử lý câu hỏi phân tán ( Distributed Query Processing): Phân tích các thuật toán
truy vấn và chuyển thành dãy các thao tác dữ liệu.
-> Cần xem xét phân tán dữ liệu, chi phí truyền thong, thong tin cục bộ có sẵn, tối ưu hóa
các vị trí được thực hiện song song
Quản trị thư mục phân tán (Distributed Directory Management): Thư mục chứa
các thong tin mô tả vị trí, dữ liệu. Có thể là toàn cục hay cục bộ, tập trung ở 1 hay nhiều
nơi, có/ko có bản sao
Điều khiển tương tranh phân tán (Distributed Concurrency Control): Đồng bộ
việc truy cập nhưng đảm bảo tính toàn vẹn và nhất quán. Các giá trị trong mỗi mục dữ
liệu phải quy về cùng một giá trị gọi là nhất quán chung
 Hai lớp giải pháp(bi quan và lạc quan)
Bi quan:đồng bộ các yêu cầu rồi thực thi
Lạc quan:Thực thi các yêu cầu và kiểm chứng tính nhất quán

 Dựa trên cơ chế khóa, độc quyền tương hỗ và gán nhãn thời gian
Quản trị khóa chết phân tán (Distributed Deadlock Management): Ngăn cản,
Tránh, Phát hiện và khôi phục như ở hệ điều hành
Độ tin cậy của hệ quản trị CSDL phân tán ( Reliability of Distributed DBMS)
Nhờ đảm bảo tính nhất quán: nếu lỗi thì không thay đổi trạng thái cập nhật
Nhờ khôi phục lại CSDL tại các trạm bị lỗi
(Khó khi tách rời nhiều nóm và các nhóm không lien hệ với nhau)
Hỗ trợ của hệ điều hành (Operating System Support)


Cơ sở dữ liệu không đồng nhất (Heterogeneous Database) :theo vị trí, phương
pháp cấu trúc dữ liệu, cơ chế truy xuất dữ liệu cần có cơ chế chuyển dịch giữa các hệ
thống: hệ đa cơ sở dữ liệu
TRIỂN VỌNG CỦA HỆ CSDL PHÂN TÁN
 Tự trị
 Tính song song nâng cao hiệu quả truy cập
 Các vấn đề tương tranh (dvu, CPU, vào ra..) ít xảy ra hơn tập trung, độ trễ ít
 Độ tin cậy và tính sẵn sàng
 Kinh tế do tổ chức hệ máy tính thay cho máy tính lớn
 Khả năng mở rộng hệ thống và phân chia tài nguyên
Bài tập
Bài tập 1 :Với CSDL PT CÔNG_TY như mô tả trong ví dụ trước hãy chỉ ra ít nhất 2
cách phân chia và thực thi mỗi truy vấn sau ( nêu điều kiện để cách phân chia của bạn có
thể làm việc tốt)
a. Liệt kê tên nhân viên, tên các phụ thuộc của nhân viên đó cho mỗi nhân viên làmviệc
cho đơn vị số 5.
b. Liệt kê tên nhân viên tất cả các nhân viên làm việc cho đơn vị số 5 nhưng không làm
việc cho một số dự án điều hành bởi đơn vị số 5.
BÀI TẬP (CSDL ko CSDL phân tán)
 Consider a DBMS that uses multigranularity locks for concurrency control. Using

this DBMS, we see two levels of database elements: the relation level and the
tuple level. Suppose that we have a relation R containing some tuples, and a
sequence of actions as follows:
(1) Transaction T1 insert a tuple t1 into R
(2) Transaction T2 reads a tuple t2 in R
(3) Transaction T3 scans relation R
(4) Transaction T4 writes tuple t2 in R
(5) Transaction T5 deletes tuple t2 from R
(6) Transaction T6 deletes relation R
 We make the following assumptions about timing:
i. Action (1) is issued to the scheduler at time 0, and the other actions then arrive in the
order shown above at an interval of t .
ii. Each transaction requests the necessary lock right before its action is issued, and
releases the lock right after its action completes.
iii. Whenever a new lock request arrives or a lock is released, the system examines the
waiting queue for that lock and grants the lock to as many compatible requests as it can.
The locks are granted to the transactions in a firstcomefirstserve manner.
iv. Each action completes 10t after it obtains the lock on relation R.
 (a) For each transaction, list the weakest type of lock (S, X, IS, IX) that the
transaction should hold on relation R before its action can be executed?


 (b) Draw the lock table structure for all the locked data elements in the database,
after action(1) completes and before action (2) completes. Suppose all actions
have arrived at the scheduler and requested their locks at this point.



(c) Fill out the time table for the lock and unlock actions on relation R in the output
schedule from the scheduler. You may use li and ui to represent the actions that

transaction i obtains and releases the lock on relation R, respectively.


Question 2


Consider the following single transaction running in isolation:

T = r(A) r(B) w(A) w(B) r(C) w(C) w(D)
Say that the system crashes and when it restarts we have an opportunity to examine the
log. A number of scenarios are given below. In each scenario, the logging method and log are
given. For each scenario, determine which writes to data elements must be reflected in the
database on disk, and which writes must not be reflected on disk. If no data elements fit a
category, simply write “empty” in the box.












a) UNDO logging: log = <Start T> <T, A, 5> <T, B, 7>


must: empty




must not: C,D

b) UNDO logging: log = <Start T> <T, A, 5> <T, B, 7> <T, C, 2> <T, D, 9> <Commit T>


must: A,B,C,D



must not: empty

c) REDO logging: log = <Start T> <T, A, 1> <T, B, 2> <T, C, 5>


must: empty



must not: A,B,C,D

d) REDO logging: log = <Start T> <T, A, 1> <T, B, 2> <T, C, 5> <T, D, 0> <Commit T>


must: empty




must not: empty

e) UNDO/REDO logging with nonquiescent (fuzzy) checkpointing: log = <Start T> 5, 1> <Begin Checkpoint (T)> <T, B, 7, 2>


must: empty



must not: C,D

f) UNDO/REDO logging with nonquiescent (fuzzy) checkpointing: log = <Start T> 1> <Begin Checkpoint (T)> <T, B, 7, 2> <End Checkpoint> <T, C, 2, 5> <T, D, 9, 0>
<Commit T>


must: A



must not: empty

Question 3




Consider the following schedule involving three transactions T1, T2 and T3:




a) Draw the precedence graph for this schedule.



b) Is this schedule conflict serializable? Why or why not? If it is conflict serializable, give
the equivalent serial schedule (just write the order of the transactions).




No because Precedence Graph has cycle.

c) Write down all instances where one transaction “reads from” another transaction. (If T2
reads from T1, write T1◊ T2.)


T1◊ T3 (A)



T3◊ T2 (C)

===

Overview of Application Programming Languages (APIs)
Oracle Database developers have a choice of languages for developing applications—C, C++, Java,
COBOL, PL/SQL, and Visual Basic. The entire functionality of the database is available in all the
languages. All language-specific standards are supported. Developers can choose the languages in which

they are most proficient or one that is most suitable for a specific task. For example an application might
use Java on the server side to create dynamicWeb pages, PL/SQL to implement stored procedures in the
database, and C++ to implement computationally intensive logic in the middle tier.
The Oracle Call Interface (OCI) is a C data access API for Oracle Database. It supports the entire Oracle
Database feature set. Many data access APIs, such as OCCI, ODBC, Oracle JDBC Type2 drivers, and so
on, are built on top of OCI. OCI provides powerful functionality to build high performance, secure,
scalable, and fault-tolerant applications. OCI is also used within the server for the data access needs of


database kernel components, along with distributed database access. OCI lets an application developer use
C function calls to access the Oracle data server and control all phases of business logic execution. OCI is
exposed as a library of standard database access and retrieval functions in the form of a dynamic runtime
library that can be linked in by the application.
The Oracle C++ Call Interface (OCCI) is a C++ API that lets you use the object-oriented features, native
classes, and methods of the C++ programing language to access the Oracle database. The OCCI interface is
modeled on the JDBC interface. OCCI is built on top of OCI and provides the power and performance of
OCI using an object-oriented paradigm.
Open database connectivity (ODBC), is a database access API that lets you connect to a database and then
prepare and run SQL statements against the database. In conjunction with an ODBC driver, an application
can access any data source including data stored in spreadsheets, like Excel.
Oracle offers a variety of data access methods from COM-based programming languages, such as Visual
Basic and Active Server Pages. These include Oracle Objects for OLE (OO40) and the Oracle Provider for
OLE DB. Oracle also provides .NET data access support through the Oracle Data Provider for .NET.
Oracle also support OLE DB .NET and ODBC .NET.
Oracle also provides the Pro* series of precompilers, which allow you to embed SQL and PL/SQL in your
C, C++, or COBOL applications.

view of Transactions
A transaction is a logical unit of work that comprises one or more SQL statements run by a single user.
According to the ANSI/ISO SQL standard, with which Oracle is compatible, a transaction begins with the

user’s first executable SQL statement. A transaction ends when it is explicitly committed or rolled back by
that user. Transactions let users guarantee consistent changes to data, as long as the SQL statements within
a transaction are grouped logically. A transaction should consist of all of the necessary parts for one logical
unit of work—no more and no less. Data in all referenced tables are in a consistent state before the
transaction begins and after it ends. Transactions should consist of only the SQL statements that make one
consistent change to the data.
Consider a banking database. When a bank customer transfers money from a savings account to a checking
account, the transaction can consist of three separate operations: decrease the savings account, increase the
checking account, and record the transaction in the transaction journal.
The transfer of funds (the transaction) includes increasing one account (one SQL statement), decreasing
another account (one SQL statement), and recording the transaction in the journal (one SQL statement). All
actions should either fail or succeed together; the credit should not be committed without the debit. Other
nonrelated actions, such as a new deposit to one account, should not be included in the transfer of funds
transaction. Such statements should be in other transactions.
Oracle must guarantee that all three SQL statements are performed to maintain the accounts in proper
balance. When something prevents one of the statements in the transaction from running (such as a
hardware failure), then the other statements of the transaction must be undone. This is called rolling back.
If an error occurs in making any of the updates, then no updates are made.
See Also: Chapter 25, "Overview of Application Development Languages"
Note: Oracle is broadly compatible with the SQL-99 Core specification.
See Also: Oracle Database SQL Reference for information about Oracle’s compliance with ANSI/ISO
standards


×