Presentation Transcript
BENEMĆRITA UNIVERSIDAD AUTĆNOMA DE PUEBLAFacultad de Ciencias de la ComputaciónTRATAMIENTO DE RESTRICCIONES DE INTEGRIDAD PARA OORDB. CASO DE ESTUDIO: POSTGRESQL.: BENEMĆRITA UNIVERSIDAD AUTĆNOMA DE PUEBLA Facultad de Ciencias de la Computación TRATAMIENTO DE RESTRICCIONES DE INTEGRIDAD PARA OORDB. CASO DE ESTUDIO: POSTGRESQL.
Presenta
JosƩ Javier JuƔrez Caballero
Asesor
Lic. MarĆa del RocĆo Boone Rojas
Coasesor
Ing. Oscar Eduardo PƩrez Carrasco
FCC - BUAP POSTGRESQL
Contenido: Contenido
Objetivo general y especĆficos: Documentar y experimentar las facilidades que ofrece POSTGRESQL para el manejo de OORDB.
Desarrollar e implantar los mƩtodos necesarios para ofrecer un soporte para el componente de integridad de POSTGRESQL para OORDB.
Objetivo general y especĆficos Identificar e implantar los mecanismos que ofrece POSTGRESQL para el tratamiento de restricciones de integridad en OORDB.
Integridad: Integridad Consistencia
Calidad
Seguridad
Restricciones de integridad: Restricciones de integridad
Restricciones de integridad elementales: Restricciones de integridad elementales
Sistemas de bases de datos relacionales: Sistemas de bases de datos relacionales Los RDBMS se fundamentan en el uso de relaciones. Estas relaciones podrĆan considerarse en forma lógica como conjuntos de datos llamados tuplas.
Sistemas de bases de datos orientadas a objetos: Sistemas de bases de datos orientadas a objetos Los Sistemas de bases de datos orientados a objetos tienen sus orĆgenes en los lenguajes de programación orientados a objetos. Un objeto puede considerarse como una especie de cĆ”psula dividida en tres partes:
Relaciones.
Propiedades.
MƩtodos.
Sistemas de bases de datos relacionales orientados a objetos: Sistemas de bases de datos relacionales orientados a objetos
PostgreSQL: PostgreSQL Michael Stonebraker
Restricciones de integridad en PostgreSQL: Restricciones de integridad en PostgreSQL CREATE TABLE vehiculo
(
matricula varchar(10) NOT NULL,
num_bastidor varchar(50) NOT NULL,
fabricante varchar(20) NOT NULL,
modelo varchar(20) NOT NULL,
fecha_adq date NOT NULL,
color varchar(10) NOT NULL,
key_estado int4 NOT NULL,
CONSTRAINT "Matricula" PRIMARY KEY (matricula),
CONSTRAINT key_estado FOREIGN KEY (key_estado)
REFERENCES estado (key_estados) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT bastidor UNIQUE (num_bastidor)
)
Restricciones de integridad en PostgreSQL: Restricciones de integridad en PostgreSQL CREATE TABLE email
(
key_email int4 NOT NULL DEFAULT nextval('email_key_email_seq'::regclass),
email varchar(20),
clave_are varchar(5) NOT NULL,
CONSTRAINT key_email PRIMARY KEY (key_email),
CONSTRAINT clave_are FOREIGN KEY (clave_are)
REFERENCES arrendatario (clave) MATCH SIMPLE
ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT email_email_key UNIQUE (email)
)
WITHOUT OIDS;
ALTER TABLE email OWNER TO postgres;
Integridad transaccional: Integridad transaccional Transacción Transacción Transacción
Base de datos experimental: Base de datos experimental
DiseƱo de la base de datos: DiseƱo de la base de datos
Marco de evaluación propuesto: Marco de evaluación propuesto SI SI SI SI SI SI SI SI SI No permite valores nulos en un campo de llave
primaria. No permite valores nulos en alguno de los campos
que componen la llave primaria Realiza correctamente la verificación de unicidad No permite valores repetidos en el conjunto que
forman la llave primaria. Cuando se actualiza el valor de la llave primaria, el
valor no debe ser nulo. Cuando se actualiza el valor de la llave primaria, el
valor no debe existir en la columna. Cuando se actualiza el valor de la llave primaria, no
se permiten valores nulos en alguno de los campos
que componen la llave primaria Cuando se actualiza el valor de la llave primaria, no
se permiten valores repetidos en el conjunto que
forman la llave primaria.
Marco de evaluación propuesto: Marco de evaluación propuesto SI Se define la llave forÔnea mediante un nombre
especĆfico, el cual, no debe existir.
SI SI SI SI SI SI SI SI Se deben crear tuplas en donde el campo de
llave primaria exista en la relación referida
Se requiere integridad referencial. Siempre que no exista restricción que lo
impida. Se requiere integridad referencial. Siempre que no exista restricción que lo
impida. No se recomienda poner valores nulos. Se debe insertar una regla de validación en el
diseño de una relación.
Marco de evaluación propuesto: Marco de evaluación propuesto SI SI SI SI SI Se debe especificar el atributo como unique. Se debe especificar el valor default en el diseño de la tabla. Se pueden crear tipos definidos por el usuario (dominio) para
hacer referencia a algún tipo. Se debe crear primero una función trigger y posteriormente el
disparador. Si la aplicación requiere de la aparición de un mensaje de error, es preferible utilizar un trigger.
PgAdmin III: PgAdmin III
Ejemplos : Ejemplos Pruebas en PostgreSQL Not null Llave forƔnea Check
Disparadores (triggers): Disparadores (triggers) -- Trigger
CREATE TRIGGER actualizar_renta
BEFORE UPDATE
ON "Renta"
FOR EACH ROW
EXECUTE PROCEDURE renta_tri();
COMMENT ON TRIGGER actualizar_renta ON "Renta" IS 'antes de actualizar guarda en el catalogo';
Reglas de PostgreSQL: Reglas de PostgreSQL
Conclusiones: Conclusiones
Restricciones de integridad: Restricciones de integridad
Principales restricciones de integridad.: Principales restricciones de integridad.
Restricciones de integridad estƔticas: Restricciones de integridad estƔticas
Disparadores: Disparadores
Concentrado global: Concentrado global
Pruebas: Pruebas