1. Introduccio a les bases de dades OO
1. Introducció
Les bases de dades relacionals sorgeixen del model relacional com un sistema que representa fidelment la realitat, amb gran solidesa degut a la lògica relacional subjacent. Aquest model representa la perspectiva estàtica de la modelització de l'aplicació, i en ell totes les dades es desglossen a nivells atòmics, ja que, com recordem, no es permeten valors multivaluats ni compostos.
Aquest model ha patit la bretxa objecte-relacional, en la qual els llenguatges de programació han evolucionat les estructures adoptant la metodologia orientada a objectes. Això ens porta a dissenyar la base de dades d'una banda, seguint el model relacional, i també necessitem dissenyar les classes de l'aplicació d'altra banda. Aquests dissenys, que no solen coincidir, es poden ajustar amb les eines ORM estudiades en la unitat anterior per mitigar la desconnexió objecte-relacional.
D'aquesta bretxa sorgeix la necessitat d'afegir un disseny més orientat a objectes dins de la pròpia base de dades. Si analitzem un esquema orientat a objectes i intentem aplicar la teoria de la normalització, trobarem que els objectes es descomponen en diverses entitats, cosa que provoca l'aparició de moltes taules.
Aquest alt nombre de taules provoca, com a conseqüència, un augment de les referències entre elles, augmentant considerablement les relacions entre elles i, per tant, un major nombre de restriccions que cal controlar (FOREIGN KEY), cosa que suposa un augment del nombre de comprovacions que ha de realitzar el SGBD.
Així, en la BD OO (Base de Dades Orientada a Objectes) es permet una definició de tipus de dades complexos en comparació amb els simples que incorpora el SGBD relacional, permetent la definició de tipus estructurats i fins i tot multivaluats. Amb tot això, la BD OO hauria de permetre simplement el disseny a través d'objectes (similar a l'UML) indicant els objectes que hi participen, indicant els seus atributs i mètodes, i les relacions que els afecten, i òbviament, les herències.
Aquestes BD OO encara no han despegat, i algunes solucions que implementen solucions comercials és proporcionar al sistema de bases de dades relacionals les capacitats semàntiques de l'orientació a objectes, apareixent així les BDOR (Bases de Dades Objecte-Relacional).
2. Bases de Dades Objecte-Relacional
L'estàndard ANSI SQL1999 (SQL99 i posteriorment SQL2003), com a continuació de SQL92 en què s'adapten les característiques del model relacional, permet afegir característiques orientades a objectes a les bases de dades relacionals. Això permet que els SGBD robustos hagin adoptat i implementat aquelles característiques requerides. Entre aquestes característiques es troben:
- Definició de nous tipus de dades per part de l'usuari.
- Adaptació per acomodar grans tipus de dades binàries com imatges i documents.
- Capacitat per emmagatzemar elements compostos com arrays.
- Emmagatzemar directament referències a altres taules.
- Definició d'objectes i herència.
- Definició de funcions que gestionen les estructures definides prèviament.