Sei sulla pagina 1di 0

Laboratorio de Base de Datos

03 Gestin de tablas
Nro. DD-106
Pgina 1 de 7

I. OBJETIVOS
Reconocer los atributos de una tabla.
Crear tablas en una base de datos.
Identificar las principales restricciones de integridad referencial declarativa (DRI).
Implementar claves forneas en una tabla de una base de datos.

II. SEGURIDAD

Advertencia:
En este laboratorio est prohibida la manipulacin del hardware,
conexiones elctricas o de red; as como la ingestin de
alimentos o bebidas.

III. RECURSOS
Equipo con sistema operativo Windows XP Professional.
Oracle Express Universal 10g.

IV. DESARROLLO DE LA TAREA
El desarrollo del laboratorio es de manera individual.

V. PROCEDIMIENTO
A. Abrir SQL Plus:
1. Seleccionar Inicio/Todos los programas/Base de datos Oracle 10g Express Edition/Ejecutar
Lnea de Comandos SQL.
2. En la ventana que se le muestra, escribir los siguiente y luego presionar Enter:
conn system/tecsup
3. Si todo lo realiz correctamente le deber mostrar la palabra Conectado, caso contrario verifique
el nombre de usuario y/o la contrasea ingresada.

B. Cargar la tabla T01_AMISTADES, T02_PELICULAS, T03_PRESTAMOS:
1. Copiar el archivo Objetos.sql a la carpeta D:\03-BD (si no existe, crearla).
2. Dentro de SQLPLUS, escribir la sentencia: @D:/03-BD/Objetos.sql y presionar Enter. Luego,
debe mostrarle el mensaje de: Tabla creada.
3. Verificar que las tablas T01_AMISTADES, T02_PELICULAS y T03_PRESTAMOS estn
creadas:
SELECT TABLE_NAME FROM ALL_TABLES WHERE TABLE_NAME LIKE T0%;

C. Restricciones
Tipo de restriccin Palabra reservada utilizada
Tipo de dato decimal, varchar, date,
Tamao de campo numero entero
Campo obligatorio NOT NULL
Campo no obligatorio NULL
Campo con valor por defecto default
Validacin de campo check
Clave primaria Primary Key
Clave externa Foreign Key

D. Modificar la tabla T01_AMISTADES:
1. Ver la estructura de la tabla T01_AMISTADES:
DESC T01_AMISTADES;
2. Ver qu campo no admite valores nulos.
3. Modificar el campo nombre de la tabla T01_AMISTADES para que sea un campo obligatorio:
ALTER TABLE T01_AMISTADES
MODIFY nombre VARCHAR(40) NOT NULL;
4. Ver qu campos no admiten valores nulos.
5. Modifique la definicin del campo sexo en la tabla T01_AMISTADES para que dicho campo sea
obligatorio y nicamente permita los valores M o F.
ALTER TABLE T01_AMISTADES
Laboratorio de Base de Datos
03 Gestin de tablas
Nro. DD-106
Pgina 2 de 7

MODIFY sexo VARCHAR(1) NOT NULL;
ALTER TABLE T01_AMISTADES
ADD CONSTRAINT CK_AMISTADES_SEXO CHECK (sexo IN (M,F));

6. Adicione un campo denominado estado a la tabla T01_AMISTADES que nicamente acepte
como valores permitidos las letras A o X, con valor por defecto la letra A y adems sea un
campo obligatorio.
ALTER TABLE T01_AMISTADES
ADD estado VARCHAR(1) DEFAULT A NOT NULL;
ALTER TABLE T01_AMISTADES
ADD CONSTRAINT CK_AMISTADES_ESTADO CHECK (estado in (A,X));

7. Ver la estructura de la tabla T01_AMISTADES:
DESCRIBE T01_AMISTADES;

8. A continuacin se muestra la forma completa del comando create table que debi utilizarse
para conseguir la estructura que finalmente tiene nuestra tabla T01_AMISTADES.
CREATE TABLE T01_AMISTADES (
CODIGO NUMBER(6) PRIMARY KEY,
NOMBRE VARCHAR2(40) NOT NULL,
FECHA_NAC DATE,
SEXO VARCHAR2(1) NOT NULL,
APODO VARCHAR2(30),
CELULAR VARCHAR2(10),
EMAIL VARCHAR2(30),
ESTADO VARCHAR2(1) DEFAULT 'A' NOT NULL,
CONSTRAINT CK_AMISTADES_SEXO CHECK (SEXO IN ('M','F')),
CONSTRAINT CK_AMISTADES_ESTADO CHECK (ESTADO IN ('A','X'))
);

E. Modificar la tabla T02_PELICULAS:
1. Modifique la definicin de los campos titulo y actor_principal de la tabla T02_PELICULAS para
que dichos campos sean obligatorios.
ALTER TABLE T02_PELICULAS
MODIFY titulo VARCHAR(80) NOT NULL;
ALTER TABLE T02_PELICULAS
MODIFY actor_principal VARCHAR(60) NOT NULL;

2. Modifique la definicin del campo tipo_dvd en la tabla T02_PELICULAS para que dicho campo
sea obligatorio y nicamente permita los valores original o copia.
ALTER TABLE T02_PELICULAS
ADD CONSTRAINT CK_PELICULAS_TIPO_DVD
CHECK ( tipo_dvd IN ('original','copia') );
3. Modifique la definicin del campo origen en la tabla T02_PELICULAS para que dicho campo sea
obligatorio y nicamente permita los valores nacional o extranjero
ALTER TABLE T02_PELICULAS
MODIFY ORIGEN VARCHAR2(12) DEFAULT 'EXTRANJERO' NOT NULL;
ALTER TABLE T02_PELICULAS
ADD CONSTRAINT CK_PELICULAS_ORIGEN
CHECK ( origen IN ('nacional','extranjero') );
4. Modifique la definicin del campo estado en la tabla T02_PELICULAS para que dicho campo sea
obligatorio y nicamente permita los valores A o X
ALTER TABLE T02_PELICULAS
MODIFY ESTADO VARCHAR2(1) DEFAULT 'A' NOT NULL;
ALTER TABLE T02_PELICULAS
ADD CONSTRAINT CK_PELICULAS_ESTADO
CHECK ( estado IN ('A','X') );
5. Adicione a la tabla T02_PELICULAS un campo de nombre costo numrico de 8 dgitos y 2
decimales, que asigne como valor por defecto el nmero 2.5 y adems que sea un campo
obligatorio
ALTER TABLE T02_PELICULAS
Laboratorio de Base de Datos
03 Gestin de tablas
Nro. DD-106
Pgina 3 de 7

ADD COSTO NUMBER(8,2) DEFAULT 2.5 NOT NULL;
6. Visualice la estructura final de la tabla T02_PELICULAS
DESCRIBE T02_PELICULAS;
DESC T02_PELICULAS;
7. A continuacin se muestra la forma completa del comando create table que debi utilizarse
para conseguir la estructura que finalmente tiene nuestra tabla T02_PELICULAS.
CREATE TABLE T02_PELICULAS (
CODIGO NUMBER(4,0) PRIMARY KEY,
TITULO VARCHAR2(80) NOT NULL,
TIPO_PELICULA VARCHAR2(25),
FECHA_AQD DATE,
ACTOR_PRINCIPAL VARCHAR2(60) NOT NULL,
TIPO_DVD VARCHAR2(10) DEFAULT 'COPIA' NOT NULL,
ORIGEN VARCHAR2(12) DEFAULT 'EXTRANJERO' NOT NULL,
ESTADO VARCHAR2(1) DEFAULT 'A' NOT NULL,
COSTO NUMBER(8,2) DEFAULT 2.5 NOT NULL,

CONSTRAINT CK_PELICULAS_TIPO_DVD
CHECK ( TIPO_DVD IN ('ORIGINAL','COPIA') ),
CONSTRAINT CK_PELICULAS_ORIGEN
CHECK ( ORIGEN IN ('NACIONAL','EXTRANJERO') ),
CONSTRAINT CK_PELICULAS_ESTADO
CHECK ( ESTADO IN ('A','X') )
);

F. Modificar la tabla T03_PRESTAMOS:
1. Modifique el campo fecha_prestamo de la tabla t03_prestamos para que sea un campo
obligatorio.
ALTER TABLE T03_PRESTAMOS
MODIFY fecha_prestamo DATE NOT NULL;

2. Adicione a la tabla t03_prestamos un campo de nombre id_prestamo numrico de 7 dgitos y 0
decimales,
ALTER TABLE T03_PRESTAMOS
ADD id_prestamo NUMBER(7,0);

3. Ingresar dos registros en la tabla t03_prestamos, incrementable de 1 en 1, empezando en 1.
CREATE SEQUENCE sec
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;

UPDATE T03_PRESTAMOS
SET ID_PRESTAMO=sec.nextval
WHERE CODIGO_AMISTAD=50201 AND
CODIGO_PELICULA=1;

UPDATE T03_PRESTAMOS
SET ID_PRESTAMO=sec.nextval
WHERE CODIGO_AMISTAD=50201 AND
CODIGO_PELICULA=2;

4. Modifique la definicin del campo id_prestamo en la tabla t03_prestamos para que dicho campo
sea la clave primaria de la tabla
ALTER TABLE T03_PRESTAMOS
ADD CONSTRAINT PK_PRESTAMOS
PRIMARY KEY (ID_PRESTAMO);
5. Modifique la definicin del campo estado en la tabla t03_prestamos para que dicho campo sea
obligatorio, que nicamente permita los valores P, D o X y que asigne por defecto el valor P
ALTER TABLE T03_PRESTAMOS
Laboratorio de Base de Datos
03 Gestin de tablas
Nro. DD-106
Pgina 4 de 7

MODIFY ESTADO VARCHAR2(1) DEFAULT 'P' NOT NULL;
ALTER TABLE T03_PRESTAMOS
ADD CONSTRAINT CK_PRESTAMOS_ESTADO
CHECK ( ESTADO IN ('P','D','X') );
6. Adicione a la tabla t03_prestamos una restriccin de clave externa denominada
fk_prestamos_amistades para que el campo codigo_amistad nicamente permita valores de
cdigos que existan en la tabla t01_amistad
ALTER TABLE T03_PRESTAMOS
ADD CONSTRAINT FK_PRESTAMOS_AMISTADES
FOREIGN KEY (CODIGO_AMISTAD)
REFERENCES T01_AMISTADES(CODIGO);
7. Adicione a la tabla t03_prestamos una restriccin de clave externa denominada
fk_prestamos_peliculas para que el campo codigo_pelicula nicamente permita valores de
cdigos que existan en la tabla t02_peliculas
ALTER TABLE T03_PRESTAMOS ADD
CONSTRAINT FK_PRESTAMOS_PELICULAS
FOREIGN KEY (CODIGO_PELICULA)
REFERENCES T02_PELICULAS(CODIGO);

8. Empleando el comando SQL update intente modificar el campo codigo_amistad de la tabla
t03_prestamos de cualquier registro de prstamo existente y trate de colocar un valor de cdigo
de amistad cualquiera, que no exista en la tabla t01_amistades, tuvo xito?, explique.
Comando utilizado:






Explicacin:






9. Empleando el comando SQL update intente modificar el campo codigo_pelicula de la tabla
t03_prestamos de cualquier registro de prstamo existente y trate de colocar un valor de cdigo
de pelcula cualquiera, que no exista en la tabla t02_peliculas, tuvo xito?, explique.
Comando utilizado:






Explicacin:






10. A continuacin se muestra la forma completa del comando create table que debi utilizarse
para conseguir la estructura que finalmente tiene nuestra tabla t03_prestamos.
CREATE TABLE T03_PRESTAMOS (
ID_PRESTAMO NUMBER(7,0) PRIMARY KEY,
FECHA_PRESTAMO DATE NOT NULL,
CODIGO_AMISTAD NUMBER(6,0) NOT NULL,
CODIGO_PELICULA NUMBER(4,0) NOT NULL,
ESTADO VARCHAR2(1) DEFAULT 'P' NOT NULL,
Laboratorio de Base de Datos
03 Gestin de tablas
Nro. DD-106
Pgina 5 de 7

CONSTRAINT CK_PRESTAMOS_ESTADO
CHECK (ESTADO IN ('P','D','X') ),
CONSTRAINT FK_PRESTAMOS_AMISTADESS
FOREIGN KEY(CODIGO_AMISTAD)
REFERENCES T01_AMISTADES(CODIGO),
CONSTRAINT FK_PRESTAMOS_PELICULAS
FOREIGN KEY(CODIGO_PELICULA)
REFERENCES T02_PELICULAS(CODIGO)
);

G. Ejercicios:

De acuerdo a las siguientes estructuras, usted deber indicar las sentencias respectivas que se le
solicitan. El instructor le indicar qu estructura deber desarrollar (A o B).

A


B


1. La estructura a desarrollar es la _______.

2. Las restricciones para cada tabla son:
a) ALUMNO: Clave primaria para CODALU. NO debe estar nulo ningn campo.
b) CURSO: Clave primaria para CODCUR. NO debe estar nulo ningn campo. El campo
ESTADO slo debe contener los datos D o I.
c) ALU_CUR: Clave primaria para CODALUCUR. NO debe estar nulo ningn campo. Debe
tener las claves externas de las tablas ALUMNO y CURSO.
d) IDIOMA: Clave primaria para CODIDI. NO debe estar nulo ningn campo. En DESIDI debe
tener por defecto el valor de castellano.
e) EDITORIAL: Clave primaria para CODEDI. NO debe estar nulo ningn campo.
f) LIBRO: Clave primaria CODLIB. No debe estar nulo ningn campo. Debe tener las claves
externas de las tablas IDIOMA y EDITORIAL.

3. Ingresar 3 registros para cada tabla. Verificar la integridad referencial.

4. Escribir de manera ordenada las sentencias para la creacin de las tablas correspondientes.













Laboratorio de Base de Datos
03 Gestin de tablas
Nro. DD-106
Pgina 6 de 7



























5. Escribir de manera ordenada las sentencias para la insercin de registros.



































Laboratorio de Base de Datos
03 Gestin de tablas
Nro. DD-106
Pgina 7 de 7

VI. OBSERVACIONES Y CONCLUSIONES

_________________________________________________________________________

_________________________________________________________________________

_________________________________________________________________________

_________________________________________________________________________

_________________________________________________________________________

_________________________________________________________________________

_________________________________________________________________________

_________________________________________________________________________

_________________________________________________________________________

_________________________________________________________________________

_________________________________________________________________________

_________________________________________________________________________

_________________________________________________________________________

_________________________________________________________________________

Potrebbero piacerti anche