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.

Entradas relacionadas: