06.09.2014 Views

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

© FUOC • 71Z799014MO 19 <strong>Bases</strong> <strong>de</strong> <strong>datos</strong> en PostgreSQL<br />

a objetos y, en algunas circunstancias, coexistir ambos tipos <strong>de</strong> aplicaciones<br />

durante algún tiempo.<br />

El problema <strong>de</strong> este enfoque es que no es fácil lograr la coexistencia <strong>de</strong> dos mo<strong>de</strong>los<br />

<strong>de</strong> <strong>datos</strong> diferentes como son la orientación a objetos y el mo<strong>de</strong>lo relacional.<br />

Es necesario equilibrar <strong>de</strong> alguna manera los conceptos <strong>de</strong> uno y otro<br />

mo<strong>de</strong>lo sin que entren en conflicto.<br />

Uno <strong>de</strong> los conceptos fundamentales en la orientación a objetos es el concepto<br />

<strong>de</strong> clase. Existen dos enfoques para asociar el concepto <strong>de</strong> clase con el mo<strong>de</strong>lo<br />

relacional:<br />

1. er enfoque: las clases <strong>de</strong>finen tipos <strong>de</strong> tablas<br />

2. o enfoque: las clases <strong>de</strong>finen tipos <strong>de</strong> columnas<br />

Dado que en el mo<strong>de</strong>lo relacional las columnas están <strong>de</strong>finidas por tipos <strong>de</strong><br />

<strong>datos</strong>, lo más natural es hacer correspon<strong>de</strong>r las columnas con las clases.<br />

1. er enfoque 2. o enfoque<br />

Los objetos son valores tuplas<br />

Las clases son dominios tablas<br />

PostgreSQL implementa los objetos como tuplas y las clases como tablas. Aunque<br />

también es posible <strong>de</strong>finir nuevos tipos <strong>de</strong> <strong>datos</strong> mediante los mecanismos<br />

<strong>de</strong> extensión.<br />

Dado que las tablas son clases, pue<strong>de</strong>n <strong>de</strong>finirse como herencia <strong>de</strong> otras. Las<br />

tablas <strong>de</strong>rivadas son polimorfas y heredan todos los atributos (columnas) <strong>de</strong><br />

la tabla padre (incluida su clave primaria). Si no se manejan con precaución,<br />

las tablas polimorfas pue<strong>de</strong>n conducir a errores <strong>de</strong> integridad al duplicar claves<br />

primarias. PostgreSQL soporta algunas extensiones <strong>de</strong>l lenguaje SQL para crear<br />

y gestionar este tipo <strong>de</strong> tablas.<br />

Los mecanismos<br />

<strong>de</strong> extensión<br />

No es habitual que el usuario<br />

utilice los mecanismos <strong>de</strong> extensión<br />

pues se consi<strong>de</strong>ran<br />

mecanismos avanzados.<br />

Veremos estos conceptos más<br />

en <strong>de</strong>talle en el subapartado 4.2 <strong>de</strong><br />

esta unidad didáctica.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!