M2 - Bases de dades / UF1NF1: Els SGBD
Els SGBD són un tipus de programari que té com a finalitats la gestió i el control de les BD.
Contingut
- 1 Evolució dels SGBD
- 1.1 Anys cinquanta: processament seqüencial
- 1.2 Anys seixanta i setanta: sistemes centralitzats
- 1.3 Anys vuitanta: SGBD relacionals
- 1.4 Anys noranta: BD distribuïdes, arquitectures client/servidor, i llenguatges de quarta generació
- 1.5 Tendències actuals: orientació a objectes, Internet, i elements multimèdia
- 2 Objectius i funcionalitats dels SGBD
- 3 Llenguatges de SGBD
- 4 Usuaris i administradors
- 5 Components funcionals dels SGBD
- 6 Diccionari de dades
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.
Anys cinquanta: processament seqüencial
Inicialment, l’únic maquinari disponible per emmagatzemar la informació consistia en paquets de cintes perforades i en cintes magnètiques. Aquests dispositius només es podien llegir de manera seqüencial i, per tant, el programari de l’època estava limitat per aquesta circumstància. Com que la grandària de les dades a processar era molt superior a la de la memòria principal de les computadores, els programes només podien realitzar processos per lots, de la manera següent:
- Obtenint les dades en un ordre determinat (des d’una o més cintes).
- Fent algun càlcul sobre les dades.
- Escrivint el resultat (en una nova cinta).
- Exemple de processament seqüencial
- Imaginem que una empresa necessita actualitzar els preus dels productes que ofereix: en primer lloc, caldria gravar els increments dels preus en targetes perforades.
- A continuació, s’aniria llegint el paquet de les cintes perforades anteriors, sincronitzadament amb la cinta mestra que contingués totes les dades relatives als productes. Les targetes perforades haurien de respectar l’ordre dels registres del fitxer de productes contingut en la cinta.
- Amb totes les dades relatives als productes contingudes en la cinta mestra, més els preus actualitzats en funció dels nous valors reflectits en les targetes perforades, es gravaria una nova cinta, que passaria a ser la nova cinta mestra dels productes de l’empresa.
Anys seixanta i setanta: sistemes centralitzats
Durant la major part de les dues dècades dels anys seixanta i setanta, els SGBD van tenir una estructura centralitzada, com corresponia als sistemes informàtics d’aleshores: un gran ordinador per a cada organització que se’l pogués costejar, i una xarxa de terminals no intel·ligents, sense capacitat pròpia per processar dades.
Inicialment, només es feien servir per gestionar processos per lots amb grans volums de dades. Posteriorment, amb l’aparició dels terminals, de vegades connectats mitjançant la línia telefònica, es van anar elaborant aplicacions transaccionals, per exemple per reservar i comprar bitllets en línies de transports, o per realitzar operacions financeres.
Els programes encara estaven molt lligats al nivell físic, i s’havien de modificar sempre que es feien canvis en el disseny de la BD, ja que aquests canvis implicaven, al seu torn, modificacions en l’estructura física de la BD. El personal que realitzava aquestes tasques havia d’estar altament qualificat.
Anys vuitanta: SGBD relacionals
Tot i que des del principi dels anys setanta ja s’havia definit el model relacional, i l’accés no procedimental a les dades organitzades seguint aquest model, no va ser fins als anys vuitanta quan van anar apareixent SGBD relacionals en el mercat.
La raó d’aquesta demora en l’ús dels sistemes relacionals va ser el pobre rendiment que oferien inicialment els productes relacionals en comparació amb les BD jeràrquiques i en xarxa. Però la innovació en el maquinari, primer amb els miniordinadors i posteriorment amb els microordinadors, va comportar un cert abaratiment de la informàtica i la seva extensió a moltes més organitzacions.
Fins aleshores, la feina dels programadors que treballaven amb BD prerelacionals havia estat massa feixuga, ja que, d’una banda, havien de codificar les seves consultes de manera procedimental, i d’una altra, havien d’estar pendents del seu rendiment i fer consideracions d’índole física a l’hora de codificar-les.
Però a causa de l’expansió de la informàtica que va tenir lloc durant la dècada que comentem, calia simplificar el desenvolupament de les aplicacions. Els SGBD ho van aconseguir, tot independitzant els programes dels aspectes físics de les dades.
A més, l’aparició del llenguatge de consulta estructurat (structured query language, o SQL, en anglès) i, sobretot, la seva estandardització a partir de l’any 1986 van facilitar enormement l’ús dels sistemes relacionals i, per tant, la seva implantació massiva.
Finalment, les BD relacionals van poder competir, fins i tot, en matèria de rendiment amb les jeràrquiques i amb les estructurades en xarxa, amb la qual cosa van acabar reemplaçant les seves competidores en la majoria dels casos.
Anys noranta: BD distribuïdes, arquitectures client/servidor, i llenguatges de quarta generació
Com ja sabem, els primers sistemes de BD eren centralitzats: totes les dades del sistema estaven emmagatzemades en un únic gran ordinador al qual es podia accedir des de diferents terminals. Però l’èxit gradual dels ordinadors personals (personal computers, o PC, en anglès), cada vegada més potents i amb preus més competitius, juntament amb el desenvolupament de les xarxes, va possibilitar la distribució d’una mateixa BD en diferents ordinadors (o nodes).
En funció del nombre de SGBD utilitzats, els sistemes distribuïts poden ser de dos tipus:
- Homogenis, si tots els nodes utilitzen el mateix SGBD. Les interaccions entre els diferents nodes són més senzilles. Però les actualitzacions del sistema gestor implicaran necessàriament a tots els nodes.
- Heterogenis, si cada node utilitza un SGBD diferent. Les interaccions entre els diferents nodes poden ser més complicades. Però hi haurà més flexibilitat a l’hora d’actualitzar el sistema gestor de cada node.
Els punts a favor dels sistemes distribuïts són fonamentalment dos:
- Rendiment. Si el sistema està ben dissenyat, la majoria de les operacions es realitzaran amb dades emmagatzemades localment. D’aquesta manera les respostes seran més ràpides, disminuirà la despesa en comunicacions, i s’evitarà la dependència d’un node central col·lapsat.
- Disponibilitat. Els sistemes distribuïts són més resistents a les aturades que no pas els centralitzats. En un sistema centralitzat, l’aturada del node central atura tot el sistema. En canvi, en un sistema distribuït, si un dels nodes queda temporalment fora de servei per qualsevol eventualitat, la resta continuarà funcionant normalment, i podrà donar servei sempre que no es necessitin les dades emmagatzemades en el node aturat. Però, a més, segons quin esquema de disseny s’hagi seguit en fer la distribució, si les dades del node aturat estan duplicades en un altre, continuaran estant disponibles.
Però, evidentment, no tot són avantatges. Per exemple, en el cas dels sistemes heterogenis, sovint és necessari realitzar conversions de dades per permetre la comunicació dels diferent nodes entre ells. A més, en general, la comunicació és més complexa i, per tant, la quantitat d’errors i de problemes derivats d’aquest fet que s’han de controlar és molt més gran que en un sistema centralitzat.
La tecnologia utilitzada habitualment en la distribució de BD és l’arquitectura client/servidor (coneguda també com a arquitectura C/S). Actualment, tots els SGBD comercials estan adaptats a aquesta realitat.
El funcionament dels sistemes basats en aquest tipus d’arquitectura és, esquemàticament, el següent: dos processos s’executen en un mateix sistema o en dos de diferents, de tal manera que un fa de client (o peticionari d’un servei), i l’altre de servidor (o proveïdor del servei demanat).
La classificació dels processos en les categories de client i de servidor és de tipus lògic (i no físic) i, per tant, cal tenir en compte alguns aspectes que deriven d’aquesta circumstància, com ara els següents:
- Un client pot demanar serveis a diversos servidors.
- Un servidor pot rebre peticions de molts clients.
- El client i el servidor poden residir en un mateix sistema.
Finalment, durant els anys noranta, la implantació arreu de les BD, fins i tot en petits sistemes personals, va motivar l’aparició dels anomenats llenguatges de quarta generació (fourth generation languages, o 4GL, en anglès), els quals es continuen utilitzant en l’actualitat.
Es tracta de llenguatges molt senzills, però al mateix temps molt potents, especialitzats en el desenvolupament d’aplicacions centrades en l’accés a BD. Ofereixen moltes facilitats per definir, generalment de manera visual, finestres des de les quals es poden consultar, introduir, modificar o esborrar dades, fins i tot en entorns client/servidor.