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 17 <strong>Bases</strong> <strong>de</strong> <strong>datos</strong> en PostgreSQL<br />

Para resolver el conflicto <strong>de</strong> una variable <strong>de</strong> instancia duplicada, se pue<strong>de</strong> optar<br />

por las siguientes soluciones:<br />

• Cambiar los nombres, lo que pue<strong>de</strong> provocar conflictos en los métodos que<br />

las utilizan.<br />

• Eliminar una <strong>de</strong> las variables. Pero pue<strong>de</strong> pasar que realicen alguna función<br />

in<strong>de</strong>pendiente, en cuyo caso, sería un error eliminar una.<br />

• No permitir herencia múltiple cuando hay variables duplicadas.<br />

Como se pue<strong>de</strong> observar, no es fácil solucionar conflictos entre variables <strong>de</strong><br />

instancia, por ello muchos lenguajes optan por diversos mecanismos incluyendo<br />

la prohibición <strong>de</strong> la herencia múltiple.<br />

2.5.1. Tipo y clase<br />

Tenemos que advertir que la mayoría <strong>de</strong> lenguajes <strong>de</strong> programación no diferencian<br />

los conceptos <strong>de</strong> tipo y clase y que la diferencia que establecen algunos<br />

autores no es <strong>de</strong>masiado clara. De todas maneras, la ten<strong>de</strong>ncia sería <strong>de</strong>finir<br />

dichos conceptos como sigue:<br />

• Un tipo es un conjunto <strong>de</strong> objetos que comparten la misma interfaz.<br />

• Una clase es un conjunto <strong>de</strong> objetos que comparten la misma implementación.<br />

Una solución que se aplica es incluir en el lenguaje el concepto <strong>de</strong> interfaz<br />

que <strong>de</strong>fine solamente las operaciones <strong>de</strong> una clase, pero no ofrece alternativas<br />

para los atributos. Sin embargo, con la diferenciación entre clases e interfaces<br />

no se logra la diferenciación entre los dos tipos <strong>de</strong> herencia, pues las clases se<br />

utilizan para representar relaciones es-un.<br />

2.6. Agregación: jerarquía <strong>de</strong> objetos<br />

Los objetos son, por naturaleza, complejos; es <strong>de</strong>cir, están compuestos <strong>de</strong> objetos<br />

más pequeños. Un sistema <strong>de</strong> información <strong>de</strong>be reflejar esta propiedad<br />

<strong>de</strong> los objetos <strong>de</strong> forma natural. En una base <strong>de</strong> <strong>datos</strong> relacional, un objeto<br />

complejo <strong>de</strong>be ser <strong>de</strong>scompuesto en sus partes más simples para ser almacenado.<br />

Al extraerlo, es necesario ensamblar cada una <strong>de</strong> sus partes.<br />

Ejemplo<br />

Un automóvil está compuesto<br />

<strong>de</strong> carrocería, motor, ruedas,<br />

etc.<br />

Por este motivo el mo<strong>de</strong>lo relacional comporta problemas cuando se utiliza en aplicaciones<br />

como el CAD, don<strong>de</strong> los objetos que se procesan son muy complejos.<br />

Las bases <strong>de</strong> <strong>datos</strong> <strong>de</strong> objetos <strong>de</strong>ben proporcionar la facilidad <strong>de</strong> obtener un<br />

objeto complejo en una sola consulta <strong>de</strong> forma transparente. En este caso, los

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

Saved successfully!

Ooh no, something went wrong!