A les bases de dades orientades a objectes (OODB), els usuaris poden establir operacions en una base de dades concreta, que està formada per objectes que poden ser d'una gran varietat de tipus i per als quals s'estableixen operacions. Poden manejar de manera eficient la informació binària, com ara els objectes multimèdia. Un altre avantatge afegit d'OODB és que es pot programar amb lleus diferències de procediment sense afectar tot el sistema.
Requisits previs per a la creació de l'estàndard
La història de les bases de dades OODB orientades a objectes comença a finals del segle passat. Es van crear per satisfer les necessitats de noves aplicacions. La hipòtesi era que les bases de dades orientades a objectes revolucionarien els sistemes de programari durant la dècada de 1990. Ara està clar que no és així. No obstant això, el renaixement d'aquest concepte a través de les comunitats de programari lliure i la identificació d'aplicacions adequades per a això motiva una revisió de les característiques. OODB, que és una alternativa a les omnipresents bases de dades relacionals.
Orientat a objectes ofereix la flexibilitat per gestionar alguns o tots els requisits i no es limita als tipus de dades i llenguatges de consulta de les bases de dades tradicionals. Una característica clau dels OODB és la capacitat que proporcionen al desenvolupador, que li permet especificar tant l'estructura d'objectes complexos com les operacions de l'aplicació. Un altre motiu per crear OODB és l'ús creixent d'idiomes per al desenvolupament de programari.
Les bases de dades s'han convertit en la base de molts sistemes d'informació, però les bases de dades tradicionals són difícils d'utilitzar quan les aplicacions que hi accedeixen estan escrites en C++, Smalltalk o Java. Per exemple, les bases de dades orientades a objectes 1C es van dissenyar de manera que es puguin integrar directament amb aplicacions utilitzant llenguatges orientats a objectes adoptant els seus conceptes: Visual Studio. Net, C++, C, Microsoft SQL Server i altres.
El principal avantatge d'OODB és l'eliminació total de la necessitat de RMs1 (impedància) amb millores de rendiment posteriors.
Defectes:
- Mecanismes de consulta molt primitius, no s'accepta cap plataforma autoestàndard.
- No es poden emmagatzemar els procediments perquè només es pot accedir als objectes des del client.
- Immaduresa al mercat.
- No hi ha agrupació física d'objectes.
Paradigma d'objectes
Les bases de dades orientades a objectes són bases de dades programables que emmagatzemen dades complexes i les seves relacions directament sense assignar files i columnes, cosa que les fa més adequades per a aplicacions que funcionen amb lots grans. Els objectes tenen relacions de molts a molts i són accessibles mitjançant l'ús de punters que hi estan associats per establir relacions. Com qualsevol programable, OODB proporciona un entorn de desenvolupament d'aplicacions i un dipòsit persistent preparat per a l'explotació. Emmagatzema i manipula informació que es pot digitalitzar en forma d'objectes, proporciona un accés ràpid i ofereix grans capacitats de processament.
Conceptes bàsics utilitzats en una base de dades orientada a objectes:
- identitat de l'objecte;
- tipus de constructor;
- compatibilitat d'idiomes;
- tipus jerarquies i herència;
- processament d'objectes complexos;
- polimorfisme i sobrecàrrega d'operadors;
- creació de versions.
Per tenir en compte tots els aspectes que caracteritzen una base de dades orientada a objectes, és important tenir en compte tots els paradigmes d'objectes importants:
- L'encapsulació és una propietat que us permet amagar la informació d' altres objectes, evitant així l'accés incorrecte o els conflictes.
- L'herència és una propietat per la qual els objectes hereten el comportament en una jerarquia de classes.
- El polimorfisme és una propietat d'una operació amb la qual es pot aplicardiferents tipus d'objectes.
- La interfície o la signatura d'una operació inclou el nom i els tipus de dades dels seus arguments o paràmetres.
- La implementació o el mètode d'una operació s'especifica per separat i es pot canviar sense afectar la interfície. Les aplicacions d'usuari poden treballar amb dades cridant a operacions especificades mitjançant els seus noms i arguments, independentment de com s'hagin implementat.
Clases i funcionalitats
Quan es considera el concepte de classes a OODB, cal distingir entre els termes "classe" i "tipus". Un tipus s'utilitza per descriure un conjunt d'objectes amb un comportament similar. En aquest sentit, depèn de quines operacions es puguin anomenar sobre l'objecte. Una classe és una col·lecció d'objectes que comparteixen la mateixa estructura interna, de manera que defineix una implementació, mentre que un tipus descriu com utilitzar-la.
El terme instanciació es refereix al fet que la instanciació d'una classe es pot utilitzar per produir un conjunt d'objectes que tinguin la mateixa estructura i comportament que els establerts per la classe.
Una característica que és molt important per a l'evolució dels objectes és que pot canviar la seva classe, inclosos els atributs i les operacions, mantenint la identitat. Això requeriria un mecanisme per gestionar la integritat semàntica resultant.
Heretar la base de dades orientada a objectes d'una organització permet definir una classe com a subclasse d'una superclasse ja existent. Heretarà tots els atributs i mètodes d'aquest últim i, opcionalment, pot definirpropi. Aquest concepte és un mecanisme important per donar suport a la reutilització. Les mateixes parts de l'estructura de dues classes diferents només es poden definir una vegada en una superclasse comuna, per tant s'escriurà menys codi. Hi ha alguns sistemes que permeten que una classe sigui una subclasse de més d'una superclasse. Aquesta característica s'anomena herència múltiple en lloc de l'herència única.
Exemple de base de dades orientada a objectes
Sovint és útil utilitzar el mateix nom per a mètodes diferents però similars de la superclasse de mitjans de les classes d'imatge i vídeo. Diversos visors poden veure molts fitxers. Sovint han de veure totes les fotos i vídeos mitjançant el mètode "visualització" i s'ha d'iniciar el programa adequat. Quan es crida la funció i es passa un enllaç al vídeo, s'inicia el reproductor multimèdia. Per implementar aquesta característica, en primer lloc, cal definir l'operació de "presentació" a la superclasse de mitjans comuns a partir de les classes d'imatge i vídeo. Cadascuna de les subclasses redefineix l'operació de cerca per a les seves necessitats específiques. Això dóna lloc a diferents mètodes que tenen el mateix nom d'operació. En aquest cas, utilitzar aquesta funció té un avantatge important.
estructura OODB
El paradigma orientat a objectes es basa en l'encapsulació de dades i codi relacionats amb cada objecte en un únic mòdul. Conceptualment, totes les interaccions entre aquest i la resta del sistema es duen a terme mitjançant missatges. D'aquí la interfícieentre ells es determina pel conjunt permès.
En general, cada objecte està associat a un conjunt:
- Variables que contenen dades d'objectes i corresponen als atributs del model ER.
- Missatges als quals respon. Cadascun pot tenir o no paràmetres, un o més.
- Mètodes, cadascun dels quals és un codi que implementa missatges i retorna un valor com a resposta.
La missatgeria en un entorn OO no implica l'ús d'SMS físic a les xarxes d'ordinadors. Al contrari, es refereix a l'intercanvi de peticions entre objectes, independentment dels detalls correctes de la seva implementació. De vegades, una expressió crida a un mètode per activar el fet que s'ha enviat un missatge a un objecte i utilitza l'execució del mètode corresponent.
Identitat de l'objecte
El sistema de base de dades orientat a objectes proporciona una identificació única per a cada objecte independent emmagatzemat a la base de dades. Normalment s'implementa mitjançant un identificador d'objecte únic o OID generat pel sistema. El valor OID és invisible per a l'usuari extern, però el sistema l'utilitza internament per gestionar els enllaços entre objectes.
La propietat principal d'un OID és ser immutable. El valor OID d'un objecte concret no hauria de canviar mai. Això preserva la identitat del món real que es representa. També és preferible que cada OID s'utilitzi només una vegada, encara que s'elimini de la base de dades, el seu OID no s'ha d'assignar a un altre. També sovint es considera inadequat basar-ho en un físicl'adreça de l'objecte emmagatzemat, ja que reorganitzar-los a la base de dades pot canviar l'OID. Tanmateix, alguns sistemes utilitzen l'adreça física com a OID per augmentar l'eficiència de la recuperació d'objectes. Un marc orientat a objectes imposa automàticament restriccions relacionals, normalment més aplicables: domini, clau, integritat de l'objecte i integritat referencial.
Tres constructors principals
A OODB, es poden crear valors o estats d'objectes complexos a partir d' altres mitjançant constructors de determinats tipus. Una manera de representar-los és pensar en cadascun com un triplet (i, c, v), on i és l'identificador únic de l'objecte (OID), c és el constructor, és a dir, un punter a com és el valor de l'objecte. creat, i v és el valor o estat de l'objecte. Pot haver-hi diversos constructors segons el model de dades i el sistema OO.
Tres constructors bàsics de bases de dades orientades a objectes:
- àtoms;
- tuples;
- conjunts.
Altres usos més habituals són les llistes i els gràfics. També hi ha el domini D, que conté tots els valors atòmics bàsics directament disponibles al sistema. Normalment inclouen nombres enters, nombres reals, cadenes de caràcters, dates i qualsevol altre tipus de dades que el sistema gestioni directament. Tant l'estructura dels objectes com les operacions s'inclouen a les definicions de classe.
Compatibilitat amb llenguatges de programació
S'utilitzen els conceptes bàsics de les bases de dades orientades a objectescom a eines de disseny i codificades per treballar amb la base de dades.
Hi ha diversos llenguatges possibles en els quals es poden integrar aquests conceptes:
- Ampliació d'un llenguatge per al processament de dades com SQL afegint tipus complexos i POO. Els sistemes proporcionen extensions orientades a objectes als sistemes relacionals, anomenades sistemes relacionals orientats a objectes.
- Utilitzar un llenguatge de programació orientat a objectes existent i ampliar-lo per treballar amb bases de dades. S'anomenen llenguatges de programació persistents i permeten als desenvolupadors treballar directament amb dades sense haver de passar per un llenguatge de processament de dades com SQL. S'anomenen persistents perquè les dades continuen existint després del final del programa que les va crear.
A l'hora de decidir quina opció utilitzar, tingueu en compte que els llenguatges persistents solen ser potents, i és relativament fàcil cometre errors de programació que danyin la base de dades. La complexitat dels idiomes dificulta les optimitzacions automàtiques d' alt nivell, com ara reduir l'E/S del disc. En moltes aplicacions, la capacitat de fer consultes declaratives és important, però els llenguatges persistents actualment no permeten aquestes consultes sense problemes.
Jerarquia de tipus d'herència
Els esquemes de bases de dades orientats a objectes solen requerir un gran nombre de classes. Tanmateix, diverses classes són semblants entre elles. Per permetre una representació directa de les semblances entre elles, cal posaren una jerarquia d'especialitzacions. Aquest concepte és similar als models ER. Les especialitzacions de classe s'anomenen subclasses, que defineixen atributs i mètodes addicionals per a una classe existent. Els objectes creats amb subclasses ho hereten tot del pare. Algunes d'aquestes característiques heretades potser s'han manllevat d'aquelles més altes a la jerarquia.
Els objectes es consideren complexos perquè requereixen una gran quantitat d'espai d'emmagatzematge i no formen part dels tipus de dades estàndard que ofereix la Gestió de bases de dades orientades a objectes (OODBS). Com que la mida dels objectes és important, SOOBMS pot rebre una part d'un objecte i proporcionar-la a una aplicació abans d'adquirir l'objecte sencer. També pot utilitzar mètodes de memòria cau i memòria cau per obtenir parts d'un objecte amb antelació, abans que una aplicació hi pugui accedir.
OODB permet als usuaris crear nous tipus que inclouen estructura i operacions, en aquest cas el sistema de tipus extensible. Podeu crear biblioteques de tipus nous definint la seva estructura i operacions. Molts d'ells poden emmagatzemar i rebre un objecte estructurat gran en forma de cadenes i caràcters o bits, que es passen "tal qual" al programa d'aplicació per a la seva interpretació.
El mètode pot accedir directament als atributs de l'objecte objectiu pel nom, inclosos els heretats de les classes pares, però ha d'accedir als atributs d' altres objectes amb senyals secundaris. El concepte us permet associar el mateix nom o símbol d'operadordues o més implementacions diferents, depenent del tipus d'objectes als quals s'aplica.
Aplicacions de construcció
Moltes aplicacions de bases de dades que utilitzen sistemes OO requereixen diverses versions del mateix objecte. Normalment, les activitats de manteniment s'apliquen a un sistema de programari a mesura que canvien els seus requisits, i implica canviar alguns dels mòduls de desenvolupament i implementació. Si el sistema ja s'està executant i si cal canviar un o més mòduls, el desenvolupador ha de crear una versió nova de cadascun d'ells fent canvis.
Tingueu en compte que hi pot haver més de dues versions d'un objecte, en cas que se'n requereixin dues a més del mòdul original. Les versions pròpies del mateix mòdul de programari es poden actualitzar al mateix temps. Això s'anomena disseny de bases de dades paral·leles orientades a objectes. No obstant això, sempre arriba un punt en què s'han de combinar perquè l'OODB híbrid incorpori els canvis que s'han fet perquè siguin compatibles.
Condicions orientades a objectes
Tots els sistemes informàtics han de tenir propietats de la seva arquitectura per ser considerats. Per exemple, un sistema ha de tenir taules per ser considerat relacional. OODB no és una excepció i conté algunes propietats bàsiques de l'arquitectura d'objectes. Tanmateix, al món real, moltes d'aquestes propietats es discuteixen i algunes, com ara l'herència múltiple, es consideren millores del model de base de dades orientada a objectes en lloc decom a part de la línia de base. Per exemple, en el llenguatge orientat a objectes Smalltalk, no s'admet l'herència múltiple, tot i que es considera part de l'arquitectura d'objectes.
Els mètodes per a una classe defineixen un conjunt d'operacions que es poden realitzar sobre un objecte. Per exemple, quan s'aplica a un objecte, retorna un valor o realitza alguna operació per actualitzar els valors. De vegades els mètodes no ho retornen. Si el mètode estigués dissenyat per actualitzar el nombre de passatgers d'un vehicle, no es retornaria cap valor, però l'element de dades de l'objectiu el canviaria.
Els objectes són un concepte fonamental en OODB. Essencialment, els objectes són una representació abstracta de les coses del món real que hi estan emmagatzemades. Un objecte és una instància d'una classe en el sentit que està exclòs de la seva definició.
Podeu pensar en un objecte com un paquet autònom que té tres parts:
- Informació personal pròpia, valors de dades.
- Procediments privats que manipularan valors mitjançant la definició de classe.
- Obre la interfície perquè aquest objecte es pugui comunicar amb els altres.
exemples OODB
Utilitzar OODB simplifica la conceptualització perquè és més natural representar la informació que cal emmagatzemar. Per modelar l'estructura o la lògica d'una base de dades, l'ús de diagrames de classes permet introduir classes amb les seves relacions estructurals i herència. Per tal de modelar part de la dinàmica, la interacció icomportament entre objectes, s'utilitzarà un diagrama de seqüència per representar la interacció entre objectes situats en una relació temporal, descrivint els estats possibles perquè es puguin trobar donat l'estat canviat després de l'esdeveniment.
A continuació es mostra un exemple de base de dades orientada a objectes.
Tenen un nom i una vida, que pot ser temporal o permanent. La clau OODB és la capacitat que proporcionen al desenvolupador per especificar quantes estructures i operacions s'hi aplicaran. Hi ha flexibilitat i suport per manejar tipus de dades complexos. Podeu crear classes i subclasses, per exemple, la base de clients pot tenir una subclasse de l'enllaç d'aquest client, i heretarà tots els atributs i característiques de la classe original, aquest enfocament us permet processar dades complexes de manera ràpida i flexible.