Danh mục

Đề 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    
10.10.2023

Hỗ trợ phí lưu trữ khi tải xuống: 1,000 VND Tải xuống file đầy đủ (12 trang) 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 ...

Tài liệu được xem nhiều: