Base de dades relacional

De Viquipèdia
Dreceres ràpides: navegació, cerca
Taules

Una base de dades relacional és una base de dades que compleix amb el model relacional, el qual és el model més utilitzat en l'actualitat per a modelar problemes reals i administrar dades dinàmicament. Permeten establir interconnexions (relacions) entre les dades (que estan guardats en taules), i treballar amb ells conjuntament. Després de ser postulades les seues bases en 1970 per Edgar Frank Codd, dels laboratoris IBM a San José (Califòrnia), no va tardar en consolidar-se com un nou paradigma en els models de base de dades.[1]

Característiques[modifica | modifica el codi]

  • Una base de dades relacional es compon de diverses taules o relacions.
  • No poden existir dues taules amb el mateix nom.
  • Cada taula és al seu torn un conjunt de registres, files o tuples.

Elements[modifica | modifica el codi]

Relacions base i derivades[modifica | modifica el codi]

En una base de dades relacional, tots les dades s'emmagatzemen i s'accedeixen a ells per mitjà de relacions. Les relacions que emmagatzemen dades són dites "relacions base" i la seua implementació és cridada "taula". Altres relacions no emmagatzemen dades, però que són calculades a l'aplicar operacions relacionals. Aquestes relacions són cridades "relacions derivades" i la seua implementació és cridada "vista" o "consulta". Les relacions derivades són convenients ja que expressen informació de diverses relacions actuant com si anara una sola.

Restriccions[modifica | modifica el codi]

Una restricció és una condició que obliga el compliment de certes condicions en la base de dades. Algunes no són determinades pels usuaris, sinó que són inherentment definides pel simple fet que la base de dades siga relacional. Algunes altres restriccions les pot definir l'usuari, per exemple, usar un camp amb valors sencers entre 1 i 10.

Les restriccions proveeixen un mètode d'implementar regles en la base de dades. Les restriccions restringeixen les dades que poden ser emmagatzemats en les taules. Usualment es defineixen usant expressions que donen com a resultat un valor booleà, indicant si les dades satisfan la restricció o no.

Les restriccions no són part formal del model relacional, però són incloses perquè juguen el rol d'organitzar millor les dades. Les restriccions són molt discutides juntament amb els conceptes relacionals.

Dominis[modifica | modifica el codi]

Un domini descriu un conjunt de possibles valors per a cert atribut. Com un domini restringeix els valors de l'atribut, pot ser considerat com una restricció. Matemàticament, atribuir un domini a un atribut significa "tots els valors d'aquest atribut deuen ser elements del conjunt especificat".

Distints tipus de dominis són: enters, cadenes de text, data, etc.

Clau única[modifica | modifica el codi]

Cada taula pot tenir un o més camps els valors dels quals identifiquen de forma única cada registre d'aquesta taula, és a dir, no poden existir dues o més registres diferents els valors dels quals en aquests camps siguen idèntics. Aquest conjunt de camps es diu clau única.

Poden existir diverses claus úniques en una determinada taula, i a cadascuna d'aquestes sol cridar-se-li candidata a clau primària.

Clau primària[modifica | modifica el codi]

Una clau primària és una clau única triada entre totes les candidates que defineix unívocament a tots els restants atributs de la taula, per a especificar les dades que seran relacionats amb les altres taules. La forma de fer açò és per mitjà de claus foranes.

Només pot existir una clau primària per taula i cap camp d'aquesta clau pot contenir valors NULL.

Clau forana[modifica | modifica el codi]

Una clau forana és una referència a una clau en altra taula. Les claus foranes no necessiten ser claus úniques en la taula on estan i si on estan referenciades.

Per exemple, el codi de departament pot ser una clau forana en la taula d'empleats. Òbviament es permet que haja diversos empleats en un mateix departament, però existirà només un departament amb aquest codi.

Clau índex[modifica | modifica el codi]

Les claus índex sorgeixen amb la necessitat de tenir un accés més ràpid a les dades. Els índexs poden ser creats amb qualsevol combinació de camps d'una taula. Les consultes que filtren registres per mitjà d'aquests camps, poden trobar els registres de forma no seqüencial usant la clau índex.

Les bases de dades relacionals inclouen múltiples tècniques d'ordenament, cadascuna d'elles és òptima per a certa distribució de dades i grandària de la relació.

Els índexs generalment no es consideren part de la base de dades, doncs són un detall agregat. No obstant això, les claus índexs són desenvolupades pel mateix grup de programadors que les altres parts de la base de dades.

Procediments emmagatzemats[modifica | modifica el codi]

Un procediment emmagatzemat és codi executable que s'associa i s'emmagatzema amb la base de dades. Els procediments emmagatzemats usualment arrepleguen i personalitzen operacions comunes, com inserir un registre dins d'una taula, recopilar informació estadística, o encapsular càlculs complexos. Són freqüentment usats per un API per seguretat o simplicitat.

Els procediments emmagatzemats no són part del model relacional, però totes les implementacions comercials els inclouen...

Estructura[modifica | modifica el codi]

La base de dades s'organitza en dues marcades seccions; l'esquema i les dades (o instància).

L'esquema és la definició de l'estructura de la base de dades i principalment emmagatzema les següents dades:

  • El nom de cada taula
  • El nom de cada camp
  • El tipus de dada de cada camp
  • La taula a la qual pertany cada camp

Les bases de dades relacionals passen per un procés al que se li coneix com normalització, el resultat d'aquest procés és un esquema que permet que la base de dades siga usada de manera òptima.

Les dades o instància és el contingut de la base de dades en un moment donat. És en si, el contingut de tots els registres.

Manipulació de la informació[modifica | modifica el codi]

Per a manipular la informació utilitzem un llenguatge relacional, actualment es compta amb dos llenguatges formals el àlgebra relacional i el càlcul relacional. L'àlgebra relacional permet descriure la forma de realitzar una consulta, en canvi, el càlcul relacional només indica el que es desitja retornar.

El llenguatge més comú per a construir les consultes a bases de dades relacionals és SQL (Structured Query Language), un estàndard implementat pels principals motors o sistemes de gestió de bases de dades relacionals.

En el model relacional els atributs han d'estar explícitament relacionats a un nom en totes les operacions, en canvi, l'estàndard SQL permet usar columnes sense nom en conjunts de resultats, com l'asterisc taquigràfic (*) com anotació de consultes.

AL contrari del model relacional, l'estàndard SQL requereix que les columnes tinguen un ordre definit, la qual cosa és fàcil d'implementar en una computadora, ja que la memòria és lineal.

És de notar, no obstant això, que en SQL l'ordre de les columnes i els registres retornats en cert conjunt de resultat mai està garantit, llevat que explícitament siga especificat per l'usuari.

Manejadors de base de dades relacionals[modifica | modifica el codi]

Existeix programari exclusivament dedicat a tractar amb bases de dades relacionals. Aquest programari es coneix com SGBD (Sistema de gestió de base de dades relacional) o RDBMS (de l'anglès Relational database management system).

Entre els gestors o manejadors més actuals i populars trobem: MySQL, PostgreSQL, Oracle, DB2 i Microsoft SQL Server.

Avantatges i desavantatges[modifica | modifica el codi]

Avantatges

  • Proveeix eines que garanteixen evitar la duplicitat de registres.
  • Garanteix la integritat referencial, així, a l'eliminar un registre elimina tots els registres relacionats depenents.
  • Afavoreix la normalització per ser més comprensible i aplicable.

Desavantatges

  • No es manipulen de forma manejable els blocs de text com tipus de dada.

Les bases de dades orientades a objectes (BDOO) es van proposar amb l'objectiu de satisfer les necessitats de les aplicacions anteriors i així, complementar però no substituir a les bases de dades relacionals.

Vegeu també[modifica | modifica el codi]

Referències[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]