Вы находитесь на странице: 1из 16

Modelo relacional.

Esquema
1.- Estructura de datos:
dominio relacin

2.- Restricciones de integridad


Restricciones de atributo Restricciones intra-tupla Restricciones inter-tupla

3.- Operaciones
de interrogacin de manipulacin

1.- Estructura de datos


Dominio
conjunto de valores identificados por un nombre

Esquema de relacin R(a1,a2 an)


nombre de una relacin R y una lista de atributos a1,a2.. an con dominios atmicos

Instancia de una relacin o relacin r(R)


subconjunto del producto cartesiano D1xD2x Dn donde Di es el dominio del atributo Ai

2.- Restricciones de integridad (RI)


Si: las RI representan condiciones que se cumplen en el dominio. y: la base de datos tiene que ser un reflejo del dominio entonces: la base de datos tiene que cumplir las RI Las RI pueden ser violadas: (SI) el sueldo de un empleado no puede ser mayor que el sueldo de su jefe
(NO) el sueldo del empleado se calcula como el sueldo base + (horas extras * 5) (NO) un empleado debe cobrar su sueldo antes de final de mes

Quin garantiza que las RI no son violadas? la aplicacin o el SGBD?

Quin garantiza las restricciones?


la aplicacin
edad > 18 edad > 18 edad > 18

SGBD

el SGBD

SGBD
(edad > 18)

Gestin de restricciones por el SGBD. Ventajas


Promueve la re-utilizacin del cdigo Incremena la consistencia Reduce el esfuerzo de mantenimiento Favorece la eficiencia al reducir el trfico por la red

Restricciones de atributo
de clave primaria: primary key de clave extranjera:
references <tabla> on [update | delete] [cascade | set null | set default | no action ]

de dominio:
dominios del sistema: char(30), int, date, time, date ... dominios definidos por el usuario: declare domain imposibilidad de tomar el valor null: not null imposibilidad de tomar valores repetidos: unique restriccin rango de valores: check (value in .)

Ejemplo
declare domain dom-rent char(5) check (value in (alta, baja, media)); create table deposito (nom-suc char(15) not null references sucursal, num-cue char(10) unique not null, nom-cli char(20) not null references cliente on delete cascade, saldo integer check (saldo > 0 and saldo < 10000000), rentabilidad dom-rent not null, primary key (nom-suc, nom-cli), foreing key (num-cue) references cuenta on delete cascade on update set null );

Restricciones intra-tupla
Sintaxis:
CHECK (<condicin tipo where>)

Ejemplo: El nombre de los varones no debe empezar por Sra.


CREATE TABLE Artista ( nombre CHAR(30) UNIQUE, sexo CHAR(1) CHECK (sexo in (h, m)); fecha-nacimiento DATE, CHECK (NOT sexo = h OR nombre NOT LIKE Sra. %) );

Restricciones inter-tupla o aserciones


Sintaxis:
CREATE ASSERTION <nombre> CHECK <condicin> Ejemplo: Los alumnos de primero deben obligatoriamente matricularse de la asignatura programacin
CREATE ASSERTION matricula-mnima CHECK (NOT EXITS (SELECT * FROM Alumno, AluAsi WHERE su_curso = primero AND Alumno.numExp = AluAsi.elAlumno AND AluAsi.laAsignatura <> programacin))

Tipos de restricciones: comparacin


Tipo de restriccin de atributo Dnde se declara ? Cundo se activa ? Garantizada ?

con el atributo

al actualizar el atributo al introducir una tupla al introducir una tupla al actualizar una tupla no al borrar una tupla al modificar cualquier tabla referenciada

No, si subpreguntas

intra-tupla

con la tabla

No, si subpreguntas

inter-tupla

como asercin

Nombrar restricciones
Necesario para:
mensajes especficos de error al violar la restriccin modificar la restriccin borrar la restriccin

Sintaxis:
CONSTRAINT <identificador> <restriccin>

Ejemplos:
nombre CHAR(30) CONSTRAINT NombreEsClave PRIMARY KEY curso INT CONSTRAINT Curso1a5 CHECK (curso in (1,2,3,4,5)) CREATE DOMAIN Drentabilidad CHAR(4) CONSTRAINT DomRent CHECK (VALUE in (alta, baja, media))

Aadir y borrar restricciones


Sintaxis:
ALTER [TABLE | DOMAIN] <ident> DROP CONSTRAINT <ident> ALTER [TABLE | DOMAIN] <ident> ADD CONSTRAINT <definicin restr.>

al introducir una RI, se comprueba su validez sobre los datos ya existentes

Ejemplos:
ALTER TABLE Alumno DROP CONSTRAINT Curso1a5; ALTER DOMAIN Drentabilidad DROP CONSTRAINT DomRent; ALTER TABLE Alumno ADD CONSTRAINT Curso1a6 CHECK (su-curso in (1,2,3,4,5,6));

3.- Operaciones
Modificacin de la estructura de datos
introduccin de tuplas: insert borrado de tuplas: delete actualizacin de tuplas: update leng. manipulacin de datos

Consulta de la estructura de datos


recuperacin de tuplas: select leng. interrogacin de datos

Lenguaje de interrogacin de datos


Lenguajes basados en el lgebra
la relacin: un conjunto de tuplas la pregunta: secuencia de operacin de conjuntos ejemplo: SQL

Lenguajes basados en el clculo de predicados


la relacin: un predicado la pregunta: una expresin del clculo de predicados ejemplo: QUEL (orientado a tuplas) Query By Example (orientado a dominios)

Lenguajes de alto nivel Algebra/clculo: igual poder expresivo

Algebra vs. clculo


Ejemplo: obtener los clientes con un depsito y un prstamo en la sucursal de Amara.
Deposito(nomSuc,numCue,nomCli,saldo) Prestamo(nomSuc,numPre,nomCli,cantidad)

Algebra
PROYnomCli(SELECCIONnomSuc=Amara(Deposito) PROYnomCli(SELECCIONnomSuc=Amara(Prestamo)

Calculo
{nc | dDeposito pPrestamo d (Amara,_,nc,_) p(Amara,_,nc,_)}

Algebra relacional
operaciones

op. tradicionales de conjuntos

op. relacionales extendidas

union (P)

diferencia (P)

producto cartesiano (P)

interseccin

proyeccin(P)

seleccin(P)

divisin

join

Operaciones cerradas (posibilita el anidamiento)


relacin x relacin relacin

Вам также может понравиться