Integridad en oracle

Solo disponible en BuenasTareas
  • Páginas : 5 (1055 palabras )
  • Descarga(s) : 0
  • Publicado : 29 de marzo de 2011
Leer documento completo
Vista previa del texto
Integridad en Oracle
1. Manejo de nulos
Esta restricción especifica si una columna puede contener o no valores nulos. ORACLE por defecto se asume que la columna admite valores nulos.

Formato:
atributo tipo [CONSTRAINT nombre] NOT NULL | NULL.

Ejemplo:
Codigo integer CONSTRAINT nn_dni NOT NULL

2. primary key:

La restricción "primary key" asegura que los valores sean únicospara cada registro.
En este caso la restricción de integridad designa una columna o combinación de columnas como clave primaria de la tabla.

Para facilitar su especificación, ORACLE permite definir la restricción a nivel de columna (en el ámbito de definición de una columna) o a nivel de tabla (si se definen después de introducir todas las columnas, en una sección genérica final de definición derestricciones).

- A nivel de columna: Se define dentro de una constraint asociada a la misma. La definición de una clave primaria lleva implícita la restricción de valores no nulos. La misma columna puede ser definida como primaria y ajena pero no como primaria y alternativa.

- A nivel de tabla: Se utiliza para definir claves primarias compuestas. Se declara antes o después de haberintroducido las columnas de la tabla en cuestión.

Formato:

A nivel columna:
atributo tipo [CONSTRAINT nombre] PRIMARY KEY.

A nivel tabla:
[CONSTRAINT nombre] PRIMARY KEY(colum1,.. colum ..).

Ejemplo:

A nivel columna:

Codigo integer [CONSTRAINT pk_dni] PRIMARY KEY

A nivel tabla:
CONSTRAINT pk_nomapelli PRIMARY KEY(nom,apelli).

Por defecto, ORACLE no permite la inserción devalores nulos en las columnas definidas como clave primaria.
Si consultamos el catálogo "user_constraints", podemos ver las restricciones "primary key" (y todos los tipos de restricciones) de todas las tablas del usuario actual. El resultado es una tabla que nos informa el propietario de la restricción (OWNER), el nombre de la restricción (CONSTRAINT_NAME), el tipo (CONSTRAINT_TYPE, si es "primarykey" muestra una "P"), el nombre de la tabla en la cual se aplica (TABLE_NAME), y otra información que no analizaremos por el momento.
También podemos consultar el catálogo "user_cons_columns"; nos mostrará el propietario de la restricción (OWNER), el nombre de la restricción (CONSTRAINT_NAME), la tabla a la cual se aplica (TABLE_NAME), el campo (COLUMN_NAME) y la posición (POSITION).

3. Lasrestricciones de integridad estáticas

Las restricciones de integridad estáticas serán aquellas condiciones contra las cuales todas las filas deberán ser evaluadas. Todas las filas deberan cumplir las condiciones de esta restricción cumplir. En resumen, La restricción de integridad estática especifica los valores que acepta un campo, evitando que se ingresen valores inapropiados

Estasrestricciones de integridad están especificadas en ORACLE dentro de una restricción de tipo CHECK asociada a una columna o una tabla.

La implementación de esta restricción en una columna sería:

Formato:
atributo tipo [CONSTRAINT nombre] CHECK condición.

Ejemplo:
Saldo integer CHECK saldo!=saldo_base

A diferencia de otros gestores, en esa condición se puede hacer referencia a cualquier columnade la tabla.

No se pueden introducir en estas condiciones atributos de otras tablas. En ese caso, sólo queda el recurso de programar explícitamente la restricción de integridad, lo que habitualmente se hace generando disparos (“triggers”) de la base de datos.

La implementación a nivel de tabla sería igual.

Si un campo permite valores nulos, "null" es un valor aceptado aunque no estéincluido en la condición de restricción.

Si intentamos establecer una restricción "check" para un campo que entra en conflicto con otra restricción "check" establecida al mismo campo, Oracle no lo permite. Pero si establecemos una restricción "check" para un campo que entra en conflicto con un valor "default" establecido para el mismo campo, Oracle lo permite; pero al intentar ingresar un...
tracking img