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.

miércoles, 7 de mayo de 2008

Conocimientos previos

* Modelo entidad/relación
* Estructura de la base de datos relacional
* Lenguaje de consulta SQL
* Restricciones semánticas
* Teoría de la normalización (formas normales y depencias funcionales)
* Seguridad en la base de datos


El modelo relacional se basa en el concepto matemático de relación, que gráficamente se representa mediante una tabla.

Una relación es una tabla con columnas (atributos) y filas (tuplas).

Un atributo es el nombre de una columna de una relación.

Un Dominio es el conjunto de valores que puede tomar un atributo (se considera finito).

Una consulta simple en el lenguaje SQL se integra por tres partes:

SELECT que permite identificar los elementos que se van a mostrar en una consulta una vez que se haya ejecutado.

FROM indica la relación a partir de la cual se seleccionarán los datos para la consulta.

WHERE indica si existe alguna restricción para mostrar resultados de una consulta.

Cabe hacer mención que a pesar de que el lenguaje SQL tiene su origen para mostrar resultados a preguntas de bases de datos, sus capacidades se extienden mucho más allá, pues permite además insertar, borrar, copiar, concatenar y en general, realizar muchas acciones de manipulación a las bases de datos.

Los comandos en SQL:

• DLL permiten crear y definir nuevas bases de datos, campos e índices.

• DML permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.

Comandos DLL

• CREATE Utilizado para crear nuevas tablas, campos e índices.

• DROP Empleado para eliminar tablas e índices.

• ALTER Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos.

Comandos DML

• 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 operación.

• UPDATE Utilizado para modificar los valores de los campos y registros especificados

• DELETE Utilizado para eliminar registros de una tabla de una base de datos

Cláusulas
Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular.

• FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros.

• WHERE Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar.

• GROUP BY Utilizada para separar los registros seleccionados en grupos específicos.

• HAVING Utilizada para expresar la condición que debe satisfacer cada grupo.

• ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico.

Operadores Lógicos

• AND Es el "y" lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas son ciertas.

• OR Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta.

• NOT Negación lógica. Devuelve el valor contrario de la expresión.

Operadores de Comparación
• <> Mayor que

• <>Distinto de

• <= Menor ó Igual que • >= Mayor ó Igual que

• = Igual que

• BETWEEN Utilizado para especificar un intervalo de valores.

• LIKE Utilizado en la comparación de un modelo.

• In Utilizado para especificar registros de una base de datos.

Funciones de Agregado
Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de registros para devolver un único valor que se aplica a un grupo de registros.

• AVG Utilizada para calcular el promedio de los valores de un campo determinado.

• COUNT Utilizada para devolver el número de registros de la selección.

• SUM Utilizada para devolver la suma de todos los valores de un campo determinado.

• MAX Utilizada para devolver el valor más alto de un campo especificado.

• MIN Utilizada para devolver el valor más bajo de un campo especificado.

El proceso de normalización es un estándar que consiste, básicamente, en un proceso de conversión de las relaciones entre las entidades, evitando:

* La redundancia de los datos: repetición de datos en un sistema.

* Anomalías de actualización: inconsistencias de los datos como resultado de datos redundantes y actualizaciones parciales.

* Anomalías de borrado: pérdidas no intencionadas de datos debido a que se han borrado otros datos.

* Anomalías de inserción: imposibilidad de adicionar datos en la base de datos debido a la ausencia de otros datos.

Competencia 4

IV.- Diseñar bases de datos con el modelo relacional

Introducción
De nueva cuenta comenzamos una competencia más, en este caso la competencia referente al diseño de bases de datos bajo el modelo relacional. En la competencia anterior, desarrollamos las capacidades necesarias para diseñar bases de datos con el modelo Entidad – Relación,ahora haremos un cambio importante al utilizar otro modelo de bases de datos, un modelo que sin duda permitirá que comprendas de forma mucho más sencilla los concepto de bases de datos.

En este apartado vamos estudiar especialmente un lenguaje mucho muy útil en la manipulación de las bases de datos que se encuentran diseñadas bajo el modelo relacional, el Lenguaje de Estructurado de Consultas, mejor conocido como SQL. Mismo que es un estándar a nivel mundial y que ha ido evolucionado hasta convertirse en el más utilizado en la actualidad en aplicaciones de Internet que requieren la administración de bases de datos, tal es el caso de foros, salas de chat,páginas que ofrecen el servicio de correo electrónico, páginas de bitácoras (blogs),etc.

Iniciemos pues, el trabajo para convertirnos en técnicos capacitados en la manipulación de bases de datos relacionales. Unicamente cabe hacerte de nueva cuenta el recordatorio, de que todos nuestros esfuerzos por crear un material atractivo para ti, resultarán infructuosos sin tu empeño por criticarlos y mejorarlos, pero sobre todo sin tu empeño por superarte día a día en esta área de la informática.

HABILIDAD 1 - 2. Elaborar la estructura relacional de la base de datos.

RESULTADO DE APRENDIZAJE:Una vez que hayas finalizado esta habilidad estarás en
posibilidad de elaborar bases de datos bajo la estructura marcada por el modelo relacional.
HABILIDAD:
3. Operar el lenguaje de consulta SQL.
4. Ejecutar las restricciones semánticas.
5. Aplicar la teoría de la normalización.
6. Aplicar la seguridad de la base de datos

RESULTADO DEAPRENDIZAJE: Al finalizar esta habilidad tendrás las capacidades para
realizar consultas a bases de datos mediante el lenguaje de consultas conocido como SQL, tomando en cuenta aspectos como las restricciones semánticas, la normalización de
bases de datos y la seguridad.