sábado, 17 de noviembre de 2012

Tarea Unidad 5 - Tratamiento de los valores nulos

Tratamiento de los valores nulos.
Reunión.- Las reuniones se pueden expresar como un producto cartesiano seguido de una selección.
La definición de la forma en la cual la selección trata los nulos también define la forma en que la operación reunión trata los nulos.
En una reunión natural, si dos tuplas tienen valor nulo en el atributo común, las tuplas no enlazan.
Ejemplos:
Considérese las siguientes relaciones:



De las relaciones anteriores se aplican las operaciones de reunión descritas en la imagen:
El valor Null es común en ambas relaciones, uno en la tupla de Rita Ruiz y otra en el producto de $8
Ejemplo 1-Reunión
Ejemplo 2-Reunión

Proyección generalizada.- Los nulos en las expresiones de los atributos en la proyección generalizada se tratan como en cualquier expresión.
Las tuplas duplicadas que contienen valores nulos se tratan como en la operación proyección (trata los nulos como cualquier otro valor al eliminar duplicados, aunque la decisión es un tanto arbitraria porque sin saber cuál es el valor real no se sabe si los dos valores nulos son duplicados o no).




Ejemplos:
Considérese la misma relación Producto y una nueva relación Cliente compras con un nuevo atributo Descuento (%):

a las que se le aplican operaciones de proyección generalizada:
Ejemplo 1-Proyección generalizada
Ejemplo 2-Proyección generalizada

Funciones de agregación.- Cuando hay nulos en atributos agregados, la operación borra los valores nulos del resultado antes de aplicar la agregación.

El tratamiento de los valores nulos aquí es diferente al realizado en las operaciones aritméticas <- aplicarlo como en las operaciones aritméticas significaría que un único valor desconocido en un gran grupo podría hacer que el resultado agregado sobre el grupo fuese nulo, y se perdería una gran cantidad de información útil.
Ejemplos:
Ejemplo 1-Función de agregación promedio (AVG).

Ejemplo 2-Función de agregación cuenta (COUNT).
Reunión externa.- Las operaciones de reunión externa se comportan como las operaciones de reunión, excepto sobre las tuplas que no aparecen en el resultado.
Ejemplos:


Ejemplo 1-Reunión Externa
Ejemplo 2-Reunión Externa

miércoles, 7 de noviembre de 2012

Tarea Unidad 4-Integridad en las bases de datos

Tarea, Unidad 4.

4.9 Integridad en las bases de datos.

Integridad de entidad.- Pretende que cada entidad que se guarda en la base de datos sea identificable de un modo único, es decir, que evitemos la información redundante. La integridad de entidad define una fila como entidad única para una tabla determinada. La integridad de entidad exige la integridad de las columnas de los identificadores o la clave principal de una tabla, mediante índices y restricciones UNIQUE, o restricciones PRIMARY KEY.

Ejemplos:
1.- Ninguna factura puede tener un número duplicado, ni puede ser nulo. En suma, todas las facturas están identificadas de manera única por sus números.

2.- En la siguiente relación, puesto que la clave primaria está formada por edificio y número, no hay ningún despacho que tenga un valor nulo para edificio, ni tampoco para número.

Integridad de dominio.- La integridad de dominio viene dada por la validez de las entradas para una columna determinada. Puede exigir la integridad de dominio para restringir el tipo mediante tipos de datos, el formato mediante reglas y restricciones CHECK, o el intervalo de valores posibles mediante restricciones FOREIGN KEY, restricciones CHECK, definiciones DEFAULT, definiciones NOT NULL y reglas.

Ejemplos:
1.-Si en la relación EMPLEADOS (DNI, nombre, apellido, edad_emp) hemos declarado que dominio(DNI) es el dominio predefinido de los enteros, entonces no podremos insertar, por ejemplo, ningún empleado que tenga por DNI el valor “Luis”, que no es un entero.

2.- Supongamos ahora que en la relación EMPLEADOS(DNI, nombre, apellido, edad_emp) hemos declarado que dominio(edad_emp) es el dominio definido por el usuario edad. Supongamos también que el dominio edad se ha definido como el conjunto de los enteros que están entre 16 y 65. En este caso, por ejemplo, no será posible insertar un empleado con un valor de 90 para edad_emp.

Integridad referencial.- La integridad referencial protege las relaciones definidas entre las tablas cuando se crean o se eliminan filas. En SQL Server la integridad referencial se basa en las relaciones entre claves externas y claves principales o entre claves externas y claves exclusivas, mediante restricciones FOREIGN KEY y CHECK. La integridad referencial garantiza que los valores de clave sean coherentes en las distintas tablas. Para conseguir esa coherencia, es preciso que no haya referencias a valores inexistentes y que, si cambia el valor de una clave, todas las referencias a ella se cambien en consecuencia en toda la base de datos.

Ejemplos:
1.- Integridad referencial mediante claves externas/principales
Ejemplo en SQL Server: en las tablas Sales.SalesOrderDetail y Production.Product de la base de datos AdventureWorks2008R2, la integridad referencial se basa en la relación entre la clave externa (ProductID) de la tabla Sales.SalesOrderDetail y la clave principal (ProductID) de la tabla Production.Product. Esta relación garantiza que un pedido de ventas no pueda nunca hacer referencia a un producto que no existe en la tabla Production.Product.

2.- Supongamos una base de datos con las entidades Persona y Factura. Toda factura corresponde a una persona y solamente una. Implica que en todo momento dichos datos sean correctos, sin repeticiones innecesarias, datos perdidos y relaciones mal resueltas. Supongamos que una persona se identifica por su atributo DNI (Documento Nacional de Identidad). También tendrá otros atributos como el nombre y la dirección. La entidad Factura debe tener un atributo DNI_cliente que identifique a quién pertenece la factura. Por sentido común es evidente que todo valor de DNI_cliente debe corresponder con algún valor existente del atributo DNI de la entidadPersona. Esta es la idea intuitiva de la integridad referencial.

Integridad definida por el usuario.-Comprenderán las reglas que se definan para la base de datos. La integridad definida por el usuario permite definir reglas de empresa específicas que no pertenecen a ninguna otra categoría de integridad. Todas las categorías de integridad admiten la integridad definida por el usuario. Esto incluye todas las restricciones de nivel de columna y nivel de tabla en CREATE TABLE, procedimientos almacenados y desencadenadores.


Ejemplos:

1.- Planear y crear tablas requiere identificar los valores válidos para las columnas y decidir cómo exigir la integridad de los datos en las columnas.

2.-Restricciones PRIMARY KEY Restricciones FOREIGN KEY Restricciones UNIQUE Restricciones CHECK Definiciones DEFAULT Permitir valores NULL.

martes, 6 de noviembre de 2012

Modelo Relacional

Modelo Relacional. (Usando DBDesigner 4)

Transformando del modelo E-R al Relacional:


Aplicando la primera forma normal queda:


Aplicando la segunda forma normal:


Corrección debida a la eliminación de un dato que no es necesario almacenar (Costo_página):


Corrección debida a la eliminación de datos que no son necesarios almacenar, además de algunos tipos de datos corregidos:


Modelo E-R

Modelo Entidad-Relación.