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

Los <strong>de</strong>sarrolladores <strong>de</strong> PostgreSQL proponen la siguiente alternativa para usar<br />

OID <strong>de</strong> forma absolutamente segura:<br />

• Crear una restricción <strong>de</strong> tabla para que el OID sea único, al menos en cada<br />

tabla. El SGBD irá incrementando secuencialmente el OID hasta encontrar<br />

uno sin usar.<br />

• Usar la combinación OID - TABLEOID si se necesita un i<strong>de</strong>ntificador único<br />

para un registro válido en toda la base <strong>de</strong> <strong>datos</strong>.<br />

Por los motivos anteriores, no es recomendable el uso <strong>de</strong> OID hasta que nuevas<br />

versiones <strong>de</strong> PostgreSQL los corrijan. En caso <strong>de</strong> usarlos, conviene seguir<br />

las recomendaciones anteriores.<br />

Es posible crear tablas que no incluyan la columna OID mediante la siguiente<br />

notación:<br />

create table persona (<br />

nombre varchar(30),<br />

direccion varchar(30)<br />

)without oids;<br />

4.2. Herencia<br />

PostgreSQL ofrece como característica particular la herencia entre tablas, que<br />

permite <strong>de</strong>finir una tabla que here<strong>de</strong> <strong>de</strong> otra previamente <strong>de</strong>finida, según la<br />

<strong>de</strong>finición <strong>de</strong> herencia que hemos visto en capítulos anteriores.<br />

Retomemos la tabla persona <strong>de</strong>finida como sigue:<br />

create table persona (<br />

nombre varchar (30),<br />

direccion varchar (30)<br />

);<br />

A partir <strong>de</strong> esta <strong>de</strong>finición, creamos la tabla estudiante como <strong>de</strong>rivada <strong>de</strong><br />

persona:<br />

create table estudiante (<br />

<strong>de</strong>mo(# carrera varchar(50),<br />

<strong>de</strong>mo(# grupo char,<br />

<strong>de</strong>mo(# grado int<br />

<strong>de</strong>mo(# ) inherits ( persona );<br />

CREATE

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

Saved successfully!

Ooh no, something went wrong!