Professional Documents
Culture Documents
E ÍNDICES
CURSO:
ALUMNOS:
CICLO:
2008 – II
DOCENTE:
Cliente
RucDniCte
Proveedor Direccion
Venta
RucDniProvee Email
NroVenta Telefono1
RazonSocial
Fax FechaVenta RazonsocNombre
Direccion IdUsuario (FK) Telefono2
Ususario Saldo
Telefono1
Compra IdUsuario FechaPago
Email
NroCompra CuentaProveedor Nombre
Producto
FechaCompra Telefono2 ApPaterno
TipoDocumento Codproducto ApMaterno
RucDniProvee (FK) Descripcion Password
DetalleCompra
NroDocumento Stockminimo Telefono
NroCompra (FK) Boleta
FechaPago Stockactual Email
Estado CodProducto (FK) Direccion NroBoleta
Marca
Igv Cantidad PrecioCompra FechaEmision
PrecioCompra PrecioVenta Igv
Descuento FechaVencimiento MontoTotal
Descripcion Presentacion NroVenta (FK)
CategoriaID (FK) DetalleBoleta Estado
NroBoleta (FK) FechaPago
CodProducto (FK) RucDniCte (FK)
Cantidad
Precio
SubMonto
Descripcion
Descuento
Los constraints pueden estar definidos en uno de dos niveles que son:
describe categoria;
Name Null Type
----------------------------------------------------------------------------------------
CATEGORIAID NOT NULL CHAR(18)
UBICACIÓN CHAR(18)
NOMBRECATEGORÍA CHAR(18)
ERROR:
Error starting at line 1 in command:
INSERT INTO CATEGORIA
VALUES ('AL12',,'ALIMENTOS')
Error at Command Line:2 Column:15
Error report:
SQL Error: ORA-00936: falta una expresión
00936. 00000 - "missing expression"
*Cause:
*Action:
DESCRIBE CLIENTE;
Name Null Type
--------------------------------------------------------------------------------
RUCDNICTE NOT NULL CHAR(18)
DIRECCION CHAR(18)
EMAIL CHAR(18)
TELEFONO1 CHAR(18)
RAZONSOCNOMBRE CHAR(18)
TELEFONO2 CHAR(18)
En este caso realizamos dos restricciones UNIQUE a los campos de Email y
RazonSocial.
ERROR:
Error starting at line 1 in command:
INSERT INTO CLIENTE
VALUES('439874232','EL SOL #212','arzame@yahoo.es','9878712','Armando
Sanchez','976897638')
Error report:
SQL Error: ORA-00001: restricción única (SYSTEM.XPKCLIENTE) violada
00001. 00000 - "unique constraint (%s.%s) violated"
*Cause: An UPDATE or INSERT statement attempted to insert a duplicate
key.
For Trusted Oracle configured in DBMS MAC mode, you may see
this message if a duplicate entry exists at a different level.
*Action: Either remove the unique restriction or do not insert the key.
Un constraint PRIMARY KEY crea una llave primaria para la tabla. Solo
una llave primaria puede ser creada por cada tabla. El constraint
PRIMARY KEY es una columna o conjunto de columnas que identifica
de forma única cada fila de una tabla. Estos constraints obligan valores
únicos para la columna o combinación de columnas y aseguran que
estas columnas no puedan contener valores nulos.
DESCRIBE FACTURA;
Name Null Type
-----------------------------------------------------------------------------------------------
NROFACTURA NOT NULL NUMBER(5)
FECHAEMISION DATE
MONTOTOTAL NUMBER(38)
IGV NUMBER
ERROR:
SQL Error: ORA-00001: restricción única (SYSTEM.IDFAC) violada
00001. 00000 - "unique constraint (%s.%s) violated"
*Cause: An UPDATE or INSERT statement attempted to insert a
duplicate key.
For Trusted Oracle configured in DBMS MAC mode, you may see
this message if a duplicate entry exists at a different level.
*Action: Either remove the unique restriction or do not insert the key.
1.3.4 CONSTRAINT FOREIGN KEY
Las llaves foráneas están basadas en los valores de los datos y su lógica
pura, no física o apuntadores.
El constraint CHECK define una condición que para cada fila debe
satisfacerse. La condición puede utilizarse de manera similar a las
condiciones de una consulta, con las siguientes excepciones:
Las referencias a columnas CURRVAL, NEXTVAL, LEVEL y
ROWNUM
Llamadas a funciones SYSDATE, UID, USER y USERENV
Consultas que hagan referencia a valores en otras filas de la
misma tabla
Una columna puede tener múltiples constraints CHECK las cuales
pueden referenciarse en la definición de la columna. No se tienen
límites en el número de constraints CHECK cuando se define una
columna.
1 .4 Manipulación de Constraints
1.4.1 AÑADIENDO UN CONSTRAINT
Normas a seguir
Se puede añadir, eliminar, habilitar o deshabilitar un constraint,
pero no se puede modificar su estructura.
Se puede añadir un constraint NOT NULL a una columna
existente con el uso de la cláusula MODIFY de la sentencia
ALTER TABLE.
Normas a seguir:
Se puede usar la cláusula DISABLE en las sentencias CREATE
TABLE y ALTER TABLE.
La cláusula CASCADE deshabilita las dependencias de los
constraints de integridad.
Deshabilitar un constraint único o llave primaria, elimina el
índice único.
Ejemplo:
Donde:
table es el nombre de la tabla.
constraint es el nombre del constraint.
Normas a seguir:
Si se habilita un constraint, este aplica a todos los datos de la
tabla. Todos los datos de la tabla deben satisfacer el constraint.
Si se habilita un constraint PRIMARY KEY o UNIQUE key, se crea
un índice único o de llave primaria automáticamente.
Se puede usar la cláusula ENABLE en las sentencias CREATE
TABLE y ALTER TABLE.
Habilitar un constraint de llave primaria que ha sido
deshabilitado con la opción CASCADE no habilita ninguna llave
foránea dependiente de la llave primaria.
Ejemplo:
Donde:
a) Secuencia. Es el nombre que se le da al objeto de secuencia
b) INCREMENT BY. Indica cuánto se incrementa la secuencia cada
vez que se usa. Por defecto se incrementa de uno en uno
c) START WITH. Indica el valor inicial de la secuencia (por defecto 1)
d) MAXVALUE. Máximo valor que puede tomar la secuencia. Si no
se toma
e) NOMAXVALUE que permite llegar hasta el 1027
f) MINVALUE. Mínimo valor que puede tomar la secuencia. Por
defecto -1026.
g) CYCLE. Hace que la secuencia vuelva a empezar si se ha llegado al máximo
valor.
Ejemplo:
CREATE SEQUENCE Sec_Numeros
START WITH 5
INCREMENT BY 2
MAXVALUE 100
MINVALUE 5
NEXTVAL
----------------------
5
NEXTVAL
----------------------
7
CURRVAL
----------------------
7
Ejemplo :
SELECT Sec_Numeros.NEXTVAL
FROM DUAL;
Los índices son esquemas que hacen que Oracle acelere las operaciones
de consulta y ordenación sobre los campos a los que el índice hace
referencia.
Lo que realizan es una lista ordenada por la que Oracle puede acceder
para facilitar la búsqueda de los datos. Cada vez que se añade un nuevo
registro, los índices involucrados se actualizan a fin de que su
información esté al día. De ahí que cuantos más índices haya, más le
cuesta a Oracle añadir registros, pero más rápidas se realizan las
instrucciones de consulta.
5 BIBLIOGRAFIA
a) http://alarcos.inf-cr.uclm.es/doc/bda/doc/lab/BDa-p2.pdf
b) http://blearning.itmina.edu.mx/dep/sada/Ingenieria%20en%20
Sistemas%20Computacionales/5to%20Semestre/Taller%20de%2
0Base%20de%20Datos/taller_bd/sqlprocedual.pdf
c) http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r
23532.PDF
d) http://www.jorgesanchez.net/bd/oracleSQL.pdf
e) http://www.aposada.net/downloads/documentos/bd/Plus%20b
%C3%A1sico.PDF
f) http://leebyte.iespana.es/cursos/bd/oracle%20curso%206%20le
cciones.pdf