Reglas de integridad

Solo disponible en BuenasTareas
  • Páginas : 15 (3718 palabras )
  • Descarga(s) : 0
  • Publicado : 9 de marzo de 2011
Leer documento completo
Vista previa del texto
1. REGLAS DE INTEGRIDAD
Las claves primarias pueden especificarse como parte de la instrucción create table de SQL usando la cláusula foreign key. Se ilustrarán las declaraciones de clave externa usando la definición del LDD de SQL de parte de la base de datos bancaria, mostrada en la Figura 6.2.

De manera predeterminada, una clave externa referencia los atributos que forman la clave primariade la tabla referenciada. SQL también soporta una versión de la cláusula references, donde se puede especificar explícitamente una lista de atributos de la relación referenciada. Esta lista se debe declarar como clave candidata de la relación referenciada.

Se puede usar la siguiente forma abreviada como parte de la definición de un atributo para declarar que el atributo forma una claveexterna: nombre-sucursal char(15) references sucursal Cuando se viola una restricción de integridad referencial, el procedimiento normal es rechazar la acción nombre

Create table cliente
(nombre-cliente char(20),
calle-cliente char(30),
ciudad-cliente char(30),
primary key (nombre-cliente))
create table sucursal
(nombre-sucursal char(15),
ciudad-sucursal char(30),
activo integer,
primary key(nombre-sucursal),
check (activo > = 0))
create table cuenta
(número-cuenta char(10),
nombre-sucursal char(15),
saldo integer,
primary key (número-cuenta),
foreign key (nombre-sucursal) references sucursal,
check (saldo >= 0))
create table impositor
(nombre-cliente char(20),
número-cuenta char(10),
primary key (nombre-cliente, número-cuenta),
foreign key (nombre-cliente) referencescliente,
foreign key (número-cuenta) references cuenta)

FIGURA 6.2. Definición en SQL de los datos de parte de la
base de datos bancaria.

que provocó la violación. Sin embargo, la cláusula foreign key puede especificar que si una acción de borrado o de actualización de la relación a la que hace referencia viola la restricción, en lugar de rechazar la acción, hay que adoptar medidas paramodificar la tupla de la relación que hace la referencia con objeto de restaurar la restricción. Considérese la siguiente definición
de una restricción de integridad de la relación cuenta:

create table cuenta
(…
foreign key (nombre-sucursal) references sucursal
on delete cascade
on update cascade,
…)

Debido a la cláusula on delete cascade asociada con la declaración de la clave externa,si un borrado de una tupla de sucursal da lugar a que se viole la restricción de integridad referencial, el sistema no rechaza el borrado.

En su lugar, el borrado se realiza en «cascada» en la relación cuenta, borrando la tupla que hace referencia a la sucursal que se borró. De modo parecido, no se rechaza la actualización de un campo al que haga referencia la restricción si viola esta; en vezde eso, el campo nombre- sucursal de las tuplas que realizan la referencia de cuenta se actualizan también al nuevo valor. SQL también permite que la cláusula foreign key especifique una acción diferente a cascade si se viola la restricción: el campo que hace la referencia (en este caso, nombrecreate sucursal) se puede establecer en nulo o darle un valor predeterminado para el dominio (usando setdefault).

Si hay una cadena de dependencias de claves externas entre varias relaciones, un borrado o una actualización en uno de sus extremos puede propagarse por toda la cadena. (2)

(2) FUNDAMENTOS DE BASES DE DATOS -Cuarta edición – Mc Graw Hil - Silverschatz. Pág. 163

2. TIPOS DE DATOS PRIMITIVOS (SQL, ORACLE Y MYSQL)
Tipos de datos primitivos SQL
Tipo de Datos Longitud DescripciónBINARY 1 byte Para consultas sobre tabla adjunta de productos de bases de datos que definen un tipo de datos Binario.
BIT 1 byte Valores Si/No ó True/False
BYTE 1 byte Un valor entero entre 0 y 255.
COUNTER 4 bytes Un número incrementado automáticamente (de tipo Long)
CURRENCY 8 bytes Un entero escalable entre 922.337.203.685.477,5808 y 922.337.203.685.477,5807.
DATETIME 8 bytes Un valor...
tracking img