Datu-baseen Hutsegiteak eta Berreskuratze Prozesua
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en vasco con un tamaño de 4,5 KB
Hutsegite Motak eta Ondorioak
Datu-baseen kudeaketa sistemetan (DBKS), hainbat hutsegite mota gerta daitezke, eta horiek transakzioen exekuzioan eta datuen osotasunean eragina izan dezakete. Hutsegite hauek sailka daitezke:
- Konkurrentzia-kontroleko hutsegiteak (I): Serializagarritasuna haustea, elkar-blokeaketak, etab.
- Transakzio-erroreak (I): Overflow, zeroz zatitzea, murrizketak ez betetzea, etab. Errore hauek transakzio bati bakarrik eragiten diote (errore lokalak).
- Software-erroreak (II): DBKS, sistema eragilea, komunikazioak, etab. Errore hauek sistema osoari eragiten diote (errore globalak).
- Hardware-erroreak (II): Diskoaren errorea, makinaren errorea, sarearen errorea, etab. Errore hauek sistema osoari eragiten diote (errore globalak).
- Katastrofeak (II): Argindarraren hutsegitea, lapurreta, sutea, uholdea, sabotajea, ezusteko ezabatzea, etab.
Hutsegite hauek ondorio larriak izan ditzakete, ACID propietateak (Atomicity, Consistency, Isolation, Durability) galduz:
- Atomicity (A): Transakzio baten eragiketa guztiak egin edo bat ere ez egitea bermatzen du.
- Consistency (C): Datu-basea egoera koherente batetik beste batera eramatea bermatzen du.
- Isolation (I): Transakzioak isolatuta exekutatzea bermatzen du, beste transakzioen interferentziarik gabe.
- Durability (D): Transakzio batek aldaketak egin ondoren, aldaketa horiek iraunkorrak izatea bermatzen du, nahiz eta sistemak huts egin.
Hutsegiteen Soluzioak
Hutsegiteen aurrean, bi mekanismo mota erabiltzen dira:
- Konkurrentzia-kontrol mekanismoak.
- Berreskuratze-mekanismoak.
Kontuan hartuko diren kasuak:
- Memoria nagusiaren (hegazkorra) galera.
- Memoria lagungarriaren galera.
Berreskuratze-prozesua
Berreskuratze-prozesua datu-basea egoera koherente batera itzultzean datza, hutsegite baten ondoren. Horretarako, erredundantzia fisikoa erabiltzen da, bereziki egunkaria (log edo journal).
Egunkariaren Funtzionamendua
Egunkariak transakzioen eragiketa guztiak erregistratzen ditu:
- Hasiera (START_TRANSACTION).
- Amaiera (COMMIT edo ROLLBACK).
- Berrespena (COMMIT).
- Deuseztapena (ROLLBACK).
- Kontsultak (READ).
- Eguneraketak (WRITE).
Idazketa aurreko egunkariratzea (log write-ahead): Eguneraketa bakoitzeko, egunkariko sarrera diskoan grabatzen da datu-basea diskoan aldatu aurretik. Egunkaria eta datu-basea disko (edo partizio) desberdinetan gordetzen dira, eta aldizkako babeskopiak egiten dira.
Berreskuratze-teknikaren Helburua
Datu-basearen informazioa berrezartzea, honako propietateak bermatuz:
- Consistency (C).
- Atomicity (A).
- Durability (D).
Egunkariko Sarreren Adibideak
[START_TRANSACTION, T, ]
: T transakzioa hasi da.[COMMIT, T, ]
: T transakzioa ondo amaitu da eta aldaketak berresten dira.[ROLLBACK, T, ]
: T transakzioa bertan behera utzi da (aldaketak desegin).[READ, T, X, , ]
: T transakzioak X elementuaren balioa irakurri du.[WRITE, T, X, oldValue, newValue]
: T transakzioak X elementuaren balioa aldatu du (oldValue-tik newValue-ra).
Egunkariaren Erabilera Berreskurapenean
Hutsegite batetik berreskuratzeko, egunkariko transakzio-eragiketa batzuk desegin (UNDO) edo berregin (REDO) behar dira:
- REDO(T): T transakzioak egindako aldaketak berrezartzen dira (newValue balioak).
- UNDO(T): T transakzioak egindako aldaketak desegiten dira (oldValue balioak).
Egunkariaren Aldaketa Motak
- Berehalakoa.
- Atzeratua.
COMMIT Eragiketaren Garrantzia
Transakzio batek COMMIT egiten duenean:
- Transakzioaren eragiketa guztiak ondo burutu dira.
- Eragiketa horiek egindako aldaketak egunkarian erregistratu dira (COMMIT barne).
- Transakzioa hitzartze-puntura heldu da.
COMMIT egin ondoren:
- Transakzioa hitzartuta dago.
- Transakzioak egindako aldaketa guztiak behin betiko gordeko dira datu-basean.
- Blokeoak, bufferrak, eta abar askatzen dira.