11-11-11 Copyright © ADA, 2005. Todos los derechos reservados.
Sesió n 11Sesió n 11
Administrando Tablas,Administrando Tablas,
Í ndices y RestriccionesÍ ndices y Restricciones
11-11-22 Copyright © ADA, 2005. Todos los derechos reservados.
ObjetivosObjetivos
• Crear tablas usando la configuració n apropiadaCrear tablas usando la configuració n apropiada
de almacenamientode almacenamiento
• Controlar el espacio usado por las tablasControlar el espacio usado por las tablas
• Analizar las tablas para chequear integridad yAnalizar las tablas para chequear integridad y
migració nmigració n
• Listar los diferentes tipos de índicesListar los diferentes tipos de índices
• Crear, reorganizar y eliminar índicesCrear, reorganizar y eliminar índices
• Implementar integridad de datosImplementar integridad de datos
• Mantenimiento de las restricciones de integridadMantenimiento de las restricciones de integridad
• Recuperar informació n de tablas, índices yRecuperar informació n de tablas, índices y
restricciones del diccionario de datosrestricciones del diccionario de datos
11-11-33 Copyright © ADA, 2005. Todos los derechos reservados.
Consideraciones en la Creació n de TablasConsideraciones en la Creació n de Tablas
• Definició n de columnas: Nombre, Tipo de Dato,Definició n de columnas: Nombre, Tipo de Dato,
Nulidad, Valor por Defecto.Nulidad, Valor por Defecto.
• Tipo de tabla.Tipo de tabla.
• Utilizació n del espacio en los bloques de datos.Utilizació n del espacio en los bloques de datos.
• Ubicació n de la tabla.Ubicació n de la tabla.
• Opció n deOpció n de LoggingLogging (Redo Log Buffer).(Redo Log Buffer).
• Tamañ o estimado.Tamañ o estimado.
11-11-44 Copyright © ADA, 2005. Todos los derechos reservados.
Tipos de TablasTipos de Tablas
• Ordinary. Básica, sus datos están almacenadosOrdinary. Básica, sus datos están almacenados
como una colecció n no ordenada.como una colecció n no ordenada.
• Partitioned. Los datos son almacenados en partesPartitioned. Los datos son almacenados en partes
en diferentes ubicaciones.en diferentes ubicaciones.
• Index-organized. Los datos son almacenados enIndex-organized. Los datos son almacenados en
una estructura de índice B-tree.una estructura de índice B-tree.
• Cluster. La tabla forma parte de un cluster. UnCluster. La tabla forma parte de un cluster. Un
cluster es un grupo de tablas que comparten loscluster es un grupo de tablas que comparten los
mismos bloques de datos en sus columnasmismos bloques de datos en sus columnas
comunes y generalmente se usan en conjunto.comunes y generalmente se usan en conjunto.
11-11-55 Copyright © ADA, 2005. Todos los derechos reservados.
Tipos de Datos OracleTipos de Datos Oracle
• Definidos por el usuarioDefinidos por el usuario
• Built-inBuilt-in
– EscalarEscalar
 CHAR(N),NCHAR(N)CHAR(N),NCHAR(N)
 VARCHAR2(N),NVARCHAR2(N)VARCHAR2(N),NVARCHAR2(N)
 NUMBER(I,D)NUMBER(I,D)
 DATEDATE
 RAWRAW
 BLOB,CLOB,NCLOB,BFILEBLOB,CLOB,NCLOB,BFILE
 LONG,LONG RAWLONG,LONG RAW
 ROWID,UROWIDROWID,UROWID
– ColeccionesColecciones
 VARRAYVARRAY
 TABLETABLE
11-11-66 Copyright © ADA, 2005. Todos los derechos reservados.
Creando una TablaCreando una Tabla
SQL>SQL> CREATE TABLE orders (CREATE TABLE orders (
22 orderidorderid NUMBER(3)NOT NULL,NUMBER(3)NOT NULL,
33 orderdateorderdate DATE,DATE,
44 shipdateshipdate DATE,DATE,
55 clientclient VARCHAR2(3)NOT NULL,VARCHAR2(3)NOT NULL,
66 amount_dueamount_due NUMBER(10,2),NUMBER(10,2),
77 amount_paidamount_paid NUMBER(10,2))NUMBER(10,2))
88 PCTFREE 35PCTFREE 35 PCTUSED 65PCTUSED 65
99 STORAGE (STORAGE (
1010 INITIALINITIAL 5K5K
1111 NEXTNEXT 5K5K
1212 PCTINCREASEPCTINCREASE 00
1313 MINEXTENTSMINEXTENTS 22
1414 MAXEXTENTSMAXEXTENTS 50)50)
1515 TABLESPACE users;TABLESPACE users;
Table created.Table created.
SQL>SQL> CREATE TABLE orders (CREATE TABLE orders (
22 orderidorderid NUMBER(3)NOT NULL,NUMBER(3)NOT NULL,
33 orderdateorderdate DATE,DATE,
44 shipdateshipdate DATE,DATE,
55 clientclient VARCHAR2(3)NOT NULL,VARCHAR2(3)NOT NULL,
66 amount_dueamount_due NUMBER(10,2),NUMBER(10,2),
77 amount_paidamount_paid NUMBER(10,2))NUMBER(10,2))
88 PCTFREE 35PCTFREE 35 PCTUSED 65PCTUSED 65
99 STORAGE (STORAGE (
1010 INITIALINITIAL 5K5K
1111 NEXTNEXT 5K5K
1212 PCTINCREASEPCTINCREASE 00
1313 MINEXTENTSMINEXTENTS 22
1414 MAXEXTENTSMAXEXTENTS 50)50)
1515 TABLESPACE users;TABLESPACE users;
Table created.Table created.
11-11-77 Copyright © ADA, 2005. Todos los derechos reservados.
Creando una Tabla en el EnterpriseCreando una Tabla en el Enterprise
ManagerManager
11-11-88 Copyright © ADA, 2005. Todos los derechos reservados.
Encadenamiento y Migració n de FilasEncadenamiento y Migració n de Filas
• Migració n de FilasMigració n de Filas
– Ocurre cuando se realiza un updateOcurre cuando se realiza un update
– En el bloque original solo queda un punteroEn el bloque original solo queda un puntero
• Encadenamiento de FilasEncadenamiento de Filas
– Ocurre cuando una fila es muy grandeOcurre cuando una fila es muy grande
(columnas muy grandes)(columnas muy grandes)
– La fila se divide en piezas que se ubican enLa fila se divide en piezas que se ubican en
dos bloquesdos bloques
11-11-99 Copyright © ADA, 2005. Todos los derechos reservados.
Modificando una TablaModificando una Tabla
Cambiando los parámetros de storageCambiando los parámetros de storage
SQL>SQL> ALTER TABLE ordersALTER TABLE orders
22 STORAGESTORAGE (MAXEXTENTS 121(MAXEXTENTS 121
33 PCTINCREASE 100);PCTINCREASE 100);
Table altered.Table altered.
SQL>SQL> ALTER TABLE ordersALTER TABLE orders
22 STORAGESTORAGE (MAXEXTENTS 121(MAXEXTENTS 121
33 PCTINCREASE 100);PCTINCREASE 100);
Table altered.Table altered.
Moviendo una tablaMoviendo una tabla
SQL>SQL> ALTER TABLE ordersALTER TABLE orders
22 MOVE TABLESPACE app_data;MOVE TABLESPACE app_data;
Table altered.Table altered.
SQL>SQL> ALTER TABLE ordersALTER TABLE orders
22 MOVE TABLESPACE app_data;MOVE TABLESPACE app_data;
Table altered.Table altered.
11-11-1010 Copyright © ADA, 2005. Todos los derechos reservados.
Modificando una TablaModificando una Tabla
Agregando columnasAgregando columnas
SQL>SQL> ALTER TABLE ordersALTER TABLE orders
22 ADD (amount_dscto NUMBER(10,2));ADD (amount_dscto NUMBER(10,2));
Table altered.Table altered.
SQL>SQL> ALTER TABLE ordersALTER TABLE orders
22 ADD (amount_dscto NUMBER(10,2));ADD (amount_dscto NUMBER(10,2));
Table altered.Table altered.
Renombrando columnasRenombrando columnas
SQL>SQL> ALTER TABLE ordersALTER TABLE orders
22 RENAME COLUMN client TO clientid;RENAME COLUMN client TO clientid;
Table altered.Table altered.
SQL>SQL> ALTER TABLE ordersALTER TABLE orders
22 RENAME COLUMN client TO clientid;RENAME COLUMN client TO clientid;
Table altered.Table altered.
* En versiones anteriores a 9.2 drop columm y add column
11-11-1111 Copyright © ADA, 2005. Todos los derechos reservados.
Asignando y Liberando ExtentsAsignando y Liberando Extents
Asignació n Manual de ExtentsAsignació n Manual de Extents
SQL>SQL> ALTER TABLE SCOTT.orders ALLOCATE EXTENT (SIZE 10K);ALTER TABLE SCOTT.orders ALLOCATE EXTENT (SIZE 10K);
Table altered.Table altered.
SQL>SQL> ALTER TABLE SCOTT.orders ALLOCATE EXTENT (SIZE 10K);ALTER TABLE SCOTT.orders ALLOCATE EXTENT (SIZE 10K);
Table altered.Table altered.
Liberando ExtentsLiberando Extents
SQL>SQL> ALTER TABLE SCOTT.orders DEALLOCATE UNUSED;ALTER TABLE SCOTT.orders DEALLOCATE UNUSED;
Table altered.Table altered.
SQL>SQL> ALTER TABLE SCOTT.orders DEALLOCATE UNUSED;ALTER TABLE SCOTT.orders DEALLOCATE UNUSED;
Table altered.Table altered.
11-11-1212 Copyright © ADA, 2005. Todos los derechos reservados.
Eliminando Filas y TablasEliminando Filas y Tablas
Eliminando todas las filas de una tablaEliminando todas las filas de una tabla
SQL>SQL> TRUNCATE TABLE orders;TRUNCATE TABLE orders;
Table truncated.Table truncated.
SQL>SQL> TRUNCATE TABLE orders;TRUNCATE TABLE orders;
Table truncated.Table truncated.
Eliminando una tablaEliminando una tabla
SQL>SQL> DROP TABLE ordersDROP TABLE orders
22 CASCADE CONSTRAINTS;CASCADE CONSTRAINTS;
Table dropped.Table dropped.
SQL>SQL> DROP TABLE ordersDROP TABLE orders
22 CASCADE CONSTRAINTS;CASCADE CONSTRAINTS;
Table dropped.Table dropped.
11-11-1313 Copyright © ADA, 2005. Todos los derechos reservados.
Recuperando Informació n de TablasRecuperando Informació n de Tablas
• DBA_OBJECTSDBA_OBJECTS
– OWNEROWNER
– OBJECT_NAMEOBJECT_NAME
– OBJECT_IDOBJECT_ID
– DATA_OBJECT_IDDATA_OBJECT_ID
– CREATEDCREATED
• DBA_SEGMENTSDBA_SEGMENTS
– OWNEROWNER
– SEGMENT_NAMESEGMENT_NAME
– TABLESPACE_NAMTABLESPACE_NAM
EE
– HEADER_FILEHEADER_FILE
– HEADER_BLOCKHEADER_BLOCK
• DBA_TABLESDBA_TABLES
– OWNEROWNER
– TABLE_NAMETABLE_NAME
– PCT_FREEPCT_FREE
– PCT_USEDPCT_USED
– INITIAL_EXTENTINITIAL_EXTENT
– NEXT_EXTENTNEXT_EXTENT
– MIN_EXTENTSMIN_EXTENTS
– MAX_EXTENTSMAX_EXTENTS
– PCT_INCREASEPCT_INCREASE
– CACHECACHE
– BLOCKSBLOCKS
11-11-1414 Copyright © ADA, 2005. Todos los derechos reservados.
Clasificació n de Í ndicesClasificació n de Í ndices
• Estándar (B-tree) o BitmapEstándar (B-tree) o Bitmap
• Ascendentes o Descendentes (clave inversa)Ascendentes o Descendentes (clave inversa)
• Basados en Columnas o FuncionesBasados en Columnas o Funciones
• De 1 Columna o ConcatenadosDe 1 Columna o Concatenados
• Particionados o No ParticionadosParticionados o No Particionados
• Únicos o No ÚnicosÚnicos o No Únicos
11-11-1515 Copyright © ADA, 2005. Todos los derechos reservados.
Í ndice BitmapÍ ndice Bitmap
• Un mapa de bits por cada clave en lugar de unaUn mapa de bits por cada clave en lugar de una
lista de rowids. Cada bit corresponde a un posiblelista de rowids. Cada bit corresponde a un posible
rowidrowid
• Eficiente combinació n de bits usando lasEficiente combinació n de bits usando las
operaciones ló gicas (AND y OR)operaciones ló gicas (AND y OR)
• Sustancial reducció n de espacio usado comparadoSustancial reducció n de espacio usado comparado
con otras té cnicas de indexamientocon otras té cnicas de indexamiento
• Incremento dramático de la performance conIncremento dramático de la performance con
algunas consultasalgunas consultas
11-11-1616 Copyright © ADA, 2005. Todos los derechos reservados.
Comparando Í ndices B-Tree y BitmapComparando Í ndices B-Tree y Bitmap
B-TreeB-Tree
Conveniente para columnas deConveniente para columnas de
alta cardinalidadalta cardinalidad
Actualizació n sobre claves deActualizació n sobre claves de
relativamente bajo costorelativamente bajo costo
Ineficiente para consultasIneficiente para consultas
usando el operador ló gico ORusando el operador ló gico OR
Útil para OLTPÚtil para OLTP
BitmapBitmap
Conveniente para columnas de bajaConveniente para columnas de baja
cardinalidadcardinalidad
Actualizació n sobre columnas deActualizació n sobre columnas de
alto costoalto costo
Eficiente para consultas usando elEficiente para consultas usando el
operador ló gico ORoperador ló gico OR
Útil para datawarehouseÚtil para datawarehouse
11-11-1717 Copyright © ADA, 2005. Todos los derechos reservados.
Í ndices ÚnicosÍ ndices Únicos
INDEX_KEY ROWIDINDEX_KEY ROWID
EMPNOEMPNO (BLOCK# ROW# FILE#)(BLOCK# ROW# FILE#)
---------- --------------------------------------
73697369 0000000F.0001.00010000000F.0001.0001
74997499 0000000F.0002.00010000000F.0002.0001
75217521 0000000F.0003.00010000000F.0003.0001
75667566 0000000F.0004.00010000000F.0004.0001
76547654 0000000F.0005.00010000000F.0005.0001
76987698 0000000F.0006.00010000000F.0006.0001
77827782 0000000F.0007.00010000000F.0007.0001
...... ......
INDEX_KEY ROWIDINDEX_KEY ROWID
EMPNOEMPNO (BLOCK# ROW# FILE#)(BLOCK# ROW# FILE#)
---------- --------------------------------------
73697369 0000000F.0001.00010000000F.0001.0001
74997499 0000000F.0002.00010000000F.0002.0001
75217521 0000000F.0003.00010000000F.0003.0001
75667566 0000000F.0004.00010000000F.0004.0001
76547654 0000000F.0005.00010000000F.0005.0001
76987698 0000000F.0006.00010000000F.0006.0001
77827782 0000000F.0007.00010000000F.0007.0001
...... ......
Index on EMP (EMPNO) EMP Table
EMPNOEMPNO ENAMEENAME JOBJOB ......
---------- ---------- ---------------- ------
74997499 ALLENALLEN SALESMANSALESMAN
73697369 SMITHSMITH CLERKCLERK
75217521 WARDWARD SALESMANSALESMAN
75667566 JONESJONES MANAGERMANAGER
76547654 MARTINMARTIN SALESMANSALESMAN
76987698 BLAKEBLAKE MANAGERMANAGER
77827782 CLARKCLARK MANAGERMANAGER
...... ...... ...... ......
EMPNOEMPNO ENAMEENAME JOBJOB ......
---------- ---------- ---------------- ------
74997499 ALLENALLEN SALESMANSALESMAN
73697369 SMITHSMITH CLERKCLERK
75217521 WARDWARD SALESMANSALESMAN
75667566 JONESJONES MANAGERMANAGER
76547654 MARTINMARTIN SALESMANSALESMAN
76987698 BLAKEBLAKE MANAGERMANAGER
77827782 CLARKCLARK MANAGERMANAGER
...... ...... ...... ......
11-11-1818 Copyright © ADA, 2005. Todos los derechos reservados.
Í ndices No ÚnicosÍ ndices No Únicos
INDEX_KEY ROWIDINDEX_KEY ROWID
ENAMEENAME (BLOCK# ROW# FILE#)(BLOCK# ROW# FILE#)
------------ --------------------------------------
ALLENALLEN 0000000F.0002.00010000000F.0002.0001
BLAKEBLAKE 0000000F.0009.00010000000F.0009.0001
CLARKCLARK 0000000F.0007.00010000000F.0007.0001
JONESJONES 0000000F.0004.00010000000F.0004.0001
JONESJONES 0000000F.0005.00010000000F.0005.0001
MARTINMARTIN 0000000F.0006.00010000000F.0006.0001
SMITHSMITH 0000000F.0008.00010000000F.0008.0001
SMITHSMITH 0000000F.0011.00010000000F.0011.0001
SMITHSMITH 0000000F.0012.00010000000F.0012.0001
WARDWARD 0000000F.0003.00010000000F.0003.0001
...... ......
INDEX_KEY ROWIDINDEX_KEY ROWID
ENAMEENAME (BLOCK# ROW# FILE#)(BLOCK# ROW# FILE#)
------------ --------------------------------------
ALLENALLEN 0000000F.0002.00010000000F.0002.0001
BLAKEBLAKE 0000000F.0009.00010000000F.0009.0001
CLARKCLARK 0000000F.0007.00010000000F.0007.0001
JONESJONES 0000000F.0004.00010000000F.0004.0001
JONESJONES 0000000F.0005.00010000000F.0005.0001
MARTINMARTIN 0000000F.0006.00010000000F.0006.0001
SMITHSMITH 0000000F.0008.00010000000F.0008.0001
SMITHSMITH 0000000F.0011.00010000000F.0011.0001
SMITHSMITH 0000000F.0012.00010000000F.0012.0001
WARDWARD 0000000F.0003.00010000000F.0003.0001
...... ......
Index on EMP (ENAME) EMP Table
INDEX_KEY ROWIDINDEX_KEY ROWID
ENAMEENAME JOBJOB SALSAL DEPNODEPNO
------------ ---------------- ---------- ----------
SMITHSMITH CLERKCLERK 800800 2020
ALLENALLEN SALESMANSALESMAN 16001600 3030
WARDWARD SALESMANSALESMAN 12501250 3030
JONESJONES MANAGERMANAGER 29752975 2020
JONESJONES CLERKCLERK 12501250 1010
MARTINMARTIN SALESMANSALESMAN 12501250 3030
BLAKEBLAKE MANAGERMANAGER 28502850 3030
CLARKCLARK MANAGERMANAGER 24502450 1010
SMITHSMITH MANAGERMANAGER 26502650 4040
SMITHSMITH MANAGERMANAGER 14501450 3030
...... ...... ...... ......
INDEX_KEY ROWIDINDEX_KEY ROWID
ENAMEENAME JOBJOB SALSAL DEPNODEPNO
------------ ---------------- ---------- ----------
SMITHSMITH CLERKCLERK 800800 2020
ALLENALLEN SALESMANSALESMAN 16001600 3030
WARDWARD SALESMANSALESMAN 12501250 3030
JONESJONES MANAGERMANAGER 29752975 2020
JONESJONES CLERKCLERK 12501250 1010
MARTINMARTIN SALESMANSALESMAN 12501250 3030
BLAKEBLAKE MANAGERMANAGER 28502850 3030
CLARKCLARK MANAGERMANAGER 24502450 1010
SMITHSMITH MANAGERMANAGER 26502650 4040
SMITHSMITH MANAGERMANAGER 14501450 3030
...... ...... ...... ......
11-11-1919 Copyright © ADA, 2005. Todos los derechos reservados.
Í ndices ConcatenadosÍ ndices Concatenados
INDEX_KEY ROWIDINDEX_KEY ROWID
DEPTNODEPTNO ENAMEENAME (BLOCK# ROW# FILE#)(BLOCK# ROW# FILE#)
------------ ---------- --------------------------------------
1010 ADAMSADAMS 0000000F.0010.00010000000F.0010.0001
1010 CLARKCLARK 0000000F.0000.00010000000F.0000.0001
1010 FORDFORD 0000000F.0013.00010000000F.0013.0001
1010 KINGKING 0000000F.0007.00010000000F.0007.0001
1010 MILLERMILLER 0000000F.0009.00010000000F.0009.0001
2020 JONESJONES 0000000F.0004.00010000000F.0004.0001
...... ......
INDEX_KEY ROWIDINDEX_KEY ROWID
DEPTNODEPTNO ENAMEENAME (BLOCK# ROW# FILE#)(BLOCK# ROW# FILE#)
------------ ---------- --------------------------------------
1010 ADAMSADAMS 0000000F.0010.00010000000F.0010.0001
1010 CLARKCLARK 0000000F.0000.00010000000F.0000.0001
1010 FORDFORD 0000000F.0013.00010000000F.0013.0001
1010 KINGKING 0000000F.0007.00010000000F.0007.0001
1010 MILLERMILLER 0000000F.0009.00010000000F.0009.0001
2020 JONESJONES 0000000F.0004.00010000000F.0004.0001
...... ......
Index on EMP (DEPTNO, ENAME) EMP Table
ENAMEENAME JOBJOB SALSAL DEPNODEPNO
------------ ---------------- ---------- ----------
SMITHSMITH CLERKCLERK 800800 2020
ALLENALLEN SALESMANSALESMAN 16001600 3030
WARDWARD SALESMANSALESMAN 12501250 3030
JONESJONES MANAGERMANAGER 29752975 2020
MARTINMARTIN SALESMANSALESMAN 12501250 3030
BLAKEBLAKE MANAGERMANAGER 28502850 3030
CLARKCLARK MANAGERMANAGER 24502450 1010
...... ...... ...... ......
ENAMEENAME JOBJOB SALSAL DEPNODEPNO
------------ ---------------- ---------- ----------
SMITHSMITH CLERKCLERK 800800 2020
ALLENALLEN SALESMANSALESMAN 16001600 3030
WARDWARD SALESMANSALESMAN 12501250 3030
JONESJONES MANAGERMANAGER 29752975 2020
MARTINMARTIN SALESMANSALESMAN 12501250 3030
BLAKEBLAKE MANAGERMANAGER 28502850 3030
CLARKCLARK MANAGERMANAGER 24502450 1010
...... ...... ...... ......
11-11-2020 Copyright © ADA, 2005. Todos los derechos reservados.
Creando Í ndicesCreando Í ndices
SQL>SQL> CREATE INDEX ind_orderid ON orders(orderid);CREATE INDEX ind_orderid ON orders(orderid);SQL>SQL> CREATE INDEX ind_orderid ON orders(orderid);CREATE INDEX ind_orderid ON orders(orderid);
SQL>SQL> CREATE INDEX ind_orderdate ON orders(orderdate)CREATE INDEX ind_orderdate ON orders(orderdate)
22 TABLESPACE app_dataTABLESPACE app_data
33 STORAGE (INITIAL 500K NEXT 500K PCTINCREASE 75);STORAGE (INITIAL 500K NEXT 500K PCTINCREASE 75);
SQL>SQL> CREATE INDEX ind_orderdate ON orders(orderdate)CREATE INDEX ind_orderdate ON orders(orderdate)
22 TABLESPACE app_dataTABLESPACE app_data
33 STORAGE (INITIAL 500K NEXT 500K PCTINCREASE 75);STORAGE (INITIAL 500K NEXT 500K PCTINCREASE 75);
SQL>SQL> CREATE INDEX ind_client ON orders(clientid, orderid)CREATE INDEX ind_client ON orders(clientid, orderid)
22 TABLESPACE app_dataTABLESPACE app_data
33 STORAGE (INITIAL 1M NEXT 1M PCTINCREASE 0) PCTFREE 40;STORAGE (INITIAL 1M NEXT 1M PCTINCREASE 0) PCTFREE 40;
SQL>SQL> CREATE INDEX ind_client ON orders(clientid, orderid)CREATE INDEX ind_client ON orders(clientid, orderid)
22 TABLESPACE app_dataTABLESPACE app_data
33 STORAGE (INITIAL 1M NEXT 1M PCTINCREASE 0) PCTFREE 40;STORAGE (INITIAL 1M NEXT 1M PCTINCREASE 0) PCTFREE 40;
• Í ndices B-treeÍ ndices B-tree
• Í ndice de múltiples columnasÍ ndice de múltiples columnas
11-11-2121 Copyright © ADA, 2005. Todos los derechos reservados.
Creando Í ndicesCreando Í ndices
SQL>SQL> CREATE INDEX ind_shipdate ON orders(shipdate)CREATE INDEX ind_shipdate ON orders(shipdate)
22 REVERSE TABLESPACE app_data;REVERSE TABLESPACE app_data;
SQL>SQL> CREATE INDEX ind_shipdate ON orders(shipdate)CREATE INDEX ind_shipdate ON orders(shipdate)
22 REVERSE TABLESPACE app_data;REVERSE TABLESPACE app_data;
SQL>SQL> CREATE BITMAP INDEX ind_clientbm ON orders(clientid)CREATE BITMAP INDEX ind_clientbm ON orders(clientid)
22 TABLESPACE app_data;TABLESPACE app_data;
SQL>SQL> CREATE BITMAP INDEX ind_clientbm ON orders(clientid)CREATE BITMAP INDEX ind_clientbm ON orders(clientid)
22 TABLESPACE app_data;TABLESPACE app_data;
SQL>SQL> CREATE INDEX ind_amountCREATE INDEX ind_amount
22 ON orders(amount_due – amount_paid)ON orders(amount_due – amount_paid)
33 TABLESPACE app_data;TABLESPACE app_data;
SQL>SQL> CREATE INDEX ind_amountCREATE INDEX ind_amount
22 ON orders(amount_due – amount_paid)ON orders(amount_due – amount_paid)
33 TABLESPACE app_data;TABLESPACE app_data;
• Í ndice de clave inversaÍ ndice de clave inversa
• Í ndice BitmapÍ ndice Bitmap
• Í ndice Basado en FuncionesÍ ndice Basado en Funciones
* GRANT QUERY REWRITE TO SCOTT;
11-11-2222 Copyright © ADA, 2005. Todos los derechos reservados.
Creando Í ndices en el EnterpriseCreando Í ndices en el Enterprise
ManagerManager
11-11-2323 Copyright © ADA, 2005. Todos los derechos reservados.
Cambiando Parámetros de AlmacenamientoCambiando Parámetros de Almacenamiento
para Í ndicespara Í ndices
SQL>SQL> ALTER INDEX ind_orderidALTER INDEX ind_orderid
22 MAXTRANS 5;MAXTRANS 5;
Index altered.Index altered.
SQL>SQL> ALTER INDEX ind_orderidALTER INDEX ind_orderid
22 MAXTRANS 5;MAXTRANS 5;
Index altered.Index altered.
SQL>SQL> ALTER INDEX ind_orderdateALTER INDEX ind_orderdate
22 STORAGE (PCTINCREASE 0);STORAGE (PCTINCREASE 0);
Index altered.Index altered.
SQL>SQL> ALTER INDEX ind_orderdateALTER INDEX ind_orderdate
22 STORAGE (PCTINCREASE 0);STORAGE (PCTINCREASE 0);
Index altered.Index altered.
11-11-2424 Copyright © ADA, 2005. Todos los derechos reservados.
Reconstruyendo Í ndicesReconstruyendo Í ndices
SQL>SQL> ALTER INDEX ind_orderidALTER INDEX ind_orderid
22 REBUILD TABLESPACE app_data_fia;REBUILD TABLESPACE app_data_fia;
Index altered.Index altered.
SQL>SQL> ALTER INDEX ind_orderidALTER INDEX ind_orderid
22 REBUILD TABLESPACE app_data_fia;REBUILD TABLESPACE app_data_fia;
Index altered.Index altered.
• Reconstruimos un índice para:Reconstruimos un índice para:
– Mover un índice a un tablespace diferenteMover un índice a un tablespace diferente
– Mejorar la utilizació n de espacioMejorar la utilizació n de espacio
– Cambiar un índice con clave inversa a unCambiar un índice con clave inversa a un
índice normal B-Tree y viceversaíndice normal B-Tree y viceversa
11-11-2525 Copyright © ADA, 2005. Todos los derechos reservados.
Reconstruyendo Í ndicesReconstruyendo Í ndices
SQL>SQL> ALTER INDEX ind_orderdateALTER INDEX ind_orderdate
22 REBUILD ONLINE;REBUILD ONLINE;
Index altered.Index altered.
SQL>SQL> ALTER INDEX ind_orderdateALTER INDEX ind_orderdate
22 REBUILD ONLINE;REBUILD ONLINE;
Index altered.Index altered.
• Reconstrucció n de un índice en línea:Reconstrucció n de un índice en línea:
11-11-2626 Copyright © ADA, 2005. Todos los derechos reservados.
Eliminando Í ndicesEliminando Í ndices
SQL>SQL> DROP INDEX ind_orderdate;DROP INDEX ind_orderdate;
Index dropped.Index dropped.
SQL>SQL> DROP INDEX ind_orderdate;DROP INDEX ind_orderdate;
Index dropped.Index dropped.
• Eliminamos un índice cuando:Eliminamos un índice cuando:
– El índice no es frecuentemente usado y loEl índice no es frecuentemente usado y lo
recreamos cuando sea necesariorecreamos cuando sea necesario
– El índice esta inválido y lo recreamosEl índice esta inválido y lo recreamos
– Antes de hacer cargas masivas (eliminamos yAntes de hacer cargas masivas (eliminamos y
recreamos)recreamos)
11-11-2727 Copyright © ADA, 2005. Todos los derechos reservados.
Recuperando Informació n de Í ndicesRecuperando Informació n de Í ndices
• DBA_INDEXESDBA_INDEXES
– OWNEROWNER
– INDEX_NAMEINDEX_NAME
– INDEX_TYPEINDEX_TYPE
– TABLE_OWNERTABLE_OWNER
– TABLE_NAMETABLE_NAME
– UNIQUENESSUNIQUENESS
– TABLESPACE_NATABLESPACE_NA
MEME
– LOGGINGLOGGING
– STATUSSTATUS
• DBA_IND_COLUMNSDBA_IND_COLUMNS
– INDEX_OWNERINDEX_OWNER
– INDEX_NAMEINDEX_NAME
– TABLE_OWNERTABLE_OWNER
– COLUMN_NAMECOLUMN_NAME
– COLUMN_POSITIOCOLUMN_POSITIO
NN
– COLUMN_LENGTHCOLUMN_LENGTH
11-11-2828 Copyright © ADA, 2005. Todos los derechos reservados.
Integridad de DatosIntegridad de Datos
• Los mé todos para garantizar la integridad de losLos mé todos para garantizar la integridad de los
datos son:datos son:
– Có digo de AplicacionesCó digo de Aplicaciones
– Disparadores de base de datosDisparadores de base de datos
– Restricciones de integridad declarativasRestricciones de integridad declarativas
11-11-2929 Copyright © ADA, 2005. Todos los derechos reservados.
Tipos de RestriccionesTipos de Restricciones
RestriccionesRestricciones
NOT NULLNOT NULL
UNIQUEUNIQUE
PRIMARY KEYPRIMARY KEY
FOREIGN KEYFOREIGN KEY
CHECKCHECK
Descripció nDescripció n
Especifica que una columna no puede tenerEspecifica que una columna no puede tener
valores nulosvalores nulos
Designa a una columna o combinació n deDesigna a una columna o combinació n de
columnas como únicocolumnas como único
Designa a una columna o combinació n deDesigna a una columna o combinació n de
columnas como clave primaria de una tablacolumnas como clave primaria de una tabla
Designa a una columna o combinació n deDesigna a una columna o combinació n de
columnas como clave foránea en unacolumnas como clave foránea en una
restricció n de integridad referencialrestricció n de integridad referencial
Especifica una condició n que cada fila de laEspecifica una condició n que cada fila de la
tabla debe satisfacertabla debe satisfacer
11-11-3030 Copyright © ADA, 2005. Todos los derechos reservados.
Estados de las RestriccionesEstados de las Restricciones
• Disabled novalidateDisabled novalidate
• Disabled validateDisabled validate
• Enabled novalidate or enforcedEnabled novalidate or enforced
• Enabled validateEnabled validate
11-11-3131 Copyright © ADA, 2005. Todos los derechos reservados.
Validació n de la Restricció nValidació n de la Restricció n
• Restricció n Diferida o InmediataRestricció n Diferida o Inmediata
• Restricció n No DiferidaRestricció n No Diferida
ALTER SESSIONALTER SESSION
SET CONSTRAINT[S] = {IMMEDIATE|DEFERRED|DEFAULT};SET CONSTRAINT[S] = {IMMEDIATE|DEFERRED|DEFAULT};
ALTER SESSIONALTER SESSION
SET CONSTRAINT[S] = {IMMEDIATE|DEFERRED|DEFAULT};SET CONSTRAINT[S] = {IMMEDIATE|DEFERRED|DEFAULT};
11-11-3232 Copyright © ADA, 2005. Todos los derechos reservados.
Definició n de una Restricció n en laDefinició n de una Restricció n en la
Creació n de una TablaCreació n de una Tabla
SQL>SQL> CREATE TABLE products (CREATE TABLE products (
22 productidproductid NUMBER(3) NOT NULLNUMBER(3) NOT NULL
33 CONSTRAINT productid_pk PRIMARY KEYCONSTRAINT productid_pk PRIMARY KEY
44 DEFERRABLE,DEFERRABLE,
55 descriptiondescription VARCHAR2(50) NOT NULL,VARCHAR2(50) NOT NULL,
66 shipdateshipdate DATE,DATE,
77 supplyidsupplyid VARCHAR2(3) NOT NULL)VARCHAR2(3) NOT NULL)
88 PCTFREE 5PCTFREE 5 PCTUSED 65PCTUSED 65
99 STORAGE (STORAGE (
1010 INITIALINITIAL 5K5K
1111 NEXTNEXT 5K5K
1212 PCTINCREASEPCTINCREASE 00
1313 MINEXTENTSMINEXTENTS 22
1414 MAXEXTENTSMAXEXTENTS 50)50)
1515 TABLESPACE users;TABLESPACE users;
Table created.Table created.
SQL>SQL> CREATE TABLE products (CREATE TABLE products (
22 productidproductid NUMBER(3) NOT NULLNUMBER(3) NOT NULL
33 CONSTRAINT productid_pk PRIMARY KEYCONSTRAINT productid_pk PRIMARY KEY
44 DEFERRABLE,DEFERRABLE,
55 descriptiondescription VARCHAR2(50) NOT NULL,VARCHAR2(50) NOT NULL,
66 shipdateshipdate DATE,DATE,
77 supplyidsupplyid VARCHAR2(3) NOT NULL)VARCHAR2(3) NOT NULL)
88 PCTFREE 5PCTFREE 5 PCTUSED 65PCTUSED 65
99 STORAGE (STORAGE (
1010 INITIALINITIAL 5K5K
1111 NEXTNEXT 5K5K
1212 PCTINCREASEPCTINCREASE 00
1313 MINEXTENTSMINEXTENTS 22
1414 MAXEXTENTSMAXEXTENTS 50)50)
1515 TABLESPACE users;TABLESPACE users;
Table created.Table created.
11-11-3333 Copyright © ADA, 2005. Todos los derechos reservados.
Definició n de una Restricció n en laDefinició n de una Restricció n en la
Creació n de una TablaCreació n de una Tabla
SQL>SQL> CREATE TABLE order_detail (CREATE TABLE order_detail (
22 orderidorderid NUMBER(3) NOT NULL,NUMBER(3) NOT NULL,
33 productidproductid NUMBER(3) NOT NULL,NUMBER(3) NOT NULL,
44 quantityquantity NUMBER,NUMBER,
55 unitunit VARCHAR2(3),VARCHAR2(3),
66 totaltotal NUMBER(10,2),NUMBER(10,2),
77 CONSTRAINT validatotal CHECK (total>0)CONSTRAINT validatotal CHECK (total>0)))
88 TABLESPACE app_data;TABLESPACE app_data;
Table created.Table created.
SQL>SQL> CREATE TABLE order_detail (CREATE TABLE order_detail (
22 orderidorderid NUMBER(3) NOT NULL,NUMBER(3) NOT NULL,
33 productidproductid NUMBER(3) NOT NULL,NUMBER(3) NOT NULL,
44 quantityquantity NUMBER,NUMBER,
55 unitunit VARCHAR2(3),VARCHAR2(3),
66 totaltotal NUMBER(10,2),NUMBER(10,2),
77 CONSTRAINT validatotal CHECK (total>0)CONSTRAINT validatotal CHECK (total>0)))
88 TABLESPACE app_data;TABLESPACE app_data;
Table created.Table created.
11-11-3434 Copyright © ADA, 2005. Todos los derechos reservados.
Definició n de una Restricció n en laDefinició n de una Restricció n en la
Creació n de una TablaCreació n de una Tabla
SQL>SQL> ALTER TABLE order_detail ADD (ALTER TABLE order_detail ADD (
22 CONSTRAINTCONSTRAINT order_detail_pk PRIMARY KEYorder_detail_pk PRIMARY KEY
33 (orderid,productid));(orderid,productid));
Table altered.Table altered.
SQL>SQL> ALTER TABLE order_detail ADD (ALTER TABLE order_detail ADD (
22 CONSTRAINTCONSTRAINT order_detail_pk PRIMARY KEYorder_detail_pk PRIMARY KEY
33 (orderid,productid));(orderid,productid));
Table altered.Table altered.
SQL> ALTER TABLE orders ADD (SQL> ALTER TABLE orders ADD (
2 CONSTRAINT orders_pk PRIMARY KEY2 CONSTRAINT orders_pk PRIMARY KEY
3 (orderid));3 (orderid));
Table altered.Table altered.
SQL> ALTER TABLE orders ADD (SQL> ALTER TABLE orders ADD (
2 CONSTRAINT orders_pk PRIMARY KEY2 CONSTRAINT orders_pk PRIMARY KEY
3 (orderid));3 (orderid));
Table altered.Table altered.
SQL>SQL> ALTER TABLE order_detail ADD (ALTER TABLE order_detail ADD (
22 CONSTRAINTCONSTRAINT orders_rel FOREIGN KEYorders_rel FOREIGN KEY
33 (orderid) REFERENCES orders);(orderid) REFERENCES orders);
Table altered.Table altered.
SQL>SQL> ALTER TABLE order_detail ADD (ALTER TABLE order_detail ADD (
22 CONSTRAINTCONSTRAINT orders_rel FOREIGN KEYorders_rel FOREIGN KEY
33 (orderid) REFERENCES orders);(orderid) REFERENCES orders);
Table altered.Table altered.
11-11-3535 Copyright © ADA, 2005. Todos los derechos reservados.
Recuperando Informació n de RestriccionesRecuperando Informació n de Restricciones
• DBA_CONSTRAINTSDBA_CONSTRAINTS
– OWNEROWNER
– CONSTRAINT_NAMECONSTRAINT_NAME
– CONSTRAINT_TYPECONSTRAINT_TYPE
– TABLE_NAMETABLE_NAME
– SEARCH_CONDITIOSEARCH_CONDITIO
NN
– R_OWNERR_OWNER
– R_CONSTRAINT_NAR_CONSTRAINT_NA
MEME
– DELETE_RULEDELETE_RULE
– STATUSSTATUS
– DEFERRABLEDEFERRABLE
– DEFERREDDEFERRED
• DBA_CONS_COLUMNDBA_CONS_COLUMN
SS
– OWNEROWNER
– CONSTRAINT_NACONSTRAINT_NA
MEME
– TABLE_NAMETABLE_NAME
– COLUMN_NAMECOLUMN_NAME
– POSITIONPOSITION
11-11-3636 Copyright © ADA, 2005. Todos los derechos reservados.
ResumenResumen
• En este capítulo hemos visto como:En este capítulo hemos visto como:
– Crear una tabla con una apropiada utilizació nCrear una tabla con una apropiada utilizació n
de parámetros de almacenamiento y de bloquede parámetros de almacenamiento y de bloque
– Controlar el uso de espacio de las tablasControlar el uso de espacio de las tablas
– Modificar y eliminar una tablaModificar y eliminar una tabla
– Crear diferentes tipos de índicesCrear diferentes tipos de índices
– Reorganizar y eliminar índicesReorganizar y eliminar índices
– Implementar integridad de datosImplementar integridad de datos
– Obtener informació n de tablas, índices yObtener informació n de tablas, índices y
restriccionesrestricciones

Administración de base de datos oracle - sesion 11

  • 1.
    11-11-11 Copyright ©ADA, 2005. Todos los derechos reservados. Sesió n 11Sesió n 11 Administrando Tablas,Administrando Tablas, Í ndices y RestriccionesÍ ndices y Restricciones
  • 2.
    11-11-22 Copyright ©ADA, 2005. Todos los derechos reservados. ObjetivosObjetivos • Crear tablas usando la configuració n apropiadaCrear tablas usando la configuració n apropiada de almacenamientode almacenamiento • Controlar el espacio usado por las tablasControlar el espacio usado por las tablas • Analizar las tablas para chequear integridad yAnalizar las tablas para chequear integridad y migració nmigració n • Listar los diferentes tipos de índicesListar los diferentes tipos de índices • Crear, reorganizar y eliminar índicesCrear, reorganizar y eliminar índices • Implementar integridad de datosImplementar integridad de datos • Mantenimiento de las restricciones de integridadMantenimiento de las restricciones de integridad • Recuperar informació n de tablas, índices yRecuperar informació n de tablas, índices y restricciones del diccionario de datosrestricciones del diccionario de datos
  • 3.
    11-11-33 Copyright ©ADA, 2005. Todos los derechos reservados. Consideraciones en la Creació n de TablasConsideraciones en la Creació n de Tablas • Definició n de columnas: Nombre, Tipo de Dato,Definició n de columnas: Nombre, Tipo de Dato, Nulidad, Valor por Defecto.Nulidad, Valor por Defecto. • Tipo de tabla.Tipo de tabla. • Utilizació n del espacio en los bloques de datos.Utilizació n del espacio en los bloques de datos. • Ubicació n de la tabla.Ubicació n de la tabla. • Opció n deOpció n de LoggingLogging (Redo Log Buffer).(Redo Log Buffer). • Tamañ o estimado.Tamañ o estimado.
  • 4.
    11-11-44 Copyright ©ADA, 2005. Todos los derechos reservados. Tipos de TablasTipos de Tablas • Ordinary. Básica, sus datos están almacenadosOrdinary. Básica, sus datos están almacenados como una colecció n no ordenada.como una colecció n no ordenada. • Partitioned. Los datos son almacenados en partesPartitioned. Los datos son almacenados en partes en diferentes ubicaciones.en diferentes ubicaciones. • Index-organized. Los datos son almacenados enIndex-organized. Los datos son almacenados en una estructura de índice B-tree.una estructura de índice B-tree. • Cluster. La tabla forma parte de un cluster. UnCluster. La tabla forma parte de un cluster. Un cluster es un grupo de tablas que comparten loscluster es un grupo de tablas que comparten los mismos bloques de datos en sus columnasmismos bloques de datos en sus columnas comunes y generalmente se usan en conjunto.comunes y generalmente se usan en conjunto.
  • 5.
    11-11-55 Copyright ©ADA, 2005. Todos los derechos reservados. Tipos de Datos OracleTipos de Datos Oracle • Definidos por el usuarioDefinidos por el usuario • Built-inBuilt-in – EscalarEscalar  CHAR(N),NCHAR(N)CHAR(N),NCHAR(N)  VARCHAR2(N),NVARCHAR2(N)VARCHAR2(N),NVARCHAR2(N)  NUMBER(I,D)NUMBER(I,D)  DATEDATE  RAWRAW  BLOB,CLOB,NCLOB,BFILEBLOB,CLOB,NCLOB,BFILE  LONG,LONG RAWLONG,LONG RAW  ROWID,UROWIDROWID,UROWID – ColeccionesColecciones  VARRAYVARRAY  TABLETABLE
  • 6.
    11-11-66 Copyright ©ADA, 2005. Todos los derechos reservados. Creando una TablaCreando una Tabla SQL>SQL> CREATE TABLE orders (CREATE TABLE orders ( 22 orderidorderid NUMBER(3)NOT NULL,NUMBER(3)NOT NULL, 33 orderdateorderdate DATE,DATE, 44 shipdateshipdate DATE,DATE, 55 clientclient VARCHAR2(3)NOT NULL,VARCHAR2(3)NOT NULL, 66 amount_dueamount_due NUMBER(10,2),NUMBER(10,2), 77 amount_paidamount_paid NUMBER(10,2))NUMBER(10,2)) 88 PCTFREE 35PCTFREE 35 PCTUSED 65PCTUSED 65 99 STORAGE (STORAGE ( 1010 INITIALINITIAL 5K5K 1111 NEXTNEXT 5K5K 1212 PCTINCREASEPCTINCREASE 00 1313 MINEXTENTSMINEXTENTS 22 1414 MAXEXTENTSMAXEXTENTS 50)50) 1515 TABLESPACE users;TABLESPACE users; Table created.Table created. SQL>SQL> CREATE TABLE orders (CREATE TABLE orders ( 22 orderidorderid NUMBER(3)NOT NULL,NUMBER(3)NOT NULL, 33 orderdateorderdate DATE,DATE, 44 shipdateshipdate DATE,DATE, 55 clientclient VARCHAR2(3)NOT NULL,VARCHAR2(3)NOT NULL, 66 amount_dueamount_due NUMBER(10,2),NUMBER(10,2), 77 amount_paidamount_paid NUMBER(10,2))NUMBER(10,2)) 88 PCTFREE 35PCTFREE 35 PCTUSED 65PCTUSED 65 99 STORAGE (STORAGE ( 1010 INITIALINITIAL 5K5K 1111 NEXTNEXT 5K5K 1212 PCTINCREASEPCTINCREASE 00 1313 MINEXTENTSMINEXTENTS 22 1414 MAXEXTENTSMAXEXTENTS 50)50) 1515 TABLESPACE users;TABLESPACE users; Table created.Table created.
  • 7.
    11-11-77 Copyright ©ADA, 2005. Todos los derechos reservados. Creando una Tabla en el EnterpriseCreando una Tabla en el Enterprise ManagerManager
  • 8.
    11-11-88 Copyright ©ADA, 2005. Todos los derechos reservados. Encadenamiento y Migració n de FilasEncadenamiento y Migració n de Filas • Migració n de FilasMigració n de Filas – Ocurre cuando se realiza un updateOcurre cuando se realiza un update – En el bloque original solo queda un punteroEn el bloque original solo queda un puntero • Encadenamiento de FilasEncadenamiento de Filas – Ocurre cuando una fila es muy grandeOcurre cuando una fila es muy grande (columnas muy grandes)(columnas muy grandes) – La fila se divide en piezas que se ubican enLa fila se divide en piezas que se ubican en dos bloquesdos bloques
  • 9.
    11-11-99 Copyright ©ADA, 2005. Todos los derechos reservados. Modificando una TablaModificando una Tabla Cambiando los parámetros de storageCambiando los parámetros de storage SQL>SQL> ALTER TABLE ordersALTER TABLE orders 22 STORAGESTORAGE (MAXEXTENTS 121(MAXEXTENTS 121 33 PCTINCREASE 100);PCTINCREASE 100); Table altered.Table altered. SQL>SQL> ALTER TABLE ordersALTER TABLE orders 22 STORAGESTORAGE (MAXEXTENTS 121(MAXEXTENTS 121 33 PCTINCREASE 100);PCTINCREASE 100); Table altered.Table altered. Moviendo una tablaMoviendo una tabla SQL>SQL> ALTER TABLE ordersALTER TABLE orders 22 MOVE TABLESPACE app_data;MOVE TABLESPACE app_data; Table altered.Table altered. SQL>SQL> ALTER TABLE ordersALTER TABLE orders 22 MOVE TABLESPACE app_data;MOVE TABLESPACE app_data; Table altered.Table altered.
  • 10.
    11-11-1010 Copyright ©ADA, 2005. Todos los derechos reservados. Modificando una TablaModificando una Tabla Agregando columnasAgregando columnas SQL>SQL> ALTER TABLE ordersALTER TABLE orders 22 ADD (amount_dscto NUMBER(10,2));ADD (amount_dscto NUMBER(10,2)); Table altered.Table altered. SQL>SQL> ALTER TABLE ordersALTER TABLE orders 22 ADD (amount_dscto NUMBER(10,2));ADD (amount_dscto NUMBER(10,2)); Table altered.Table altered. Renombrando columnasRenombrando columnas SQL>SQL> ALTER TABLE ordersALTER TABLE orders 22 RENAME COLUMN client TO clientid;RENAME COLUMN client TO clientid; Table altered.Table altered. SQL>SQL> ALTER TABLE ordersALTER TABLE orders 22 RENAME COLUMN client TO clientid;RENAME COLUMN client TO clientid; Table altered.Table altered. * En versiones anteriores a 9.2 drop columm y add column
  • 11.
    11-11-1111 Copyright ©ADA, 2005. Todos los derechos reservados. Asignando y Liberando ExtentsAsignando y Liberando Extents Asignació n Manual de ExtentsAsignació n Manual de Extents SQL>SQL> ALTER TABLE SCOTT.orders ALLOCATE EXTENT (SIZE 10K);ALTER TABLE SCOTT.orders ALLOCATE EXTENT (SIZE 10K); Table altered.Table altered. SQL>SQL> ALTER TABLE SCOTT.orders ALLOCATE EXTENT (SIZE 10K);ALTER TABLE SCOTT.orders ALLOCATE EXTENT (SIZE 10K); Table altered.Table altered. Liberando ExtentsLiberando Extents SQL>SQL> ALTER TABLE SCOTT.orders DEALLOCATE UNUSED;ALTER TABLE SCOTT.orders DEALLOCATE UNUSED; Table altered.Table altered. SQL>SQL> ALTER TABLE SCOTT.orders DEALLOCATE UNUSED;ALTER TABLE SCOTT.orders DEALLOCATE UNUSED; Table altered.Table altered.
  • 12.
    11-11-1212 Copyright ©ADA, 2005. Todos los derechos reservados. Eliminando Filas y TablasEliminando Filas y Tablas Eliminando todas las filas de una tablaEliminando todas las filas de una tabla SQL>SQL> TRUNCATE TABLE orders;TRUNCATE TABLE orders; Table truncated.Table truncated. SQL>SQL> TRUNCATE TABLE orders;TRUNCATE TABLE orders; Table truncated.Table truncated. Eliminando una tablaEliminando una tabla SQL>SQL> DROP TABLE ordersDROP TABLE orders 22 CASCADE CONSTRAINTS;CASCADE CONSTRAINTS; Table dropped.Table dropped. SQL>SQL> DROP TABLE ordersDROP TABLE orders 22 CASCADE CONSTRAINTS;CASCADE CONSTRAINTS; Table dropped.Table dropped.
  • 13.
    11-11-1313 Copyright ©ADA, 2005. Todos los derechos reservados. Recuperando Informació n de TablasRecuperando Informació n de Tablas • DBA_OBJECTSDBA_OBJECTS – OWNEROWNER – OBJECT_NAMEOBJECT_NAME – OBJECT_IDOBJECT_ID – DATA_OBJECT_IDDATA_OBJECT_ID – CREATEDCREATED • DBA_SEGMENTSDBA_SEGMENTS – OWNEROWNER – SEGMENT_NAMESEGMENT_NAME – TABLESPACE_NAMTABLESPACE_NAM EE – HEADER_FILEHEADER_FILE – HEADER_BLOCKHEADER_BLOCK • DBA_TABLESDBA_TABLES – OWNEROWNER – TABLE_NAMETABLE_NAME – PCT_FREEPCT_FREE – PCT_USEDPCT_USED – INITIAL_EXTENTINITIAL_EXTENT – NEXT_EXTENTNEXT_EXTENT – MIN_EXTENTSMIN_EXTENTS – MAX_EXTENTSMAX_EXTENTS – PCT_INCREASEPCT_INCREASE – CACHECACHE – BLOCKSBLOCKS
  • 14.
    11-11-1414 Copyright ©ADA, 2005. Todos los derechos reservados. Clasificació n de Í ndicesClasificació n de Í ndices • Estándar (B-tree) o BitmapEstándar (B-tree) o Bitmap • Ascendentes o Descendentes (clave inversa)Ascendentes o Descendentes (clave inversa) • Basados en Columnas o FuncionesBasados en Columnas o Funciones • De 1 Columna o ConcatenadosDe 1 Columna o Concatenados • Particionados o No ParticionadosParticionados o No Particionados • Únicos o No ÚnicosÚnicos o No Únicos
  • 15.
    11-11-1515 Copyright ©ADA, 2005. Todos los derechos reservados. Í ndice BitmapÍ ndice Bitmap • Un mapa de bits por cada clave en lugar de unaUn mapa de bits por cada clave en lugar de una lista de rowids. Cada bit corresponde a un posiblelista de rowids. Cada bit corresponde a un posible rowidrowid • Eficiente combinació n de bits usando lasEficiente combinació n de bits usando las operaciones ló gicas (AND y OR)operaciones ló gicas (AND y OR) • Sustancial reducció n de espacio usado comparadoSustancial reducció n de espacio usado comparado con otras té cnicas de indexamientocon otras té cnicas de indexamiento • Incremento dramático de la performance conIncremento dramático de la performance con algunas consultasalgunas consultas
  • 16.
    11-11-1616 Copyright ©ADA, 2005. Todos los derechos reservados. Comparando Í ndices B-Tree y BitmapComparando Í ndices B-Tree y Bitmap B-TreeB-Tree Conveniente para columnas deConveniente para columnas de alta cardinalidadalta cardinalidad Actualizació n sobre claves deActualizació n sobre claves de relativamente bajo costorelativamente bajo costo Ineficiente para consultasIneficiente para consultas usando el operador ló gico ORusando el operador ló gico OR Útil para OLTPÚtil para OLTP BitmapBitmap Conveniente para columnas de bajaConveniente para columnas de baja cardinalidadcardinalidad Actualizació n sobre columnas deActualizació n sobre columnas de alto costoalto costo Eficiente para consultas usando elEficiente para consultas usando el operador ló gico ORoperador ló gico OR Útil para datawarehouseÚtil para datawarehouse
  • 17.
    11-11-1717 Copyright ©ADA, 2005. Todos los derechos reservados. Í ndices ÚnicosÍ ndices Únicos INDEX_KEY ROWIDINDEX_KEY ROWID EMPNOEMPNO (BLOCK# ROW# FILE#)(BLOCK# ROW# FILE#) ---------- -------------------------------------- 73697369 0000000F.0001.00010000000F.0001.0001 74997499 0000000F.0002.00010000000F.0002.0001 75217521 0000000F.0003.00010000000F.0003.0001 75667566 0000000F.0004.00010000000F.0004.0001 76547654 0000000F.0005.00010000000F.0005.0001 76987698 0000000F.0006.00010000000F.0006.0001 77827782 0000000F.0007.00010000000F.0007.0001 ...... ...... INDEX_KEY ROWIDINDEX_KEY ROWID EMPNOEMPNO (BLOCK# ROW# FILE#)(BLOCK# ROW# FILE#) ---------- -------------------------------------- 73697369 0000000F.0001.00010000000F.0001.0001 74997499 0000000F.0002.00010000000F.0002.0001 75217521 0000000F.0003.00010000000F.0003.0001 75667566 0000000F.0004.00010000000F.0004.0001 76547654 0000000F.0005.00010000000F.0005.0001 76987698 0000000F.0006.00010000000F.0006.0001 77827782 0000000F.0007.00010000000F.0007.0001 ...... ...... Index on EMP (EMPNO) EMP Table EMPNOEMPNO ENAMEENAME JOBJOB ...... ---------- ---------- ---------------- ------ 74997499 ALLENALLEN SALESMANSALESMAN 73697369 SMITHSMITH CLERKCLERK 75217521 WARDWARD SALESMANSALESMAN 75667566 JONESJONES MANAGERMANAGER 76547654 MARTINMARTIN SALESMANSALESMAN 76987698 BLAKEBLAKE MANAGERMANAGER 77827782 CLARKCLARK MANAGERMANAGER ...... ...... ...... ...... EMPNOEMPNO ENAMEENAME JOBJOB ...... ---------- ---------- ---------------- ------ 74997499 ALLENALLEN SALESMANSALESMAN 73697369 SMITHSMITH CLERKCLERK 75217521 WARDWARD SALESMANSALESMAN 75667566 JONESJONES MANAGERMANAGER 76547654 MARTINMARTIN SALESMANSALESMAN 76987698 BLAKEBLAKE MANAGERMANAGER 77827782 CLARKCLARK MANAGERMANAGER ...... ...... ...... ......
  • 18.
    11-11-1818 Copyright ©ADA, 2005. Todos los derechos reservados. Í ndices No ÚnicosÍ ndices No Únicos INDEX_KEY ROWIDINDEX_KEY ROWID ENAMEENAME (BLOCK# ROW# FILE#)(BLOCK# ROW# FILE#) ------------ -------------------------------------- ALLENALLEN 0000000F.0002.00010000000F.0002.0001 BLAKEBLAKE 0000000F.0009.00010000000F.0009.0001 CLARKCLARK 0000000F.0007.00010000000F.0007.0001 JONESJONES 0000000F.0004.00010000000F.0004.0001 JONESJONES 0000000F.0005.00010000000F.0005.0001 MARTINMARTIN 0000000F.0006.00010000000F.0006.0001 SMITHSMITH 0000000F.0008.00010000000F.0008.0001 SMITHSMITH 0000000F.0011.00010000000F.0011.0001 SMITHSMITH 0000000F.0012.00010000000F.0012.0001 WARDWARD 0000000F.0003.00010000000F.0003.0001 ...... ...... INDEX_KEY ROWIDINDEX_KEY ROWID ENAMEENAME (BLOCK# ROW# FILE#)(BLOCK# ROW# FILE#) ------------ -------------------------------------- ALLENALLEN 0000000F.0002.00010000000F.0002.0001 BLAKEBLAKE 0000000F.0009.00010000000F.0009.0001 CLARKCLARK 0000000F.0007.00010000000F.0007.0001 JONESJONES 0000000F.0004.00010000000F.0004.0001 JONESJONES 0000000F.0005.00010000000F.0005.0001 MARTINMARTIN 0000000F.0006.00010000000F.0006.0001 SMITHSMITH 0000000F.0008.00010000000F.0008.0001 SMITHSMITH 0000000F.0011.00010000000F.0011.0001 SMITHSMITH 0000000F.0012.00010000000F.0012.0001 WARDWARD 0000000F.0003.00010000000F.0003.0001 ...... ...... Index on EMP (ENAME) EMP Table INDEX_KEY ROWIDINDEX_KEY ROWID ENAMEENAME JOBJOB SALSAL DEPNODEPNO ------------ ---------------- ---------- ---------- SMITHSMITH CLERKCLERK 800800 2020 ALLENALLEN SALESMANSALESMAN 16001600 3030 WARDWARD SALESMANSALESMAN 12501250 3030 JONESJONES MANAGERMANAGER 29752975 2020 JONESJONES CLERKCLERK 12501250 1010 MARTINMARTIN SALESMANSALESMAN 12501250 3030 BLAKEBLAKE MANAGERMANAGER 28502850 3030 CLARKCLARK MANAGERMANAGER 24502450 1010 SMITHSMITH MANAGERMANAGER 26502650 4040 SMITHSMITH MANAGERMANAGER 14501450 3030 ...... ...... ...... ...... INDEX_KEY ROWIDINDEX_KEY ROWID ENAMEENAME JOBJOB SALSAL DEPNODEPNO ------------ ---------------- ---------- ---------- SMITHSMITH CLERKCLERK 800800 2020 ALLENALLEN SALESMANSALESMAN 16001600 3030 WARDWARD SALESMANSALESMAN 12501250 3030 JONESJONES MANAGERMANAGER 29752975 2020 JONESJONES CLERKCLERK 12501250 1010 MARTINMARTIN SALESMANSALESMAN 12501250 3030 BLAKEBLAKE MANAGERMANAGER 28502850 3030 CLARKCLARK MANAGERMANAGER 24502450 1010 SMITHSMITH MANAGERMANAGER 26502650 4040 SMITHSMITH MANAGERMANAGER 14501450 3030 ...... ...... ...... ......
  • 19.
    11-11-1919 Copyright ©ADA, 2005. Todos los derechos reservados. Í ndices ConcatenadosÍ ndices Concatenados INDEX_KEY ROWIDINDEX_KEY ROWID DEPTNODEPTNO ENAMEENAME (BLOCK# ROW# FILE#)(BLOCK# ROW# FILE#) ------------ ---------- -------------------------------------- 1010 ADAMSADAMS 0000000F.0010.00010000000F.0010.0001 1010 CLARKCLARK 0000000F.0000.00010000000F.0000.0001 1010 FORDFORD 0000000F.0013.00010000000F.0013.0001 1010 KINGKING 0000000F.0007.00010000000F.0007.0001 1010 MILLERMILLER 0000000F.0009.00010000000F.0009.0001 2020 JONESJONES 0000000F.0004.00010000000F.0004.0001 ...... ...... INDEX_KEY ROWIDINDEX_KEY ROWID DEPTNODEPTNO ENAMEENAME (BLOCK# ROW# FILE#)(BLOCK# ROW# FILE#) ------------ ---------- -------------------------------------- 1010 ADAMSADAMS 0000000F.0010.00010000000F.0010.0001 1010 CLARKCLARK 0000000F.0000.00010000000F.0000.0001 1010 FORDFORD 0000000F.0013.00010000000F.0013.0001 1010 KINGKING 0000000F.0007.00010000000F.0007.0001 1010 MILLERMILLER 0000000F.0009.00010000000F.0009.0001 2020 JONESJONES 0000000F.0004.00010000000F.0004.0001 ...... ...... Index on EMP (DEPTNO, ENAME) EMP Table ENAMEENAME JOBJOB SALSAL DEPNODEPNO ------------ ---------------- ---------- ---------- SMITHSMITH CLERKCLERK 800800 2020 ALLENALLEN SALESMANSALESMAN 16001600 3030 WARDWARD SALESMANSALESMAN 12501250 3030 JONESJONES MANAGERMANAGER 29752975 2020 MARTINMARTIN SALESMANSALESMAN 12501250 3030 BLAKEBLAKE MANAGERMANAGER 28502850 3030 CLARKCLARK MANAGERMANAGER 24502450 1010 ...... ...... ...... ...... ENAMEENAME JOBJOB SALSAL DEPNODEPNO ------------ ---------------- ---------- ---------- SMITHSMITH CLERKCLERK 800800 2020 ALLENALLEN SALESMANSALESMAN 16001600 3030 WARDWARD SALESMANSALESMAN 12501250 3030 JONESJONES MANAGERMANAGER 29752975 2020 MARTINMARTIN SALESMANSALESMAN 12501250 3030 BLAKEBLAKE MANAGERMANAGER 28502850 3030 CLARKCLARK MANAGERMANAGER 24502450 1010 ...... ...... ...... ......
  • 20.
    11-11-2020 Copyright ©ADA, 2005. Todos los derechos reservados. Creando Í ndicesCreando Í ndices SQL>SQL> CREATE INDEX ind_orderid ON orders(orderid);CREATE INDEX ind_orderid ON orders(orderid);SQL>SQL> CREATE INDEX ind_orderid ON orders(orderid);CREATE INDEX ind_orderid ON orders(orderid); SQL>SQL> CREATE INDEX ind_orderdate ON orders(orderdate)CREATE INDEX ind_orderdate ON orders(orderdate) 22 TABLESPACE app_dataTABLESPACE app_data 33 STORAGE (INITIAL 500K NEXT 500K PCTINCREASE 75);STORAGE (INITIAL 500K NEXT 500K PCTINCREASE 75); SQL>SQL> CREATE INDEX ind_orderdate ON orders(orderdate)CREATE INDEX ind_orderdate ON orders(orderdate) 22 TABLESPACE app_dataTABLESPACE app_data 33 STORAGE (INITIAL 500K NEXT 500K PCTINCREASE 75);STORAGE (INITIAL 500K NEXT 500K PCTINCREASE 75); SQL>SQL> CREATE INDEX ind_client ON orders(clientid, orderid)CREATE INDEX ind_client ON orders(clientid, orderid) 22 TABLESPACE app_dataTABLESPACE app_data 33 STORAGE (INITIAL 1M NEXT 1M PCTINCREASE 0) PCTFREE 40;STORAGE (INITIAL 1M NEXT 1M PCTINCREASE 0) PCTFREE 40; SQL>SQL> CREATE INDEX ind_client ON orders(clientid, orderid)CREATE INDEX ind_client ON orders(clientid, orderid) 22 TABLESPACE app_dataTABLESPACE app_data 33 STORAGE (INITIAL 1M NEXT 1M PCTINCREASE 0) PCTFREE 40;STORAGE (INITIAL 1M NEXT 1M PCTINCREASE 0) PCTFREE 40; • Í ndices B-treeÍ ndices B-tree • Í ndice de múltiples columnasÍ ndice de múltiples columnas
  • 21.
    11-11-2121 Copyright ©ADA, 2005. Todos los derechos reservados. Creando Í ndicesCreando Í ndices SQL>SQL> CREATE INDEX ind_shipdate ON orders(shipdate)CREATE INDEX ind_shipdate ON orders(shipdate) 22 REVERSE TABLESPACE app_data;REVERSE TABLESPACE app_data; SQL>SQL> CREATE INDEX ind_shipdate ON orders(shipdate)CREATE INDEX ind_shipdate ON orders(shipdate) 22 REVERSE TABLESPACE app_data;REVERSE TABLESPACE app_data; SQL>SQL> CREATE BITMAP INDEX ind_clientbm ON orders(clientid)CREATE BITMAP INDEX ind_clientbm ON orders(clientid) 22 TABLESPACE app_data;TABLESPACE app_data; SQL>SQL> CREATE BITMAP INDEX ind_clientbm ON orders(clientid)CREATE BITMAP INDEX ind_clientbm ON orders(clientid) 22 TABLESPACE app_data;TABLESPACE app_data; SQL>SQL> CREATE INDEX ind_amountCREATE INDEX ind_amount 22 ON orders(amount_due – amount_paid)ON orders(amount_due – amount_paid) 33 TABLESPACE app_data;TABLESPACE app_data; SQL>SQL> CREATE INDEX ind_amountCREATE INDEX ind_amount 22 ON orders(amount_due – amount_paid)ON orders(amount_due – amount_paid) 33 TABLESPACE app_data;TABLESPACE app_data; • Í ndice de clave inversaÍ ndice de clave inversa • Í ndice BitmapÍ ndice Bitmap • Í ndice Basado en FuncionesÍ ndice Basado en Funciones * GRANT QUERY REWRITE TO SCOTT;
  • 22.
    11-11-2222 Copyright ©ADA, 2005. Todos los derechos reservados. Creando Í ndices en el EnterpriseCreando Í ndices en el Enterprise ManagerManager
  • 23.
    11-11-2323 Copyright ©ADA, 2005. Todos los derechos reservados. Cambiando Parámetros de AlmacenamientoCambiando Parámetros de Almacenamiento para Í ndicespara Í ndices SQL>SQL> ALTER INDEX ind_orderidALTER INDEX ind_orderid 22 MAXTRANS 5;MAXTRANS 5; Index altered.Index altered. SQL>SQL> ALTER INDEX ind_orderidALTER INDEX ind_orderid 22 MAXTRANS 5;MAXTRANS 5; Index altered.Index altered. SQL>SQL> ALTER INDEX ind_orderdateALTER INDEX ind_orderdate 22 STORAGE (PCTINCREASE 0);STORAGE (PCTINCREASE 0); Index altered.Index altered. SQL>SQL> ALTER INDEX ind_orderdateALTER INDEX ind_orderdate 22 STORAGE (PCTINCREASE 0);STORAGE (PCTINCREASE 0); Index altered.Index altered.
  • 24.
    11-11-2424 Copyright ©ADA, 2005. Todos los derechos reservados. Reconstruyendo Í ndicesReconstruyendo Í ndices SQL>SQL> ALTER INDEX ind_orderidALTER INDEX ind_orderid 22 REBUILD TABLESPACE app_data_fia;REBUILD TABLESPACE app_data_fia; Index altered.Index altered. SQL>SQL> ALTER INDEX ind_orderidALTER INDEX ind_orderid 22 REBUILD TABLESPACE app_data_fia;REBUILD TABLESPACE app_data_fia; Index altered.Index altered. • Reconstruimos un índice para:Reconstruimos un índice para: – Mover un índice a un tablespace diferenteMover un índice a un tablespace diferente – Mejorar la utilizació n de espacioMejorar la utilizació n de espacio – Cambiar un índice con clave inversa a unCambiar un índice con clave inversa a un índice normal B-Tree y viceversaíndice normal B-Tree y viceversa
  • 25.
    11-11-2525 Copyright ©ADA, 2005. Todos los derechos reservados. Reconstruyendo Í ndicesReconstruyendo Í ndices SQL>SQL> ALTER INDEX ind_orderdateALTER INDEX ind_orderdate 22 REBUILD ONLINE;REBUILD ONLINE; Index altered.Index altered. SQL>SQL> ALTER INDEX ind_orderdateALTER INDEX ind_orderdate 22 REBUILD ONLINE;REBUILD ONLINE; Index altered.Index altered. • Reconstrucció n de un índice en línea:Reconstrucció n de un índice en línea:
  • 26.
    11-11-2626 Copyright ©ADA, 2005. Todos los derechos reservados. Eliminando Í ndicesEliminando Í ndices SQL>SQL> DROP INDEX ind_orderdate;DROP INDEX ind_orderdate; Index dropped.Index dropped. SQL>SQL> DROP INDEX ind_orderdate;DROP INDEX ind_orderdate; Index dropped.Index dropped. • Eliminamos un índice cuando:Eliminamos un índice cuando: – El índice no es frecuentemente usado y loEl índice no es frecuentemente usado y lo recreamos cuando sea necesariorecreamos cuando sea necesario – El índice esta inválido y lo recreamosEl índice esta inválido y lo recreamos – Antes de hacer cargas masivas (eliminamos yAntes de hacer cargas masivas (eliminamos y recreamos)recreamos)
  • 27.
    11-11-2727 Copyright ©ADA, 2005. Todos los derechos reservados. Recuperando Informació n de Í ndicesRecuperando Informació n de Í ndices • DBA_INDEXESDBA_INDEXES – OWNEROWNER – INDEX_NAMEINDEX_NAME – INDEX_TYPEINDEX_TYPE – TABLE_OWNERTABLE_OWNER – TABLE_NAMETABLE_NAME – UNIQUENESSUNIQUENESS – TABLESPACE_NATABLESPACE_NA MEME – LOGGINGLOGGING – STATUSSTATUS • DBA_IND_COLUMNSDBA_IND_COLUMNS – INDEX_OWNERINDEX_OWNER – INDEX_NAMEINDEX_NAME – TABLE_OWNERTABLE_OWNER – COLUMN_NAMECOLUMN_NAME – COLUMN_POSITIOCOLUMN_POSITIO NN – COLUMN_LENGTHCOLUMN_LENGTH
  • 28.
    11-11-2828 Copyright ©ADA, 2005. Todos los derechos reservados. Integridad de DatosIntegridad de Datos • Los mé todos para garantizar la integridad de losLos mé todos para garantizar la integridad de los datos son:datos son: – Có digo de AplicacionesCó digo de Aplicaciones – Disparadores de base de datosDisparadores de base de datos – Restricciones de integridad declarativasRestricciones de integridad declarativas
  • 29.
    11-11-2929 Copyright ©ADA, 2005. Todos los derechos reservados. Tipos de RestriccionesTipos de Restricciones RestriccionesRestricciones NOT NULLNOT NULL UNIQUEUNIQUE PRIMARY KEYPRIMARY KEY FOREIGN KEYFOREIGN KEY CHECKCHECK Descripció nDescripció n Especifica que una columna no puede tenerEspecifica que una columna no puede tener valores nulosvalores nulos Designa a una columna o combinació n deDesigna a una columna o combinació n de columnas como únicocolumnas como único Designa a una columna o combinació n deDesigna a una columna o combinació n de columnas como clave primaria de una tablacolumnas como clave primaria de una tabla Designa a una columna o combinació n deDesigna a una columna o combinació n de columnas como clave foránea en unacolumnas como clave foránea en una restricció n de integridad referencialrestricció n de integridad referencial Especifica una condició n que cada fila de laEspecifica una condició n que cada fila de la tabla debe satisfacertabla debe satisfacer
  • 30.
    11-11-3030 Copyright ©ADA, 2005. Todos los derechos reservados. Estados de las RestriccionesEstados de las Restricciones • Disabled novalidateDisabled novalidate • Disabled validateDisabled validate • Enabled novalidate or enforcedEnabled novalidate or enforced • Enabled validateEnabled validate
  • 31.
    11-11-3131 Copyright ©ADA, 2005. Todos los derechos reservados. Validació n de la Restricció nValidació n de la Restricció n • Restricció n Diferida o InmediataRestricció n Diferida o Inmediata • Restricció n No DiferidaRestricció n No Diferida ALTER SESSIONALTER SESSION SET CONSTRAINT[S] = {IMMEDIATE|DEFERRED|DEFAULT};SET CONSTRAINT[S] = {IMMEDIATE|DEFERRED|DEFAULT}; ALTER SESSIONALTER SESSION SET CONSTRAINT[S] = {IMMEDIATE|DEFERRED|DEFAULT};SET CONSTRAINT[S] = {IMMEDIATE|DEFERRED|DEFAULT};
  • 32.
    11-11-3232 Copyright ©ADA, 2005. Todos los derechos reservados. Definició n de una Restricció n en laDefinició n de una Restricció n en la Creació n de una TablaCreació n de una Tabla SQL>SQL> CREATE TABLE products (CREATE TABLE products ( 22 productidproductid NUMBER(3) NOT NULLNUMBER(3) NOT NULL 33 CONSTRAINT productid_pk PRIMARY KEYCONSTRAINT productid_pk PRIMARY KEY 44 DEFERRABLE,DEFERRABLE, 55 descriptiondescription VARCHAR2(50) NOT NULL,VARCHAR2(50) NOT NULL, 66 shipdateshipdate DATE,DATE, 77 supplyidsupplyid VARCHAR2(3) NOT NULL)VARCHAR2(3) NOT NULL) 88 PCTFREE 5PCTFREE 5 PCTUSED 65PCTUSED 65 99 STORAGE (STORAGE ( 1010 INITIALINITIAL 5K5K 1111 NEXTNEXT 5K5K 1212 PCTINCREASEPCTINCREASE 00 1313 MINEXTENTSMINEXTENTS 22 1414 MAXEXTENTSMAXEXTENTS 50)50) 1515 TABLESPACE users;TABLESPACE users; Table created.Table created. SQL>SQL> CREATE TABLE products (CREATE TABLE products ( 22 productidproductid NUMBER(3) NOT NULLNUMBER(3) NOT NULL 33 CONSTRAINT productid_pk PRIMARY KEYCONSTRAINT productid_pk PRIMARY KEY 44 DEFERRABLE,DEFERRABLE, 55 descriptiondescription VARCHAR2(50) NOT NULL,VARCHAR2(50) NOT NULL, 66 shipdateshipdate DATE,DATE, 77 supplyidsupplyid VARCHAR2(3) NOT NULL)VARCHAR2(3) NOT NULL) 88 PCTFREE 5PCTFREE 5 PCTUSED 65PCTUSED 65 99 STORAGE (STORAGE ( 1010 INITIALINITIAL 5K5K 1111 NEXTNEXT 5K5K 1212 PCTINCREASEPCTINCREASE 00 1313 MINEXTENTSMINEXTENTS 22 1414 MAXEXTENTSMAXEXTENTS 50)50) 1515 TABLESPACE users;TABLESPACE users; Table created.Table created.
  • 33.
    11-11-3333 Copyright ©ADA, 2005. Todos los derechos reservados. Definició n de una Restricció n en laDefinició n de una Restricció n en la Creació n de una TablaCreació n de una Tabla SQL>SQL> CREATE TABLE order_detail (CREATE TABLE order_detail ( 22 orderidorderid NUMBER(3) NOT NULL,NUMBER(3) NOT NULL, 33 productidproductid NUMBER(3) NOT NULL,NUMBER(3) NOT NULL, 44 quantityquantity NUMBER,NUMBER, 55 unitunit VARCHAR2(3),VARCHAR2(3), 66 totaltotal NUMBER(10,2),NUMBER(10,2), 77 CONSTRAINT validatotal CHECK (total>0)CONSTRAINT validatotal CHECK (total>0))) 88 TABLESPACE app_data;TABLESPACE app_data; Table created.Table created. SQL>SQL> CREATE TABLE order_detail (CREATE TABLE order_detail ( 22 orderidorderid NUMBER(3) NOT NULL,NUMBER(3) NOT NULL, 33 productidproductid NUMBER(3) NOT NULL,NUMBER(3) NOT NULL, 44 quantityquantity NUMBER,NUMBER, 55 unitunit VARCHAR2(3),VARCHAR2(3), 66 totaltotal NUMBER(10,2),NUMBER(10,2), 77 CONSTRAINT validatotal CHECK (total>0)CONSTRAINT validatotal CHECK (total>0))) 88 TABLESPACE app_data;TABLESPACE app_data; Table created.Table created.
  • 34.
    11-11-3434 Copyright ©ADA, 2005. Todos los derechos reservados. Definició n de una Restricció n en laDefinició n de una Restricció n en la Creació n de una TablaCreació n de una Tabla SQL>SQL> ALTER TABLE order_detail ADD (ALTER TABLE order_detail ADD ( 22 CONSTRAINTCONSTRAINT order_detail_pk PRIMARY KEYorder_detail_pk PRIMARY KEY 33 (orderid,productid));(orderid,productid)); Table altered.Table altered. SQL>SQL> ALTER TABLE order_detail ADD (ALTER TABLE order_detail ADD ( 22 CONSTRAINTCONSTRAINT order_detail_pk PRIMARY KEYorder_detail_pk PRIMARY KEY 33 (orderid,productid));(orderid,productid)); Table altered.Table altered. SQL> ALTER TABLE orders ADD (SQL> ALTER TABLE orders ADD ( 2 CONSTRAINT orders_pk PRIMARY KEY2 CONSTRAINT orders_pk PRIMARY KEY 3 (orderid));3 (orderid)); Table altered.Table altered. SQL> ALTER TABLE orders ADD (SQL> ALTER TABLE orders ADD ( 2 CONSTRAINT orders_pk PRIMARY KEY2 CONSTRAINT orders_pk PRIMARY KEY 3 (orderid));3 (orderid)); Table altered.Table altered. SQL>SQL> ALTER TABLE order_detail ADD (ALTER TABLE order_detail ADD ( 22 CONSTRAINTCONSTRAINT orders_rel FOREIGN KEYorders_rel FOREIGN KEY 33 (orderid) REFERENCES orders);(orderid) REFERENCES orders); Table altered.Table altered. SQL>SQL> ALTER TABLE order_detail ADD (ALTER TABLE order_detail ADD ( 22 CONSTRAINTCONSTRAINT orders_rel FOREIGN KEYorders_rel FOREIGN KEY 33 (orderid) REFERENCES orders);(orderid) REFERENCES orders); Table altered.Table altered.
  • 35.
    11-11-3535 Copyright ©ADA, 2005. Todos los derechos reservados. Recuperando Informació n de RestriccionesRecuperando Informació n de Restricciones • DBA_CONSTRAINTSDBA_CONSTRAINTS – OWNEROWNER – CONSTRAINT_NAMECONSTRAINT_NAME – CONSTRAINT_TYPECONSTRAINT_TYPE – TABLE_NAMETABLE_NAME – SEARCH_CONDITIOSEARCH_CONDITIO NN – R_OWNERR_OWNER – R_CONSTRAINT_NAR_CONSTRAINT_NA MEME – DELETE_RULEDELETE_RULE – STATUSSTATUS – DEFERRABLEDEFERRABLE – DEFERREDDEFERRED • DBA_CONS_COLUMNDBA_CONS_COLUMN SS – OWNEROWNER – CONSTRAINT_NACONSTRAINT_NA MEME – TABLE_NAMETABLE_NAME – COLUMN_NAMECOLUMN_NAME – POSITIONPOSITION
  • 36.
    11-11-3636 Copyright ©ADA, 2005. Todos los derechos reservados. ResumenResumen • En este capítulo hemos visto como:En este capítulo hemos visto como: – Crear una tabla con una apropiada utilizació nCrear una tabla con una apropiada utilizació n de parámetros de almacenamiento y de bloquede parámetros de almacenamiento y de bloque – Controlar el uso de espacio de las tablasControlar el uso de espacio de las tablas – Modificar y eliminar una tablaModificar y eliminar una tabla – Crear diferentes tipos de índicesCrear diferentes tipos de índices – Reorganizar y eliminar índicesReorganizar y eliminar índices – Implementar integridad de datosImplementar integridad de datos – Obtener informació n de tablas, índices yObtener informació n de tablas, índices y restriccionesrestricciones