viernes, 9 de mayo de 2008

Desarrollo C4 (Ejemplos)

EJEMPLO 1
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?

2. ¿Qué atributos tiene la relación Oficinas?

3. ¿Qué atributos tiene la relación Personal?

4. ¿Qué atributos permite que compartan información las relaciones?

5. ¿Qué atributos funcionarían como llaves primarias?

EJERCICIO 2
Instrucciones: A partir de los casos presentados tanto en el ejercicio 2 como en el ejercicio 9 de
la 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 Personal
WHERE 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 denominado
of_num, que en realidad sirve como el enlace o relación entre las dos tablas. Además
la llave primaria para la tabla oficinas es of_num, mientras que para personal es
Clave.

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.


- Creando la tabla oficinas.
Create table oficinas (
of_num integer not null,
calle char(20) not null,
colonia char(20) not null,
poblacion char(20) not null,
estado char(20) not null,
telefono char(20) not null);


- Creando la tabla personal
Create table personal (
clave char(4) not null,
nombre char(25) not null,
apellido char(25) not null,
direccion char(30) not null,
poblacion char(20) not null,
puesto char(20) not null,
salario char(20) not null,
curp char(20) not null,
of_num integer);
- Añadiendo la llave primaria a la tabla oficinas.
Alter table oficinas add primary key (of_num);
- 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 oficina
Alter table "empleados" add foreign key ("of_num") references
oficinas ("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 y
tipos 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.

No hay comentarios: