Sei sulla pagina 1di 40

Fundamentos

de Base de
Datos
Proyecto Base de Datos (VIDEOCLUB)

Integrantes:
Francisco Ricardo Garza Aguilera
Gilberto Francisco Blfeda Posada

PROFESOR: PICAZO VAZQUEZ JOEL ENRIQUE

INDICE
Descripcin Videoclub .
Definicin DDL y DML ...
Modelo Entidad-Relacin ..
Tablas ...

3
4
6
7

Algebra Relacional
Seleccin
Proyeccin ...
Reunin ..

8
9
9

Consultas SQL
5 preguntas abiertas ...
5 preguntas abiertas con clusula where
5 preguntas abiertas con clusula order by ..
3 preguntas abiertas con clusula group by .
3 preguntas abiertas con clusula having ..
3 preguntas abiertas con todo .
3 preguntas que relacionen 3 tablas o ms .
3 preguntas que relacionen 3 tablas y empleen todo

11
16
21
26
29
32
35
38
2

Descripcin de Videoclub
En esta base de datos manejamos 5 tablas: clientes, pelculas, alquileres, empleados y proveedores;
en estas tablas todos tienen un identificador nico en donde la tabla de clientes tiene un ID_CLIENTE
donde nos sirve para identificar nuestro cliente as como los alquileres que ha realizado desde la
tabla Alquileres, en esta tenemos los ID de todas las tablas en donde se lleva el control de la renta de
pelculas
CLIENTE almacena los datos de cada uno de los clientes del vdeo club: ID_CLIENTES,
NOMBRE_CLIENTE, CIUDAD_CLIENTE y TELEFONO_CLIENTE.
PELICULA almacena informacin sobre cada una de las pelculas de las cuales tiene: ID_PELICULA,
TITULO, GENERO, ID_PROVEEDOR.
ALQUILER almacena informacin de los prstamos que se han realizado.
EMPLEADO almacena informacin de los empleados que trabajan en el Videoclub.
PROVEEDORES almacena informacin de cada uno de los proveedores de nuestras pelculas.

DDL y DML
Lenguaje de definicin de datos (DDL: Data Definition Language): Sencillo lenguaje artificial para
definir y describir los objetos de la base de datos, su estructura, relaciones y restricciones. En la
prctica puede consistir en un subconjunto de instrucciones de otro lenguaje informtico. Aparte
suele poseer dos subconjuntos de instrucciones:

Lenguaje de definicin del almacenamiento de los datos (DSDL: Data Storage Definition
Language): permite especificar caractersticas fsicas de la base de datos (volmenes y
archivos donde van a ser almacenados los datos, etc).
Lenguaje de control de datos (DCL: Data Control Language): encargado del control y
seguridad de los datos (privilegios y modos de acceso, etc).

Lenguaje de manipulacin de datos (DML: Data Manipulation Language): Lenguaje artificial de


cierta complejidad que permite el manejo y procesamiento del contenido de la base de datos. En la
prctica puede consistir en un subconjunto de instrucciones de otro lenguaje informtico. Las
aplicaciones que trabajan sobre la base de datos se programan en un lenguaje de programacin (C,
Cobol, ...) insertando en el cdigo fuente sentencias del DML. Al utilizar un DML se deben especificar
los datos que sern afectados por las sentencias del lenguaje. Un DML puede tener o no
procedimientos, segn sea necesario especificar adems cmo deben obtenerse esos datos. Los DML
con procedimientos tienen sentencias de control de flujo como bucles o condicionales. Los DML sin
procedimientos son conocidos tambin como declarativos.

Comandos del DDL y del DML


Comandos DLL
Comando
CREATE

Descripcin
Utilizado para crear nuevas tablas, stored procedures e
ndices

DROP

Empleado para eliminar tablas, stored procedures e


ndices

ALTER

Utilizado para modificar las tablas agregando campos o


cambiando la definicin de los campos

Comandos DML
Comando

Descripcin

SELECT

Utilizado para consultar registros de la base de datos que


satisfagan un criterio determinado.

INSERT

Utilizado para cargar lotes de datos en la base de datos en


una nica operacin.

DELETE

Utilizado para modificar los valores de los campos y


registros especificados.

UPDATE

Utilizado para eliminar registros de una tabla de una base


de datos.

Modelo Entidad-Relacin.

Tablas

Algebra Relacional
Las relaciones base que forman las base de datos de un videoclub son las siguientes:
Clientes (ID_CLIENTE,NOMBRE_CLIENTE,CIUDAD_CLIENTE,TELEFONO_CLIENTE)
Pelculas (ID_PELICULA,TITULO,GENERO,ID_PROVEEDOR)
Alquileres (ID_ALQUILER,ID_CLIENTE,ID_PELICULA,FECHA_RETIRO,FECHA_ENTREGA,ID_EMPLEADO)
Empleado (ID_Empleado,Nombre,Apellidos,Telefono)
Proveedores (ID_Proveedor,Nomb_Empresa,Num_Peliculas,Telefono,E-mail)

Seleccin
Buscar pelcula de Genero de Accion y de Nombre Guerra Mundial Z
(Genero=Accion AND TITULO=Guerra Mundial Z (Peliculas))
Buscar todas las pelculas de Ciencia Ficcin
Genero=Ciencia Ficcion (Peliculas)
Buscar quien rento la pelcula de X-Men
ID_CLIENTE, NOMBRE_CLIENTE ( TITULO=X-Men)(Clientes Peliculas)
Buscar el titulo de las pelculas de Accion
TITULO ( Genero=Accion(Peliculas))
Buscar todos los clientes de Cd. Victoria
NOMBRE_CLIENTE ( CIUDAD_CLIENTE=Victoria(Clientes))

Proyeccin
Obtener los nombres de los clientes que tienen actualmente prestada una pelcula
ID_CLIENTE,NOMBRE_CLIENTE (Clientes)
Obtener el nombre de las pelculas de genero Accion
ID_PELICULA, TITULO ( GENERO=Accion(Peliculas))
Obtener el nombre de todos los proveedores de pelculas
ID_PROVEEDOR,NOMB_Empresa (Proveedores)
Obtener todos los nombres de los Empleados
ID_Empleado,Nombre (Empleado)
Obtener todas las pelculas del VideoClub
ID_PELICULA,TITULO (Peliculas)

Reunin
Obtener Clientes y su fecha de entrega
ID_CLIENTE,NOMBRE_CLIENTE,ID_PELICULA,FECHA_ENTREGA(Clientes Alquileres)
Obtener clientes que rentaron la pelcula con el ID 123453
ID_CLIENTE,NOMBRE_CLIENTE ( ID_PELICULA=123453 (Clientes Alquileres))
Obtener el nombre del empleado que atendi a Francisco Garca
ID_Empleado,Nombre ( ID_CLIENTE=Francisco Garca (Empleado Alquileres) )
Obtener los Nombres de los Proveedores de cada Pelcula
ID_Pelicula,TITULO,ID_Proveedor,Nomb_Empresa (Peliculas Proveedores)

Obtener registro de ID_CLIENTE, Nombre del cliente, su telfono, el ID de la pelcula, el nombre de la


pelcula, su gnero, el ID del alquiler, la fecha lmite de Entrega, el nombre del Empleado que lo
atendi y el nombre del Proveedor de esa pelcula.
T1 Clientes
Alquileres
ID_CLIENTE = ID_CLIENTE
T2 T1
Pelculas
ID_PELICULA = ID_PELICULA
T3 T2
Empleado
ID_Empleado = ID_Empleado
T4 T3
Proveedores
ID_Proveedor = ID_Proveedor

ID_CLIENTE,NOMBRE_CLIENTE,TELEFONO_CLIENTE,ID_PELICULA,TITULO,GENERO,ID_ALQUILER,
FECHA_ENTREGA,ID_Empleado,Nombre,ID_Proveedor,Nombre_Empresa (T4)

10

5 preguntas abiertas.
1.-Obtener el nombre de los clientes de la tabla clientes
Select Nombre_Cliente
From Clientes

11

2.-Obtener el ID y titulo de las pelculas disponibles de la tabla pelculas


Select ID_Pelicula, Titulo
From Peliculas

12

3.-Obtener todos los registros de la tabla alquileres.


Select *
From Alquileres

13

4. Obtener los registros de las tablas clientes y alquileres


Select C.NOMBRE_CLIENTE,J.*
From ALQUILERES J inner join PELICULAS E
on J.ID_PELICULA = E.ID_PELICULA
inner join Clientes C on J.ID_CLIENTE=c.ID_CLIENTE

14

5.- De la tabla alquileres agrupar los empleados que atendieron mas de una
ves
Select count(id_empleado)Total
From Alquileres
Group by id_empleado

15

5 preguntas abiertas con clusula where:


6.-Obtener de la tabla clientes el nombre y ciudad de los clientes de victoria
Select nombre_cliente,ciudad_cliente
From Clientes
Where (ciudad_cliente=victoria

16

7-Obtener de la tabla peliculas el id y titulo de las pelculas que sean de


accin
Select ID_Pelicula,Titulo
From Peliculas
Where Genero=Accion

17

8.-Obtener de la tabla proveedores, las empresas que reparten mas de 20


peliculas
Select Nomb_empresa,ID_Proveedor
From Proveedores
Where num_peliculas>20;

18

9.-Obtener de la tabla empleados, el id, nombre, apellidos de los empleados


que se llamen carlos
Select ID_Empleado, nombre, apellidos
From Empleados
Where nombre=Carlos

19

10.- obtener de la tabla Alquileres la cantidad de empleados con id=4


Select count(ID_Empleado)
From Alquileres
Where ID_Empleado=4

20

5 preguntas abiertas con clusula order by:


11.De la tabla Clientes ordenar alfabticamente las ciudades.
Select ID_Cliente,Nombre_Cliente,Ciudad_Cliente
From CLIENTES
Order by CIUDAD_CLIENTE

21

12.-De la tabla Empleados ordenar por apellidos


Select Nombre,Apellidos
From Empleados
Order by apellidos

22

13.-De la tabla alquileres ordenar por fecha de entrega de mayor a menor


Select id_alquiler,id_cliente,id_pelicula,fecha_entrega
From Alquileres
Order by fecha_entrega desc

23

14.-De la tabla Alquileres ordenar de mayor a menor el ID_empleado


Select ID_Alquiler,ID_Cliente,ID_Empleado
From Alquileres
Order by ID_Empleado desc

24

15.-De la tabla pelculas ordenar de menor a mayor el id_pelicula


Select ID_Pelicula,Titulo,Genero
From Peliculas
Order by ID_pelicula

25

3 preguntas abiertas con clusula group by:


16.-Agrupar el total de pelculas por genero
Select count (genero) Titulo, GENERO,ID_PELICULA
From PELICULAS
group by GENERO

26

17.-Agrupar de la tabla alquileres el total de peliculas que se retiraron el


mismo dia
Select count(fecha_retiro) Total, fecha_retiro
From Alquileres
Group by fecha_retiro

27

18.-Agrupar de la tabla clientes los que son una misma ciudad


Select count(Ciudad_cliente)Total, Ciudad_Cliente
From Clientes
Group by Ciudad_Cliente

28

3 preguntas abiertas con clusula having:


19.-De la tabla alquileres mostrar los empleados que atendieron mas de una
ves
SELECT ID_empleado, COUNT(*) Total
FROM alquileres
GROUP BY ID_empleado
HAVING (COUNT(*) > 1)

29

20.-De la tabla Alquileres mostrar la fecha de entrega que se repita mas de 1


veces
Select count (Fecha_Entrega) total, Fecha_Entrega
From Alquileres
Group by Fecha_Entrega
Having (count(fecha_entrega)>1)

30

21.-De la tabla clientes obtener los clientes que son de una misma ciudad
pero que sean mas de 2
Select Ciudad_Cliente, count(Ciudad_cliente)Total
From Clientes
Group by Ciudad_Cliente
Having (count(ciudad_cliente)>2)

31

3 preguntas abiertas con todo:


22.-Obtener de la tabla pelculas, el genero que se repite mas de una ves y
ordenar el nombre del genero por orden descendente.
Select Genero, count(genero)total
From Peliculas
Group by GENERO
Having(count(genero)>1)
Order by genero desc

32

23.-Obtener el total de las pelculas que fueron retiradas el mismo dia y


ordenarlas por orden descendente
Select Fecha_retiro,count(Fecha_retiro)Total
From Alquileres
Group by Fecha_retiro
Having (count(Fecha_retiro)>1)
Order by Fecha_Retiro desc

33

24.-Obtener de la tabla alquileres el id de los empleados que se repitan mas


de 1 vez y ordenarlos por orden ascendente
Select id_empleado,count(id_empleado)
From Alquileres
Group by id_empleado
Having (count(id_empleado)>1)
Order by im_empleado asc

34

3 preguntas que relacionen 3 tablas o ms:


25.-Obtener el nombre del cliente con el titulo de pelcula que rento y el
empleado que lo atendio.
Select J.ID_CLIENTE, J.ID_PELICULA, J.ID_EMPLEADO,
E.NOMBRE_CLIENTE,d.Nombre
From ALQUILERES J inner join CLIENTES E
on J.ID_CLIENTE = E.ID_CLIENTE
inner join Empleados d on J.ID_EMPLEADO=d.ID_Empleado

35

26.-Obtener el titulo de la pelcula, la fecha de entrega y nombre del


empleado
Select E.TITULO,J.FECHA_ENTREGA,d.Nombre
From ALQUILERES J inner join PELICULAS E
on J.ID_PELICULA = E.ID_PELICULA
inner join Empleados d on J.ID_EMPLEADO=d.ID_Empleado

36

27.-Obtener el nombre del cliente que rento la pelcula con id 123453, el titulo
de dicha pelcula y el proveedor que suministro esta pelcula.
Select C.NOMBRE_CLIENTE, j.ID_PELICULA,e.TITULO,D.Nomb_Empresa
From ALQUILERES J inner join PELICULAS E
on J.ID_PELICULA = E.ID_PELICULA
inner join PROVEDORES d on d.ID_Proveedor=E.ID_PROVEEDOR
inner join Clientes C on J.ID_CLIENTE=c.ID_CLIENTE
where j.ID_PELICULA=123453

37

3 preguntas que relacionen 3 tablas y empleen todo:


28.-Obtener el nombre de los clientes y la pelcula que rentaron y el nombre
del empleado que los atendio y ordenados por nombres de pelculas
Select C.NOMBRE_CLIENTE,e.TITULO,k.Nombre
From ALQUILERES J inner join PELICULAS E
on J.ID_PELICULA = E.ID_PELICULA
inner join PROVEDORES d on d.ID_Proveedor=E.ID_PROVEEDOR
inner join Clientes C on J.ID_CLIENTE=c.ID_CLIENTE
Inner join Empleados K on J.ID_EMPLEADO=K.ID_Empleado
group by j.ID_EMPLEADO,C.NOMBRE_CLIENTE, e.TITULO,k.Nombre

order by e.TITULO;

38

29.- obtener los clientes que alquilaron el genero romantica y los nombres de
los proveedores que tienen el genero de romntica
Select C.NOMBRE_CLIENTE,e.TITULO,e.GENERO,d.Nomb_Empresa
From ALQUILERES J inner join PELICULAS E
on J.ID_PELICULA = E.ID_PELICULA
inner join PROVEDORES d on d.ID_Proveedor=E.ID_PROVEEDOR
inner join Clientes C on J.ID_CLIENTE=c.ID_CLIENTE
Inner join Empleados K on J.ID_EMPLEADO=K.ID_Empleado
group by C.NOMBRE_CLIENTE, e.TITULO,e.GENERO,d.Nomb_Empresa
having e.GENERO='Romantica'
order by e.TITULO;

39

30.- obtener el id de los clientes, el nombre de los clientes que alquilaron el


genero Accion, el nombre de pelcula y los nombres de los proveedores que
tienen el genero de accin y mostrar la fecha de retiro y entrega
Select
J.ID_CLIENTE,C.NOMBRE_CLIENTE,e.TITULO,e.GENERO,d.Nomb_Empresa,j.FECH
A_RETIRO,j.FECHA_ENTREGA
From ALQUILERES J inner join PELICULAS E
on J.ID_PELICULA = E.ID_PELICULA
inner join PROVEDORES d on d.ID_Proveedor=E.ID_PROVEEDOR
inner join Clientes C on J.ID_CLIENTE=c.ID_CLIENTE
Inner join Empleados K on J.ID_EMPLEADO=K.ID_Empleado
group by J.ID_Cliente,C.NOMBRE_CLIENTE,
e.TITULO,e.GENERO,d.Nomb_Empresa,j.FECHA_RETIRO,j.FECHA_ENTREGA
having e.GENERO='Accion'
order by e.TITULO;

40

Potrebbero piacerti anche