Está en la página 1de 11

Gua de Creacin del Esquema LIBRERA

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:

El modelo consiste en la gestin de una librera.

Modelo Relacional
A partir del modelo anterior llegamos al Modelo Relacional, como se muestra a continuacin:

Crear el esquema LIBRERA


Una vez que tenemos todo lo necesario instalado, abrimos el SQL DEVELOPER, creamos el esquema LIBRERIA con sus tablas y para ello vamos a utilizar los scripts (Script01.sql,Script02.sql y Script03.sql) PASO 1 Ingresamos con el usuario SYS:

Luego copiamos y pegamos el srcipt01.sql en el editor

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.

Luego le damos editar al usuario

Verificamos los roles que le asignamos al usuario LIB.

As como las cuotas de espacio

Paso 2 Luego ingresamos creamos una nueva conexin con el usuario que hemos creado (LIB) y accdemos al edito del sql developer.

En el editor del usuario LIB pegamos el contenido del script02.sql y lo ejecutamos.

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;

También podría gustarte