Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Una vez que tenemos instalado el motor de la base de datos y la base de datos de ejemplo, vamos a crear un esquema el cual lo llamaremos LIBRERIA. Este es el Modelo Conceptual con el cual trabajaremos:
Modelo Relacional
A partir del modelo anterior llegamos al Modelo Relacional, como se muestra a continuacin:
Script01.sql CREATE USER LIB IDENTIFIED BY LIB DEFAULT TABLESPACE DEVUAP_DATA; TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK ; CREATE ROLE role_devuap; GRANT ALTER SESSION , ALTER ANY TABLE , ALTER ANY PROCEDURE , ALTER ANY SEQUENCE , ALTER ANY ROLE , ALTER ANY TRIGGER , CREATE SESSION , CREATE TABLE , CREATE VIEW , CREATE ANY SYNONYM , CREATE PROCEDURE , CREATE SEQUENCE , CREATE ROLE , CREATE TRIGGER , CREATE DATABASE LINK , CREATE SNAPSHOT , SELECT ANY TABLE , INSERT ANY TABLE , UPDATE ANY TABLE
, SELECT ANY SEQUENCE , EXECUTE ANY PROCEDURE , EXECUTE ANY LIBRARY , DROP ANY SYNONYM , DROP ANY TABLE , DROP ANY VIEW , DROP ANY PROCEDURE , DROP ANY SEQUENCE , DROP ANY TRIGGER TO role_devuap; GRANT EXECUTE ON standard TO role_devuap; grant role_devuap to LIB; grant dba to LIB; grant resource to LIB; -- SYSTEM PRIVILEGES -- QUOTAS ALTER USER LIB QUOTA UNLIMITED ON DEVUAP_DATA; El script01.sql va a crear el usuario LIB, el rol devuap para dar permiso a las principales funcin de uso de la base de datos al usuario y despus se va levantar los servicios para el usuario. Nota: La expresin CREATE USER LIB IDENTIFIED BY LIB crea el usuario LIB y le asigna la contrasea LIB (IDENTIFIED BY LIB). Verificar Usuario Creado Se verifica el usuario creado en opcin Other Users de la conexin SYS tal cmo lo muestra la figura.
Paso 2 Luego ingresamos creamos una nueva conexin con el usuario que hemos creado (LIB) y accdemos al edito del sql developer.
Script02.sql CREATE TABLE Autores ( Aut_ID NUMBER (8), Aut_Nombre VARCHAR2 (30) NOT NULL, Aut_Inicial_Medio VARCHAR2 (1), Aut_Apellido VARCHAR2 (30) NOT NULL, Aut_Fecha_Nac DATE, Aut_Genero VARCHAR2 (1) NOT NULL, Aut_Contacto VARCHAR2 (30), Aut_Otros_Detalles VARCHAR2 (200) ); CREATE TABLE Clientes ( Cli_ID NUMBER (8), Cli_Nombre VARCHAR2 (30) NOT NULL, Cli_Direccion VARCHAR2 (40) NOT NULL, Cli_Telefono VARCHAR2 (15), Cli_Email VARCHAR2 (30) ); CREATE TABLE Categorias_Libros ( Cat_ID number(8), Cat_Descripcion varchar2(60) NOT NULL );
CREATE TABLE Libros ( Lib_ID NUMBER (8), Lib_Aut_ID NUMBER (8) NOT NULL, Lib_Cat_ID NUMBER (8) NOT NULL, Lib_ISBN VARCHAR2 (15) NOT NULL, Lib_Fecha_Publicacion DATE, Lib_Fecha_Adquirido DATE, Lib_Titulo_Obra VARCHAR2 (100) NOT NULL, Lib_Precio_Recomendado NUMBER (8,2) NOT NULL, Lib_Comentario VARCHAR2 (200) ); CREATE TABLE Pedidos ( Ped_ID NUMBER (8), Ped_Cli_ID NUMBER (8) NOT NULL, Ped_Fecha_Pedido DATE NOT NULL, Ped_Monto_Pedido NUMBER (8,2) NOT NULL ); CREATE TABLE Detalle_Pedidos ( Det_ID NUMBER (8), Det_Ped_ID NUMBER (8) NOT NULL, Det_Lib_ID NUMBER (8) NOT NULL, Det_Precio_Acordado NUMBER (8,2) NOT NULL, Det_Comentario VARCHAR2 (200) ); --prompt ...Creando las PK alter table autores add constraint aut_id_pk primary key (aut_id); alter table clientes add constraint cli_id_pk primary key (cli_id); alter table pedidos add constraint ped_id_pk primary key (ped_id); alter table categorias_libros add constraint cat_id_pk primary key (cat_id); alter table libros add constraint lib_id_pk primary key (lib_id); alter table detalle_pedidos add constraint det_id_pk primary key (det_id); --prompt ...Creando las FK
alter table libros add CONSTRAINT Lib_Aut_fk FOREIGN KEY (Lib_Aut_ID) REFERENCES autores (Aut_ID); alter table libros add CONSTRAINT Lib_Cat_fk FOREIGN KEY (Lib_Cat_ID) REFERENCES categorias_libros (Cat_ID); alter table pedidos add CONSTRAINT Ped_Cli_fk FOREIGN KEY (Ped_Cli_ID) REFERENCES clientes (Cli_ID); alter table detalle_pedidos add CONSTRAINT Det_Ped_fk FOREIGN KEY (Det_Ped_ID) REFERENCES pedidos (Ped_ID); alter table detalle_pedidos add CONSTRAINT Det_Lib_fk FOREIGN KEY (Det_Lib_ID) REFERENCES libros (Lib_ID); --prompt ...Creando los Indices CREATE INDEX ISBN_idx1 ON Libros (Lib_ISBN); El script02.sql creara las tablas de la base de datos as como los ndices principales de acuerdo a la normatividad (relacin entre las tablas). Paso 3 Ejecutar el script03.sql para insertar los datos. --REM INSERTING into AUTORES Insert into AUTORES (AUT_ID, AUT_NOMBRE, AUT_INICIAL_MEDIO, AUT_APELLIDO, AUT_FECHA_NAC, AUT_GENERO, AUT_CONTACTO, AUT_OTROS_DETALLES) Values (1, 'LOUISA', 'M', 'ALCOTT', NULL, 'F', 'null', 'null'); Insert into AUTORES (AUT_ID, AUT_NOMBRE, AUT_INICIAL_MEDIO, AUT_APELLIDO, AUT_FECHA_NAC, AUT_GENERO, AUT_CONTACTO, AUT_OTROS_DETALLES) Values (2, 'ISABEL', NULL, 'ALLENDE', NULL, 'F', 'null', 'null'); COMMIT; --REM INSERTING into CATEGORIAS_LIBROS Insert into CATEGORIAS_LIBROS (CAT_ID, CAT_DESCRIPCION) Values (1, 'UNIVERSAL'); Insert into CATEGORIAS_LIBROS (CAT_ID, CAT_DESCRIPCION) Values (2, 'TERROR'); COMMIT; --REM INSERTING into CLIENTES Insert into CLIENTES (CLI_ID, CLI_NOMBRE, CLI_DIRECCION, CLI_TELEFONO, CLI_EMAIL) Values (1, 'GONZALES EDGARDO', 'JR. PTO. MALDONADO 312', '2449735', 'egonzalez@yaju.com'); Insert into CLIENTES (CLI_ID, CLI_NOMBRE, CLI_DIRECCION, CLI_TELEFONO, CLI_EMAIL) Values (2, 'MUOZ EDITH', 'AA.HH. VARGAS GUERRA MZ. A LT. 10', '8752055', 'emunoz@jotmail.com'); COMMIT; --REM INSERTING into LIBROS
Insert into LIBROS (LIB_ID, LIB_AUT_ID, LIB_CAT_ID, LIB_ISBN, LIB_FECHA_PUBLICACION, LIB_FECHA_ADQUIRIDO, LIB_TITULO_OBRA, LIB_PRECIO_RECOMENDADO, LIB_COMENTARIO) Values (1, 1, 1, '950-08-1521-4', TO_DATE('01/01/2003 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('11/23/2006 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 'MUJERCITAS', 24.2, NULL); Insert into LIBROS (LIB_ID, LIB_AUT_ID, LIB_CAT_ID, LIB_ISBN, LIB_FECHA_PUBLICACION, LIB_FECHA_ADQUIRIDO, LIB_TITULO_OBRA, LIB_PRECIO_RECOMENDADO, LIB_COMENTARIO) Values (2, 2, 2, '9789871138906', TO_DATE('04/02/2007 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('04/11/2007 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 'LA CASA DE LOS ESPIRITUS', 34.5, NULL); COMMIT; --REM INSERTING into PEDIDOS Insert into PEDIDOS (PED_ID, PED_CLI_ID, PED_FECHA_PEDIDO, PED_MONTO_PEDIDO) Values (1, 1, TO_DATE('02/11/2011 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 0); Insert into PEDIDOS (PED_ID, PED_CLI_ID, PED_FECHA_PEDIDO, PED_MONTO_PEDIDO) Values (2, 3, TO_DATE('02/11/2011 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 0); COMMIT; --REM INSERTING into DETALLE_PEDIDOS Insert into DETALLE_PEDIDOS (DET_ID, DET_PED_ID, DET_LIB_ID, DET_PRECIO_ACORDADO, DET_COMENTARIO) Values (1, 1, 115, 34.6, 'Null'); Insert into DETALLE_PEDIDOS (DET_ID, DET_PED_ID, DET_LIB_ID, DET_PRECIO_ACORDADO, DET_COMENTARIO) Values (2, 2, 14, 32, 'Null'); COMMIT;