M2 - Bases de dades / UF1NF1: Mapa conceptual
Les dades que s’utilitzen de manera informatitzada s’emmagatzemen, habitualment, en bases de dades (BD).
El programari que serveix per gestionar les bases de dades es denomina sistema gestors de bases de dades (SGBD).
Contingut
Els tres mons
Per a tot informàtic que hagi de treballar amb bases de dades (BD), és imprescindible saber distingir tres àmbits ben diferenciats:
- El món real. Està constituït pels objectes (materials o no) de la realitat que ens interessen i amb els quals haurem de treballar.
- El món conceptual. És el conjunt de coneixements o informacions obtinguts gràcies a l’observació de la part del món real que ens interessa. Un mateix món real pot donar lloc a diferents mons conceptuals, en funció de la manera de percebre la realitat, o els interessos de l’observador d’aquesta.
- El món de les representacions. Està format per les representacions informàtiques, o dades, del món conceptual, necessàries per poder treballar.
Les diferents visions de les dades
Un dels principals objectius de les BD és proporcionar, als usuaris, una visió abstracta de les dades. Amb aquesta finalitat, el sistema amaga als usuaris certs detalls relatius a l’emmagatzemament i manteniment de les dades, per facilitar-los la feina, d’una banda, però també per garantir certs aspectes en matèria de seguretat.
Perquè les BD resultin útils, han de ser mínimament eficients a l’hora de recuperar les dades. Per aquest motiu, els sistemes de BD tenen implementades, a baix nivell, estructures de dades bastant complexes.
S’utilitzen tres nivells d’abstracció -físic, lògic i de vistes- per tal d’amagar aquestes estructures complexes i simplificar, d’aquesta manera, la interacció dels usuaris amb el sistema.
1. Nivell físic: és el nivell d’abstracció més baix de tots els utilitzats.
- Descriu com s’emmagatzemen realment les dades a baix nivell, especificant en detall les complexes estructures que es necessiten.
- No és freqüent treballar a aquest nivell. Només es fa quan calen optimitzacions en l’estructuració de les dades a baix nivell.
2. Nivell lògic: és el nivell d’abstracció intermedi.
- Descriu totes les dades emmagatzemades en la BD i les seves interrelacions, mitjançant un nombre no gaire elevat d’estructures força simples (típicament, taules).
- La implementació d’aquestes estructures lògiques pot comportar la presència d’estructures molt més complexes a nivell físic. Però els usuaris del nivell lògic no s’han de preocupar d’aquesta complexitat. Ni tan sols necessiten conèixer-la.
- Els administradors de BD treballen habitualment amb aquest nivell d’abstracció.
3. Nivell de vistes: és el nivell d’abstracció més alt.
- La majoria dels usuaris no necessiten conèixer tota l’estructuració lògica de la BD amb què treballen. Tractant-se d’una BD gran, a més, conèixer tota la seva estructura pot comportar un esforç considerable.
- D’altra banda, sovint, i per motius tant de seguretat com de privacitat, no resulta convenient que els usuaris tinguin accés a totes les dades, sinó solament a la part que estrictament necessiten per realitzar la seva feina.
- Cada vista només descriu una part de la BD. L’establiment de vistes simplifica la interacció de l’usuari amb el sistema, el fa més segur, i proporciona més privacitat. Es poden establir diferents vistes, segons les necessitats, sobre la mateixa BD.
En la figura següent, es poden veure els diferents nivells d’abstracció utilitzats per facilitar la interacció dels usuaris amb les BD.
Evolució dels SGBD
l’evolució dels SGBD ha estat, sovint, intrínsecament lligada a l’evolució del maquinari.
La figura següent mostra un esquema de les etapes evolutives per les quals han passat els SGBD, en el qual se n’indiquen les principals característiques.
Objectius i funcionalitats dels SGBD
Tots els SGBD del mercat volen assolir una sèrie d’objectius i oferir una sèrie de funcionalitats, amb més o menys encert, que actualment es consideren indispensables per al bon funcionament de qualsevol sistema d’informació:
- Possibilitar les consultes no predefinides de qualsevol complexitat.
- Garantir la independència física i la independència lògica de les dades.
- Evitar o solucionar els problemes derivats de la redundància.
- Protegir la integritat de les dades.
- Permetre la concurrència d’usuaris.
- Contribuir a la seguretat de les dades.
Llenguatges de SGBD
La comunicació entre els SGBD i els seus usuaris s’ha de realitzar mitjançant algun tipus de llenguatge. Els llenguatges de BD es poden classificar en dues grans tipologies segons la finalitat:
- 1. Llenguatges de definició de dades (data definition languages, en anglès, o DDL). Estan especialitzats en la definició de l’estructura de les BD mitjançant l’especificació d’esquemes.
- 2. Llenguatges de manipulació de dades (data management languages, en anglès, o DML). Possibiliten la consulta, modificació i eliminació, de les dades emmagatzemades, i també la inserció de noves informacions.
El llenguatge més utilitzat per interaccionar amb els SGBD relacionals és l’SQL.
Usuaris i administradors
Podem diferenciar tres categories d’usuaris de SGBD en funció de la manera en què interactuen amb el sistema: externs, sofisticats i programadors d’aplicacions.
1. Usuaris externs. Són usuaris no sofisticats, que no interactuen directament amb el sistema, sinó mitjançant alguna aplicació informàtica desenvolupada prèviament per altres persones amb aquesta finalitat.
- Exemple d’usuari extern
- Qualsevol persona assumeix aquest rol quan treu diners d’un caixer automàtic, ja que accedeix a la BD de l’entitat financera identificant-se mitjançant una targeta magnètica i un número d’identificació personal secret (personal identification number, en anglès, o PIN).
- Una vegada autoritzada a entrar en el sistema, podrà realitzar diferents operacions de consulta o, fins i tot, d’actualització. En el cas plantejat, després de treure diners, el saldo del compte corrent associat a la targeta patirà el decrement corresponent.
2. Usuaris sofisticats. Interactuen directament amb el sistema, sense utilitzar les interfícies proporcionades per programes intermediaris. Formulen les consultes en un llenguatge de BD (normalment, SQL), des de dins de l’entorn que el SGBD posa a la seva disposició. Tradicionalment, aquest entorn ha estat una consola en què es podien escriure les consultes, però cada vegada són més freqüents entorns que permeten construir les consultes de mode visual, com autèntiques eines CASE.
3. Programadors d’aplicacions. Són professionals informàtics que creen els programes que accedeixen als SGBD i que, posteriorment, són utilitzats pels usuaris que hem anomenat externs. Aquestes aplicacions es poden desenvolupar mitjançant diferents llenguatges de programació i eines externes al SGBD. Però molts SGBD comercials també inclouen entorns propis de desenvolupament i llenguatges de quarta generació que faciliten enormement la generació de formularis i informes que permeten visualitzar i modificar les dades.
Components funcionals dels SGBD
El programari que conforma els SGBD es divideix en diferents mòduls, encarregats de les respectives funcionalitats que ha de garantir el sistema.
El components funcionals dels SGBD més importants són el gestor d’emmagatzemament i el processador de consultes.
Gestor d’emmagatzemament
Les BD corporatives tenen enormes requeriments d’espai d’emmagatzematge en disc. Les dades es transfereixen entre el disc en què estan emmagatzemades i la memòria principal de l’ordinador només quan és necessari. I, com que la transferència de dades cap al disc o des del disc és lenta en comparació amb la velocitat de la unitat central de processament, és molt important que el SGBD estructuri les dades de tal manera que se’n minimitzi la necessitat de transferència entre el disc i la memòria principal.
El gestor d’emmagatzemament proporciona la interfície entre les dades, considerades a baix nivell, i les consultes i els programes que accedeixen a la BD. Les dades s’emmagatzemen en disc fent servir el sistema d’arxius que proporciona el sistema operatiu utilitzat. I el gestor tradueix les instruccions DML a ordres comprensibles pel sistemes d’arxius a baix nivell.
Els components del gestor d’emmagatzemament són els següents:
- Gestor d’autoritzacions i d’integritat. Comprova que se satisfacin tant les restriccions d’integritat com les autoritzacions dels usuaris per accedir a les dades.
- Gestor de transaccions. Assegura que la BD es mantingui en un estat de consistència malgrat les fallades del sistema, i també que les transaccions concurrents no s’interfereixin entre elles.
- Gestor d’arxius. Gestiona la reserva d’espai d’emmagatzemament en disc i les estructures de dades utilitzades per representar la informació emmagatzemada en disc.
- Gestor de memòria intermèdia. Transfereix les dades des del disc a la memòria principal, i decideix quines dades s’han de tractar en memòria cau. Permet al sistema tractar amb dades de grandària molt superior a la de la memòria principal.
D’altra banda, el gestor d’emmagatzemament utilitza certes estructures de dades que formen part de la implementació física del sistema:
- Arxius de dades. Emmagatzemen la BD pròpiament considerada.
- Diccionari de dades. Emmagatzema les metadades relatives a tota l’estructura de la BD.
- Índexs. Proporcionen un accés ràpid a certes dades en funció dels seus valors.
Processador de consultes
El processador de consultes ajuda el SGBD a simplificar l’accés a les dades. Les vistes a alt nivell contribueixen a assolir aquest objectiu, ja que eviten que els usuaris hagin de conèixer detalls de la implementació física del sistema. Però això no treu que el sistema no hagi de perseguir l’eficàcia en el processament de les consultes i de les actualitzacions de dades. De fet, el sistema ha de traduir les instruccions escrites, a nivell lògic, en un llenguatge no procedimental (típicament, SQL), a una seqüència d’operacions a nivell físic, amb uns mínims d’eficiència.
Els components del processador de consultes són els següents:
- Intèrpret DDL. Interpreta les instruccions de tipus DDL i registra les definicions en el diccionari de dades.
- Compilador DML. Tradueix les instruccions DML formulades en un llenguatge de consultes (normalment, SQL) a una sèrie d’instruccions a baix nivell que pot interpretar el motor d’avaluació de consultes. En realitzar la traducció esmentada, un bon compilador DML també s’encarregarà de fer una optimització de consultes triant, entre totes les alternatives, la de menor cost.
- Motor d’avaluació de consultes. Executa les instruccions de baix nivell generades pel compilador DML.
La següent figura mostra tots aquests components i les connexions entre ells.