Funcions Essencials del SGBD: Integritat, Seguretat i Transaccions

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en catalán con un tamaño de 6,07 KB

Causes de la vulneració de la integritat de les dades

Què provoca que es vulneri la integritat de les dades?

  • Dades d’entrada incorrectes que no satisfan les restriccions d’integritat definides.
  • Modificacions no autoritzades de les dades.
  • Accessos simultanis de diversos usuaris a les mateixes dades (concurrència).
  • Caigudes del sistema i avaries dels dispositius d’emmagatzematge.

Tasques principals del SGBD

Les tasques fonamentals d'un Sistema de Gestió de Bases de Dades (SGBD) inclouen:

  • Control de la integritat de les dades.
  • Gestió de la seguretat del sistema.
  • Gestió de transaccions.
  • Control de concurrència.
  • Gestió de recuperacions.
  • Optimització de consultes.

1. Integritat semàntica de les dades

El SGBD disposa de diversos mecanismes per garantir la integritat semàntica:

  1. Restriccions definides: Es defineixen en l'esquema de la BD i es guarden al diccionari de dades.
  2. Mecanisme de comprovació de les regles: Comprova totes les restriccions d'integritat cada vegada que s'actualitzen dades. Aquest procés pot no ser del tot eficient.
  3. Mecanisme d'activació d'accions: S'activa quan hi ha alguna actualització que viola la integritat referencial (per exemple, en esborrar un registre, es pot optar per fer una acció en cascada o posar valors nul·les).

Exemple: El grau de vi ha de ser entre 8 i 16. La restricció es defineix com a CHECK(grau > 8 AND grau < 16). El SGBD s'encarrega de controlar el compliment d'aquestes restriccions sempre que es produeix alguna modificació que podria violar-les.

Procediments emmagatzemats

Són funcions o accions que defineixen alguna funcionalitat i que s'emmagatzemen a la BD com un objecte addicional. Aquests procediments serveixen per descriure operacions complexes que es realitzen a la BD.

Disparadors (Triggers)

Són esdeveniments que s'activen quan es vol inserir, esborrar o actualitzar dades en una taula. S'utilitzen especialment quan la restricció d'integritat és complexa.

Quan s'afegeix una nova restricció d'integritat, el SGBD farà una anàlisi de contradiccions i redundàncies (és feina de l'administrador comprovar-ho). Per fer una comprovació de la integritat semàntica més eficient, pot ser útil afegir redundàncies o índexs.

2. Seguretat del sistema

La seguretat controla que les persones que accedeixen siguin usuaris autoritzats de la BD i, a més, que estiguin autoritzats a realitzar l'acció que volen dur a terme.

Determinació d'accessos autoritzats

Al diccionari de la BD es guarden els privilegis que té cada usuari. Quan un usuari intenta modificar alguna dada, es comprova prèviament si té el poder per fer-ho; en cas contrari, l'acció es rebutja.

Atribució i revocació de drets

El propietari de la BD té tots els drets i privilegis. També interessa que altres usuaris hi puguin accedir, i per això s'atorguen privilegis.

Atribució (GRANT):

GRANT privilegis ON objecte TO [PUBLIC | usuari] [WITH GRANT OPTION]

L'opció WITH GRANT OPTION permet que l'usuari al qual s'atorguen els privilegis tingui la capacitat d'atorgar-los a altres usuaris. Es poden atorgar privilegis com: SELECT, UPDATE, INSERT, DELETE, ALL PRIVILEGES, EXECUTE, REFERENCES (sobre objectes o taules). Si es posa PUBLIC, s'atorga a tots els usuaris.

Revocació (REVOKE):

REVOKE [GRANT OPTION FOR] privilegis ON objecte FROM [PUBLIC | usuari] [RESTRICT | CASCADE]

  • RESTRICT: No permet la revocació si hi ha dependències.
  • CASCADE: Revoca els privilegis a l'usuari i a tots els usuaris que els hagin rebut a partir d'ell.
  • GRANT OPTION FOR: S'utilitza per revocar només el privilegi d'atorgar privilegis.

Privilegis amb vistes

Es defineix una vista amb la informació que es vol exposar i s'atorga a l'usuari el privilegi només sobre aquesta vista, limitant l'accés a les taules subjacents.

Exemple:

CREATE VIEW emp_prod AS (SELECT * FROM empleats WHERE departament="prod")

REVOKE SELECT ON empleats FROM usuari;

GRANT SELECT ON emp_prod TO usuari;

3. Gestió de transaccions

Una transacció és una seqüència d'accions que s'executen com una unitat indivisible. Les accions d'una transacció s'executen totes o cap (per exemple, una transferència bancària o una reserva de teatre).

Propietats ACID de les transaccions

Les transaccions han de complir les següents propietats:

  1. Atomicitat: La transacció és indivisible i atòmica; o es realitzen totes les accions o cap.
  2. Consistència: La transacció no provoca la violació de cap restricció d'integritat definida.
  3. Aïllament (Isolament): Cap altra transacció pot veure el resultat dels canvis produïts per una transacció en estat intermedi. Només quan finalitzi la transacció es podrà accedir a les dades modificades.
  4. Definitivitat (Durabilitat): Si la transacció acaba amb COMMIT, tots els canvis realitzats han de ser definitius i no poden ser destruïts per un error o una caiguda del sistema.

Quan una transacció acaba, s'indica si es volen confirmar els canvis amb COMMIT o cancel·lar-los amb ROLLBACK.

Inici de transacció:

START TRANSACTION {READ ONLY | READ WRITE}, ISOLATION LEVEL <nivell_aïllament>

Finalització de transacció:

  • COMMIT (guardar els canvis realitzats)
  • ROLLBACK (esborrar els canvis i deixar l'estat anterior)

Entradas relacionadas: