AGENCIA DE VIAJES
Una agencia de viajes desea informatizar toda la gestión de los viajeros que acuden a la agencia y los viajes que estos realizan. Tras ponernos en contacto con la agencia, ésta nos proporciona la siguiente información.
“La agencia desea guardar la siguiente información de los viajeros: dni, nombre, dirección y teléfono.
De cada uno de los viajes que maneja la agencia interesa guardar el código de viaje, número de plazas, fecha en la que se realiza el viaje y otros datos. Un viajero puede realizar tantos viajes como desee con la agencia. Un viaje determinado sólo puede ser cubierto por un viajero.
Cada viaje realizado tiene un destino y un lugar de origen. De cada uno de ellos se quiere almacenar el código, nombre y otros datos que puedan ser de interés. Un viaje tiene un único lugar de destino y un único lugar de origen”.
Realizar el modelo E-R y pasarlo al modelo de datos relacional. Diseñar las tablas en Access, realizar las oportunas relaciones entre tablas e introducir cinco registros en cada una de las tablas.
VIAJERO(dni, nombre, dirección, tfno)
VIAJE(código, num_plazas, fecha, otros_datos, dni_viajero, código_origen, código_destino)
ORIGEN(código, nombre, otros_datos)
DESTINO(código, nombre, otros_datos).
1.-INGRESAMOS A ORACLE SQL DEVELOPER donde Creo una Conexión Denominada Conexión_Admi_Agencia e ingresamos como usuario Administrador.
Nombre de Conexion: Conexión_Admi_AgenciaUsuario: system
Contraseña: "Aqui escribimos la especificada en la instalacion de Oracle"
2.-Creamos un Tablespace llamado Agencia.
Create tablespace Agencia
datafile 'C:\agencia01.dbf' size 10M
autoextend on maxsize 50M
online;
--Mostramos el Tablespace:-
3.-Creamos un usuario llamado User_Viaje
create user User_Viaje
identified by usevi
default tablespace Agencia
quota unlimited on Agencia
account unlock;
--Asignamos privilegios o roles:
grant connect,resource to User_Viaje;
Ingresamos a Oracle 10g XE DATABASE, y observamos el usuario creado:
4.- Creamos una nueva conexión denominada Conexion_User_Agencia, en la cual vamos a Crear todas las tablas que nos pide el ejercicio:
Nombre de Conexion: Conexion_User_Agencia
Usuario: User_viaje
Contraseña: "Aqui escribimos la especificada en la creacion del usuario en la linea: identified by que es uservi"
5.-Creamos la tabla Viajero:
--Creacion tabla viajero(tablespace:Agencia)
create table viajero(
dni number(7) primary key not null,
nombre varchar2(25) not null,
direccion varchar2(30) not null,
tfno varchar(10) not null
)tablespace Agencia;
--inserto datos a la tabla Viajero
Insert into Viajero values(1101,'Shakira','Colombia','096969969');
insert into Viajero values(1102,'Eddi Lover','Cuba','0525');
insert into Viajero values(1103,'Don Omar','Cuba','1200254');
insert into Viajero values(1104,'Daddy Yankee','Puerto Rico','0963696');
insert into Viajero values(1105,'Eddy Herrera','Cuba','3625');
Mostramos la tabla creada con los registros ingresados:
select * from viajero;
6.-Creamos la tabla Origen:
--Creacion tabla Origen(tablespace:Agencia)
create table Origen(
codigo number(7) primary key not null,
nombre varchar2(25) not null,
otro_datos varchar2(40)
)tablespace Agencia;
--inserto datos a la tabla Origen
insert into Origen values(1411,'Ecuador','???');
insert into Origen values(1412,'Colombia','???');
insert into Origen values(1413,'Cuba','???');
insert into Origen values(1414,'Caracas','???');
insert into Origen values(1415,'Brazil','???');
Mostramos la tabla creada con los registros ingresados:
select * from Origen;
7.-Creamos la tabla Destino:
--Creacion tabla Destino(tablespace:Agencia)
create table Destino(
codigo number(7) primary key not null,
nombre varchar2(25) not null,
otro_datos varchar2(40)
)tablespace Agencia;
--inserto datos a la tabla Destino
insert into Destino values(4445,'Islas Galapagos','');
insert into Destino values(4450,'Las Vegas Nevadas','');
insert into Destino values(4455,'Orlando','');
insert into Destino values(4460,'Maimi','');
insert into Destino values(4475,'Madrid','');
Mostramos la tabla creada con los registros ingresados:
select * from Destino;
8.-Creamos la tabla Viaje:
--Creacion tabla Viaje(tablespace:Agencia)
create table Viaje(
codigo number(7) primary key not null,
num_plazas number(3) not null,
fecha date not null,
otros_datos varchar2(40),
dni_viajero number(7) not null,
codigo_origen number(7) not null,
codigo_destino number(7) not null,
foreign key(dni_viajero) references viajero(dni),
foreign key(codigo_origen) references Origen(codigo),
foreign key(codigo_destino) references Destino(Codigo)
)tablespace Agencia;
--inserto datos a la tabla Viaje
insert into Viaje values(12300,55,to_date('20/05/2009','dd,mm,yy'),' ',1105,1411,4455);
insert into Viaje values(12310,70,to_date('22/03/2009','dd,mm,yy'),' ',1104,1413,4460);
insert into Viaje values(12315,20,to_date('12/07/2009','dd,mm,yy'),' ',1103,1414,4445);
insert into Viaje values(12320,89,to_date('01/08/2009','dd,mm,yy'),' ',1102,1415,4475);
insert into Viaje values(12325,47,to_date('04/06/2009','dd,mm,yy'),' ',1101,1412,4445);
Mostramos la tabla creada con los registros ingresados:
select * from Viaje;
La siguiente consulta permite mostrar el nombre del viajero, el origen y el destino del viaje; de todas las personas que salieron desde la fecha 01/06/2009 en adelante:
EJERCICIO 2:
EMPRESA DE PROYECTOS
Una empresa desea diseñar una base de datos para almacenar en ella toda la información generada en cada uno de los proyectos que ésta realiza.
“De cada uno de los proyectos realizados interesa almacenar el código, descripción, cuantía del proyecto, fecha de inicio y fecha de fin. Los proyectos son realizados por clientes de los que se desea guardar el código, teléfono, domicilio y razón social. Un cliente puede realizar varios proyectos, pero un solo proyecto es realizado por un único cliente.
En los proyectos participan colaboradores de los que se dispone la siguiente información: nif, nombre, domicilio, teléfono, banco y número de cuenta. Un colaborador puede participar en varios proyectos. Los proyectos son realizados por uno o más colaboradores.
Los colaboradores de los proyectos reciben pagos. De los pagos realizados se quiere guardar el número de pago, concepto, cantidad y fecha de pago. También interesa almacenar los diferentes tipos de pagos que puede realizar la empresa. De cada uno de
los tipos de pagos se desea guardar el código y descripción. Un tipo de pago puede pertenecer a varios pagos”.
PROYECTO(código, descripción, fecha_inicio, fecha_fin, cuantía, código_cliente)
COLABORADOR(nif, nombre, domicilio, banco, número_cuenta, tfno)
PARTICIPAN(nif_colaborador, código_proyecto)
CLIENTE(código, num_social, domicilio, tfno)
PAGO(número, concepto, cantidad, fecha_pago, nif_colaborador, código_tipo_pago)
TIPO_PAGO(código, descripción)
1.-Creo una Conexión Denominada Conexión_Admin_Proyecto e ingresamos como usuario Administrador.
2.-Creamos un Tablespace llamado Proyectos.
create tablespace Proyectos
datafile 'C:\Proyect.dbf' size 5M
autoextend on maxsize 50M
online;
--Mostramos el Tablespace:-
select * from v$tablespace;
3.-Creamos un usuario llamado Cliente:
--creación de usuario
create user Cliente
identified by cliente
default tablespace Proyectos
quota unlimited on Proyectos
account unlock;
--Asignamos privilegios o roles:
grant connect,resource to Cliente;
Ingresamos a Oracle XE DATABASE, y observamos el usuario creado:
4.- Creamos una nueva conexión denominada Conexion_User_Proyecto:
5.-Creamos la tabla Tipo_pago:
--Creacion tabla Tipo_pago(tablespace:Proyectos)
create table Tipo_Pago(
codigo number(4) primary key not null,
descripcion varchar(25) not null
)tablespace Proyectos;
--inserto datos a la tabla
insert into Tipo_pago values(147,'Cheque');
insert into Tipo_pago values(148,'Efectivo');
--Mostramos la tabla creada con los registros ingresados:
select * from tipo_pago;
6.-Creamos la tabla Colaborador:
--Creacion tabla Colaborador(tablespace:Proyectos)
create table Colaborador(
nif number(4) primary key not null,
nombre varchar2(25) not null,
domicilio varchar(30) not null,
banco varchar(25) not null,
numero_cuenta number not null,
tfno number(10)not null
)tablespace Proyectos;
--inserto datos a la tabla
insert into Colaborador values(505,'Hector Yanez','Pimocha','Pichincha',4785696900,089696005);
insert into Colaborador values(506,'Raul Romero','Pimocha','BNF',4373616900,089496001);
insert into Colaborador values(507,'Edison Mejia','Pimocha','Internacional',4878196855,089896009);
insert into Colaborador values(508,'Michaell Leon','Pimocha','Guayaquil',6958474152,089799077);
insert into Colaborador values(509,'Luis Mendez','Pimocha','Internacional',3652414785,058585815);
--Mostramos la tabla creada con los registros ingresados:
select * from colaborador;
7.-Creamos la tabla Cliente:
--Creacion tabla Cliente(tablespace:Proyectos)
create table Cliente(
codigo number(4) primary key not null,
nombre varchar(30) not null,
num_social number not null,
domicilio varchar(30) not null,
tfno number(10)not null
)tablespace Proyectos;
--inserto datos a la tabla
insert into cliente values(1111,'Samuel Falconi',12345,'cdla. el mamey',05685885);
insert into cliente values(2222,'Sara Torres',11200,'Jujan',089896003);
insert into cliente values(3333,'Lorena Espin',02022,'Ventanas',042589589);
insert into cliente values(4444,'Freddy Flores',89565,'Baba',025896748);
insert into cliente values(5555,'Samantha Maize',89878,'Boliche',089999990);
--Mostramos la tabla creada con los registros ingresados:
select * from cliente;
8.-Creamos la tabla Proyecto:
--Creacion tabla Proyecto(tablespace:Proyectos)
create table Proyecto(
codigo number(4) primary key not null,
descripcion varchar2(50) not null,
fecha_inicio date not null,
fecha_fin date not null,
cuantia varchar(15),
codigo_cliente number(4)not null,
foreign key(codigo_cliente) references Cliente(codigo)
)tablespace Proyectos;
--inserto datos a la tabla
insert into Proyecto values(1101,'asfaltado de vias',to_date('10/05/2008','DD,MM,YY,'),to_date('10/05/2009','DD,MM,YY'),'10',2222);
insert into Proyecto values(1102,'alcantarillado central',to_date('10/05/2008','DD,MM,YY,'),to_date('10/05/2009','DD,MM,YY'),'10',1111);
insert into Proyecto values(1103,'Mantenimiento de Vias',to_date('10/05/2008','DD,MM,YY,'),to_date('02/05/2010','DD,MM,YY'),'10',1111);
insert into Proyecto values(1104,'Construccion de Puente vecinal',to_date('10/05/2007','DD,MM,YY,'),to_date('02/05/2010','DD,MM,YY'),'10',3333);
insert into Proyecto values(1105,'Compra de Vehiculos',to_date('03/03/2008','DD,MM,YY,'),to_date('05/05/2009','DD,MM,YY'),'10',4444);
--Mostramos la tabla creada con los registros ingresados:
select * from proyecto;
9.-Creamos la tabla Pago:
--Creacion tabla Pago(tablespace:Proyectos)
create table Pago(
numero number(4) primary key not null,
concepto varchar2(50) not null,
cantidad integer not null,
fecha_pago date not null,
nfi_colaborador number(4) not null,
codigo_tipo_pago number(4)not null,
foreign key(nfi_colaborador) references Colaborador(nif),
foreign key(codigo_tipo_pago) references Tipo_pago(codigo)
)tablespace Proyectos;
--inserto datos a la tabla
insert into Pago values(1,'Cancelacion de Sueldo',600,to_date('31/07/2009','DD,MM,YY'),509,147);
insert into Pago values(2,'Viaticos',25,to_date('01/08/2009','DD,MM,YY'),506,148);
insert into Pago values(3,'Movilizacion y Transporte',10,to_date('05/08/2009','DD,MM,YY'),508,148);
insert into Pago values(4,'Cancelacion Sueldo',250,to_date('30/05/2009','DD,MM,YY'),505,147);
--Mostramos la tabla creada con los registros ingresados:
select * from Pago;
10.-Creamos la tabla Participan:
--Creacion tabla Participan(tablespace:Proyectos)
create table Participan(
nif_colaborador number(4) not null,
codigo_proyecto number(4)not null,
foreign key(nif_colaborador) references Colaborador(nif),
foreign key(codigo_proyecto) references Proyecto(codigo)
)tablespace Proyectos;
--inserto datos a la tabla
insert into Participan values(505,1101);
insert into Participan values(506,1102);
insert into Participan values(508,1103);
insert into Participan values(505,1102);
insert into Participan values(509,1101);
--Mostramos la tabla creada con los registros ingresados:
select * from participan;
11.-Compruebo la relación mediante una consulta:
La siguiente consulta muestra la cantidad de proyectos que tiene asignado el cliente con código 1111, donde muestra el nombre del cliente, descripción del proyecto.
select Cliente.nombre,Proyecto.Descripcion from Cliente,Proyecto where ((Cliente.codigo=Proyecto.codigo_cliente)and(Proyecto.Codigo_cliente=1111));
No hay comentarios:
Publicar un comentario