"#$%&'%( ) %#*(%'+, -* .(/*/ -* -(&0/ %0, 1/0 -* /02&3(#*
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Objetivos •
Comprender que datos existen y como se relacionan entre ellos, independientemente de cómo son o serán almacenados físicamente.
•
Identificar y clasificar los elementos:ENTIDAD - RELACIÓN Y DIAGRAMA DE
CLASES.
análisis de CARDINALIDAD PARA ENTIDAD RELACION Y DIAGRAMA • Hacer DE CLASES. • Proporcionar atributos y operaciones necesarios. • Comprender que información y operación se necesita para hacer óptimo el proceso de almacenamiento.
• • •
Identificar y señalar los diferentes tipos de llaves que se utilizan en los diagramas de Clases y E-R. Realizar un diagrama de Entidad - Relación con todos sus elementos. Convertir diagrama de Entidad-Relación a diagrama de Clases con todos sus elementos.
•
Aprender la modelación de diagramas por software teniendo como herramienta de trabajo MySQLWorkbench.
• • •
Identificar referencia.las llaves Foráneas y enlazar de manera correcta a sus columnas de Realizar al menos 3 inserciones de datos y mostrar en captura de pantalla. Realizar la modelación de diagramas de todos los ejercicios propuestos.
1
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Definiciones y componentes de los modelos “Entidad-Relación, diagrama de clases y modelación de diagramas usando MySQLWorkbench”
MODELOS DE ENTIDAD RELACIÓN El modelo E-R es un modelo de datos basado en una percepción del mundo real que consiste en un conjunto de objetos básicos llamados entidades y relaciones entre estos objetos, implementándose en forma gráfica a través del Diagrama Entidad Relación y tienen las siguientes condiciones:
• Una entidad es un objeto de importancia sobre el que se guardan datos. • Una relació!n es una asociación entre dos entidades que expresa una conexión. • Los atributos pueden contener datos compuestos: Nombre, Edad, Etc. • Para que algo sea una entidad debe tener atributos. (Si se quiere hacer una identidad fuerte es necesario llamarla PRIMARY KEY “ID”.
• La relación de las entidades comprende de las siguientes reglas: (Ejemplo: ver fig.1)
*Nota: El modelo de datos conceptual es independiente del hardware o del software que se utilice para la implementación. Por tanto un modelo E-R puede ser implementado o convertido a una BD jerárquica, de red o relacional 2
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
DIAGRAMAS DE CLASES Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de contenido. Los diagramas de clases son gráficamente representadas por cajas con compartimentos para: Nombre de la clase, atributos y operaciones y/ométodos, Responsabilidades, Reglas, Historia de Modificaciones, etc. En UML, una clase es representada por un rectángulo que posee tres divisiones:(Ejemplo: ver fig. 2)
Un diagrama de clases está compuesto por los siguientes elementos: • Clase: atributos, métodos y visibilidad. • Relaciones: Herencia, Composición, Agregación, Asociación y Uso.
ASOCIACIÓN O CARDINALIDAD EN DIAGRAMAS DE CLASES La forma más sencilla de relación es aquella denominada asociación. La asociaciónn se utiliza para expresar simplemente que dos clases están vinculadas entre sí. En ella se expresa la navegabilidad entre la clase srcen y la clase
destino, y la cardinalidad de la clase destino en la asociación. (Ejemplo: ver fig. 3) Una vez que comprendidos estos términos y condiciones se deberán los siguientes ejercicios para el desarrollo e implementación de los conocimientos aprendidos.
3
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
MYSQLWORKBENCH MySQLWorkbench es una herramienta que permite modelar diagramas de entidad-relación para bases de datos MySQL. Puedes utilizarla para diseñar el esquema de una base de datos nueva, documentar una ya existente o realizar una migración compleja. La
aplicación
elabora
una
representación
visual
de
las
tablas,
vistas,
procedimientos almacenados y claves extranjeras de la base de datos. Además, es capaz de sincronizar el modelo en desarrollo con la base de datos real. MySQLWorkbench también puede generar el script necesario para crear la base de datos que se ha dibujado en el esquema; es compatible con los modelos de base de datos de DBDesigner 4 y soporta las novedades incorporadas en MySQL 5. ¿Cómo utilizar MySQLWorkbench?
Aquí te hacemos un paso a paso para que puedas realizar los ejercicios sugeridos. Creación de una tabla del ejercicio: Libros, Vendedores y Clientes. Paso1.- Nos dirigimos al icono de MySQLWorkbench usualmente posicionado en nuestro escritorio después de la instalación damos doble clic sobre este
4
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Paso 2.- Ventana bienvenida de MySQLWorkbench, nos muestra las diferentes opciones para la creación de esquemas y tablas.
Paso 3.- Daremos clic en el símbolo de mas que se encuentra en la parte inferior justo lado de MODELS lo cual nos abrirá un nuevo modelo para poder crear nuestra base de datos.
5
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Paso 4.- Una vez abierto nuestro nuevo modelo nos presentará esta pantalla donde realizaremos la creación y organización de nuestra base de datos sus tablas y todo el contenido que esta tendrá le asignamos el nombre correspondiente a nuestra nueva base de datos.
Paso 5.- Procedemos a crear las nuevas tablas que contienen nuestra base de datos, nos dirigimos en la misma sección donde creamos la BD, debajo encontraremos una parte que dirá Add table, dar clic sobre esa sección y nos creará una nueva tabla.
6
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Una vez realizado este paso pondremos el nombre deseado, en este caso se llamará vendedor, MySQLWorkbench es un programa muy fácil de utilizar en el cual intuitivamente podremos ir resolviendo nuestro ejercicio.
Paso 6.- Una vez creada nuestra tabla vamos a darle sus atributos correspondientes en la misma zona donde creamos nuestra tabla encontraremos la sección para indicar cuáles son sus atributos.
Paso 7.- El llenado de los atributos será de la siguiente manera pondremos en primera posición la llave primaria o PK (Primary Key) con su correspondiente tipo de dato después seleccionaremos las casillas que le corresponde en este atributo, decimos que es PK (primary key), NN (not null),ZF (Zero-Filled)
7
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Dependiendo las necesidades del atributo es como seleccionaremos las más adecuadas, ejemplo:
PK - director clave (principal clave) NN - No es nulo (sin el valor NULL) UQ - Unique (Valor individual) BIN - Binary (Binario Valor) UN - Unsigned (sin valor signo, Que Puede Ser positivo o negativo) - Lleno -Zero (Valor inicial cero) ZF AI - Incremento automático (valor de incremento con Auto)
Paso 8.- Llenamos toda la tabla con los atributos que requerimos como se muestra en la imagen.
Paso 9.- Una vez que estamos seguros de haber llenado correctamente le damos Apply en la parte inferior derecha.
8
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Paso 10.- Si hemos realizado de manera correcta los pasos anteriores vamos a ver una pantalla emergente la cual nos informará de los cambios que realizaremos a nuestra tabla, una vez revisados y aceptados nuestros cambios volvemos a repetir la misma acción damos clic sobre el botón Apply el cual aplicará los cambios que hemos realizado.
De esta manera llenamos la primer tabla denuestra DB con este procedimiento llenaremos las demás tablas que necesitemos.
9
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
VER EJEMPLOS DE TABLAS REALIZADAS, SE PRESENTAN A CONTINUACIÓN. Tabla Libros.
Tabla Facturas.
Tabla Libros – Facturas.
10
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Paso 11.- El siguiente paso es enlazar nuestras tablas con sus respectivas llaves foráneas sus relaciones las habremos obtenido en nuestro diagrama entidadrelación, de esta manera las uniremos en la parte inferior donde ingresamos nuestros atributos encontraremos un barra donde daremos clic sobre Foreign key. De esa manera nos cambiará de pestaña y podremos editar la relación que tiene cada tabla con las demás. Recordemos que para poder hacer una relación exitosa tienen que tener el mismo tipo de dato relación entre los nombres. Ejemplo: En la imagen se toma la tabla que contiene Foreign Key´s, desde la pestaña Indexes, declaramos las tablas a las cuales nos vamos a enlazar, usando su Primary Key, lo siguiente es ir al Segundo cuadro de dialogo y marcar el id de la tabla seleccionada. (Ver imagen).
Paso 12.- Ir a la pestaña Foreign Key y enlazar las columnas de referencia con las columnas destino, como se muestra en la imagen.
Nota: Recordar que cada paso o cambio realizado debe de ir acompañado del clic en Apply, de otro modo nuestros cambios no se verán reflejados.
Una vez realizado todo este procedimiento ya podemos hacer los registros teniendo la seguridad de los enlaces funcionarán de manera correcta.
11
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
MATERIAL REQUERIDO: 1. Hojas blancas tamaño carta 2. Regla 3. Lápices de colores 4. Borrador adicional yed graph editor (MAC OSX, WINDOWS) 5. Software 6. Se requiere tener instalado MySQLWorkbench (MAC OSX, WINDOWS) con servidores apache, WAMP, XAMPP, etc.
INSTRUCCIONES: •
•
•
•
•
Reunir los elementos dados para la elaboración de la base de datos e identificar los siguientes elementos: ENTIDADES, RELACIONES y ATRIBUTOS. Realizar los diagramas de clases y modelos de entidad relación con todos sus componentes. Realizar los modelos de diagrama usando MySQLWorkbench, identificando y enlazando las tablas que lo ameriten. Hacer por lo menos tres inserciones de datos y mostrarlos en captura de pantalla. Realizar los esquemas de los modelos de diagrama realizados, mostrarlos en captura de pantalla.
12
Manual de Actividades y Prácticas (Fundamentos de Bases de Datos)
EJERCICIOS SUGERIDOS:
Realizar diagramas de modelos ENTIDAD-RELACIÓN, DIAGRAMAS DE CLASES Y MODELACIÓN DE DIAGRAMAS EN MYSQLWORKBENCH con los siguientes datos: 1. Empleados – Beneficiados Diagrama E-R
!"
Manual de Actividades y Prácticas (Fundamentos de Bases de Datos)
Diagrama de Clase
Modelo Relacional
!$
Manual de Actividades y Prácticas (Fundamentos de Bases de Datos)
Inserción de Datos
Tabla Beneficiados
Tabla Empleados
!%
Manual de Actividades y Prácticas (Fundamentos de Bases de Datos)
2. Alumnos —- - - -> Materias - - - -> Profesores Modelo E-R
!&
Manual de Actividades y Prácticas (Fundamentos de Bases de Datos)
Diagrama de Clase
Modelo Relacional
!'
Manual de Actividades y Prácticas (Fundamentos de Bases de Datos)
Inserción de Datos
Tabla Alumnos
Tabla Alumnos-Materias
Tabla Materias
Tabla Materias-Profesores
Tabla Profesores
!(
Manual de Actividades y Prácticas (Fundamentos de Bases de Datos)
3. Clientes - - - -> Pedidos - - - -> Productos Diagrama E-R
!)
Manual de Actividades y Prácticas (Fundamentos de Bases de Datos)
Diagrama de Clase
Modelo Relacional
*+
Manual de Actividades y Prácticas (Fundamentos de Bases de Datos)
Inserción de Datos
Tabla Clientes
Tabla Clientes-Pedidos
Tabla Pedidos
Tabla Pedidos-Productos
Tabla Productos
*!
"#$%&'%( ) %#*(%'+, -* ./-*0/1 #*0(%'/,(0*1 %/, *0 21/ -* 1/3&4(#*
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Objetivos •
Comprender que datos existen y como se relacionan entre ellos, independientemente de cómo son o serán almacenados físicamente.
•
Identificar y clasificar los elementos:ENTIDAD - RELACIÓN Y DIAGRAMA DE
CLASES.
análisis de CARDINALIDAD PARA ENTIDAD RELACION Y DIAGRAMA • Hacer DE CLASES. • Proporcionar atributos y operaciones necesarios. • Comprender que información y operación se necesita para hacer óptimo el proceso de almacenamiento.
• • • • • • •
Identificar y señalar los diferentes tipos de llaves que se utilizan en los diagramas de Clases y E-R. Realizar un diagrama de Entidad - Relación con todos sus elementos. Convertir diagrama de Entidad-Relación a diagrama de Clases con todos sus elementos. Aprender la modelación de diagramas por software teniendo como herramienta de trabajo MySQLWorkbench. Identificar referencia.las llaves Foráneas y enlazar de manera correcta a sus columnas de Realizar al menos 3 inserciones de datos y mostrar en captura de pantalla. Realizar la modelación de diagramas de todos los ejercicios propuestos.
""
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
MATERIAL REQUERIDO: 1. 2. 3. 4. 5.
Hojas blancas tamaño carta Regla Lápices de colores Borrador Software adicional yed graph editor (MAC OSX, WINDOWS)
6. Se tener instalado MySQLWorkbench (MAC OSX, WINDOWS) conrequiere servidores apache, WAMP, XAMPP, etc.
INSTRUCCIONES: •
•
•
•
•
Reunir los elementos dados para la elaboración de la base de datos e identificar los siguientes elementos: ENTIDADES, RELACIONES y ATRIBUTOS. Realizar los diagramas de clases y modelos de entidad relación con todos sus componentes. Realizar los modelos de diagrama usando MySQLWorkbench, identificando y enlazando las tablas que lo ameriten. Hacer por lo menos tres inserciones de datos y mostrarlos en captura de pantalla. Realizar los esquemas de los modelos de diagrama realizados, mostrarlos en captura de pantalla.
"#
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
EJERCICIOS SUGERIDOS Ejercicio 1 Se debe automatizar el área de préstamos, de una empresa se sabe que un empleado puede tener muchos prestamos, pero uno solo pertenece a un empleado, cada préstamo tiene un numero único que lo identifica, su monto, la fecha en la que se otorgó y el plazo en el que se pagará. Por otro lado el empleado tiene sus datos generales y la fecha en la que ingresó a la impresa. Es importante conocer a que departamento pertenece cada empleado, los empleados pueden pertenecer a varios departamentos durante su trayectoria laboral, así mismo en un departamento existen varios trabajadores laborando al mismo tiempo, los departamentos tiene un número de identificación, un nombre y la gerencia a la que pertenece Diagrama E-R
"#
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Diagrama de Clase
"$
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Modelo Relacional
"%
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Inserción de Datos Tabla Empleados
Tabla Empleados-Departamento
Tabla Préstamo
Tabla Departamento
"&
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
!"#$%&%&' )
Una empresa se dedica la venta de libros, un vendedor atiende a muchos clientes pero un cliente suele ser atendido por un vendedor, los libros se venden mediante la elaboración de facturas realizada por los vendedores en la que se incluyen uno o más libros, los libros se identifican por su ISBN (Id Serial Book Number). Diagrama E-R
"'
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Diagrama de Clase
"(
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Modelo Relacional
)*
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Inserción de Datos. Tabla Vendedor
Tabla Clientes
Tabla Libros
Tabla Facturas
Tabla Libros-Facturas
)+
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
!*!+,-,-. / Diseñar un diagrama E-R, un diagrama de clases y un Modelo Relacional para una base de datos que contenga información sobre una carrera de montaña en México, se conoce lo siguiente:
•
•
•
•
•
Cada edición de la carrera está identificada por un código además interesa conservar el año en el que ha tenido lugar dicha edición. Todas las ediciones tienen las mismas etapas, aunque puede variar su longitud.
Se quiere guardar la longitud de cada etapa de una edición. Cada equipo tiene un nombre también se desea guardar su fecha de fundación. Todos los equipos tienen un único patrocinador pero un patrocinador puede financiar a varios equipos.
•
•
•
Se debe tener una tabla con el historial de los equipos que han participado en cada edición, con el lugar conseguido por cada uno de ellos. De los corredores interesa guardar también su nombre y fecha de nacimiento.
Interesa guardar los tiempos conseguidos por cada equipo en cada etapa de una edición.
)"
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Diagrama E-R
))
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Diagrama de Clase
)#
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Modelo Relacional
)$
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Inserción de Datos Tabla Corredores
Tabla Edición
Tabla Equipo
Tabla Etapas
Tabla Historial
)%
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Tabla Patrocinador
!"#$%&%&' 0 Diseñar un diagrama E-R, un diagrama de clases y un Modelo Relacional para el siguiente ejercicio: •
•
•
Un soldado pertenece a un único cuerpo y a una única compañía durante todo el servicio militar. A una compañía pueden pertenecer solados de diferentes cuerpos no habiendo relación directa entre compañeros y cuerpos. Los soldados de una misma compañía pueden estar destinados en diferentes es decir una compañía estar ubicada en varios cuarteles ycuarteles, en un cuartel puede haber variaspuede compañías.
•
Un soldado realiza varios servicios a lo largo de su servicio militar. Un mismo servicio puede ser realizado por más de un soldado (con independencia de la compañía)
)&
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Diagrama E-R
)'
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Diagrama de Clase
)(
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Modelo Relacional
#*
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Inserción de Datos. Tabla Compañía
Tabla Compañía-Cuartel
Tabla Cuartel
Tabla Cuerpo
Tabla Servicio
Tabla Servicio-Soldado
Tabla Soldado
#+
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
!"#$%&%&' 1 Se necesita reflejar la información necesaria para la administración de las líneas del metro de la ciudad de México considerando lo siguiente:
•
Una línea está compuesta por una serie de estaciones en un orden determinado siendo muy importante guardar esta información.
•
Cada estación pertenece por lo menos a una línea pudiendo
•
Pertenecer a varias. Una estación nunca deja de pertenecer a la línea que anteriormente perecía, por ejemplo: Balbuena que pertenece a la línea 1 y nunca podrá dejar de pertenecer a esta línea.
•
Cada estación puede tener varios accesos pero se considera que un acceso solo puede pertenecer a una estación.
•
Un acceso nunca podría cambiar de estación.
•
Cada línea tiene asignados una serie de trenes no pudiendo suceder que un tren este asignado a más de una línea pero sí que no esté asignado a ninguna.
Por ejemplo si se encuentra en reparación. •
Algunas estaciones tienen asignadas cocheras, pero una cochera solo es asignada a una estación.
#"
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Diagrama E-R
#)
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Diagrama de Clase
##
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Modelo Relacional
#$
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Inserción de Datos Tabla Serie
Tabla Accesos
Tabla Cocheras
Tabla Estaciones
Tabla Línea
Tabla Línea -Estación
#%
"#$%&'%( ) %#*(%'+, -* ./-*0/1 #*0(%'/,(0*1 %/, *0 21/ -* 1/3&4(#*
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Objetivos •
Comprender que datos existen y como se relacionan entre ellos, independientemente de cómo son o serán almacenados físicamente.
•
Identificar y clasificar los elementos:ENTIDAD - RELACIÓN Y DIAGRAMA DE
CLASES.
análisis de CARDINALIDAD PARA ENTIDAD RELACION Y DIAGRAMA • Hacer DE CLASES. • Proporcionar atributos y operaciones necesarios. • Comprender que información y operación se necesita para hacer óptimo el proceso de almacenamiento.
• • • • • • •
Identificar y señalar los diferentes tipos de llaves que se utilizan en los diagramas de Clases y E-R. Realizar un diagrama de Entidad - Relación con todos sus elementos. Convertir diagrama de Entidad-Relación a diagrama de Clases con todos sus elementos. Aprender la modelación de diagramas por software teniendo como herramienta de trabajo MySQLWorkbench. Identificar referencia.las llaves Foráneas y enlazar de manera correcta a sus columnas de Realizar al menos 3 inserciones de datos y mostrar en captura de pantalla. Realizar la modelación de diagramas de todos los ejercicios propuestos.
"#
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
MATERIAL REQUERIDO: 1. 2. 3. 4. 5.
Hojas blancas tamaño carta Regla Lápices de colores Borrador Software adicional yed graph editor (MAC OSX, WINDOWS)
6. Se tener instalado MySQLWorkbench (MAC OSX, WINDOWS) conrequiere servidores apache, WAMP, XAMPP, etc.
INSTRUCCIONES: •
•
•
•
•
Reunir los elementos dados para la elaboración de la base de datos e identificar los siguientes elementos: ENTIDADES, RELACIONES y ATRIBUTOS. Realizar los diagramas de clases y modelos de entidad relación con todos sus componentes. Realizar los modelos de diagrama usando MySQLWorkbench, identificando y enlazando las tablas que lo ameriten. Hacer por lo menos tres inserciones de datos y mostrarlos en captura de pantalla. Realizar los esquemas de los modelos de diagrama realizados, mostrarlos en captura de pantalla.
"$
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Se requiere desarrollar una base de datos para llevar la gestión de una tienda de pescado. Los barcos llevan la carga de cada día a la tienda y allí se vende a los compradores que generalmente son pescaderías de la zona. Se sabe lo siguiente: Una vez que llegan los barcos con la carga de cada día, ésta se reparte en distintos lotes. Cada lote se identifica por un código de lote y consta de un número de cajas de una determinada especie (pulpo, camarón, etc.), así como de un número de kilos y la fecha de recepción. Además, también interesa saber el precio por kiloy (el compra y el de venta). De cada tipo de pescado se guardará un código un de nombre. A la tienda llegan distintos compradores para adquirir los lotes, de dichos compradores se necesita guardar código, nombre, dirección y además saber si tienen crédito en la tienda o no. Finalmente es necesario saber cuáles lotes compró cada comprador. Diagrama E-R
!"
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Diagrama de Clase
%$ Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Modelo Relacional
$&
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Inserción de Datos Tabla Especie
Tabla Lotes
Tabla Comprador
$'
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Se desea diseñar un modelo relacional que guarde la información de las reservaciones de una empresa dedicada al alquiler de automóviles tomando en cuenta que: •
•
•
•
•
Un determinado cliente puede tener en un momento dado varias reservaciones. Una reservación la realiza un único cliente, pero puede involucrar a varios coches.
Es importante registrar la fecha de comienzo de la reservación así como su fecha de terminación. Todo coche tiene siempre asignado un número de garaje que no puede cambiar.
En la base de datos pueden existir clientes que no hayan hecho ninguna reservación.
Diagrama E-R.
$(
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Diagrama de Clase.
$!
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Modelo Relacional.
$$
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Inserción de Datos. Tabla Cliente
Tabla Coche
Tabla Garage
Tabla Reservación
$)
"#$%&'%( ) %#*(%'+, -* ./-*0/1 #*0(%'/,(0*1 %/, *0 21/ -* 1/3&4(#*
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
OBJETIVOS • • • • • •
Aprender a depurar tablas, utilizando la normalizaci ón. Realizar un mejor diseño de las tablas. Aprender a utilizar las 3 formas normales. Analizar diferentes funciones que contiene la integridad referencial. Desarrollar una base de datos con una funci ón específica. Realizar los ejercicios sugeridos.
MATERIAL REQUERIDO: 1. Hojas blancas tamaño carta 2. Regla 3. 4. 5. 6.
L ápices de colores Borrador Software adicional yed graph editor (MAC OSX, WINDOWS) Se requiere tener instalado MySQL Workbench (MAC OSX, WINDOWS) con servidores apache, WAMP, XAMPP, etc.
"#
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
INSTRUCCIONES •
• • •
•
•
Realizar el ejercicio correspondiente con su diagrama de EntidadRelación, así como enlazar todas las tablas correspondientes de la manera correcta. Realizar la normalización de cada tabla. Verificar que estén en sus tres formas normales. Pasar todas las tablas a workbench y realizar su respectivo modelo relacional para tener una guía firme. Una vez hechas las tablas en workbench indexar las foreign keys y realizar su integridad referencial correspondiente dependiendo la función deseada. Concluir el ejercicio sugerido.
"$
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Definiciones y componentes de DATOS RELACIONALES en MySQLWorkbench” NORMALIZACION: Proceso de descomposición de tablas
OBJETIVOS DE LA NORMALIZACIÓN. • • • • •
Mejor diseño Fácil de utilizar Rápidas Menor tamaño Sin pérdida de datos
FORMAS NORMALES • Primera Forma Normal (1FN): Son todos los campos de la tabla son •
•
atómicos y no deben de existir campos duplicados Segunda Forma Normal (2FN): Son todos los campos que estan en su 1 FN y no deben existir campos (que no sean llaves) que no dependan directamente de la llave primaria Tercera Forma Normal (3FN): Son todos los campos que estan en su 2 FN y no deben tener campos calculados
INTEGRIDAD REFERENCIAL Se busca desarrollar una base de datos con una función específica de Integridad Referencial la cual esta permite que los datos sean consistentes entre tablas, con una mayor seguridad y una constante sincronización, de las cuales podemos contar con cuatro diferentes funciones, que son: •
•
•
•
CASCADE: Borra o actualiza el registro en la tabla padre y automáticamente borra o actualiza los registros coincidentes en la tabla hija. SET NULL: Borra o actualiza el registro en la tabla padre y establece en NULL la o las columnas de clave foránea en la tabla hija. NO ACTION: Significa “ninguna acción” en el sentido de que en un intento de borrar o actualizar un valor de clave primaria no será permitido si en la tabla referenciada hay una valor de clave foránea relacionado. RESTRICT: Rechaza la operación de eliminación o actualización en la tabla padre. "%
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
REALIZAR EL EJERCICIO SUGERIDO: Se desea mantener una base de datos para el control de medicamentos de una farmacia. Cada medicamento contiene su presentación (por ejemplo: ampolletas de 5 unidades, jarabe ml,drogas inyecciones por 10 unidades, pomadas gramos, etc.), la ode las100 mono que lo componen, el laboratorio que 60 lo comercializa (de los cuales también se desea llevar el control) y su acción terapéutica (analgésico, antibiótico, etc.), además de su precio y la cantidad en existencia del mismo. La nota que se registra en cada venta contiene los siguientes datos: Producto, cantidad vendida, precio unitario, subtotal, IVA, importe total de la venta, tipo de producto, cliente, RFC del cliente, fecha y folio. Algunos productos son controlados, de los cuales se deben tener los datos generales del médico que los receta (número de cédula, nombre completo, especialidad –si la tiene-).
&'
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
BASE DE DATOS FARMACIA DIAGRAMA E-R
&(
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
DIAGRAMA DE CLASES
&)
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
MODELO RELACIONAL
&*
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Ejecucion de funciones de integridad referencial Para poder accionar las diferentes opciones de integridad referencial se en la tabla deseada se debe tener foreign key ya que es una propiedad de estas llaves, para lo cual vamos a a darle click en “foreign key option“ en las opciones de “On Update” y “On Delete” y activar la opcion deseable y aplicar cambios, en este caso mostraremos la opcion “CASCADE”.
&+
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
&"
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
INSERCIÓN DE DATOS Tabla presentación
Tabla nota_medicamento
Tabla nota
Tabla monodroga
&&
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Tabla medico
Tabla medicamento
Tabla laboratorio
Tabla cliente
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
Tabla acción terapéutica
&$
"#$%&'%( ) %#*(%'+, -* ./-*0/1 #*0(%'/,(0*1 %/, *0 21/ -* 1/3&4(#*
Manual de Actividades y Prácticas (Fundamentos de Bases de Datos)
Objetivos •
Usar operadores matemáticos en función de una consulta en MySQL Workbench.
• • •
Realizar consultar básicas y complejas dentro de una base de datos. Analizar y consultar datos en forma multi-tabla. Realizar lo ejercicios sugeridos.
"#
Manual de Actividades y Prácticas (Fundamentos de Bases de Datos)
MATERIAL REQUERIDO: 1. 2. 3. 4.
Hojas blancas tamaño carta Regla Lápices de colores Borrador
5. Software adicional yed graph editor (MAC OSX, WINDOWS) 6. Se requiere tener instalado MySQLWorkbench (MAC OSX, WINDOWS) con servidores apache, WAMP, XAMPP, etc.
INSTRUCCIONES:
•
•
• •
•
De los diagramas de ENTIDAD- RELACIÓN, CLASES y MODELO RELACIONAL hacer unas bases de datos llamada futbol. Verificar que la base de datos se encuentre en su 3er FORMA NORMAL. Hacer las tablas requeridas, con sus respectivas llaves foráneas. Una vez realizado el paso anterior hacer las consultas que se requieren por cada consulta realizar una impresión de pantalla, comentando las líneas de ejecución. Hacer todos los ejercicios sugeridos.
%$ Manual de Actividades y Prácticas (Fundamentos de Bases de Datos)
Definiciones y componentes de consultas en MySQLWorkbench” SENTENCIAS Y CONSULTAS EN SQL SERVER En esta sección nos preocuparemos por conocer, las consultas en SQL que describiremos aquí. Para eso haremos un pequeño ejemplo de las palabras claves que se utilizan en SQL, tales como son TABLAS, CAMPOS, FILAS, esto se muestra en la siguiente imagen:
TABLA: es el conjunto ordenado de campos (columnas) y filas. Campo 1
Campo 2
Campo 3
Campo 4
Fila 1 Fila 2 Fila 3
Las palabras claves SQL enlistadas en la figura adjunta, se describen en las siguientes subsecciones, cabe mencionar que esta edición es solo un trabajo de introducción básica, es por esta razón que el contexto de consultas SQL completas, escapa de esta edición. Palabra Clave SQL
Descripción
SELECT
Recupera datos de una o más tablas.
FROM
Las tablas involucradas en la consulta. Se requiere para cada SELECT.
WHERE
Los Criterios de selección que determinan cuales filas se van a recuperar, eliminar o actualizar.
GROUP BY
Criterio para agrupar filas.
ORDER BY
Criterio para ordenar filas.
INSERT
Insertar filas en una tabla especificada.
UPDATE
Actualizar filas en una tabla especifica.
DELETE
Eliminar filas de una tabla especifica.
$&
Manual de Actividades y Prácticas (Fundamentos de Bases de Datos) Observación:Por
lo general se acostumbra a escribir estas palabras claves en mayúsculas, tratando de diferenciarlos con los argumentos de una tabla. SELECT FROM WHERE GROUP BY
La estructura presentada, es la que se utiliza SQL posee de una jerarquía entre sus palabras claves, y una manera general la presentamos para conocimiento del lector.
CONSULTA BÁSICA SELECT: lo que hace una consulta SELECT, es obtener datos de una Tabla determinada, en las que se especifican filas y columnas. La sintaxis básica de una consulta SELECT es: SELECT * FROM
nombreDeTabla
En la consulta anterior, el asterisco (*) indica que deben recuperarse todas las columnas de la tabla “nombreDeTabla ”. Por ejemplo, deseamos recuperar todos los datos de la tabla Alumno, la sintaxis seria la siguiente:
Observación. !
Se debe evitar utilizar el asterisco (*), si se desea filtrar solo campos necesari s.
!
Al especificar los nombres de columnas que se van a seleccionar, se garantiza que las columnas se devuelvan, siempre en el orden especificado y también se evita que se devuelven columnas innecesarias, incluso si cambia el orden real.
$'
Manual de Actividades y Prácticas (Fundamentos de Bases de Datos)
LA CLÁUSULA WHERE: en la mayoría de casos es necesario localizar, en una base de datos, filas que cumplan con ciertos criterios de selección. SQL utiliza la cláusula WHERE en una consulta SELECT para especificar los criterios de selección para la consulta. La forma básica de una consulta SELECT con criterios ó condición de selección es: nombreDeColumnas
SELECT
nombreDeTabla
FROM
criterios
WHERE
Por ejemplo, para seleccionar las columnas IdAlumno, monto de la tabla Pagos, para las cuales el monto sea mayor que 340, utilizamos la siguiente consulta: SELECT IdAlumno, Monto FROM Pagos WHERE monto>340 Los criterios de la cláusula WHERE pueden contener los siguientes operadores de comparación: =, >, <, >=, <=, !=, <>, IN, NOT IN, BETWEEN, NOT BETWEEN, LIKE. Además, se puede construir condiciones múltiples usando los operadores lógicos AND, OR y NOT. Se puede utilizar paréntesis si se desea forzar algún orden de evaluación.
de una ordenarse LA CLÁUSULA ORDER BY: El resultado en forma ascendente o descendente, mediante el consulta uso de lapuede cláusula ODER BY opcional. La forma básica de una instrucción SELECT con una cláusula ORDER BY es: SELECT SELECT
nombreDeColumnas nombreDeColumnas
FROM Tablas ORDER BY columna1 ASC FROM Tablas ORDER BY columna1 DESC
En donde ASC especifica el orden ascendente (de menor a mayor), DESC especifica el orden descendente (de mayor a menor) y columna1 especifica la columna en la cual se basa el ordenamiento.
$(
Manual de Actividades y Prácticas (Fundamentos de Bases de Datos)
USO DE FUNCIONES DE AGREGADO: Las funciones que calculan promedios y sumas se llaman funciones de agregado. Cuando se ejecuta una función de agregado, SQL Server resume los valores de toda una tabla o de grupos de columnas de una tabla, y produce un valor por cada conjunto de filas para las columnas especificadas:
Funciones de agregado
Descripción
AVG
Promedio de valores en una expresión numérica
COUNT
Números de valores en una expresión
COUNT(*)
Numero de filas seleccionadas
MAX
Valor más alto en la expresión
Con la excepción de la función COUNT(*), todas las funciones de agregado devuelven NULL si ninguna fila cumple la cláusula WHERE. La función COUNT(*) devuelve el valor cero si ninguna fila cumple la cláusula WHERE. COUNT: es la única función de agregado que se puede utilizar en las columnas de los tipos de datos text, ntext o image. MIN Y MAX: En las columnas de los tipos de datos bit no se pueden utilizar las funciones MIN y MAX. SUM Y AVG: Las funciones de agregado SUM y AVG solo se pueden utilizar en las columnas con tipos de datos int, smallint, tinyint, dcimal, numeric, flota, real, nomey, y samallmoney. Cuando se utiliza la función SUM o AVG, SQL Server trata los tipos de datos smallint o tinyint como un valor de tipo de datos int en el conjunto de resultados.
$)
Manual de Actividades y Prácticas (Fundamentos de Bases de Datos)
LA CLÁUSULA GROUP BY: Utilice la cláusula GROUP BY en columnas o expresiones para organizar filas en grupos y para resumir dichos grupos. Por ejemplo, utilice la cláusula GROUP BY para determinar la cantidad de cada producto pedida en todos los pedidos. Cuando utilice la cláusula GROUP BY, considere los hechos e instrucciones siguientes: SQL Server produce una columna de valores por cada grupo definido. •
•
•
•
SQL Server sólo devuelve filas por cada grupo especificado; no devuelve información de detalle. Todas las columnas que se especifican en la cláusula GROUP BY tienen que estar incluidas en la lista de selección. Si incluye una cláusula WHERE, SQL Server sólo agrupa las filas que cumplen las condiciones de la cláusula WHERE. No utilice la cláusula GROUP BY en columnas que contengan varios valores nulos, porque los valores nulos se procesan como otro grupo.
•
Utilice la palabra clave ALL con la cláusula GROUP BY para presentar todas las filas que tengan valores nulos en las columnas de agregado, independientemente de si las filas cumplen la condición de la cláusula WHERE.
$*
Manual de Actividades y Prácticas (Fundamentos de Bases de Datos)
REALIZAR EL EJERCICIO SUGERIDO: BASE DE DATOS FÚTBOL DIAGRAMA ENTIDAD RELACION
$"
Manual de Actividades y Prácticas (Fundamentos de Bases de Datos)
DIAGRAMA DE CLASE
MODELO RELACIONAL
$$
Manual de Actividades y Prácticas (Fundamentos de Bases de Datos)
REALIZAR LAS SIGUIENTES CONSULTAS: 1. Todos los datos de los jugadores con más de 20 goles anotados. 2. Todos los datos de los jugadores cuyo apellido paterno o materno sea Huerta. 3. Mostrar la clave, nombre, apaterno, amaterno de todos los jugadores ordenados por apaterno. 4. Mostar el número máximo de goles anotados. 5. Mostrar cuantos jugadores existen en cada equipo. 6. Mostrar en que equipo juega Ernesto.
!"#$%&'( *+
!"#$%&'( ,+
$+
Manual de Actividades y Prácticas (Fundamentos de Bases de Datos) !"#$%&'( -+
!"#$%&'( .+
!"#$%&'( /+
$#
Manual de Actividades y Prácticas (Fundamentos de Bases de Datos) !"#$%&'( 0+
+%
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
REALIZAR EL EJERCICIO PRODUCTOS/PROVEEDORES
BASE
DE
DATOS
DIAGRAMA ENTIDAD-REL ACIÓN
"#
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
DIAGRAMA DE CLASE
MODELO RELACIONAL
"$
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
REALIZAR LAS SIGUIENTES CONSULTAS:
1. Mostrar todo los datos de los productos cuyo código sea igual a TL1182. 2. Reunir las dos tablas por medio de la clave del proveedor. 3. Mostrar los atributos, precio y nombre de los productos cuyo precio sea menor a $20.00 4. Mostrar todos los datos de los productos cuya existencia sea mayor a 110. Ordenándolos (en forma descendente ) por código. 5. Mostrar el código, proveedor, precio para los productos que cuesten $18.95. 6. Obtener el promedio del precio cuyo proveedor sea igual a 3. 7. Obtener el promedio de la existencia por cada proveedor. 8. Mostrar todos los datos de los proveedores ordenados por clave en forma descendente. 9. Mostrar todos los datos de los productos cuyo precio sea mayor a 10 y existencia sea mayor a 300.
"%
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
CONSULTA 1:
CONSULTA 2:
"&
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
CONSULTA 3:
CONSULTA 4:
"'
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
CONSULTA 5:
CONSULTA 6:
"(
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
CONSULTA 7:
CONSULTA 8:
")
Manual de Actividades y Pr ácticas (Fundamentos de Bases de Datos)
CONSULTA 9:
""
"#$%&'%( ) %#*(%'+, -* .'/&(/ %0, /12
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Objetivos: • • •
Entender el uso y funcionamiento de una vista dentro de SQL. Saber la estructura del código SQL para generar una vista. Conocer la ejecución para una vista a través de código SQL.
Material Requerido:
1. 2. 3. 4. 5. 6.
Hojas blancas tamaño carta Regla Lápices de colores Borrador Software adicional yed graph editor (MAC OSX, WINDOWS) Se requiere tener instalado MySQLWorkbench (MAC OSX, WINDOWS) con servidores apache, WAMP, XAMPP, etc.
Instrucciones:
•
De los diagramas de ENTIDAD- RELACIÓN, CLASES y MODELO
• • •
RELACIONAL bases datos llamada dulcería. Verificar que lahacer base unas de datos se de encuentre en su 3er FORMA NORMAL. Hacer las tablas requeridas, con sus respectivas llaves foráneas. Una vez realizado el paso anterior hacer las consultas que se requieren por cada consulta realizar una impresión de pantalla, comentando las líneas de ejecución. Generar las vistas correspondientes a través de código de cada punto dado y ejecutar las mismas.
•
Hacer todos los ejercicios sugeridos.
:;
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Concepto de vista. = =
Una vista es una tabla derivada de otras tablas (básicas o virtuales). Una vista se caracteriza porque: > Se considera que forma parte del esquema externo. > Una vista es una tabla virtual (no tiene una correspondencia a nivel físico). > Se puede consultar como cualquier tabla básica. >
Las actualizaciones se transfieren a la/s tabla/s srcinal/es (con ciertas limitaciones).
Aplicaciones de las vistas. =
=
=
Para la especificación de tablas con información que se accede con frecuencia pero no posee existencia física: > Información derivada de la relación entre varias tablas. > Información derivada de la formación de grupos de tuplas (p.e. para la obtención de estadísticas). > En general: información derivada de consultas complejas a la que se accede con frecuencia. Como mecanismo de seguridad: creación de vistas con, únicamente, los atributos de las tablas a los cuales se desea permitir acceder a determinados usuarios. Para la creación de esquemas externos.
;<
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Manipulación de Vistas con SQL. =
La sintaxis para la creación de vistas en SQL es la siguiente:
CREATE | REPLACE VIEW vista [(comalista_columna)] AS expresión_tabla [with check option] en donde: > > >
= = =
CREATE VIEW es la orden que permite la creación de la vista. vista es el nombre de la tabla virtual que se va a crear. (comalista_columna) son los nombres de los atributos de la tabla y es opcional:
Si no se especifica, el nombre coincide con el nombre de los atributos resultantes en expresión_tabla. Es obligatorio si algún atributo de expresión_tabla es el resultado de una función de agregación o una operación aritmética. La sintaxis para la creación de vistas en SQL es la siguiente:
CREATE | REPLACE VIEW vista [(comalista_columna)] AS expresión_tabla [with check option] en donde: > > > >
expresión_tabla es una consulta SQL cuyo resultado será el contenido de la vista. WITH CHECK OPTION es opcional y se debe incluir si se desea actualizar la vista de una manera íntegra. Para la eliminación de una vista se utiliza la instrucción: DROP VIEW vista [restrict | cascade];
;?
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
A partir de la siguiente tabla que pertenece a la base de datos dulcería Tabla dulce clave 4001 4002 4003
Nombre Gussi
Descripción Galleta rellena de chocolate Bubbaloo Chicle con relleno liquido
Unidades Precio_venta marca Piezas 2.50 1 Piezas
1.00
3
lunetas
sobres
6.00
2
Chocolate confitado
Tabla marcas Clave 001 002 003
nombre De la rosa Ricolino Adams
Realizar las siguientes consultas (escribir en sentencias SQL y su resultado en tablas): a) Mostrar el nombre y las unidades de los dulces cuyo precio de venta sea mayor a 2. b) Mostrar el nombre de los dulces y el nombre de las marcas cuya unidad sea piezas. c) Mostrar cuantos dulces hay por cada marca ordenándolos de forma descendente por marca. d) Mostrar cual es el dulce con menor precio. e) Insertar un registro en cada tabla (marcas, dulces). f) Cambiar la descripción de lunetas por dulce macizo. g) Borrar los dulces con clave 002. h) Eliminar las unidades con clave 001. Importante: las consultas SIEMPRE deben de estar vigentes independientemente de los datos que contengan las tablas
;@
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Modelo Relacional: Dulces-Marcas.
;A
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Vista 1:
Resultado 1:
;B
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Vista 2:
Resultado 2:
;C
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Vista 3:
Resultado 3:
;D
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
BD: Hotel Tabla: Reservaciones Clave 90001 90002 90003 90004
Num_habitacio 2034 2020 1018 1029
Cliente 10001 10456 10379 10986
F_ingreso 16-05-2014 16-05-2014 23-05-2014 24-05-2014
F_egreso Promocion 18-05-2014 TI001 20-05-2014 SI001 25-05-2014 TI003 27-05-2014 TI002
90005
4035
10845
24-05-2014
29-05-2014
SI001
Tabla: Clientes Id 1000 1045 1084
<=
Nombre Esteban Israel Juan
A_paterno Pérez Méndez Navarrete
A_matern Iturralde Arteaga Ortiz
F_nacimiento 10/10/1980 09/11/1979 05/03/1970
Realizar las siguientes vistas: !" Mostrar cuántas reservaciones hay por cada promoción ordenándolos por promoción en forma ascendente. #" $"
Mostrar cuál es el cliente con mayor edad. Mostrar la promoción y el número de habitación de las reservaciones cuya fecha de ingreso sea mayor a 16 de mayo de 2014. d. Mostar el número de habitación de las reservaciones que terminaban antes del 17 de mayo del 2014. e. Mostrar la primera fecha de ingreso del cliente más joven. f. Mostrar la clave del cliente que haya realizado más de 3 reservaciones.
:;
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Vista A:
Resultado A:
:>
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Vista B:
Resultado B:
::
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Vista C:
Resultado C:
?
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Vista D:
Resultado D:
<
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Vista E:
Resultado E:
@
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Vista F:
Resultado F:
"#$%&'%( ) *+, -. /,'0+ .0 +12
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Objetivos: • •
Entender la estructura de los JOINS dentro de una sintaxis SQL. Comprender el uso de cada JOIN para necesidades diferentes.
Material Requerido: 1. Hojas blancas tamaño carta 2. Regla 3. Lápices de colores 4. Borrador 5. Software adicional yed graph editor (MAC OSX, WINDOWS) 6. Se requiere tener instalado MySQLWorkbench (MAC OSX, WINDOWS) con servidores apache, WAMP, XAMPP, etc. Instrucciones:
•
De los diagramas de ENTIDAD- RELACIÓN, CLASES y MODELO RELACIONAL hacer unas bases de datos llamada dulcería.
• •
Verificar la base de datoscon sesus encuentre en sullaves 3er FORMA NORMAL. Hacer lasque tablas requeridas, respectivas foráneas. Una vez realizado el paso anterior hacer las consultas que se requieren por cada consulta realizar una impresión de pantalla, comentando las líneas de ejecución. Generar las consultas correctas a través del uso de JOINs en SQL.
•
Hacer todos los ejercicios sugeridos.
:;<
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
JOINS
La sentencia SQL JOIN permite consultar datos de 2 o más tablas. Dichas tablas estarán relacionadas entre ellas de alguna forma, a través de alguna de sus columnas. Existen 3 tipos de JOINS: JOIN interno, JOIN externo y JOIN cruzado. Una clave primaria es una columna con un valor único para cada registro de una tabla. El propósito del JOIN es unir información de diferentes tablas, para no tener que repetir datos en diferentes tablas.
INNER JOIN La sentencia INNER JOIN es la sentencia JOIN por defecto, y consiste en combinar cada fila de una tabla con cada fila de la otra tabla, seleccionado aquellas filas que cumplan una determinada condición.
SELECT * FROM tabla1 INNER JOIN tabla2 WHERE tabla1.columna1 = tabla2.columna1
:;=
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
LEFT JOIN La sentencia LEFT JOIN combina los valores de la primera tabla con los valores de la segunda tabla. Siempre devolverá las filas de la primera tabla, incluso aunque no cumplan la condición.
SELECT * FROM tabla1 LEFT JOIN tabla2 WHERE tabla1.columna1 = tabla2.columna1
RIGTH JOIN La sentencia RIGHT JOIN combina los valores de la primera tabla con los valores de la segunda tabla. Siempre devolverá las filas de la segunda tabla, incluso aunque no cumplan la condición.
En algunas bases de datos, la sentencia RIGHT JOIN es igual a RIGHT OUTER JOIN SELECT * FROM tabla1 RIGHT JOIN tabla2 WHERE tabla1.columna1 = tabla2.columna1
:;>
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
FULL JOIN La sentencia FULL JOIN combina los valores de la primera tabla con los valores de la segunda tabla. Siempre devolverá las filas de las dos tablas, aunque no cumplan la condición.
La sentencia FULL JOIN es la unión de LEFT JOIN y RIGHT JOIN SELECT * FROM tabla1 FULL JOIN tabla2 WHERE tabla1.columna1 = tabla2.columna1
:;?
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Ejercicios de JOINS en la base de datos hotel con SQL.
Código INNER JOIN
Resultado INNER JOIN
:;@
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Código LEFT JOIN
Resultado LEFT JOIN
:;A
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Código RIGHT JOIN
Resultado RIGHT JOIN
::;
"#$%&'%( )* +,-./(0, 1, 2(-'"/+(%'3- 1, 1(&45 612+7
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Objetivos: • •
Conocer las sentencias más comunes de SQL. Analizar el uso de Su-Consultas SQL.
Material Requerido:
1. 2. 3. 4. 5. 6.
Hojas blancas tamaño carta Regla Lápices de colores Borrador Software adicional yed graph editor (MAC OSX, WINDOWS) Se requiere tener instalado MySQLWorkbench (MAC OSX, WINDOWS) con servidores apache, WAMP, XAMPP, etc.
Instrucciones:
•
De los diagramas de ENTIDAD- RELACIÓN, CLASES y MODELO
• • •
RELACIONAL bases datos llamada dulcería. Verificar que lahacer base unas de datos se de encuentre en su 3er FORMA NORMAL. Hacer las tablas requeridas, con sus respectivas llaves foráneas. Una vez realizado el paso anterior hacer las consultas que se requieren, por cada consulta realizar una impresión de pantalla, comentando las líneas de ejecución.
Hacer todos los ejercicios sugeridos.
:::
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Lenguaje de manipulación de datos (DML: Data Manipulation Language):
Lenguaje artificial de cierta complejidad que permite el manejo y procesamiento el contenido de la base de datos. En la práctica puede consistir en un subconjunto de instrucciones de otro lenguaje informático. Las aplicaciones que trabajan sobre la base de datos se programan en un lenguaje de programación (C, Cobol, ...) insertando en el código fuente sentencias del DML. Al utilizar un DML se deben especificar los datos que serán afectados por las sentencias del lenguaje. Un DML puede tener o no procedimientos, según sea necesario especificar además cómo deben obtenerse esos datos. Los DML con procedimientos tienen sentencias de control de flujo como bucles o condicionales. Los DML sin procedimientos son conocidos también como declarativos.
::;
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
A partir de la siguiente tabla que pertenece a la base de datos dulcería Tabla dulce clave 4001 4002 4003
Nombre Gussi
Descripción Galleta rellena de chocolate Bubbaloo Chicle con relleno liquido
Unidades Precio_venta marca Piezas 2.50 1 Piezas
1.00
3
lunetas
sobres
6.00
2
Chocolate confitado
Tabla marcas Clave 001 002 003
nombre De la rosa Ricolino Adams
Realizar las siguientes consultas (escribir en sentencias SQL y su resultado en tablas): a) Mostrar el nombre y las unidades de los dulces cuyo precio de venta sea 2. nombre de los dulces y el nombre de las marcas cuya unidad sea b) mayor Mostrara el piezas. c) Mostrar cuantos dulces hay por cada marca ordenándolos de forma descendente por marca. d) Mostrar cual es el dulce con menor precio. e) Insertar un registro en cada tabla (marcas, dulces). f) Cambiar la descripción de lunetas por dulce macizo. g) Borrar los dulces con clave 002. h) Eliminar las unidades con clave 001. Importante: las consultas SIEMPRE deben de estar vigentes independientemente de los datos que contengan las tablas.
::<
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Código 1:
::=
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Código 2:
Código 3:
::>
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Código 4:
::?
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
BD: Hotel Tabla: Reservaciones Clave 90001 90002 90003 90004 90005
Num_habitacion 2034 2020 1018 1029 4035
Cliente 10001 10456 10379 10986 10845
F_ingreso 16-05-2014 16-05-2014 23-05-2014 24-05-2014 24-05-2014
F_egreso 18-05-2014 20-05-2014 25-05-2014 27-05-2014 29-05-2014
Promocio TI001 SI001 TI003 TI002 SI001
Tabla: Clientes Id 1000 1045 1084
:< =< >< ?< @< A< ;< B<
Nombre Esteban Israel Juan
A_paterno Pérez Méndez Navarrete
A_materno Iturralde Arteaga Ortiz
F_nacimiento 10/10/1980 09/11/1979 05/03/1970
Crear la BD. Crear las tablas y relacionarlas a través del cliente. Ingresar los registros. Borrar la reservación del cliente 10986. Cambiar la fecha de egreso de la reservación 90005 por 31/05/2014. A través de código agregar una columna que se llame comentarios a la tabla Reservaciones. A través de código crear una tabla que se llame dotación (Clave, Descripción). A través de código borrar la tabla dotación.
::;
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Código 1:
Código 2:
::B
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Código 3:
::C
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Código 4:
:=D
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Código 5:
Código 6:
Resultado Código 6:
:=:
!"#$"% '( )*+,-,'"'(. / 012*+,*". 34$#'"5(#+6. '( 7".(. '( 8"+6.9
Código 7:
Código 8:
Resultado Código 8:
:==