Professional Documents
Culture Documents
Basedades
Basedades
Entitats instncia
Entitat instncia. Es refereix a la conceptualitzaci dun objecte concret del mn real, com ara un
cotxe concret, distingible dels altres objectes del mateix tipus, grcies a alguna propietat (com
podria ser el valor de latribut Matricula).
En terminologia de teoria de conjunts, podrem dir que una entitat tipus s un conjunt, i que cada
entitat instncia s un element del conjunt, tal com es reflecteix en la figura adjacent.
valors.
Exemple de tipus de dada
Podem considerar els nombres enters com un tipus de dada (diferent daltres tipus, com per exemple els nombres reals, els carcters, etc.), sobre el qual es poden definir certes operacions, com la
suma, la resta, la multiplicaci o la divisi entera (per no la divisi exacta, que noms s possible
entre els nombres reals).
Aix, doncs, ambds conceptes (domini i tipus de dada) sassemblen, ja que tots dos limiten els
valors acceptables. All que els diferencia s que un domini no estableix per si mateix cap conjunt
doperacions, mentre que un tipus de dada, per definici, si que ho fa.
Una altra diferncia s que, en la prctica, un domini s un subconjunt de valors possibles dun
tipus de dada. En alguns casos, pot interessar delimitar el rang de valors admesos per un tipus de
dada determinat. Aix es fa establint un domini.
Exemple de domini
Imaginem que, en lmbit duns estudis determinats, sexigeix un mnim dassistncia a classes presencials per tal daconseguir el ttol corresponent, independentment de les qualificacions obtingudes.
Imaginem que sadmet, durant tot el curs acadmic, un mxim de vint faltes injustificades. Doncs
b, hi podria haver un atribut de lentitat ALUMNE, anomenat, per exemple, NombreFaltes, que
recolls aquesta circumstncia.
Aquest atribut podria emmagatzemar dades de tipus enter. I tamb sen podria limitar el domini de 0
(per indicar que no hi ha hagut cap inassistncia) a vint faltes injustificades, ja que en arribar a
aquest lmit es produiria lexpulsi de lalumne.
El mn de les representacions
Ja sabem que les dades sn informacions representades informticament. Per tant, tamb podrem
anomenar mn de les dades el mn de les representacions.
La representaci informtica ms freqent en lmbit de les BD s la representaci tabular, la qual
simplementa habitualment en fitxers que sestructuren en registres i camps.
En el fons, les BD noms sn conjunts de fitxers interrelacionats (o, si es prefereix, que emmagatzemen dades que estan interrelacionades). Per no serveix de res emmagatzemar dades si, posteriorment, no hi accedim. Hi ha diferents tipus daccs a les dades que conv examinar: seqencial,
directe, per valor i per posici.
ZXC5678 Citron
MNB5432 Renault
Les BD
Normalment, quan hgim de representar informticament certes informacions (corresponents,
doncs, al mn conceptual), no ens trobarem amb una sola entitat tipus, sin amb unes quantes.
Intutivament, podem pressuposar que si partim dun nombre concret dentitats tipus necessitarem,
com a mnim, el mateix nombre de taules per representar-les (i probablement algunes ms). Ara b,
aquestes taules, o fitxers, no seran objectes inconnexos, sin que hauran destar interrelacionats.
Les interrelacions sn informacions que permeten associar les entitats entre elles.
Les interrelacions entre els registres de dues (o ms) taules es fan mitjanant camps del mateix tipus
de dada que emmagatzemin els mateixos valors.
Exemple d'entitats interrelacionades
Imaginem ara que construm una petita BD. Noms hi ha dues entitats tipus del nostre inters:
COTXES i MARQUES.
Tamb tenim una altra informaci complementria, sobre la interrelaci entre ambdues entitats:
cada cotxe ser duna marca concreta, per hi podr haver molts cotxes de cada marca.
En la figura, es mostra una representaci de les dues entitats (COTXES i MARQUES) interrelacionades.
Figura
Lentitat MARQUES noms t latribut Marca, i lentitat COTXES noms t latribut Matrcula. El
fitxer per representar COTXES haur dafegir un camp addicional, per tal de permetre la interrelaci amb el fitxer que representa lentitat MARQUES.
La figura mostra la interrelaci entre els dos fitxers corresponents a lentitat COTXES i a lentitat
MARQUES.
Figura Exemple de fitxers interrelacionats
La interrelaci entre fitxers implica que els canvis de valor dels camps que serveixen per interrelacionar-los (o, fins i tot, la seva supressi) han de quedar reflectits en tots els fitxers implicats, per tal
de mantenir la coherncia de les dades. Per tant, els programes que treballen amb fitxers de dades
interrelacionats sempre tindran un plus de complexitat, derivat de lexigncia que acabem de
comentar.
Una BD consisteix en un conjunt de fitxers de dades interrelacionats.
Un sistema gestor de bases de dades (SGBD) s un tipus de programari especialitzat en gestionar i
administrar bases de dades.
En aquest sentit, els SGBD shan anat desenvolupant tenint com a un dels objectius principals facilitar la programaci amb accs a dades persistents, i per gestionar laccs simultani a les dades per
part de diferents usuaris.
Nivell lgic. Permet treballar amb les dades de manera ms senzilla, independentment de la
implementaci fsica concreta, que no cal conixer. s la manera de treballar ms productiva
i, per tant, la ms recomanable, sempre que les circumstncies no ens obliguin a fer optimitzacions a nivells ms baixos.
Nivell fsic. Implica un coneixement a baix nivell de la implementaci fsica de lorganitzaci de les dades i el seu accs.
En la figura, es mostra la doble perspectiva apuntada, la lgica i la fsica. En el disc dur es desen les
dades, organitzades de determinada manera a nivell fsic. LSGBD ens permet accedir a les dades
emmagatzemades en el disc dur considerant noms aspectes de nivell lgic, com ara seqncies de
registres.
Figura Nivell lgic i nivell fsic
Exemples de treball a nivell lgic i a nivell fsic
Nivell lgic: es treballa tenint en compte, fonamentalment, les taules, amb els camps i registres corresponents, i les seves interrelacions.
Nivell fsic: es treballa considerant altres factors a ms baix nivell, com ara lencadenament dels
registres fsics, la compressi de dades, les tipologies dndexs, etc.
Fitxers i BD
Els fitxers tradicionals (i els programes necessaris per treballar-hi) shan trobat amb serioses dificultats per satisfer les creixents necessitats dels usuaris en prcticament tots els mbits.
Per aquesta ra, les BD shan anat implantant com a mecanisme per excellncia demmagatzematge, processament i obtenci dinformaci, tot desplaant progressivament els fitxers de la seva
posici preeminent anterior. La taula cont una breu descripci de les principals diferncies entre
els sistemes basats en fitxers tradicionals i les BD.
Taula Fitxers i BD
Fitxers
Bases de dades
Les BD contenen entitats instncia
Les entitats instncia dun fitxer pertanyen
Entitats tipus
dinfinitat dentitats tipus
a una sola entitat tipus.
interrelacionades.
El sistema t previstes eines per
Interrelacions El sistema no interrelaciona fitxers.
interrelacionar fitxers.
s necessari crear fitxers a mida de cada
Tcnicament, totes les aplicacions
aplicaci, amb totes les dades necessries, poden treballar amb la mateixa BD,
Redundncies
encara que estiguin repetides en altres
la qual cosa evita la redundncia de
fitxers.
dades i els riscos que comporta.
Si les interrelacions estan ben
s possible que els valors dunes mateixes
dissenyades, les dades noms han
dades en diferents fitxers no coincideixin,
Inconsistncies
destar emmagatzemades en la BD
si els programadors no les han actualitzat
un sol cop. Per tant, no hi ha risc
degudament.
dinconsistncies.
Si no hi ha una aplicaci que obtingui les Permeten obtenir qualsevol conjunt
dades que volem, o b sha de fer un
de dades, segons les necessitats, dels
Obtenci de
programa a mida, o b sha daprofitar la del seu propi entorn de treball, sense
dades
sortida dun programa amb objectius
haver descriure, compilar i executar
similars, i fer els clculs necessaris
cap nou programa daplicaci contra
manualment.
la BD.
Les dades estan disperses i allades en
Totes les dades sn en la mateixa
Allament de
diferents arxius, la qual cosa dificulta el
BD, interconnectades, la qual cosa en
dades
desenvolupament de les aplicacions.
facilita lobtenci.
Els programes han dimplementar totes les
La BD sencarrega directament
restriccions sobre les dades, afegint el codi
dimplementar les restriccions sobre
Integritat de
font corresponent. El manteniment s
les dades. Els programes no han
dades
complicat quan la informaci es cont en
dincorporar codi font addicional per
diferents fitxers utilitzats per diferents
garantir-les.
aplicacions.
Alguns conjunts doperacions sobre les
dades shan dexecutar de manera
Les BD incorporen la tcnica de les
indivisible (o tots o cap), independentment
transaccions per tal de garantir
de les fallades que el sistema pugui
Atomicitat
fcilment lexecuci atmica duna
presentar (com ara per un tall de
pluralitat de processos sobre les
subministrament elctric). Per aix s
dades.
molt difcil de garantir amb un sistema
dinformaci basat en fitxers.
Amb la tcnica del bloqueig, les BD
Lactualitzaci simultnia de dades dun
garanteixen automticament la
Accs
mateix fitxer per part de diferents usuaris o consistncia de les dades, malgrat
concurrent
aplicacions en pot provocar fcilment la
que ms dun usuari o ms duna
inconsistncia.
aplicaci les vulguin actualitzar
simultniament.
Seguretat
Habitualment, cada fitxer serveix per a un Una BD pot ser compartida per molts
carcters.
DV (accs directe per valor). Sobt directament un registre pel fet de tenir un valor determinat en un dels seus atributs (o ms).
Exemples de tipus d'accs a les dades
Imaginem que disposem un fitxer en qu semmagatzema informaci relativa als alumnes dun centre docent: DNI, nom, cognoms, data de naixement, adrea, telfon, etc. A continuaci, es dna un
exemple de cadascun del quatre mtodes daccs estudiats.
SP (accs seqencial per posici): la llista de tots els alumnes, sense establir cap ordenaci.
DP (accs directe per posici): en lmbit de la programaci, el cas ms tpic s el de les cerques
dicotmiques en vectors ordenats; en lmbit de les BD, aquest tipus daccs es produeix en utilitzar
un ndex de tipus hashing.
SV (accs seqencial per valor): la llista de tots els alumnes, seguint un ordre alfabtic ascendent,
en primer lloc dels cognoms i desprs del nom.
DV (accs directe per valor): obtenci de les dades emmagatzemades en un registre corresponent a
un alumne concret, que es digui, per exemple, Pere Garca Manent (s a dir, que el camp Nom cont
el valor Pere, i el camp Cognoms cont el valor Garca Manent).
Els SGBD
Els SGBD sn un tipus de programari que t com a finalitats la gesti i el control de les BD.
s interessant conixer levoluci daquest tipus de programari al llarg de la seva histria, i els
objectius que tots ells persegueixen amb ms o menys encert. Tamb cal destacar que hi ha nocions
relatives tant a larquitectura dels SGBD com a les aplicacions que els fan servir. Tamb sha de
destacar que hi ha diferents tipologies dusuaris i administradors de BD, i llenguatges que tots han
dutilitzar per comunicar-se amb els sistemes gestors.
simplificar el desenvolupament de les aplicacions. Els SGBD ho van aconseguir, tot independitzant
els programes dels aspectes fsics de les dades.
SQL
El 1986, lInstitut Nacional Nordameric de Normalitzaci (American National Standards Institute,
o ANSI, en angls) va publicar les primeres normes que enunciaven la sintaxi i la semntica de
lSQL.
A ms, laparici del llenguatge de consulta estructurat (structured query language, o SQL, en
angls) i, sobretot, la seva estandarditzaci a partir de lany 1986 van facilitar enormement ls dels
sistemes relacionals i, per tant, la seva implantaci massiva.
Finalment, les BD relacionals van poder competir, fins i tot, en matria de rendiment amb les jerrquiques i amb les estructurades en xarxa, amb la qual cosa van acabar reemplaant les seves competidores en la majoria dels casos.
Anys noranta: BD distribudes, 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
lxit gradual dels ordinadors personals (personal computers, o PC, en angls), cada vegada ms
potents i amb preus ms competitius, juntament amb el desenvolupament de les xarxes, va possibilitar la distribuci duna mateixa BD en diferents ordinadors (o nodes).
En funci del nombre de SGBD utilitzats, els sistemes distributs poden ser de dos tipus:
Homogenis, si tots els nodes utilitzen el mateix SGBD. Les interaccions entre els diferents
nodes sn ms senzilles. Per les actualitzacions del sistema gestor implicaran necessriament a tots els nodes.
Heterogenis, si cada node utilitza un SGBD diferent. Les interaccions entre els diferents
nodes poden ser ms complicades. Per hi haur ms flexibilitat a lhora dactualitzar el sistema gestor de cada node.
Els punts a favor dels sistemes distributs sn fonamentalment dos:
Rendiment. Si el sistema est ben dissenyat, la majoria de les operacions es realitzaran amb
dades emmagatzemades localment. Daquesta manera les respostes seran ms rpides, disminuir la despesa en comunicacions, i sevitar la dependncia dun node central collapsat.
Disponibilitat. Els sistemes distributs sn ms resistents a les aturades que no pas els centralitzats. En un sistema centralitzat, laturada del node central atura tot el sistema. En canvi,
en un sistema distribut, 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 ms, segons quin
esquema de disseny shagi seguit en fer la distribuci, si les dades del node aturat estan
duplicades en un altre, continuaran estant disponibles.
Per, evidentment, no tot sn 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 ms, en general, la comunicaci s ms complexa i, per tant, la quantitat derrors i de problemes
derivats daquest fet que shan de controlar s molt ms gran que en un sistema centralitzat.
Arquitectura client/servidor
Una arquitectura client/servidor es caracteritza pel fet de disposar dun sistema en xarxa on hi ha
uns ordinadors que actuen com a servidors de peticions i uns altres (els clients) que demanen serveis.
Els usuaris autoritzats dun SGBD han de poder plantejar directament al sistema qualsevol consulta
sobre les dades emmagatzemades, de la complexitat que sigui necessria, tot respectant, aix s, les
regles sintctiques perqu la sentncia sigui correcta.
A continuaci, el SGBD ha de ser capa de respondre ell mateix a la consulta formulada, sense que
sigui necessari recrrer a cap aplicaci externa.
Quan no existien ni les BD ni els sistemes gestors, per tal dobtenir un subconjunt de les dades
emmagatzemades en un fitxer, hi havia dues possibilitats:
Llanar un llistat seqencial de totes les dades i, a continuaci, seleccionar manualment les
que interessessin.
Escriure el codi font dun programa especfic per resoldre la consulta en qesti, compilar-lo
i executar-lo.
Els SGBD actuals, en canvi, estan perfectament capacitats per interpretar directament les consultes,
expressades habitualment com a sentncies formulades en el llenguatge de consulta SQL.
Evidentment, aix no vol dir que no es puguin continuar produint programes que incorporin consultes mitjanant les quals accedeixen a BD. De fet, aquesta s lopci ms encertada i cmoda si es
tracta de consultes que shan de repetir al llarg del temps.
Garantir la independncia fsica i la independncia lgica de les dades
Cal garantir la mxima independncia fsica de les dades respecte als processos usuaris, en general
(s a dir, tant pel que fa a les consultes interpretades pel SGBD com als programes externs que
accedeixen a la BD), de tal manera que es puguin dur a terme tot tipus de canvis tecnolgics
dndole fsica per millorar el rendiment (com ara afegir o treure un ndex determinat), sense que
aix impliqui haver de modificar ni les consultes a la BD ni les aplicacions que hi accedeixen.
De manera similar, tamb s desitjable la independncia lgica de les dades, la qual implica que les
modificacions en la descripci lgica de la BD (per exemple, afegir un nou atribut o suprimir-ne un
altre) no han dimpedir lexecuci normal dels processos usuaris no afectats per aquelles.
I, pel que fa a la independncia lgica de les dades, fins i tot pot interessar (i, de fet, aquesta s una
opci freqent) que convisquin diferents visions lgiques duna mateixa BD, en funci de les caracterstiques concretes dels diferents usuaris o grups dusuaris.
Evitar o solucionar els problemes derivats de la redundncia
Tradicionalment, la repetici de les dades sha considerat una cosa negativa, ja que comporta un
cost demmagatzematge innecessari. Avui en dia, per, aquesta caracterstica, tot i ser certa, gaireb
no es t en compte, a causa de labaratiment dels discos durs i de laugment de la seva capacitat i
rendiment.
Per hi ha un altre aspecte a considerar que no ha perdut vigncia, i s el fet que la repetici de les
dades s perillosa, ja que quan sactualitzen poden perdre la integritat. Quan es modifica el valor
duna dada que est repetida, shan de modificar simultniament els valors de les seves repeticions
perqu es mantingui la coherncia entre totes.
Sn dades ntegres les que es mantenen senceres i correctes.
La redundncia consisteix en la repetici indesitjada de les dades, que incrementa els riscos de prdua dintegritat daquestes quan sactualitzen.
Malgrat tot, els SGBD han de permetre al dissenyador de BD la definici de dades repetides, ja que
de vegades (sobretot en matria de fiabilitat, de disponibilitat o de costos de comunicaci) s til
mantenir certes rpliques de les dades.
Ara b, en tots aquests casos, lobjectiu de lSGBD ha de ser garantir lactualitzaci correcta de
totes les dades all on estiguin duplicades, de manera automtica (s a dir, sense que lusuari del
SGBD shagi dencarregar de res).
Un altre tipus de duplicitat admissible s la que constitueixen les anomenades dades derivades. Es
tracta de dades emmagatzemades en la BD, que en realitat sn el resultat de clculs fets amb altres
dades tamb presents en la mateixa BD.
Les dades derivades tamb poden ser acceptables, tot i que comporten una repetici evident dalgunes dades, si permeten fer consultes de caire global molt rpidament, sense haver daccedir a tots els
registres implicats.
Per tamb aqu, el SGBD sha dencarregar dactualitzar degudament les dades derivades en funci dels canvis soferts per les dades primitives de les quals depenen.
Protegir la integritat de les dades
A ms de la redundncia, hi ha molts altres motius que poden fer malb la consistncia de les dades,
com ara els segents:
Els SGBD han de protegir la integritat de les dades en tots aquests casos. Per a aix disposen, duna
banda, de les regles dintegritat, tamb anomenades restriccions, i duna altra, dels sistemes de restauraci basats en cpies de seguretat.
Mitjanant les regles dintegritat, el sistema valida automticament certes condicions en produir-se
una actualitzaci de dades, i lautoritza si les compleix, o denega el perms en cas contrari.
Exemple de restricci del model
Un SGBD relacional mai no acceptar que una taula emmagatzemi registres amb una clau primria
idntica, perqu aleshores la clau no serviria per identificar inequvocament els registres entre ells.
Les regles dintegritat poden ser de dos tipus:
Restriccions del model. Sn regles inherents al model de dades que utilitza el SGBD (com
ara el model relacional). El sistema les incorpora predefinides, i sempre sacompleixen.
Restriccions de lusuari. Sn regles definides pels usuaris (dissenyadors i administradors,
fonamentalment) de la BD, que no incorpora a priori el SGBD, i que serveixen per modelitzar aspectes especfics del mn real.
Exemple de restricci de l'usuari
En una taula que emmagatzema els alumnes dun centre docent, es vol evitar que hi hagin alumnes
matriculats en cicles formatius de grau superior que fossin menors dedat, ja que la normativa
vigent no ho admet. Aleshores, cal establir una restricci en aquest sentit per calcular si la diferncia entre la data del sistema en el moment de la matrcula i la data de naixement de cada alumne s
igual o superior als 18 anys. En aquest cas, el sistema permetria la matrcula, i en cas contrari la
prohibiria.
Els SGBD tamb proporcionen eines per realitzar peridicament cpies de seguretat de les dades
(o backups, en angls) que permeten restaurar les dades malmeses i retornar-les a un estat consistent.
Ara b, els valors restaurats es correspondran amb els que hi havia en el moment de realitzar la
cpia de seguretat, abans de lincident que origina la restauraci, i per tant mai no estaran del tot
actualitzats, encara que siguin correctes.
Si es vol executar de manera concurrent la transacci descrita, que incrementa els sous en un 3%, i
al mateix temps es llana lexecuci de laplicaci que calcula el salari mitj de tots els empleats de
lempresa, el resultat obtingut per aquest programa probablement ser erroni.
Per tal de garantir la correcci del clcul, shaur de bloquejar una de les dues transaccions mentre
laltra sexecuta.
Si es bloqueja lactualitzaci de dades, el salari mitj estar calculat a partir dels sous antics (s a
dir, abans de ser actualitzats).
En canvi, si es bloqueja el programari estadstic, en primer lloc sactualitzaran totes les dades, i desprs es calcularan els resultats a partir dels nous valors del camp que emmagatzemi el salari.
Els bloquejos provoquen esperes i retencions, i per aix les noves versions dels diferents SGBD del
mercat sesforcen a minimitzar aquests efectes negatius.
Contribuir a la seguretat de les dades
Exemple de dades confidencials
Resulta evident la necessitat de restringir laccs als secrets militars o, fins i tot, comercials (com
ara les dades comptables). Per tamb sha de respectar la privacitat, fins i tot per imperatiu legal,
en altres vessants aparentment ms modestos, per en realitat no menys importants, com sn les
dades personals.
Lexpressi seguretat de les dades fa referncia a la seva confidencialitat. Sovint, laccs a les
dades no ha de ser lliure o, com a mnim, no ho ha de ser totalment.
Els SGBD han de permetre definir autoritzacions daccs a les BD, tot establint permisos diferents
en funci de les caracterstiques de lusuari o del grup dusuaris.
Actualment, els SGBD permeten definir autoritzacions a diferents nivells:
permeten accedir a les dades a persones no autoritzades i que, per tant, no disposen dels codis
esmentats.
Lencriptaci pot fer disminuir el rendiment en laccs a les dades, ja que comporta la utilitzaci
dalgoritmes addicionals en les operacions de consulta. Per aix se nha de dosificar ls. Ara b,
sempre que sigui possible, s convenient encriptar les contrasenyes.
Llenguatges de SGBD
La comunicaci entre els SGBD i els seus usuaris sha de realitzar mitjanant 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 angls, o DDL). Estan
especialitzats en la definici de lestructura de les BD mitjanant lespecificaci desquemes.
2. Llenguatges de manipulaci de dades (data management languages, en angls, o DML).
Possibiliten la consulta, modificaci i eliminaci, de les dades emmagatzemades, i tamb la
inserci de noves informacions. Podem considerar lexistncia de dos subtipus, bsicament:
Procedimentals. Requereixen especificar no solament les dades que es necessiten,
sin tamb els procediments que shan de seguir per obtenir-les. Sutilitzaven de
manera exclusiva abans de larribada del model relacional. Actualment, es continuen
utilitzant, per noms quan cal optimitzar algun procs que no rendeix prou, pel fet
destar implementat de manera declarativa. Sn ms eficients que els declaratius,
per ms complicats, ja que exigeixen tenir certs coneixements sobre el funcionament intern del SGBD utilitzat.
Declaratius. Noms requereixen especificar quines dades es necessiten, sense que
calgui especificar com shan dobtenir. Sn ms senzills daprendre que els procedimentals, per tamb menys eficients.
El llenguatge ms utilitzat per interaccionar amb els SGBD relacionals s lSQL.
LSQL engloba les dues tipologies de llenguatges de BD descrites. Les seves operacions es poden
classificar, doncs, en un dels dos tipus esmentats (DDL i DML) amb finalitats pedaggiques, per
en realitat totes formen part dun nic llenguatge.
Exemples d'operacions DDL i DML del llenguatge SQL
Com a instruccions de tipus DML, podem esmentar SELECT (per fer consultes), i tamb INSERT,
UPDATE i DELETE (per realitzar el manteniment de les dades).
I com a instruccions de tipus DDL, podem considerar CREATE TABLE (que ens permet definir les
taules, les seves columnes i les restriccions que calgui).
En relaci al component DML de lSQL, cal dir que s fonamentalment declaratiu, tot i que t possibilitats procedimentals, que es poden explotar en diferents SGBD:
PostgreSQL s un SGBD distribut amb llicncia BSD (Berkeley Software Distribution)
PL/SQL, llenguatge procedimental per treballar amb els SGBD creats per Oracle.
PL/PgSQL, similar al PL/SQL dOracle, per dissenyat per treballar amb PostgreSQL.
Logotip de PostgreSQL
Cal dir que, a ms del respectiu llenguatge nadiu de BD (habitualment, SQL), els SGBD ofereixen,
des de ja fa molt de temps, dues possibilitats ms per incrementar la productivitat en el treball amb
BD, que sn els llenguatges de quarta generaci i les interfcies visuals, sovint proporcionades
dins de lentorn duna sola eina.
Sovint, laccs a les BD tamb es fa des daplicacions externes al SGBD, escrites en llenguatges de
programaci (com per exemple C, Java, etc.), els quals normalment no incorporen instruccions prpies que permetin la connexi amb BD.
Per respondre a aquesta necessitat, hi ha dues opcions:
1. Realitzar, dins del programa, crides a diferents funcions que sn en llibreries que implementen estndards de connectivitat de BD amb programes escrits en certs llenguatges, com ara
els segents:
ODBC (open data base connectivity), sistema creat per Microsoft i compatible amb
molts sistemes com, per exemple, Informix, MS Access, MySQL, Oracle, PostgreSQL, SQL Server, etc.
JDBC (Java data base connectivity), per realitzar operacions amb BD des daplicacions escrites en Java.
2. Hostatjar les sentncies del llenguatge de BD que siguin necessries, dins dun programa
amfitri escrit en el llenguatge de programaci utilitzat. s imprescindible que el compilador
utilitzat accepti la introducci de sentncies escrites en el llenguatge de BD utilitzat (que
normalment ser lSQL).
Usuaris i administradors
Les persones que treballen amb SGBD es poden classificar com a usuaris en sentit estricte, els quals
simplement interactuen amb el sistema (tot i que de diferents maneres i amb diferents finalitats), o
b com a administradors, si a ms realitzen tasques de gesti i control.
Usuaris d'SGBD
Podem diferenciar tres categories dusuaris de SGBD en funci de la manera en qu interactuen
amb el sistema: externs, sofisticats i programadors daplicacions.
1. Usuaris externs. Sn usuaris no sofisticats, que no interactuen directament amb el sistema, sin
mitjanant alguna aplicaci informtica desenvolupada prviament per altres persones amb aquesta
finalitat.
Exemple d'usuari extern
Qualsevol persona assumeix aquest rol quan treu diners dun caixer automtic, ja que accedeix a la
BD de lentitat financera identificant-se mitjanant una targeta magntica i un nmero didentificaci personal secret (personal identification number, en angls, o PIN).
Una vegada autoritzada a entrar en el sistema, podr realitzar diferents operacions de consulta o,
fins i tot, dactualitzaci. En el cas plantejat, desprs de treure diners, el saldo del compte corrent
associat a la targeta patir el decrement corresponent.
Eines CASE
Les eines CASE (acrnim de computer aided software engineering, o enginyeria del programari
assistida per ordinador) sn aplicacions informtiques destinades a augmentar la productivitat en el
desenvolupament de programari reduint el cost del desenvolupament en termes de temps i de diners.
2. Usuaris sofisticats. Interactuen directament amb el sistema, sense utilitzar les interfcies proporcionades per programes intermediaris. Formulen les consultes en un llenguatge de BD (normalment,
SQL), des de dins de lentorn 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 sn ms freqents entorns que permeten construir les consultes de mode visual, com autntiques eines CASE.
3. Programadors daplicacions. Sn professionals informtics que creen els programes que accedeixen als SGBD i que, posteriorment, sn utilitzats pels usuaris que hem anomenat externs. Aquestes aplicacions es poden desenvolupar mitjanant 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.
Administradors d'SGBD
Els administradors sn uns usuaris especials que realitzen tasques dadministraci i control centralitzat de les dades, i gestionen els permisos daccs concedits als diferents usuaris i grups dusuaris,
per tal de garantir el funcionament correcte de la BD.
Els administradors han dactuar, evidentment, per solucionar les eventuals aturades del sistema,
per la seva responsabilitat fonamental consisteix, justament, a evitar que es produeixin incidents.
La feina dels administradors no s fcil, tot i que els SGBD incorporen cada vegada ms eines per
facilitar-la, i en la majoria dels casos amb interfcie visual. Es tracta, per exemple, deines de monitoratge de rendiment, deines de monitoratge de seguretat, de verificadors de consistncia entre
ndexs i dades, de gestors de cpies de seguretat, etc.
Una llista no exhaustiva de les tasques dels administradors podria ser la segent:
Crear i administrar els esquemes de la BD.
Administrar la seguretat: autoritzacions daccs, restriccions, etc.
Realitzar cpies de seguretat peridiques.
Controlar lespai de disc disponible.
Vigilar la integritat de les dades.
Observar levoluci del rendiment del sistema i determinar quins processos consumeixen
ms recursos.
Assessorar els programadors i els usuaris sobre la utilitzaci de la BD.
Fer canvis en el disseny fsic per millorar el rendiment.
Resoldre emergncies.
Gestor d'emmagatzemament
Les BD corporatives tenen enormes requeriments despai demmagatzematge en disc. Les dades es
transfereixen entre el disc en qu estan emmagatzemades i la memria principal de lordinador
noms quan s necessari. I, com que la transferncia 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 sen minimitzi la necessitat de transferncia entre el disc i la
memria principal.
El gestor demmagatzemament proporciona la interfcie entre les dades, considerades a baix nivell, i
les consultes i els programes que accedeixen a la BD. Les dades semmagatzemen en disc fent servir el sistema darxius que proporciona el sistema operatiu utilitzat. I el gestor tradueix les instruccions DML a ordres comprensibles pel sistemes darxius a baix nivell.
Els components del gestor demmagatzemament sn els segents:
Gestor dautoritzacions i dintegritat. Comprova que se satisfacin tant les restriccions
dintegritat com les autoritzacions dels usuaris per accedir a les dades.
Gestor de transaccions. Assegura que la BD es mantingui en un estat de consistncia malgrat les fallades del sistema, i tamb que les transaccions concurrents no sinterfereixin entre
elles.
Gestor darxius. Gestiona la reserva despai demmagatzemament en disc i les estructures
de dades utilitzades per representar la informaci emmagatzemada en disc.
Gestor de memria intermdia. Transfereix les dades des del disc a la memria principal, i
decideix quines dades shan de tractar en memria cau. Permet al sistema tractar amb dades
de grandria molt superior a la de la memria principal.
Daltra banda, el gestor demmagatzemament utilitza certes estructures de dades que formen part de
la implementaci fsica del sistema:
Arxius de dades. Emmagatzemen la BD prpiament considerada.
Diccionari de dades. Emmagatzema les metadades relatives a tota lestructura de la BD.
ndexs. Proporcionen un accs rpid a certes dades en funci dels seus valors.
Processador de consultes
El processador de consultes ajuda el SGBD a simplificar laccs a les dades. Les vistes a alt nivell
contribueixen a assolir aquest objectiu, ja que eviten que els usuaris hagin de conixer detalls de la
implementaci fsica del sistema. Per aix no treu que el sistema no hagi de perseguir leficcia en
el processament de les consultes i de les actualitzacions de dades. De fet, el sistema ha de traduir les
instruccions escrites, a nivell lgic, en un llenguatge no procedimental (tpicament, SQL), a una
seqncia doperacions a nivell fsic, amb uns mnims deficincia.
Els components del processador de consultes sn els segents:
Intrpret 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 srie dinstruccions a baix nivell que pot interpretar el motor
davaluaci de consultes. En realitzar la traducci esmentada, un bon compilador DML
tamb sencarregar de fer una optimitzaci de consultes triant, entre totes les alternatives, la
de menor cost.
Motor davaluaci de consultes. Executa les instruccions de baix nivell generades pel compilador DML.
La figura mostra tots aquests components i les connexions entre ells.
Diccionari de dades
Un diccionari de dades duna base de dades s el conjunt de metadades que proporcionen informaci sobre el contingut i lorganitzaci de la base de dades.
Un diccionari de dades, segons IBM Dictionary of Computing es pot definir com un repositori
centralitzat dinformaci sobre dades com ara el significat, relacions amb altres dades, orgen, s i
format.
De vegades el concepte de diccionari de dades o metadades tamb s conegut amb el nom de catleg del sistema o, tamb, com a repositori de metadades.
Els diferents SGBD especfics implementen de diverses formes el diccionari de dades, de forma que
cada programari implementa amb un conjunt de taules i ofereix un conjunt de vistes a diferents
tipus dusuaris del sistema. Aix doncs, normalment, un usuari amb privilegis dadministrador del
sistema (DBA) pot visualitzar ms informaci i de tipus ms especfic que un usuari sense aquests
privilegis.
DBA
DBA s lacrnim de Data Base Administrator o Administrador de Bases de Dades, que s la persona encarregada de gestionar les BD, dintre del SGBD.
Els elements que es troben habitualment a un diccionari de dades inclouen:
Definicions de lesquema de la base de dades.
Descripcions detallades de taules i camps, aix com de tots els objectes de la base de dades
(vistes, clusters, ndexos, sinnims, funcions i procediments, triggers, etc.).
Restriccions dintegritat referencial.
Informaci de control daccs, com ara noms dusuari, rols, i privilegis.
Parmetres dubicaci de lemmagatzemament.
Estadstiques ds de la base de dades.
Tot aquest conjunt dinformaci, semmagatzema en centenars de taules dinformaci. Tot i que hi
ha organismes que intenten estandarditzar lorganitzaci daquesta meta-informaci, la realitat s
que cada distribudor de programari especfic (cada SGBD) ofereix la seva prpia estructura.
Un administrador del sistema o DBA haur de conixer com accedir i consultar tota aquesta informaci consultant la guia de referncia del sistema amb qu treballi.
El diccionari de dades en Oracle
En Oracle s lusuari SYS el propietari del diccionari de dades i lnic que pot fer actualitzacions
sobre la informaci que cont. Tot i que, alterar o manipular el diccionari de dades s una operaci
dadministraci que cal fer amb moltes precaucions, doncs pot provocar danys permanents.
En Oracle es creen tres tipus de vistes diferents, que permeten consultar informaci sobre diferents
tipus de dades. Aix les vistes poden tenir un daquests prefixos:
USER: Per a visualitzar informaci sobre els objectes propietat de lusuari.
ALL: Per a consultar informaci sobre els objectes on t accs lusuari.
DBA: Que dna accs a tots els objectes del sistema, per a poder ser controlats i gestionats.
Aix doncs, per exemple, es poden consultar el conjunt dobjectes a qu es t accs des dun usuari
donat dOracle amb la segent sentncia:
SELECT owner, object_name, object_type FROM ALL_OBJECTS;