En el ejemplo que se te presenta a continuación se aprecian varias relaciones así como los datos que se incluye en cada una de ellas. Analiza con mucho detenimiento.
EJERCICIO 1
Instrucciones: Contesta los cuestionamientos que a continuación se te presentan.Comparte tus respuestas ante el resto del grupo.
1. ¿Cuántas relaciones existen en la base de datos y cuáles son?
DE UNA A VARIOS
2. ¿Qué atributos tiene la relación Oficinas?
OFICINA NUMERO, CALLE, COLONIA, POLASION, ESTADO Y TELEFONO
3. ¿Qué atributos tiene la relación Personal?
SALARIO, CURP, Y OFICINA NUMERO
4. ¿Qué atributos permite que compartan información las relaciones?
OFICINA NUMERO Y POBLACION
5. ¿Qué atributos funcionarían como llaves primarias?
OFICINA NUMERO,CLAVE
EJERCICIO 2
Instrucciones: A partir de los casos presentados tanto en el ejercicio 2 como en el ejercicio 9 dela competencia anterior (3) genera dos bases de datos bajo el modelo relacional.
Comparte tu trabajo ante el resto del grupo.
EJEMPLO 2
A partir de la información que se incluyó en la base de datos del ejemplo 1 en esta misma competencia, planteamos algunas preguntas y su respuesta mediante consultas elaboradas en SQL.
1. ¿Cuáles son los trabajadores que laboran en la oficina 01?
SELECT Nombre
FROM
Of_num = 01
Interpretando cada sentencia de ese consulta:SELECT Nombre Mostrará todos los datos que aparezcan en la columna nombre.
FROM Personal Los datos de la columna nombre que está en la relación llamada Personal.
WHERE Of_num = 01 para poder ser mostrado un nombre debe tener en la columna Of_num el número 01.
Finalmente, el resultado de esta consulta será:
NOMBRE
Artemio
Sonia
Flor
2. ¿Cuáles son los trabajadores que tienen un salario menor a $15,000?
SELECT Nombre
FROM Personal
WHERE Salario < 15,000
Interpretando cada sentencia de ese consulta:
SELECT Nombre Mostrará todos los datos que aparezcan en la columna nombre.
FROM Personal Los datos de la columna nombre que está en la relación llamada Personal. WHERE Salario < 15,000 indica que la condición para que se muestre el nombre del trabajador es que el valor que tiene en Salario sea menor a 15,000.
Finalmente, el resultado de esta consulta será:
Nombre
Ilych
Sergio
Artemio
Víctor
Javier
Miguel
Flor
Héctor
Ricardo
Rodrigo
3. ¿Cuáles son los trabajadores que trabajan en la oficina de Mérida?
SELECT Nombre
FROM personal
WHERE Of_num IN (SELECT Of_num
FROM Oficinas
WHERE Población= 'Mérida')
Interpretando cada sentencia de ese consulta:
SELECT Nombre Mostrará todos los datos que aparezcan en la columna nombre.
FROM personal Los datos de la columna nombre que está en la relación llamada Personal. WHERE Of_num IN aquí se crea lo que conoce como consulta anidada, es decir, lo que aparece en Of_num, tiene que pasar antes por una condición para ser seleccionado. Dicha condición se especifica en la consulta que se encuentra en el paréntesis que dice a grandes rasgos, seleccionar el of_num de la tabla oficinas donde población sea igual a Mérida.
(SELECT Of_num
FROM Oficinas
WHERE Población= 'Mérida')
Finalmente, el resultado de esta consulta será:
Nombre
Víctor
EJEMPLO 3
Observemos de nueva cuenta el ejemplo 1 de esta competencia. Si planteamos las tablas y sus atributos, podríamos ver algo similar a lo siguiente.Podemos observar que las tablas comparten un atributo en común denominadoof_num, que en realidad sirve como el enlace o relación entre las dos tablas. Ademásla llave primaria para la tabla oficinas es of_num, mientras que para personal es
Clave. of_numero
EJEMPLO 4
Ahora veamos las consultas SQL necesarias para crear las tablas, añadir claves primarias y establecer la relación entre las tablas una vez que han sido creadas.
- Añadiendo la llave primaria a la tabla personal.Alter table personal add primary key (clave);
- Añadiendo la relación desde la tabla personal a la tabla oficinaAlter table "empleados" add foreign key ("of_num") referencesoficinas ("of_num");
EJEMPLO 5
Veamos las mismas consultas pero para crear otras tablas, presta atención a los atributos y sus tipos de datos, porque serán utilizados en el siguiente ejercicio.
Create table vacuna (Novacuna int not null,Nombre char(25),Laboratorio char(20),Presentacion char(10),Primary key (novacuna))
Create table aplicacion (Noaplic int not null,Dueno char(40),Domicilio char(50),Animal char(20),Nombreanimal char(25),Vacuna int,Fechaplic char(10),Primary key (noaplic))
Create table comunidades(Nocon int not null,Nombrecom char(35),Cabregis int,Primary key(nocon))
Alter table aplicacion add foreign key (vacuna) references vacuna (novacuna);
EJERCICIO 3
Instrucciones: En los cuadros que se presentan a continuación señala los diferentes atributos ytipos de datos para las tablas creadas en el ejemplo 5 de esta competencia. Señala asimismo cuáles son las llaves primarias y las relaciones entre tablas.