Base de Datos (Josue)
Base de Datos (Josue)
Base de Datos (Josue)
ACTIVIDADES RESUELTAS
IMPORTANTE
Para ello pulsamos sobre «Get Started». Y se abrirá el navegador web con esta
URL: http://127.0.0.1:8080/apex/f?p=4950.
3.4.1.6. 6. A continuación configuraremos el Terminal CMD. En Windows,
ejecuta el programa CMD.EXE y realiza la configuración siguiente:
Pulsa con el botón secundario del ratón en la barra de título y luego haz
clic en Propiedades.
Configura la Fuente, la Disposición y los Colores como se muestra más
abajo.
Pulsa OK.
Para que se muestren correctamente las tildes y ciertos caracteres como la letra Ñ y
similares deberemos ejecutar el comando CHCP 1252 (CHange CodePage). Esto
cambia la CP850 por la CP1252 que soporta el conjunto de caracteres ISO 8859,
necesarios por los motivos indicados anteriormente. Esta configuración no se queda
guardada, por lo que deberemos ejecutarla cada vez que iniciemos el terminal.
3.4.1.8. 8. Ya podemos lanzar el cliente SQL*Plus como aparece en la imagen.
Lo haremos como SYSDBA (permisos de DataBase Administrator).
Para comprobar que SQL*Plus y la base de datos Oracle están funcionando bien,
realizaremos lo siguiente. Con Oracle se instala un esquema (usuario) de ejemplo
llamado HR (Human Resources). Por defecto está bloqueado. Los desbloqueamos. Le
concedemos roles CONNECT y RESOURCE y asignamos una contraseña.
sqlplus / as sysdba
...
User altered.
Grant succeeded.
3.4.1.12. 12. Una vez dentro nos creamos un espacio de trabajo (Workspace)
como aparece en la siguiente imagen. Luego pulsaremos «Create Workspace».
Como usuario y contraseña de APEX, por motivos de comodidad, utilizaremos siempre
los siguientes:
Username: YO
Password: YO
CONNECT SYSTEM/SYSTEM
CONNECT E01/E01;
NOMBRE VARCHAR2(50),
FECHANACIMIENTO DATE,
TELEFONO CHAR(9)
);
NOMBRE VARCHAR2(50),
ESPECIALIDAD VARCHAR2(50),
TELEFONO CHAR(9)
);
NOMBRE VARCHAR2(30),
);
CURSOESCOLAR CHAR(9),
);
Nota
Observa el orden en el que creamos las tablas. Las tablas que contienen claves
foráneas deben crearse después de crear las tablas que contienen las claves
primarias a las que apuntan.
NUMMATRICULA NUMBER(3),
CODASIGNATURA CHAR(6),
CURSOESCOLAR CHAR(9),
PRIMARY KEY (NUMMATRICULA, CODASIGNATURA, CURSOESCOLAR),
);
CONNECT SYSTEM/SYSTEM;
CONNECT E02/E02;
NOMBRE VARCHAR2(40)
);
NOMBRE VARCHAR2(40),
);
NOMBRE VARCHAR2(40),
);
NOMBRE VARCHAR2(50),
FECHANAC DATE,
TELEFONO CHAR(9),
SALARIO NUMBER(6,2),
);
ID NUMBER(3),
DNI CHAR(9),
NOMBRE VARCHAR2(50),
FECHANAC DATE,
TELEFONO CHAR(9),
SALARIO NUMBER(6,2),
CODLOCALIDAD NUMBER(5),
UNIQUE (DNI),
);
CONNECT SYSTEM/SYSTEM;
DROP USER E03 CASCADE;
CONNECT E03/E03;
NOMBRE VARCHAR2(50),
UBICACION VARCHAR2(50)
);
NOMBRE VARCHAR2(50),
SALARIO NUMBER(6,2),
TELEFONO CHAR(9),
);
NOMBRE VARCHAR2(50),
SALARIO NUMBER(6,2),
TELEFONO CHAR(9),
);
ID NUMBER(3),
DNI CHAR(9),
NOMBRE VARCHAR2(50),
SALARIO NUMBER(6,2),
TELEFONO CHAR(9),
IDDEP NUMBER(5),
UNIQUE (DNI),
UNIQUE (IDDEP),
);
CONNECT E04/E04;
NOMBRE VARCHAR2(50),
DIRECCION VARCHAR2(50),
TELEFONO CHAR(9)
);
NOMBRE VARCHAR2(50),
DIRECCION VARCHAR2(50),
TELEFONO CHAR(9)
);
);
CREATE TABLE COMPRA
FECHACOMPRA DATE,
);
FECHAMONTAJE DATE,
);
No pueden ser nulos los siguientes campos: Nombre de Cliente, Marca y Modelo de
Coche. Crear una secuencia para el Número de Reserva.
SET SQLPROMPT "";
CONNECT SYSTEM/SYSTEM;
CONNECT E05/E05;
DIRECCION VARCHAR2(40),
TELEFONO CHAR(9)
);
COLOR VARCHAR2(20),
PRECIOHORA NUMBER
);
CREATE TABLE RESERVA
FECHAINICIO DATE,
FECHAFIN DATE,
PRECIOTOTAL NUMBER,
REFERENCES CLIENTE(COD_CLIENTE)
);
AVALADO CHAR(4),
AVALADOR CHAR(4),
REFERENCES CLIENTE(COD_CLIENTE),
REFERENCES CLIENTE(COD_CLIENTE)
);
NUMERO NUMBER(4),
MATRICULA CHAR(7),
LITROSGAS NUMBER,
REFERENCES COCHE(MATRICULA)
);
AVALADOR CHAR(4),
REFERENCES CLIENTE(COD_CLIENTE),
REFERENCES CLIENTE(COD_CLIENTE)
);
REFERENCES RESERVA(NUMERO),
REFERENCES COCHE(MATRICULA),
LITROSGAS NUMBER,
);
CONNECT SYSTEM/SYSTEM;
CONNECT E06/E06;
DIRECCION VARCHAR2(40),
TELEFONO CHAR(9)
);
DIRECCION VARCHAR2(40),
TELEFONO CHAR(9),
ESPECIALISTA VARCHAR2(40)
);
DIRECCION VARCHAR2(40),
TELEFONO CHAR(9),
REFERENCES SUCURSAL(CODIGO)
);
CREATE TABLE REVISTA
TIPO VARCHAR2(20),
REFERENCES SUCURSAL(CODIGO),
CONSTRAINT CK_PERIODICIDAD
CHECK (PERIODICIDAD IN
);
NUMREG CHAR(8),
NUMERO NUMBER(3),
NUMPAGINAS NUMBER(3),
FECHA DATE,
CANTVENDIDAS NUMBER(6),
REFERENCES REVISTA(NUMREG),
);
NUMREG CHAR(8),
DNI_PERIODISTA CHAR(8),
REFERENCES REVISTA(NUMREG),
REFERENCES PERIODISTA(DNI)
);
No pueden ser nulos los siguientes campos: Nombre de Socio, Título de Película.
Sexo toma los valores H o M. Por defecto si no se indica nada un actor o actriz no es
Protagonista (este campo toma valores S o N). FechaDevolución debe ser mayor que
FechaAlquiler.
CONNECT SYSTEM/SYSTEM;
DROP USER E07 CASCADE;
CONNECT E07/E07;
NACIONALIDAD VARCHAR2(40)
);
TITULO VARCHAR2(40),
PRODUCTORA VARCHAR2(40),
NACIONALIDAD VARCHAR2(40),
FECHA DATE,
REFERENCES DIRECTOR(NOMBRE)
);
IDPELICULA NUMBER,
NUMERO NUMBER(2),
ESTADO VARCHAR2(40),
);
NOMBRE VARCHAR2(40),
NACIONALIDAD VARCHAR2(40),
SEXO CHAR(1),
);
DNI CHAR(9),
DIRECCION VARCHAR2(40),
TELEFONO CHAR(9),
AVALADOR CHAR(9),
);
ACTOR VARCHAR2(40),
IDPELICULA NUMBER,
DNI CHAR(9),
IDPELICULA NUMBER,
NUMERO NUMBER(2),
FECHA_ALQUILER DATE,
FECHA_DEVOLUCION DATE,
CONSTRAINT PK_ALQUILA
);
No pueden ser nulos los siguientes campos: Nombre de Persona, NombreVía, Número
de Vivienda, Nombre de Municipio. Sexo toma los valores H o M. Por defecto si no se
indica nada el TipoVia es Calle.
SET SQLPROMPT "";
CONNECT SYSTEM/SYSTEM;
CONNECT E08/E08;
ID CHAR(4),
CODPOSTAL CHAR(5),
PROVINCIA VARCHAR2(40),
CONSTRAINT PK_MUNICIPIO PRIMARY KEY(ID)
);
ID CHAR(4),
IDMUNICIPIO CHAR(4),
REFERENCES MUNICIPIO(ID)
);
DNI CHAR(9),
NOMBRE VARCHAR2(40),
FECHA_NAC DATE,
SEXO CHAR(1),
IDVIVIENDA CHAR(4),
REFERENCES VIVIENDA(ID),
);
(
DNI CHAR(9),
IDVIVIENDA CHAR(4),
REFERENCES VIVIENDA(ID)
);
DNI CHAR(9),
IDVIVIENDA CHAR(4),
);
Crea las tablas sin restricciones y añádelas después con el comando ALTER TABLE.
Crea índices para los siguientes campos: Nombre de Sucursal, Nombre de Cliente.
También para Localidad de Cliente, Localidad de Sucursal. Crea una secuencia que
inicie en 1 para CodSucursal.
SET SQLPROMPT "";
CONNECT SYSTEM/SYSTEM;
CONNECT E09/E09;
DNI CHAR(9),
NOMBRE VARCHAR2(40),
DIRECCION VARCHAR2(40),
LOCALIDAD VARCHAR2(40),
FECHA_NAC DATE,
SEXO CHAR(1)
);
CODSUCURSAL NUMBER(4),
NOMBRE VARCHAR2(40),
DIRECCION VARCHAR2(40),
LOCALIDAD VARCHAR2(40)
);
PRIMARY KEY(CODSUCURSAL);
CODSUCURSAL NUMBER(4),
CODCUENTA NUMBER(10)
);
ALTER TABLE CUENTA ADD CONSTRAINT PK_CUENTA
CODSUCURSAL NUMBER(4),
CODCUENTA NUMBER(10),
NUMTRANSACCION NUMBER(5),
FECHA DATE,
TIPO VARCHAR2(20)
);
DNI CHAR(9),
CODSUCURSAL NUMBER(4),
CODCUENTA NUMBER(10)
);
3.4.2.10. 10. Realiza el diseño físico para el siguiente modelo relacional. Asigna
el tipo de datos que consideres más adecuado. Realiza el diseño sin poner
nombres a las restricciones. Esquema E10, contraseña «E10».
Crea las tablas sin restricciones y añádelas después con el comando ALTER TABLE.
Crea secuencias que inicien en 1 para: NumCliente, NumArtículo, NumFabrica y
NumPedido.
CONNECT E10/E10;
NUMFABRICA NUMBER(2),
TELEFONO CHAR(9)
);
PRIMARY KEY(NUMFABRICA);
NUMARTICULO NUMBER(5),
DESCRIPCION VARCHAR2(100)
);
PRIMARY KEY(NUMARTICULO);
NUMCLIENTE NUMBER(5),
SALDO NUMBER,
LIMCREDITO NUMBER(4),
DESCUENTO NUMBER(2)
);
PRIMARY KEY(NUMCLIENTE);
CODDIRECCION CHAR(8),
VIA VARCHAR2(20),
NOMBREVIA VARCHAR2(50),
NUMERO NUMBER(3),
PISO NUMBER(1),
PORTAL CHAR(1),
CODPOSTAL CHAR(5)
);
NUMPEDIDO NUMBER(5),
FECHA DATE,
NUMCLIENTE NUMBER(5),
CODDIRECCION CHAR(8)
);
ALTER TABLE PEDIDO ADD CONSTRAINT PK_PEDIDO
NUMCLIENTE NUMBER(5),
CODDIRECCION CHAR(8)
);
NUMPEDIDO NUMBER(5),
NUMARTICULO NUMBER(5),
CANTIDAD NUMBER(5)
);
PRIMARY KEY(NUMPEDIDO,NUMARTICULO);
NUMFABRICA NUMBER(2),
NUMARTICULO NUMBER(5),
CANTSUMINISTRO NUMBER(5),
EXISTENCIAS NUMBER(5)
);
PRIMARY KEY(NUMFABRICA,NUMARTICULO);
Crea las tablas sin restricciones y añádelas después con el comando ALTER TABLE.
Crea índices para los siguientes campos: Nombre de Cliente, Nombre de Categoría,
Nombre de Proveedor, Ciudad de Cliente. Crea una secuencia para IDVenta.
CONNECT SYSTEM/SYSTEM;
CONNECT E11/E11;
CODCLIENTE NUMBER(5),
NOMBRE VARCHAR2(40),
CALLE VARCHAR2(40),
NUMERO NUMBER(3),
COMUNA VARCHAR2(40),
CIUDAD VARCHAR2(40)
);
IDVENTA NUMBER(7),
MONTOTOTAL NUMBER,
CODCLIENTE NUMBER(5)
);
FOREIGN KEY(CODCLIENTE)
REFERENCES CLIENTE(CODCLIENTE);
IDCATEGORIA NUMBER(3),
NOMBRE VARCHAR2(40),
DESCRIPCION VARCHAR2(100)
);
CODPROVEEDOR NUMBER(5),
NOMBRE VARCHAR2(40),
DIRECCION VARCHAR2(40),
TELEFONO CHAR(9),
WEB VARCHAR2(100)
);
IDPRODUCTO NUMBER(5),
NOMBRE VARCHAR2(40),
PRECIO NUMBER,
STOCK NUMBER(6),
IDCATEGORIA NUMBER(3),
IDPROVEEDOR NUMBER(5)
);
FOREIGN KEY(IDCATEGORIA)
REFERENCES CATEGORIA(IDCATEGORIA);
FOREIGN KEY(IDPROVEEDOR)
REFERENCES PROVEEDOR(CODPROVEEDOR);
CODCLIENTE NUMBER(5),
NUMTELEFONO CHAR(9)
);
FOREIGN KEY(CODCLIENTE)
REFERENCES CLIENTE(CODCLIENTE);
ALTER TABLE ASOCIADO ADD CONSTRAINT FK2_TELEFONO
FOREIGN KEY(NUMTELEFONO)
REFERENCES TELEFONO(NUMERO);
IDVENTA NUMBER(7),
IDPRODUCTO NUMBER(5),
CANTIDAD NUMBER(5),
PRECIOVENTA NUMBER
);
FOREIGN KEY(IDVENTA)
REFERENCES VENTA(IDVENTA);
FOREIGN KEY(IDPRODUCTO)
REFERENCES PRODUCTO(IDPRODUCTO);
3.4.2.12. 12. Realiza el diseño físico para el siguiente modelo relacional. Asigna
el tipo de datos que consideres más adecuado. Realiza el diseño sin poner
nombres a las restricciones. Esquema E12, contraseña «E12».
Crea las tablas sin restricciones y añádelas después con el comando ALTER TABLE.
Crea índices para los siguientes campos: Apellidos de Empleado, Lugar de Edición,
Horario de Edición. Para el indicar si un prerrequisito es obligatorio o no utilizamos ‘S’
o ‘N’.
SET SQLPROMPT "";
CONNECT SYSTEM/SYSTEM;
CONNECT E12/E12;
(
CODEMP NUMBER(5),
NIF CHAR(9),
NOMBRE VARCHAR2(40),
APELLIDOS VARCHAR2(40),
DIRECCION VARCHAR2(40),
TELEFONO CHAR(9),
FECHANAC DATE,
SALARIO NUMBER
);
PRIMARY KEY(CODEMP);
PRIMARY KEY(CODEMP);
PRIMARY KEY(CODEMP);
CODCURSO NUMBER(3),
NOMBRE VARCHAR2(40),
DURACION NUMBER(3),
COSTE NUMBER
);
PRIMARY KEY(CODCURSO);
CODCURSO NUMBER(3),
FECHAINICIO DATE,
LUGAR VARCHAR2(40),
HORARIO VARCHAR2(40),
PROFESOR NUMBER(5)
);
PRIMARY KEY(CODCURSO,FECHAINICIO);
CODEMPLEADO NUMBER(5),
CODCURSO NUMBER(3),
FECHAINICIO DATE
);
PRIMARY KEY(CODEMPLEADO,CODCURSO,FECHAINICIO);
FOREIGN KEY(CODCURSO,FECHAINICIO)
REFERENCES EDICION(CODCURSO,FECHAINICIO);
CURSOSOLICITADO NUMBER(3),
CURSOPREVIO NUMBER(3),
OBLIGATORIO CHAR(1)
);
PRIMARY KEY(CURSOSOLICITADO,CURSOPREVIO,OBLIGATORIO);
3.4.2.13. 13. Realiza el diseño físico para el siguiente modelo relacional. Asigna
el tipo de datos que consideres más adecuado. Realiza el diseño sin poner
nombres a las restricciones. Esquema E13, contraseña «E13».
Crea las tablas sin restricciones y añádelas después con el comando ALTER TABLE.
Crea una secuencia para IDCuenta, otra para IDNomina y otra para LineaNum.
SET SQLPROMPT "";
CONNECT SYSTEM/SYSTEM;
CONNECT E13/E13;
IDCUENTA NUMBER(7),
CODBANCO NUMBER(4),
CODSUCURSAL NUMBER(4),
NUMCUENTA NUMBER(10)
);
PRIMARY KEY(IDCUENTA);
UNIQUE (CODBANCO,CODSUCURSAL,NUMCUENTA);
CODEMP NUMBER(5),
NIF CHAR(9),
NOMBRE VARCHAR2(40),
NUMHIJOS NUMBER(2),
RETENCION NUMBER(4,2),
TELEFONO CHAR(9),
IDCUENTA NUMBER(7)
);
PRIMARY KEY(CODEMP);
UNIQUE (NIF);
IDNOMINA NUMBER(7),
IDCUENTA NUMBER(7),
EJERCFISCAL NUMBER(4),
MES VARCHAR2(15),
NUMORDEN NUMBER(1),
CODEMP NUMBER(5)
);
PRIMARY KEY(IDNOMINA);
UNIQUE (IDCUENTA,EJERCFISCAL,MES,NUMORDEN);
ALTER TABLE NOMINA ADD CONSTRAINT FK1_NOMINA
CODDPTO NUMBER(3),
NOMBRE VARCHAR2(40)
);
PRIMARY KEY(CODDPTO);
CODSEDE NUMBER(2),
NOMBRE VARCHAR2(40),
CODDPTO NUMBER(3)
);
PRIMARY KEY(CODSEDE);
CODEMP NUMBER(5),
CODDPTO NUMBER(3),
FUNCION VARCHAR2(50)
);
PRIMARY KEY(CODEMP,CODDPTO);
COD NUMBER(2),
DESCRIPCION VARCHAR2(100)
);
IDNOMINA NUMBER(7),
LINEANUM NUMBER(3),
CANTIDAD NUMBER,
CONCEPTO NUMBER(2)
);
IDNOMINA NUMBER(7),
LINEANUM NUMBER(3),
CANTIDAD NUMBER,
BASE NUMBER,
PORCENTAJE NUMBER(4,2)
);
3.4.2.14. 14. Realiza el diseño físico para el siguiente modelo relacional. Asigna
el tipo de datos que consideres más adecuado. Realiza el diseño sin poner
nombres a las restricciones. Esquema E14, contraseña «E14».
Crea las tablas sin restricciones y añádelas después con el comando ALTER TABLE.
SET SQLPROMPT "";
CONNECT SYSTEM/SYSTEM;
CONNECT E14/E14;
CODPN NUMBER(4),
NOMBRE VARCHAR2(40),
FECHADECLARACION DATE
);
PRIMARY KEY(CODPN);
CODCA NUMBER(4),
NOMBRE VARCHAR2(40),
ORGRESONSABLE VARCHAR2(40)
);
CODCA NUMBER(4),
CODPN NUMBER(4)
);
PRIMARY KEY(CODCA,CODPN);
CODENTRADA NUMBER(2),
CODPN NUMBER(4)
);
PRIMARY KEY(CODENTRADA);
CODALOJAMIENTO NUMBER(2),
CATEGORIA VARCHAR2(20),
CAPACIDAD NUMBER(3),
CODPN NUMBER(4)
);
PRIMARY KEY(CODALOJAMIENTO);
CODEXCURSION NUMBER(4),
FECHA_HORA DATE,
APIE CHAR(1),
CODALOJAMIENTO NUMBER(2)
);
PRIMARY KEY(CODEXCURSION);
DNI CHAR(9),
NOMBRE VARCHAR2(50),
DOMICILIO VARCHAR2(100),
PROFESION VARCHAR2(40)
);
PRIMARY KEY(DNI);
CODEXCURSION NUMBER(4),
DNI CHAR(9)
);
PRIMARY KEY(CODEXCURSION,DNI);
CODALOJAMIENTO NUMBER(2),
DNI CHAR(9),
FECHAINICIO DATE,
FECHAFIN DATE
);
PRIMARY KEY(CODALOJAMIENTO,DNI,FECHAINICIO);
NOMBREAREA VARCHAR2(20),
EXTENSION NUMBER(4),
CODPN NUMBER(4)
);
PRIMARY KEY(NOMBREAREA);
CODESPECIE NUMBER(4),
NOMBRECIENTIFICO VARCHAR2(100),
NOMBREVULGAR VARCHAR2(100)
);
ALTER TABLE ESPECIE ADD CONSTRAINT PK_ESPECIE
PRIMARY KEY(CODESPECIE);
CODESPECIE NUMBER(4),
NOMBREAREA VARCHAR2(20),
CANTINDIVIDUOS NUMBER(6)
);
PRIMARY KEY(CODESPECIE,NOMBREAREA);
CODESPECIE NUMBER(4),
ALIMENTACION VARCHAR2(100),
PERIODOCELO VARCHAR2(20)
);
PRIMARY KEY(CODESPECIE);
CODESPECIE NUMBER(4),
FLORACION VARCHAR2(20),
PERIODOFLORACION VARCHAR2(20)
);
PRIMARY KEY(CODESPECIE);
CODESPECIE NUMBER(4),
TIPO VARCHAR2(20)
);
PRIMARY KEY(CODESPECIE);
DNI CHAR(9),
NSS CHAR(12),
NOMBRE VARCHAR2(40),
DIRECCION VARCHAR2(100),
TFNOFIJO CHAR(9),
TFNOMOVIL CHAR(9),
SUELDO NUMBER,
CODPN NUMBER(4)
);
PRIMARY KEY(DNI);
UNIQUE(NSS);
DNI CHAR(9),
TAREA VARCHAR2(40),
NOMBREAREA VARCHAR2(20)
);
PRIMARY KEY(DNI);
DNI CHAR(9),
NOMBREAREA VARCHAR2(20)
);
PRIMARY KEY(DNI);
DNI CHAR(9),
TITULACION VARCHAR2(100)
);
PRIMARY KEY(DNI);
DNI CHAR(9),
CODENTRADA NUMBER(2)
);
PRIMARY KEY(DNI);
CODPROYECTO NUMBER(4),
PRESUPUESTO NUMBER,
FECHAINICIO DATE,
FECHAFIN DATE,
CODESPECIE NUMBER(4)
);
PRIMARY KEY(CODPROYECTO);
(
CODPROYECTO NUMBER(4),
DNI CHAR(9)
);
PRIMARY KEY(CODPROYECTO,DNI);
3.4.3.1. 1. Nombra los distintos tipos de instrucciones DDL que puede haber,
distinguiendo el tipo de objeto que se puede crear, borrar o modificar.
DATABASE
USER
CREATE
TABLE
VIEW
ALTER
SEQUENCE
INDEX
SYNONYM
Renombar tabla
Añadir/Borrar/Modificar campos
Añadir/Borrar/Modificar restricciones
CHCP 1252
sqlplus / as sysdba
...
Grant succeeded.
Connected.
3.4.3.4. 4. Crear las siguientes tablas de acuerdo con las restricciones que se
mencionan:
TIENDAS
Columna Tipo de dato
NIF VARCHAR2(10)
NOMBRE VARCHAR2(20)
DIRECCION VARCHAR2(20)
POBLACION VARCHAR2(20)
PROVINCIA VARCHAR2(20)
CODPOSTA NUMBER(5)
L
FABRICANTES
Columna Tipo de dato
COD_FABRICANT NUMBER(3)
E
NOMBRE VARCHAR2(15)
PAIS VARCHAR2(15)
Restricciones:
ARTICULOS
Columna Tipo de dato
ARTICULO VARCHAR2(20)
COD_FABRICANT NUMBER(3)
E
PESO NUMBER(3)
CATEGORIA VARCHAR2(10)
ARTICULOS
Columna Tipo de dato
PRECIO_VENTA NUMBER(6 2.
PRECIO_COSTO NUMBER(6 2.
EXISTENCIAS NUMBER(5)
Restricciones:
VENTAS
Columna Tipo de dato
NIF VARCHAR2(10)
ARTICULO VARCHAR2(20)
COD_FABRICANTE NUMBER(3)
PESO NUMBER(3)
CATEGORIA VARCHAR2(10)
FECHA_VENTA DATE
UNIDADES_VENDIDA NUMBER(4)
S
Restricciones:
PEDIDOS
Columna Tipo de dato
NIF VARCHAR2(10)
ARTICULO VARCHAR2(20)
COD_FABRICANTE NUMBER(3)
PESO NUMBER(3)
CATEGORIA VARCHAR2(10)
FECHA_PEDIDO DATE
UNIDADES_PEDIDA NUMBER(4)
PEDIDOS
Columna Tipo de dato
S
EXISTENCIAS NUMBER(5)
Restricciones:
-- Tabla TIENDAS
PROVINCIA VARCHAR2(20),
);
-- Tabla FABRICANTES
);
-- Tabla ARTICULOS
CONSTRAINT PK_CLAVEP
CONSTRAINT MAYORQUE0
CHECK (PRECIO_VENTA > 0 AND PRECIO_COSTO > 0 AND PESO > 0),
CONSTRAINT CATEGORI
);
-- Tabla VENTAS
FECHA_VENTA DATE,
CONSTRAINT CATEGORIV
CONSTRAINT FK_CLAVEAJEV
);
-- Tabla PEDIDOS
FECHA_PEDIDO DATE,
CONSTRAINT FK_CLAVEAJEP
CONSTRAINT CATEGORIP
);
3.4.3.7. 7. Modificar las columnas de las tablas PEDIDOS y VENTAS para que
las UNIDADES_VENDIDAS y las UNIDADES_PEDIDAS puedan almacenar
cantidades numéricas de 6 dígitos.
3.4.3.9. 9. Añadir a las tablas PEDIDOS y VENTAS una nueva columna para
que almacenen el PVP del artículo.
3.4.3.10. 10. Crear una vista que se llame CONSERJES que contenga el
nombre del centro y el nombre de sus conserjes.
3.4.3.13. 13. Crear la tabla TASIG con las siguientes columnas: COD_ASIG
numérico, 2 posiciones y NOM_ASIG cadena de 20 caracteres.
(
NOM_ASIG VARCHAR2 (20),
);
3.4.4. Prácticas
3.4.4.1. Práctica 1
PLANTEAMIENTO
c. Crea las tablas en ORACLE procurando que las columnas tengan el tipo
y tamaño adecuado y con las siguientes restricciones:
CONNECT SYSTEM/SYSTEM;
CONNECT P31/P31;
NOMBRE VARCHAR2(50),
ESTADIO VARCHAR2(50),
CIUDAD VARCHAR2(20)
);
NOMBRE VARCHAR2(50),
APELLIDOS VARCHAR2(50),
FECHAELECCION DATE,
FECHANAC DATE,
);
CONSTRAINT FECHA_PARTIDOS
CONSTRAINT DIST_EQUIPOS
);
NOMBRE VARCHAR2(50),
FECHANAC DATE,
POSICION VARCHAR2(50)
CHECK (POSICION IN
CONSTRAINT EDAD
);
CREATE TABLE GOLES
DESCRIPCION VARCHAR2(100),
);
ALTER TABLE EQUIPO ADD (FUNDACION NUMBER(4) CHECK (FUNDACION > 1890)
);
3.4.4.2. Práctica 2
PLANTEAMIENTO
c. Crea las tablas en ORACLE procurando que las columnas tengan el tipo
y tamaño adecuado y con las siguientes restricciones:
CONNECT SYSTEM/SYSTEM;
CONNECT P32/P32;
NIF CHAR(9)
UNIQUE,
NOMBRE VARCHAR2(50),
DIRECCION VARCHAR2(100),
CIUDAD VARCHAR2(20)
);
(
MATRICULA CHAR(7)
PRIMARY KEY,
);
FECHA DATE,
);
DESCRIPCION VARCHAR2(100),
);
);
CREATE TABLE MATERIAL
NOMBRE VARCHAR2(50),
PRECIO NUMBER
);
);
3.4.4.3. Práctica 3
PLANTEAMIENTO
CONNECT SYSTEM/SYSTEM;
CONNECT P33/P33;
CREATE TABLE EMPRESAS
CIF CHAR(9),
NOMBRE VARCHAR2(50),
DIRECCION VARCHAR2(50),
TELEFONO CHAR(9),
);
DNI CHAR(9),
NOMBRE VARCHAR2(50),
APELLIDO1 VARCHAR2(50),
APELLIDO2 VARCHAR2(50),
TELEFONO CHAR(9),
EDAD NUMBER,
CIF CHAR(9),
);
DNI_PROF CHAR(9),
NOMBRE VARCHAR2(50),
APELLIDO1 VARCHAR2(50),
APELLIDO2 VARCHAR2(50),
DIRECCION VARCHAR2(50),
TELEFONO CHAR(9),
COD_TIPO_CURSO NUMBER(2),
TITULO VARCHAR2(50),
DURACION NUMBER,
);
N_CURSO NUMBER(3),
FECHA_INICIO DATE,
FECHA_FIN DATE,
DNI_PROF CHAR(9),
COD_TIPO_CURSO NUMBER(2),
REFERENCES TIPOS_CURSO
);
N_CURSO NUMBER(3),
DNI_ALUMNO CHAR(9),
NOTA NUMBER,
);