Sunteți pe pagina 1din 21

11.

- BEBEDORES
Suponga que tenemos una Base de Datos de bebedores de cerveza, que tiene los siguientes conjuntos: BEBEDOR(nombre_bebedro,domicilio_bebedor) BAR(nombre_bar, domicilio_bar_horario) CERVEZA(marca, grados, tipo) FRECUENTA para indicarnos el (los) bar(es) que frecuenta cada bebedor GUSTA indica la(s) cerveza(as) preferidas por cada bebedor SIRVE nos da la cerveza(s) que sirve, cada bar y el precio de venta Considere las siguientes cuestiones siguientes sobre la base de datos. Dado el nombre dek bebedor saber el domicilio de este. ii) Dado el nombre del bebedor , conocer el nombre y domicilio de los bares que sirvan alguna cerveza que le guste iii) Dado el nombre del bebedor y el nombre del bar , conocer las cervezas que sirve, que le gustan al bebedor y que tenga el maximo valor de grados iv) Dado del nombre del bebedor y el nombre del bar, cuales son las cervezas que no le gustan y que vende el bar Se debe mantener integridad de dominio y referencial en la base de datos FORMATO DE ENTREGA DEL PROYECTO Hoja de requerimientos Diagrama entidad relacion realizado con Power Designer Modelo relacional realizado con Power Designer Listado de programas en SQL que contengan lo siguiente: Creacion de la base de datos Creacion de tablas Llaves foraneas y primarias segn corresponda Creacion de reglas, constraints o defaults que permitan integridad de dominio y/o reglas de negocio Alta de 10 registros a las tablas catalogo de la BD y los registros correspondientes an las tablas relacion Creacion de indices en campos lideres de consulta comun Procedimiento almacenado sp_inserta que permite insercion de registros d e alguna tabla catalogo Procedimiento almacenado sp_actualiza que permite actualizacion de registros de alguna tabla catalogo Procedimiento almacenado sp_borra que permite eliminacion de registros de alguna tabla catalogo Triggers necesarios para el control de la integridad de la informacion Creacion de consultas que satisfagan la hoja de requerimientos. i)

DIAGRAMA ENTIDAD RELACION DE LA BASE DE DATOS BEBEDORES

MODELO RELACIONAL DE LA BASE DE DATOS BEBEDORES

BASE DE DATOS BEBEDORES


CREANDO LA BASE DE DATOS:

CREANDO LA TABLA CERVEZA:

CONSULTAS 1.- Dado el nombre de un bebedor , saber el domicilio de este Nombre del bebedor: Manuel Alejandro

2.- Dado el nombre de un bebedor , conocer el nombre y domicilio de los bares que sirvan alguna cerveza que le guste

select BAR.nombre_bar, BAR.domicilio_bar FROM BEBEDOR INNER JOIN GUSTA ON BEBEDOR.id_bebedor=GUSTA.id_bebedor INNER JOIN CERVEZA ON GUSTA.id_cerveza=CERVEZA.id_cerveza INNER JOIN SIRVE ON CERVEZA.id_cerveza=SIRVE.id_cerveza INNER JOIN BAR ON SIRVE.id_bar=BAR.id_bar AND BEBEDOR.nombre_bebedor='Pedro Torres'

3.- Dado el nombre del bebedor y el nombre del bar , conocer las cervezas que sirve, que le gusten al bebedor y que tenga el maximo valor de grados select CERVEZA.marca, CERVEZA.grados FROM CERVEZA, GUSTA, BEBEDOR,SIRVE,BAR where CERVEZA.id_cerveza=GUSTA.id_cerveza AND GUSTA.id_bebedor=BEBEDOR.id_bebedor AND BEBEDOR.nombre_bebedor='Luis Enrique' AND CERVEZA.id_cerveza=SIRVE.id_cerveza and SIRVE.id_bar=BAR.id_bar AND BAR.nombre_bar='Bar Estrella'

select CERVEZA.marca, CERVEZA.grados FROM CERVEZA, GUSTA, BEBEDOR,SIRVE,BAR where CERVEZA.id_cerveza=GUSTA.id_cerveza AND GUSTA.id_bebedor=BEBEDOR.id_bebedor AND BEBEDOR.nombre_bebedor='Luis Enrique' AND CERVEZA.id_cerveza=SIRVE.id_cerveza and SIRVE.id_bar=BAR.id_bar AND BAR.nombre_bar='Bar Estrella'

4.- Dado el nombre del bebedor y el nombre del bar , cuales son las cervezas que no le gustan y que vende el bar

PROCEDIMIENTOS ALMACENADOS: Sp_inserta

ACTUALIZANDO TABLA DE CERVEZA create procedure sp_actualiza2 @id_c varchar(7), @mar varchar(25) , @grad integer, @tip varchar(25) as begin if Exists(Select * From CERVEZA Where id_cerveza = @id_c) begin UPDATE CERVEZA SET marca = @mar , grados = @grad, tipo = @tip WHERE id_cerveza = @id_c end else begin print "No existe el registro especificado. " end end go /*ejecucion*/ sp_actualiza 'cer_10' , 'EXQUISITA',1,'clara' ANTES DE ACTUALIZAR EL REGISTRO cer_10

Aplicacin ACTUALIZAR:

Despus de actualizar:

PROCEDIMIENTO QUE BORRA EUN REGISTRO DE LA TABLA frecuenta create procedure sp_borra @id_f varchar(7) as begin if Exists(Select * From FRECUENTA Where id_frecuenta = @id_f) begin print "este elemento se borrara" DELETE FROM FRECUENTA WHERE id_frecuenta = @id_f end else begin print "No existe este registro" end end GO /*Ejecucion*/ sp_borra 'frec_09' LA TABLA ANTES DE BORRAR EL REGISTRO CON id_cereveza=frec_09

Y AL BORRAR EL REGISTRO:

CREACION DE INDICES CREATE index indice_bebedores ON BEBEDOR (id_bebedor ASC) Go

CREATE index indice_bar ON BAR (id_bar ASC) go

CREATE index indice_cerveza ON CERVEZA (id_cerveza ASC) go

S-ar putea să vă placă și