Salta el contingut

Sistemes gestors de bases de dades

Autor: Joan Puigcerver Ibáñez

Correu electrònic: j.puigcerveribanez@edu.gva.es

Llicència: CC BY-NC-SA 4.0

(Reconeixement - NoComercial - CompartirIgual) 🅭

Introducció

Recordem la estructura d'una base de dades:

Estructura d'una base de dades
Autor desconegut
Figura 1: Estructura d'una base de dades

L'estructura de les bases de dades, típicament, segueix una estructura client/servidor i té la següent estructura:

  • Usuaris: Els usuaris interactuen en una aplicació connectada a la base de dades. Aquesta aplicació pot permetre als usuaris consultar, modificar o explotar les dades.
  • Aplicació: L'aplicació (programa informàtic) actua com a client i es connecta al sistema gestor de bases de dades (SGBD), en el servidor per recuperar o modificar les dades. L'aplicació es comunica amb el SGBD mitjançant un llenguatge comú, típicament el Structured Query Language (SQL).
  • Sistema Gestor de Bases de Dades (SGBD, o en anglés DBMS, DataBase Management System): És el programari responsable de la creació i administració de bases de dades i gestionar la comunicació amb els clients. Normalment està instal·lat en un servidor. Aquest programari rep les peticions SQL dels clients i les tradueix en accions sobre la base de dades.
  • Base de dades: Conjunt de dades emmagatzemades en un SGBD d'una manera ordenada i estructurada. Per exemple, en bases de dades relacionals, s'organitzen en taules i relacions.

En aquest material ens centrarem en què és el Sistema Gestor de Bases de Dades (SGBD), les seues característiques i el seu propòsit.

Sistemes Gestors de Bases de Dades

Com hem avançat abans, un Sistema Gestor de Bases de Dades (SGBD, o en anglés DBMS, DataBase Management System), és un programa que s'encarrega de gestionar la comunicació entre la base de dades i les aplicacions (clients).

A més, el SGBD proporciona procediments, eines i llenguatges que proporciona als analistes, programadors o administradors els mitjans necessaris per crear, processar i administrar les bases de dades presents en el sistema.

Objectius dels SGBD

Els SGBD ofereixen:

  • Crear i definir les bases de dades: Especificar l'estructura i l'organització, el tipus de dades, les restriccions i relacions entre les dades.
  • Manipulació de les dades: Permet realitzar consultes per recuperar, inserir, modificar o eliminar registres en la base de dades.
  • Accés controlat a la base de dades: Es permet la creació d'usuaris i rols, per tal de controlar l'accés i permitir o denegar certes operacions, per tal d'assegurar les dades emmagatzemades.
  • Redundància mínima: S'evita la redundància de les dades per tal d'optimitzar i reduïr el espai en disc.
  • Integritat i consistència de les dades: Existeixen mecanismes per evitar que es creen inconsistències en les dades.
  • Permeten un accés compartit a la base de dades: Múltiples usuaris i aplicacions es poden interactuar de manera concurrent al SGBD.
  • Mecanismes de recuperació i còpies de seguretat: Per recuperar les dades en cas de que el sistema falle.
  • Exportació i importació de dades.

Nivells d'abstracció de les dades

En qualsevol sistema d’informació es considera que es poden observar les dades des de dos punts de vista:

  • Vista externa. Aquesta és la visió de les dades que posseeixen els usuaris o aplicacions externes.
  • Vista física. Aquesta és la forma en la qual realment estan emmagatzemats les dades en el sistema físic.

En un sistema d’arxius, els usuaris veuen les dades des de les aplicacions creades pels programadors. Aquesta vista poden ser formularis, informes visuals o en paper... Però la realitat física d'aquestes dades, tal qual s'emmagatzemen en els discos, no la veuen. Aquesta visió està reservada als administradors.

En el cas dels sistemes de base de dades i segons el model ANSI, s’afegeix una tercera vista, que és la vista conceptual. Aquesta vista se situa entre la física i l'externa. Es parla doncs en bases de dades de la utilització de tres esquemes o models per representar les dades, entenent per model les normes que permeten crear esquemes (dissenys de la base de dades).

Esquema físic

Es refereix a la forma que s'organitzen les dades en l'emmagatzematge físic (índexs o punters, longitud dels camps, camins d'accés a les dades, particions de memòria, etc.) Aquesta visió la requereix només l'administrador.

Esquema conceptual

Es correspon amb la visió total de les dades a nivell lògic. És a dir, totes les dades i les seves relacions. Aquesta vista global s'interposa entre el nivell extern i el nivell físic, sent independent tant de l'equip informàtica com de cada usuari en particular.

Es tracta de la proposta teòrica de la base de dades i, és per tant, el primer pas per crear una nova de base de dades. Consisteix en el disseny d'un model per aquest nivell. Normalment, les persones encarregades de realitzar el diseny de la base de dades són els analistes (programadors amb experiència en el disseny de solucions informàtiques).

Aquesta organització de les dades és la que utilitzen els desenvolupadors per tal de saber com accedir a les dades des de l'aplicació que estan desenvolupant. Totes les diferents aplicacions que accedeixen al sistema utilitzen el mateix esquema.

Esquema extern

Es tracta de la visió de les dades que posseeixen els usuaris finals. Aquesta visió es la que obté mitjançant les aplicacions. Les aplicacions creades pels desenvolupadors abstreuen la realitat conceptual de manera que l'usuari no coneix les relacions entre les dades, com tampoc coneix totes les dades que realment s'emmagatzemen.

Independència entre els esquemes

El més interessant d'aquests esquemes és que treballen de manera independent. Cada usuari utilitza l’esquema que necessita sense saber res de la resta. Aquesta independència es tradueix en:

  • Independència física de les dades: Encara que l’esquema físic canvie, l'esquema conceptual no ha de veure’s afectat. A la pràctica això significa que encara que la base de dades s’emmagatzeme en altra disc dur, la part conceptual de la base de dades no s’ha de veure afectada. No tindrem que modificar l’esquema.
  • Independència lògica de les dades: Encara que es modifique les dades de l’esquema conceptual, les vistes que posseeixen les aplicacions (els esquemes externs) no es veuran afectats.

SQL

SQL, Structured Query Language, és un llenguatge estandarditzat per la ISO (International Organization for Standardization), és a dir, que tots els SGBD que el suporten han de tenir la mateixa sintaxis a l'hora d'aplicar el llenguatge. Es divideix en 4 subllenguatges, el total de tots permet al SGBD complir amb les seves funcionalitats:

  • Llenguatge DDL: llenguatge de definició de dades (Data Definition Language). Permet crear tota l'estructura d'una base de dades, les relacions entre les dades i les regles que han de complir. Les operacions són de tipus DROP (esborrar), ALTER (modificar) i CREATE (crear).

  • Llenguatge DML: llenguatge de manipulació de dades (Data Manipulation Language). Aquest llenguatge permet: SELECT (seleccionar/buscar), INSERT (inserir), UPDATE (actualitzar) i DELETE (esborrar).

  • Llenguatge DCL: llenguatge de control de dades (Data Control Language). Inclou comandes com GRANT i REVOKE que permeten a l'administrador gestionar l'accés a les dades contingudes en la base de dades.

  • Llenguatge TCL: llenguatge de control de transaccions (Transaction Control Language). El propòsit d'aquest llenguatge és permetre executar varies comandes de forma simultània com si fossin una comanda atòmica o indivisible. Si es possible, s'aplica la transacció (COMMIT), i si, en algun pas de l'execució passa quelcom inesperat, es poden desfer tots els passos realitzats (ROLLBACK).

  • Lenguatge de procediments: Permet la creació de funcions, procediments, rutines i disparadors ens bases de dades SQL. En les bases de dades SQL d'Oracle rep rel nom de PL/SQL (Procedural Language for SQL), afegeix una extensió per sobre de SQL. No existeix un estàndard.

Solucions SGBD

Avui dia, trobem múltiples Bases de dades en el mercat i això ens obliga a realitzar comparacions per a descobrir quina és la que millor s'adapta al nostre entorn.

Una selecció de tecnologia d'emmagatzematge correcta, amb un ús senzill, segur, amb eines útils i una comunitat que doni suport a el producte, marcarà la diferència a l'hora de gestionar un negoci. Millorarà la nostra productivitat i, per tant, es converteix en aspecte vital per a qualsevol solució de programari.

Per tots aquests motius, el monitoratge de les bases de dades és prioritària en qualsevol instal·lació. És recomanable investigar els avantatges i desavantatges de cada eina. No només hem de pensar en la solució a curt termini, sinó que cal avaluar la base de dades pensant en quina serà la solució final.

Algunes de les preguntes que hem de formular-nos abans de triar una base de dades són les següents:

  • A quants clients vull donar servei?
  • Quina grandària de dades necessitaré gestionar?
  • Quina exigència de temps de resposta necessite donar als meus clients?
  • Com escalaré la meva base de dades segons vaja augmentant el nombre de clients i transaccions?
  • Com monitoraré la meva base de dades per a evitar temps d’indisponiblitat?
  • Quin tipus de base de dades necessite? (SQL, NoSQL, ...)
  • Com es comportarà la base de dades en cas de caiguda? Com podré restablir la normalitat?
  • És un SGBD propietari o lliure? Quina llicència d'utilització té? Té cost?

Bases de dades SQL

Bases de dades propietàries

  • Microsoft SQL Server: Un SGBD desenvolupat i mantenit per Microsoft, que sols té compatibilitat amb sistemes Windows. La integració amb Microsoft Azure (núvol) ha millorat molt la seua flexibilitat i rendiment.
  • Oracle: Gestionat per l'empresa amb el mateix nom, la base de dades Oracle és un SGBD molt complet, amb multitud d'eines per a la seua administració i monitoratge. Destaca l'abundància de perfils amb experiència en aquesta tecnologia.

Bases de dades lliures

  • MySQL: Un dels principals SGBD lliures. La seua utilització està baix les condicions de la llicència GPL. Va ser adquirida per Oracle en 2009.
  • MariaDB: Degut a que MySQL va ser adquirida per Oracle i hi havia certa incertesa respecte a la llicència d'utilització, la comunitat va impusar la creació de MariaDB per mantindre la seua llicència a GPL. Aquest SGBD soporta la mateixa sintaxi SQL que MySQL, encara que ha inclòs algunes extensions.
  • PostgreSQL: Alternativa a MySQL o MariaDB. És un SGBD lliure que permet crear fàcilment bases de dades distribuides.

Bibliografia