Académique Documents
Professionnel Documents
Culture Documents
del
TABLAS
INDICES
CONSTRAINTS
Aplicacin de
RELACIONAL
SNPP - San Lorenzo
las
reglas
de
Integridad
2
Descripcin
Constraints de integridad
Regla de Integridad
Descripcin
De las Entidades
Referencial
Columna
Definidas por el usuario Los valores deben concordar con las reglas
del negocio
SNPP - San Lorenzo
La Opcin DEFAULT
Se puede especificar un valor predefinido por una
columna durante una insercin.
... Fecha_inicio DATE DEFAULT SYSDATE,...
NUMBER(p,s)
LONG
DATE
CHAR(tamao)
BLOB
CLOB
BFILE
Constraints
Establecen restricciones a nivel de tabla
Previene eliminaciones de una tabla si hay
dependencias.
Los tipos de constraints siguientes son vlidos en
Oracle:
- NOT NULL
- UNIQUE
- PRIMARY KEY
- FOREIGN KEY
- CHECK
SNPP - San Lorenzo
10
11
SINTAXIS
A nivel de columna:
column [CONSTRAINT constraint_name] constraint_type,
A nivel de tabla:
column,...
[CONSTRAINT constraint_name] constraint_type
(column, ...),
12
Ejemplo:
CREATE TABLE
friend...
phone VARCHAR2(15) NOT NULL,...
last_name VARCHAR2(25)
CONSTRAINT friend_last_name_nn NOT NULL,...
13
El constraint UNIQUE
o Impide que una columna o combinacin de columnas tenga valores
repetidos. El propsito del constraint UNIQUE es ligeramente diferente al
del PRIMARY KEY. Las claves nicas son atributos de la entidad que no
admiten duplicacin, en tanto que la clave primaria no tiene otra funcin
que identificar cada fila unvocamente.
o Permite valores nulos solamente si la clave UNIQUE est basada en una
sola columna
o Se define a nivel de COLUMNA o a nivel de TABLA
o Automticamente crea un ndice nico.
... telefono
VARCHAR2(10)
CONSTRAINT s_emp_telefono_uk UNIQUE,...
SNPP - San Lorenzo
14
... id
NUMBER(7)
CONSTRAINT p_personal_id_pk PRIMARY KEY,...
15
16
17
El constraint CHECK
Define una condicin que debe satisfacer cada columna
Existen expresiones no permitidas:
- Referencias al pseudo columnas CURRVAL,
NEXTVAL, ROWNUM
- Llamadas a SYSDATE, Identificador nico
(UID), USER
- Consultas que se refieren a otros valores en
otras filas
Se define a nivel de tabla o al nivel de columna
SNPP - San Lorenzo
18
(id
NUMBER(7)
CONSTRAINT p_departamento_id_pk PRIMARY KEY,
descripcion
VARCHAR2(25)
CONSTRAINT p_departamento_nombre_nn NOT NULL,
id_localidad NUMBER(7)
CONSTRAINT p_departamento_localidad_id_fk REFERENCES
p_localidad (id),
CONSTRAINT s_dept_desc_localidad_id_uk UNIQUE
(descripcion, id_localidad));
19
20
21
22
Consultas al diccionario de la BD
Cuatro clases de vistas (prefijos)
USER Objetos posedos por usuario
ALL Todos los objetos a los que el usuario tiene acceso
DBA Todos los objetos
V$
Valores actuales del Servidor
Otras vistas
DICTIONARY
TABLE_PRIVILEGES
IND
23
CONSULTAS AL DICCIONARIO
Listando todos las vistas del DD a los que el usuario tiene
acceso
SQL> SELECT *
2 FROM
DICTIONARY;
24
SQL> SELECT
2 FROM
3 WHERE
*
dictionary
LOWER(comments) LIKE '%grant%';
25
WHERE
table_name = 'P_PERSONAL';
26
WHERE
table_name = 'P_PERSONAL';
27
ALTERACIN DE OBJETOS
28
ALTERACIN DE OBJETOS:
29
30
31
32
33
34
35
36
37
38
39
p_personal
2 DROP CONSTRAINT
Table altered.
s_per_superior_id_fk;
p_departamento
PRIMARY KEY CASCADE;
40
Desactivar Constraints
La sentencia ALTER TABLE posee la clusula DISABLE que
permite deshabilitar el funcionamiento una regla de integridad.
Aplique la opcin CASCADE para desactivar constraint
dependientes.
SQL> ALTER TABLE
p_personal
2 DISABLE CONSTRAINT
pk_personal CASCADE;
Table altered.
41
Activar Constraints
Active un constraint actualmente desactivado en la definicin
de la tabla usando la clusula ENABLE.
SQL> ALTER TABLE
p_personal
2 ENABLE CONSTRAINT pk_personal;
Table altered.
42
o
o
o
o
43
44
45
46
47
Comentarios de la tabla
Usted puede agregar comentarios a una tabla o columna usando
la orden COMMENT.
SQL> COMMENT ON TABLE p_personal
2
Comment created.
Para limpiar el comentario use el string que simboliza NULL (' ').
Pueden verse comentarios a travs de las siguientes vistas del
Diccionario de Datos:
ALL_COL_COMMENTS
USER_COL_COMMENTS
ALL_TAB_COMMENTS
USER_TAB_COMMENTS
48
Creacin de ndices
49
LOS NDICES
Son objetos de la Base de Datos, utilizados por la Base de
Datos para acelerar la recuperacin de filas a travs de la
utilizacin de punteros.
Los ndices reducen el tiempo de utilizacin de los
dispositivos de entrada/salida, pues utiliza mtodos
especiales de acceso
Los ndices son totalmente independientes de las tablas
Una vez que se definen , el Servidor se encarga de utilizarlos
y actualizarlos apropiadamente.
SNPP - San Lorenzo
50
51
Basado en reglas
Basado en costo
52
53
la
54
Ejemplo de la estructura de
rboles B*Tree
55
56
57
Ejemplo
SINTAXIS DE LA CREACIN DE UN NDICE:
CREATE INDEX index
ON table (column[, column]...);
58
59
60
ndices BITMAP
Facultad
SNPP
- San
Politcnica
Lorenzo
OracleBase
- Inst.
deZulma
Datos Argello
II
61
62
63
FROM
WHERE
AND
64
65
CREACIN DE
SECUENCIAS
66
SECUENCIAS
Genera automticamente una numeracin nica y
consecutiva
Como otros objetos, puede ser compartido
Se usa tpicamente para generar los valores de una clave
primaria permitiendo evitar programar dicha generacin
Cuando se indica que resida en el cach de memoria, se
mejora la eficiencia del acceso.
67
SINTAXIS
CREATE SEQUENCE nombre
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE n | NOCACHE}]
68
69
Confirmando Secuencias
En la tabla
USER_SEQUENCES del
Diccionario podr verificar los parmetros de
la secuencia
SQL> SELECT sequence_name, min_value,
2
max_value, increment_by,
3
last_number
4 FROM
user_sequences;
70
71
VALUES
Finanzas', 2);
1 row created.
Vea el valor
S_DEPT_ID.
SQL> SELECT
2 FROM
actual
para
la
sucesin
de
p_dept_id.CURRVAL
SYS.dual;
72
73
Eliminacin de la secuencia
Se elimina una secuencia usando la
sentencia DROP SEQUENCE.
Una vez eliminada la secuencia, ella ya no
puede ser referenciada.
SQL> DROP SEQUENCE p_dept_id;
Sequence dropped.
74
75