Đề và bài giải hết học phần các hệ cơ sở dữ liệu
Số trang: 12
Loại file: doc
Dung lượng: 407.00 KB
Lượt xem: 29
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Transaction (Giao dịch) trong SQL Server là một tập hợp tuần tự của các câu lệnh SQL đơnđể tạo thành một đơn vị luận lý duy nhất. Đơn vị luận lý này làm việc phải đảm bảo 4 tínhchất: tính nguyên tử (atomicity), tính nhất quán (consistency), tính cô lập (isolation) và tínhbền vững (durability) (ACID).
Nội dung trích xuất từ tài liệu:
Đề và bài giải hết học phần các hệ cơ sở dữ liệu ĐỀTHIHẾTMÔNHỌCCÁCHỆCƠSỞDỮLIỆU1) Transactionlàgì,mụcđíchvàcơchếtriểnkhaicủanótrongSQLServer.Cho1vídụvề1 transactionvàviếtScriptSQLthựcthitransactionđó. • Transaction(giaotác)làmộtdãycácthaotáccầnthựchiệntrêncơsởdữliệudướimộtđơn vịduynhất,nghĩalàhoặcthựchiệntấtcảcácthaotáchoặckhôngthựchiệnthaotácnào cả. • Transaction(Giaodịch)trongSQLServerlàmộttậphợptuầntựcủacáccâulệnhSQLđơn đểtạothànhmộtđơnvịluậnlýduynhất.Đơnvịluậnlýnàylàmviệcphảiđảmbảo4tính chất:tínhnguyêntử(atomicity),tínhnhấtquán(consistency),tínhcôlập(isolation)vàtính bềnvững(durability)(ACID). • Vídụ:giaotácchuyểnkhoảnAsangBgồm2thaotácsau: –TrừtiềnA. –CộngtiềnB.Chuyểnkhoảnđượcthựchiệndướidạnggiaotác(transaction)nghĩalàhoặcthựchiệncả2việctrừtiềnAvàcộngtiềnBhoặcnếucósựcốthìkhônglàmgìcảvàthôngbáogiaotácthấtbại. • Mụcđích:Giảiquyếtcácvấnđề: o Vấnđềmấtdữliệuđãcậpnhật. o Vấnđềkhôngthểđọclại. o Vấnđềdữliệukhôngnhấtquán. • CàitransactiontrênSQLServer:begintransaction,commit,rollback,savetransaction… • Vídụvềmấtdữliệuđãcậpnhật: o Vídụ1:Nhàsáchcòn500quyểnsách. –VàolúcT1nhânviênAnhậnyêucầumua400quyểntừkháchhàngX. –CũngvàolúcT1nhânviênBnhậnyêucầumua300quyểntừkháchhàngY. –AvàBđọcdữliệuthấycòn500quyểnnênđềuđồngýbán. o Vídụ2:Nhàsáchcòn500quyểnsách. –VàolúcT2nhânviênAsẽthựchiệncậpnhậtsốsáchtừ500thành100. –VàolúcT3nhânviênBsẽthựchiệncậpnhậtsốsáchtừ500thành200. −NhưvậythaotáccậpnhậtcủaAkhôngcótácdụnghaydữliệumàAcậpnhậtsẽbịmấtvìBcậpnhậtsau.(lastinwind) • Vídụvềdữliệukhôngthểđọclại: o Vídụ1:Giảsửnhàsáchcòn200quyểnsách. –VàolúcT1nhânviênAbánchokhách150quyển,sẽthựchiệncậpnhậtsốsáchtừ200thành50.(Giaodịchchưahoànthànhchẳnghạnvìviệcgiaonhậntiềnchưaxong). –SauđólúcT2,Bnhậnđượcyêucầumua100quyểnsách,nếuBđượcđọcdữliệuchưahoàntấtthìBsẽtừchốibán100quyểnsáchnày. o Vídụ2:Giảsửnhàsáchcòn200quyểnsách. –NếuvàolúcT3vìlýdonàođóchẳnghạnkhôngđủtiềnkháchhàngcủaAkhôngmua150quyểnsáchnữa.GiaotácbánhàngcủaAsẽkhôngthểthựchiệnnênquayvêtrạngtháisốsáchcònlà200. –NhưngBđãtừchốikháchhàng. –NếuBkhôngđọcđượcdữliệutừlúcT1đếnT3thìsẽnhưthênào? • Vídụvềdữliệukhôngnhấtquán:GiảsửnhânviênCcântổnghợp5dòngdữliệu12345 đểlàmmộtbảnbáocáo. –T1:Cđọcvàđưacácdòng1234vàobáocáo. –T2:Dlạixóadòng1thaybằngdòng6. –T3:Cđọctiếp56đưavàobáocáo. –Vậybáocáonàyxửlýcảdữliệucũvàmới → sai. • TransactioninSQLServer o TransactionRecovery:2thaotác –COMMIT:hoàntâtgiaotácthànhcông. –ROLLBACK:giaotácthấtbạiquayvêtrạngtháitrướckhithựchiệngiaotác o TransactionLog:undothechanges –Khiusermuốnmộtchỉnhsửadữliệu,trongtransactionloglưu2phiênbảncủadòngdữliệuđó:trướcvàsaukhichỉnhsửa. −NếuuserthựchiệncâulệnhCommitthìendoftransactionđượcghixuốngtransactionlog. −NếuuserthựchiệncâulenhRollbackthìhệthốngsẽtìmphiênbảntrướckhichỉnhsửavàcậpnhậtlạivàoCSDL. • Vídụvềđảmbảotínhnhấtquáncủadữliệu:Mộtnhânviêncómã‘000002’đượcchọnlàm‘SalesManager’(positioncode=‘0001’).Ta sẽ cầncậpnhậttrongbảngEmployeevàcả trongbảngPositionsố lượngngườihiệntại nắmgiữvịtrícóPositionCode=‘0001’. UPDATEEmployee SETcCurrentPosition=0001 WHEREcEmployeeCode=000002‘ UPDATEPosition SETiCurrentStrength=iCurrentStrength+1 WHEREcPositionCode=0001’Giảiquyết: BEGINTRANSACTIONtrnUpdatePosition UPDATEEmployee SETcCurrentPosition=0001 WHEREcEmployeeCode=000002 UPDATEPosition SETiCurrentStrength=iCurrentStrength+1 WHEREcPositionCode=0001 COMMITTRANSACTIONtrnUpdatePosition2) ChobảngSinhVien(MASV,TenNV,Tuoi,MaKhoa)vớiMASVlàkhóachính.Trongcơsởdữ liệuhiệncó2sinhviên:sinhviênNguyễnVănAcómãsốSV001,18tuổivàthuộckhoaToán vàsinhviênNguyễnVănBcómãsốSV002,22tuổivàthuộckhoaLý.ChobảngKhoa (MaKhoa,TenKhoa)vớiMaKhoalàkhóachính.TrongCSDLhiện ...
Nội dung trích xuất từ tài liệu:
Đề và bài giải hết học phần các hệ cơ sở dữ liệu ĐỀTHIHẾTMÔNHỌCCÁCHỆCƠSỞDỮLIỆU1) Transactionlàgì,mụcđíchvàcơchếtriểnkhaicủanótrongSQLServer.Cho1vídụvề1 transactionvàviếtScriptSQLthựcthitransactionđó. • Transaction(giaotác)làmộtdãycácthaotáccầnthựchiệntrêncơsởdữliệudướimộtđơn vịduynhất,nghĩalàhoặcthựchiệntấtcảcácthaotáchoặckhôngthựchiệnthaotácnào cả. • Transaction(Giaodịch)trongSQLServerlàmộttậphợptuầntựcủacáccâulệnhSQLđơn đểtạothànhmộtđơnvịluậnlýduynhất.Đơnvịluậnlýnàylàmviệcphảiđảmbảo4tính chất:tínhnguyêntử(atomicity),tínhnhấtquán(consistency),tínhcôlập(isolation)vàtính bềnvững(durability)(ACID). • Vídụ:giaotácchuyểnkhoảnAsangBgồm2thaotácsau: –TrừtiềnA. –CộngtiềnB.Chuyểnkhoảnđượcthựchiệndướidạnggiaotác(transaction)nghĩalàhoặcthựchiệncả2việctrừtiềnAvàcộngtiềnBhoặcnếucósựcốthìkhônglàmgìcảvàthôngbáogiaotácthấtbại. • Mụcđích:Giảiquyếtcácvấnđề: o Vấnđềmấtdữliệuđãcậpnhật. o Vấnđềkhôngthểđọclại. o Vấnđềdữliệukhôngnhấtquán. • CàitransactiontrênSQLServer:begintransaction,commit,rollback,savetransaction… • Vídụvềmấtdữliệuđãcậpnhật: o Vídụ1:Nhàsáchcòn500quyểnsách. –VàolúcT1nhânviênAnhậnyêucầumua400quyểntừkháchhàngX. –CũngvàolúcT1nhânviênBnhậnyêucầumua300quyểntừkháchhàngY. –AvàBđọcdữliệuthấycòn500quyểnnênđềuđồngýbán. o Vídụ2:Nhàsáchcòn500quyểnsách. –VàolúcT2nhânviênAsẽthựchiệncậpnhậtsốsáchtừ500thành100. –VàolúcT3nhânviênBsẽthựchiệncậpnhậtsốsáchtừ500thành200. −NhưvậythaotáccậpnhậtcủaAkhôngcótácdụnghaydữliệumàAcậpnhậtsẽbịmấtvìBcậpnhậtsau.(lastinwind) • Vídụvềdữliệukhôngthểđọclại: o Vídụ1:Giảsửnhàsáchcòn200quyểnsách. –VàolúcT1nhânviênAbánchokhách150quyển,sẽthựchiệncậpnhậtsốsáchtừ200thành50.(Giaodịchchưahoànthànhchẳnghạnvìviệcgiaonhậntiềnchưaxong). –SauđólúcT2,Bnhậnđượcyêucầumua100quyểnsách,nếuBđượcđọcdữliệuchưahoàntấtthìBsẽtừchốibán100quyểnsáchnày. o Vídụ2:Giảsửnhàsáchcòn200quyểnsách. –NếuvàolúcT3vìlýdonàođóchẳnghạnkhôngđủtiềnkháchhàngcủaAkhôngmua150quyểnsáchnữa.GiaotácbánhàngcủaAsẽkhôngthểthựchiệnnênquayvêtrạngtháisốsáchcònlà200. –NhưngBđãtừchốikháchhàng. –NếuBkhôngđọcđượcdữliệutừlúcT1đếnT3thìsẽnhưthênào? • Vídụvềdữliệukhôngnhấtquán:GiảsửnhânviênCcântổnghợp5dòngdữliệu12345 đểlàmmộtbảnbáocáo. –T1:Cđọcvàđưacácdòng1234vàobáocáo. –T2:Dlạixóadòng1thaybằngdòng6. –T3:Cđọctiếp56đưavàobáocáo. –Vậybáocáonàyxửlýcảdữliệucũvàmới → sai. • TransactioninSQLServer o TransactionRecovery:2thaotác –COMMIT:hoàntâtgiaotácthànhcông. –ROLLBACK:giaotácthấtbạiquayvêtrạngtháitrướckhithựchiệngiaotác o TransactionLog:undothechanges –Khiusermuốnmộtchỉnhsửadữliệu,trongtransactionloglưu2phiênbảncủadòngdữliệuđó:trướcvàsaukhichỉnhsửa. −NếuuserthựchiệncâulệnhCommitthìendoftransactionđượcghixuốngtransactionlog. −NếuuserthựchiệncâulenhRollbackthìhệthốngsẽtìmphiênbảntrướckhichỉnhsửavàcậpnhậtlạivàoCSDL. • Vídụvềđảmbảotínhnhấtquáncủadữliệu:Mộtnhânviêncómã‘000002’đượcchọnlàm‘SalesManager’(positioncode=‘0001’).Ta sẽ cầncậpnhậttrongbảngEmployeevàcả trongbảngPositionsố lượngngườihiệntại nắmgiữvịtrícóPositionCode=‘0001’. UPDATEEmployee SETcCurrentPosition=0001 WHEREcEmployeeCode=000002‘ UPDATEPosition SETiCurrentStrength=iCurrentStrength+1 WHEREcPositionCode=0001’Giảiquyết: BEGINTRANSACTIONtrnUpdatePosition UPDATEEmployee SETcCurrentPosition=0001 WHEREcEmployeeCode=000002 UPDATEPosition SETiCurrentStrength=iCurrentStrength+1 WHEREcPositionCode=0001 COMMITTRANSACTIONtrnUpdatePosition2) ChobảngSinhVien(MASV,TenNV,Tuoi,MaKhoa)vớiMASVlàkhóachính.Trongcơsởdữ liệuhiệncó2sinhviên:sinhviênNguyễnVănAcómãsốSV001,18tuổivàthuộckhoaToán vàsinhviênNguyễnVănBcómãsốSV002,22tuổivàthuộckhoaLý.ChobảngKhoa (MaKhoa,TenKhoa)vớiMaKhoalàkhóachính.TrongCSDLhiện ...
Tìm kiếm theo từ khóa liên quan:
lưu trữ dữ liệu lập trình dữ liệu hệ thống dữ liệu dữ liệu máy tính quản trị dữ liệuTài liệu liên quan:
-
Đáp án đề thi học kỳ 2 môn cơ sở dữ liệu
3 trang 314 1 0 -
PHÂN TÍCH THIẾT KẾ HỆ THỐNG XÂY DỰNG HỆ THỐNG ĐẶT VÉ TÀU ONLINE
43 trang 282 2 0 -
8 trang 270 0 0
-
6 trang 174 0 0
-
Hướng dẫn tạo file ghost và bung ghost
12 trang 155 0 0 -
48 trang 113 0 0
-
Hướng dẫn sử dụng Mapinfo Professional-Phần cơ bản
57 trang 86 0 0 -
150 trang 69 0 0
-
Đồ án tốt nghiệp ngành Công nghệ thông tin: Áp dụng các kỹ thuật trong big data vào lưu trữ dữ liệu
96 trang 67 1 0 -
Giáo trình Điện toán đám mây (Xuất bản lần thứ hai): Phần 1
64 trang 65 0 0