Académique Documents
Professionnel Documents
Culture Documents
Parte I
Creacin y
manipulacin de tablas
Creacin de tablas
Una
vez conectados a una base de datos y despus de abrir una base de datos, la
sentencia SQL create table permite crear las tablas que necesitemos
El comando drop table permite eliminar tablas
ngel Lpez
Creacin de tablas
Podemos
La
tabla est lista para insertar en ella algunos registros. El nmero con el que
responde el comando insert se refiere al OID del registro insertado.
ngel Lpez
Creacin de tablas
Las
consultas se realizan con la sentencia SQL select. En este caso solicitamos que nos
muestre todas las columnas de los registros en la tabla persona:
Para observar las columnas ocultas, debemos hacer referencia a ellas especficamente
en el comando select:
ngel Lpez
Creacin de tablas
Las
ngel Lpez
Creacin de tablas
Ejemplo de la utilizacin de OID para enlazar dos tablas
La
Las
ngel Lpez
Creacin de tablas
Los OID de PostgreSQL presentan algunas deficiencias
Todos
los OID de una base de datos se generan a partir de una nica secuencia
centralizada, lo que provoca que en bases de datos con mucha actividad de insercin y
eliminacin de registros, el contador de 4 bytes se desborde y pueda entregar OID ya
entregados. Esto sucede, por supuesto, con bases de datos muy grandes.
Los OID no mejoran el rendimiento. Son, en realidad, una columna con un nmero
entero como valor.
No tiene ningn tipo de eficiencia con respecto a la clave primaria
ngel Lpez
Creacin de tablas
Los desarrolladores de PostgreSQL proponen la siguiente alternativa
para usar OID de forma absolutamente segura:
Crear
una restriccin de tabla para que el OID sea nico, al menos en cada tabla. El
SGBD ir incrementando secuencialmente el OID hasta encontrar uno sin usar.
Usar la combinacin OID - TABLEOID si se necesita un identificador nico para un
registro vlido en toda la base de datos.
Es posible crear tablas que no incluyan la columna
OID mediante la siguiente notacin:
ngel Lpez
Herencia
PostgreSQL
ngel Lpez
Herencia
Herencia
Para
ngel Lpez
Herencia y OID
Los
OID permiten que se diferencien los registros de todas las tablas, aunque sean
heredadas: nuestro estudiante tendr el mismo OID en las dos tablas, ya que se
trata de nica instancia de la clase estudiante.
Dado que no se recomienda el uso de OID en bases muy grandes, y debe incluirse
explcitamente en las consultas para examinar su valor, es conveniente utilizar
una secuencia compartida para padres y todos sus descendientes si se requiere un
identificador.
ngel Lpez
Herencia y OID
En
PostgreSQL, una alternativa para no utilizar los OID es crear una columna de
tipo serial en la tabla padre, as ser heredada en la hija. El tipo serial define una
secuencia de valores que se ir incrementando de forma automtica, y por lo
tanto constituye una buena forma de crear claves primarias.
ngel Lpez
Herencia y OID
Restricciones
Como ya sabemos, las restricciones permiten especificar condiciones que debern
cumplir tablas o columnas para mantener la integridad de sus datos. Algunas de las
restricciones vendrn impuestas por el modelo concreto que se est
implementando, mientras que otras tendrn su origen en las reglas de negocio del
cliente, los valores que pueden tomar algunos campos, etc.
PostgreSQL ofrece las restricciones siguientes:
null y not null. En mltiples ocasiones el valor de una columna es desconocido, no
es aplicable o no existe. En estos casos, los valores cero, cadena vaca o falso son
inadecuados, por lo que utilizamos null para especificar la ausencia de valor. Al
definir una tabla podemos indicar qu columnas podrn contener valores nulos y
cules no.
unique. Esta restriccin se utiliza cuando no queremos que los valores contenidos
en una columna puedan duplicarse.
ngel Lpez
Restricciones
primary
ngel Lpez
Restricciones
Si
ngel Lpez
Restricciones
En clusula on delete se pueden especificar las siguientes acciones:
set null. La referencia toma el valor NULL: si se elimina Persona su
Mascota se quedar sin dueo.
set default. La referencia toma el valor por omisin.
cascade. La accin se efecta en cascada: si se elimina Persona
automticamente se elimina su Mascota.
restrict. No permite el borrado del registro: no se puede eliminar una
Persona que tenga Mascota. sta es la accin que se toma por omisin.
ngel Lpez
Restricciones
check.
ngel Lpez
ngel Lpez
Tipos de Datos
Datos
Lgicos:
ngel Lpez
Tipos de Datos
Datos
Lgicos:
ngel Lpez
Manipulacin de Datos
Las consultas a la base de datos se realizan con el comando select, que
se implementa en PostgreSQL cumpliendo en gran parte con el estndar
SQL:
ngel Lpez
Manipulacin de Datos
Actualizacin de Datos:
PostgreSQL cumple con el estndar SQL en todos los sentidos para las
sentencias de actualizacin, insercin y borrado. No define
modificadores ni otros mecanismos para estas sentencias.
Transacciones
Definimos transaccin como un conjunto de operaciones que tienen
significado solamente al actuar juntas.
PostgreSQL ofrece soporte a transacciones, garantizando que ambas
operaciones se realicen o que no se realice ninguna.
ngel Lpez
Manipulacin de Datos
Ejemplo de Actualizacin de Datos:
ngel Lpez