4 1 Relational Database Design

Embed Size (px)

Citation preview

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales

Jos M Llorente de [email protected] JULIO 2007

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionalesndice4.1.1. Introduccin 4.1.3. Modelo Relacional4.1.1 Objetivos del Diseo de BD Relacionales 4.1.3.1 Introduccin al Modelo Relacional 4.1.3.2 Conceptos Fundamentales 4.1.2 Problemas de un mal diseo de BD(Tablas, Registros, Campos, Claves, Integridad)

4.1.2. Modelo Entidad-Relacin4.1.2.1 Introduccin y Conceptos fundamentales (Entidad, Relacin y Atributos) 4.1.2.2 Representacin Grfica del Modelo E-R. 4.1.2.3 Cardinalidades (1:1, 1:N, N:M) 4.1.2.4 Eleccin de Claves 4.1.2.5 Ejercicio Prctico 4.1.2.6 Reduccin o paso a tablas del Modelo E-R .

4.1.3.3 Normalizacin de una Base de Datos 4.1.3.2.1 Primera Forma Normal (1NF)4.1.3.2.2 Segunda Forma Normal (2NF) 4.1.3.2.3 Tercera Forma Normal (3NF) 4.1.3.2.4 Forma Normal de Boyce-Codd (BCNF) 4.1.3.4.5 Otras Formas Normales (4NF, 5NF) 4.1.3.4.6 Reglas de Codd

4.1.4.Ejercicio Prctico

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.1.1 Objetivos del Diseo de BD Relacionales (I)Reflejar la estructura del problema en el mundo real. Evitar almacenamiento redundante de los datos. Proporcionar un acceso eficaz a los datos. Mantener la integridad de los datos y la calidad de la informacin con el paso del tiempo. Ser claro coherente y de fcil compresin.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.1.1 Objetivos del Diseo de BD Relacionales (y II)

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.1.2 Problemas de un mal Diseo de BD (I)Datos replicados inconsistentes. Actualizaciones costosas. Prdida de informacin. Prdida de la integridad de los datos.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.1.2 Problemas de un mal Diseo de BD (II)Se necesita almacenar el cdigo de un artculo, su precio, el cdigo del proveedor que lo proporciona y la direccin donde se encuentra dicho proveedor.Un proveedor tiene una sola direccin. Un artculo tiene slo un precio.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.1.2 Problemas de un mal Diseo de BD (III)El diseo anterior tiene varios problemas: 1. Problema de redundancia:La direccin del proveedor se repite por cada artculo pedido. El precio de un artculo se repite cada vez que se pide dicho artculo.

2. Anomalas de actualizacin:Pueden crear inconsistencias para los tres tipos de actualizaciones - Insercin de nuevos datos. - Borrado de datos existentes. - Modificacin de datos existentes.

.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.1.2 Problemas de un mal Diseo de BD (IV)Anomalas de insercin: - No se puede insertar un nuevo proveedor si no se ha realizado ningn pedido, puesto que la clave es #Proveedor y #Articulo. - No se puede insertar un nuevo artculo si todava no se ha pedido, puesto que la clave es #Proveedor y #Articulo.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.1.2 Problemas de un mal Diseo de BD (V)Anomalas de borrado: -Si se borra un pedido, podemos perder los datos de un proveedor o de un artculo.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.1.2 Problemas de un mal Diseo de BD (VI)Anomalas de modificacin: - Si modificamos la ciudad de un proveedor, generalmente, es necesario modificar varios registros. - Si modificamos el precio de un artculo, generalmente, es necesario modificar varios registros.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.1.2 Problemas de un mal Diseo de BD (y VII)Solucin: Descomponer la relacin original en tres relaciones: - Proveedores. - Pedidos. - Articulos.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales

4.1.2 MODELO ENTIDAD RELACIN

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.2.1 Introduccin y conceptos fundamentales (I)Es uno de los modelos de datos ms populares. Se desarroll para facilitar el diseo de las bases de datos, y fue presentado por Peter Chen en 1976. Se basa en una representacin del mundo real en que los datos se describen como entidades, relaciones y atributos y permite representar el esquema conceptual de una base de datos de forma grfica mediante los diagramas de E-R. Posteriormente otros muchos autores han investigado y escrito sobre el modelo, proporcionando importantes aportaciones (Modelo E-R extendido), por lo que realmente no se puede considerar un nico modelo E-R. El modelado de datos no acaba con el uso de esta tcnica. Son necesarias otras tcnicas adicionales para lograr un modelo directamente implementable en una base de datos.Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.2.1 Introduccin y conceptos fundamentales (II)El principal concepto es la ENTIDAD definida como: Cualquier objeto del mundo real con existencia propia, sobre el cual queremos tener informacin en una base de datos Una entidad puede ser un objeto con existencia fsica (una cierta persona, una casa, un empleado, un coche,..) o un objeto con existencia conceptual (una empresa, un puesto de trabajo, un curso universitario,...)

Las entidades pueden ser fuertes, aquellas con existencia por si mismas, o dbiles, su existencia depende de otro tipo de entidad. Las entidades tienen propiedades especficas llamadas ATRIBUTOS que las describen. Ej:- Entidad PROVEEDOR puede describirse con su CIF, nombre y telfono.

Los atributos pueden ser simples o multievaluados cuando pueden tomar ms de un valor.Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.2.1 Introduccin y conceptos fundamentales (y III)Al conjunto de valores que puede tomar un atributo se le llama DOMINIO del atributo. Por ejemplo:-Atributo Nombre tiene como dominio al conjunto de caracteres, -Atributo Telefono tiene como dominio al conjunto de enteros positivos.

Una RELACIN es una asociacin entre entidades. Por Ejemplo:- La entidad alumno puede estar relacionada con la entidad curso mediante la relacin est inscrito. Una relacin puede tener tambin atributos. Por ejemplo la relacin esta inscrito puede tener los atributos semestre y nota de aprobacin.

El GRADO de una relacin es el nmero de entidades que participan en la relacin. (Se recomienda slo utilizar grado 2) La CLAVE de una entidad es el conjunto de atributos que determinan unvocamente una instancia o ocurrencia de esa entidad. Por ejemplo:- CIF para una Entidad ClienteCurso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.2.2 Representacin grfica del Modelo Entidad-RelacinLa ENTIDAD se representa con un rectngulo de trazo simple. Si la entidad es dbil se representa con lneas de doble trazo: Los ATIBUTOS se representan por elipses que estn conectadas a su entidad mediante una lnea recta. Si el atributo es multivaluado se utiliza una doble elipsis: Las RELACIONES se representan grficamente como un rombo y sus nombres son verbos.Una relacin puede tener atributos descriptivos:

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.2.3 Cardinalidades (1:1, 1:N, N:M) (I)La CARDINALIDAD expresa el nmero mximo de entidades que estn relacionadas con una nica entidad del otro conjunto de entidades que interviene en la relacin.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.2.3 Cardinalidades (1:1, 1:N, N:M) (y II)Una persona puede tener un solo coche y el coche solo puede pertenecer a una persona. Un cliente puede comprar varios artculos y un artculo puede ser comprado por varios clientes distintos. Un cliente puede tener varias facturas emitidas a su nombre pero una factura tiene un nico cliente.

Observaciones a la anotacin:Se puede utilizar como notacin (0,1) (0,N) o (1,N) para indicar las cardinalidades mnimas y mximas respectivamente. Si como cardinalidad mnima utilizamos "1" la entidad est obligada a participar en la relacin. Si utilizamos 0 no hay obligacin en participar. "N" , "M", "*" significa que la entidad puede participar cualquier nmero de veces.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.2.4 Eleccin de ClavesLos atributos que forma la CLAVE de una entidad se representan subrayndolos o con un smbolo de almohadilla al inicio: - Clave Sencilla: un nico atributo - Clave Compuesta: formada por ms de un atributo. Los atributos que componen la clave siempre deben tener valor, ninguno puede tener valor nulo. En caso de varias claves candidatas elegir siempre la clave con menor nmero de atributos.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.2.5 Ejercicio Prctico (I)El modelado de datos utiliza la siguiente tcnica: Paso 1.Se parte de una descripcin textual del problema o sistema de informacin a automatizar (requisitos). Paso 2. Se hace una lista de los sustantivos y verbos que aparecen Paso 3. Los sustantivos son posibles entidades o atributos. Paso 4.Los verbos son posibles relaciones. Paso 5. Analizando las frases se determina la cardinalidad de las relaciones y otros detalles. Paso 6.Se elabora el diagrama entidad-relacin Paso 7.Se completa el modelo con listas de atributos y una descripcin de otras restricciones que no se pueden reflejar en el diagrama.Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.2.5 Ejercicio Prctico (II)Paso 1.Se parte de una descripcin textual del problema o sistema de informacin a automatizar (requisitos). Se quiere gestionar una biblioteca, necesitamos controlar todos los libros, autores as como los clientes y los libros que se les presta. Los libros se identifican por su ISBN y adems debemos guardar los datos del ttulo, autor y tener un control de los prstamos realizados y pendientes. En nuestra biblioteca cada libro slo est escrito por un nico autor. De los autores necesitamos guardar un cdigo identificativo, nombre y apellidos. De los clientes necesitamos tener una ficha con su DNI, Nombre, Apellidos, Direccin y Telfono. Todos los prstamos tienen una fecha de inicio y una fecha final y un cliente puede tener en prstamo todos los libros que quiera.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.2.5 Ejercicio Prctico (III)Paso 2. Se hace una lista de los sustantivos y verbos que aparecen.

SUSTANTIVOS: Biblioteca, Libro, Autor, Cliente, ISBN, ttulo, prstamo realizado, prestamo pendiente, cdigo identificativo, nombre, apellidos, DNI, nombre, apellidos, direccin, telfono, fecha inicio, fecha fin. VERBOS Controlar, Prestar, Identificar, Escribir.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.2.5 Ejercicio Prctico (IV)Paso 3.Los sustantivos son posibles entidades o atributos. Entidades -> Libro, Autor, Cliente Atributos -> ISBN, ttulo, codigo identificativo, nombre, apellidos, DNI, nombre, apellidos, direccin, telfono, fecha inicio, fecha fin. Paso 4.Los verbos son posibles relaciones. Relaciones -> Prestar, Escribir Paso 5.Analizando las frases se determina la cardinalidad de las relaciones y otros detalles.En nuestra biblioteca cada libro slo est escrito por un nico autor.

un cliente puede tener en prstamo todos los libros que quiera

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.2.5 Ejercicio Prctico (V)Paso 6. Se elabora el diagrama entidad-relacin

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.2.5 Ejercicio Prctico (y VI)

Paso 7.Se completa el modelo con listas de atributos y una descripcin de otras restricciones que no se pueden reflejar en el diagrama.

NOTA: Dado lo rudimentario de esta tcnica se necesita cierto entrenamiento y experiencia para lograr buenos modelos de datos.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.2.6 Reduccin o paso a tablas del modelo E-R (I)El modelo E-R y el modelo de BD relacional son representaciones abstractas y lgicas del mundo real.. Los dos modelos emplean principios de diseo similares, por lo que se puede convertir un diseo E-R en un diseo relacional y viceversa. Existen herramientas que realizan este proceso automticamente.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.2.6 Reduccin o paso a tablas del modelo E-R (II)Para las ENTIDADES Se genera una tabla donde los campos o columnas son los atributos de la entidad. La clave primaria es la misma que en el modelo E-R.

Tabla: EMPLEADO

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.2.6 Reduccin o paso a tablas del modelo E-R (III)Para las RELACIONES 1:1 Las entidades entre las que hay una interrelacin uno a uno generan dos tablas. Una de las tablas generadas deber tener como clave ajena la clave primaria de la otra. Depende del problema especfico que se una u otra.

Tabla: PERSONA

Tabla: COCHE

Si la relacin tuviese atributos tambin formaran parte de la tabla.Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.2.6 Reduccin o paso a tablas del modelo E-R (IV)Para las RELACIONES 1:N Se utiliza una tabla para cada entidad. A la tabla que representa la entidad N se le aade como atributo la clave primaria de la entidad con la que se relaciona (clave ajena).

Tabla: DEPARTAMENTO

Si la relacin tuviese atributos formaran parte de la tabla del lado N. En este caso de EMPLEADO.

Tabla: EMPLEADO

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.2.6 Reduccin o paso a tablas del modelo E-R (V)Para las RELACIONES N:M Se generan tres tablas, una para cada entidad y otra que contiene los atributos propios de la relacin ms la claves primarias de las entidades que participan en la relacin.Tabla: CLIENTE

Tabla: ARTICULOS

Tabla: COMPRAS

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.2.6 Reduccin o paso a tablas del modelo E-R (y VI)Para los ATRIBUTOS Multivaluados Estos atributos se generan en tablas separadas, con la clave primaria la de la entidad o relacin a la que pertenecen.Tabla: COCHE

Tabla: COCHE_COLOR

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales

4.1.3 MODELO RELACIONAL

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.3.1. Introduccin al Modelo Relacional.Modelo ms utilizado en la actualidad para modelar problemas reales. Creado por Edgar Frank Codd en los 70. Se basa en el concepto de relacin y el modelo se asienta en el lgebra y clculo relacionales. Distribuye los conjuntos de datos en tablas. Las tablas (matrices) est compuestas por registros o tuplas (filas) y campos (columnas). El lugar, forma e incluso el orden en que se almacenen los datos no tiene relevancia a este nivel. La informacin se almacena y recupera mediante consultas. El lenguaje ms habitual para consultas a BD Relacionales es el SQL (Structured Query Language).

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.3.2. Normalizacin de una base de datos (I).La normalizacin de los datos puede considerarse como un proceso durante el cual las relaciones (o tablas) que no cumplen las condiciones se descomponen repartiendo sus atributos entre relaciones ms pequeas que cumplen las condiciones establecidas. .. El objetivo del proceso de normalizacin es garantizar que no ocurran anomalas al actualizar/modificar/consultar datos. Codd propuso tres formas normales, a las cuales llam primera, segunda y tercera formas normales (1FN, 2FN, 3FN). Posteriormente, Boyce y Codd propusieron una definicin ms estricta de 3FN, a la que se conoce como forma normal de Boyce-Codd (FNBC). Todas estas formas normales se basan en las dependencias funcionales entre los atributos de una relacin.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.3.2. Normalizacin de una base de datos (y II)Las tcnicas y algoritmo de normalizacin de los datos se basan el lgica de predicados donde trabajamos con: -RELACIONES: Corresponden a las tablas. -ATRIBUTOS: Corresponden a los campos de cada tabla. -DEPENDENCIAS FUNCIONALES: Propiedades inherentes al contenido semntico de los datos.

ARTICULOS(Codigo, Descripcion, Stock) Codigo ->Descripcion Codigo ->Stock

Tabla: ARTICULOS

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.3.3.1 Primera Forma Normal (1NF)Una relacin o tabla est en primera forma normal (1FN) si los valores para cada atributo de la relacin son atmicos. La primera forma normal se defini para prohibir los atributos multivaluados, compuestos y sus relaciones. Cada atributo slo puede pertenecer a un dominio (es indivisible) y que tiene un valor nico para cada fila. Todas las filas deben tener el mismo nmero de columnas. Cuando una relacin (o tabla) no est en primera forma normal, se divide en otras relaciones, repartiendo sus atributos entre las resultantes. Normalmente la idea es eliminar el atributo que viola la 1 FN de la relacin original y colocarlo en una relacin aparte junto con la clave primara de la relacin de partida.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.3.3.1 Primera Forma Normal (1NF) (Ejemplo)

Si el color del coche puede ser mltiple (atributo multivaluado) est tabla no est en 1NF. Descomponemos en dos tablas donde pasamos el atributo multivaluado con la clave de la tabla inicial.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.3.3.2 Segunda Forma Normal (2NF)Una relacin est en (2NF) si est en la (1FN) y todo campo que no sea clave depende por completo de toda la clave.. Este paso slo se aplica a relaciones que tienen claves compuestas, es decir, que estn formadas por mas de un atributo. Si una relacin est en 1FN y su clave primaria es simple (tiene un solo atributo), entonces tambin est en 2FN Si una relacin no est en (2FN), se le puede normalizar a varias relaciones en (2FN) en las que los atributos que dependen de una parte de la clave formarn una nueva relacin que tendr esa parte de la clave como clave primaria.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.3.3.2 Segunda Forma Normal (2NF) (Ejemplo)

Esta tabla no est en 2NF porque hay atributos que no dependen por completo de toda la clave. DNI->Nombre_Empleado Num_Proyecto->Nombre_Proyecto Para llevar a 2NF realizamos la siguiente descomposicin:

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.3.3.3 Tercera Forma Normal (3NF)"Una relacin est en (3NF) si esta en (2NF) y todos los atributos de la relacin dependen de la clave completa de forma no transitiva".

Para pasar una relacin de (2NF) a (3NF) hay que eliminar las dependencias transitivas. Para ello, se eliminan los atributos que dependen transitivamente y se ponen en una nueva relacin con una copia de su determinante (el atributo o atributos no clave de los que dependen). Podemos observar que si una relacin est en (3NF), est tambin en segunda forma normal, sin embargo lo inverso no siempre es cierto.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.3.3.3 Tercera Forma Normal (3NF) (Ejemplo)

Esta tabla no est en 3NF ya que hay dependencias transitivas DNI->Num_Dep Num_Dep->DNI_Grt_Dep, Nombre_Dep Para llevar a 3NF realizamos la siguiente descomposicin:

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.3.3.4 Forma Normal de Boyce-Codd (BCNF)Una relacin est en FNBC si cualquier atributo slo facilita informacin sobre claves candidatas, y no sobre atributos que no formen parte de ninguna clave candidata La 2FN y la 3FN eliminan las dependencias parciales y las dependencias transitivas de la clave primaria. Pero este tipo de dependencias todava pueden existir sobre otras claves candidatas, si stas existen. La BCFN es ms fuerte que la 3FN, por lo tanto, toda relacin en BCFN est en 3FN. Si la clave primaria est formada por un solo atributo y est en 3NF, ya est en FNBC. Si una tabla est en 3FN y sus claves candidatas NO se solapan, entonces est en FNBC. La BCNF es un poco ms estricta que 3FN. La BCNF se considera mejor que 3NF pero ambas son aceptables. En cambio 1NF y 2NF, salvo situaciones muy puntuales, no se consideran buenos diseosCurso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.3.3.4 Forma Normal de Boyce-Codd (BCNF) (Ejemplo)

En este caso hay dependencia entre el cdigo postal y la poblacin, ya que, conocido el cdigo postal se puede conocer la poblacin, y conocida la direccin y la poblacin, se conoce el cdigo postal. Para transformar la tabla en una tabla en FNBC se crea una tabla de cdigos postales y poblaciones, eliminando de la tabla original la poblacin, obtenindose dos tablas, una con los atributos direccin y cdigo postal y otra con el cdigo postal y la poblacin:

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.3.3.5 Otras Forma NormalesTodas las formas normales vistas se basan en las dependencias funcionales entre los atributos de una relacin. Ms adelante se propusieron una cuarta forma normal (4FN) y una quinta (5FN).

En general las tres primeras formas normales son suficientes para cubrir las necesidades de la mayora de las bases de datos.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.3.3.6. Reglas de Codd (I)Codd se percat que existan bases de datos en el mercado las cuales decan ser relacionales, pero lo nico que hacan era guardar la informacin en las tablas, sin estas tablas estar literalmente normalizadas. Public 12 reglas que un verdadero sistema relacional debera tener. En la prctica algunas de ellas son difciles de realizar. Un sistema podr considerarse "ms relacional" cuanto ms siga estas reglas.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.3.3.6. Reglas de Codd (II)Regla No. 1 - La Regla de la informacin "Toda la informacin en un RDBMS est explcitamente representada de una sola manera por valores en una tabla".Cualquier cosa que no exista en una tabla no existe del todo. Toda la informacin, incluyendo nombres de tablas, nombres de vistas, nombres de columnas, y los datos de las columnas deben estar almacenados en tablas dentro de las bases de datos. Las tablas que contienen tal informacin constituyen el Diccionario de Datos.

Regla No. 2 - La regla del acceso garantizado "Cada tem de datos debe ser lgicamente accesible al ejecutar una bsqueda que combine el nombre de la tabla, su clave primaria, y el nombre de la columna".Esto significa que dado un nombre de tabla, dado el valor de la clave primaria, y dado el nombre de la columna requerida, deber encontrarse uno y solamente un valor. Por esta razn la definicin de claves primarias para todas las tablas es prcticamente obligatoria.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.3.3.6. Reglas de Codd (III)Regla No. 3 - Tratamiento sistemtico de los valores nulos "La informacin inaplicable o faltante puede ser representada a travs de valores nulos".Un RDBMS (Sistema Gestor de Bases de Datos Relacionales) debe ser capaz de soportar el uso de valores nulos en el lugar de columnas cuyos valores sean desconocidos o inaplicables.

Regla No. 4 - La regla de la descripcin de la base de datos "La descripcin de la base de datos es almacenada de la misma manera que los datos ordinarios, esto es, en tablas y columnas, y debe ser accesible a los usuarios autorizados".La informacin de tablas, vistas, permisos de acceso de usuarios autorizados, etc, debe ser almacenada exactamente de la misma manera: En tablas. Estas tablas deben ser accesibles igual que todas las tablas, a travs de sentencias de SQL.Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.3.3.6. Reglas de Codd (IV)Regla No. 5 - La regla del sub-lenguaje Integral "Debe haber al menos un lenguaje que sea integral para soportar la definicin de datos, manipulacin de datos, definicin de vistas, restricciones de integridad, y control de autorizaciones y transacciones".Esto significa que debe haber por lo menos un lenguaje con una sintaxis bien definida que pueda ser usado para administrar completamente la base de datos.

Regla No. 6 - La regla de la actualizacin de vistas "Todas las vistas que son tericamente actualizables, deben ser actualizables por el sistema mismo".La mayora de las RDBMS permiten actualizar vistas simples, pero deshabilitan los intentos de actualizar vistas complejas.

Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.3.3.6. Reglas de Codd (V)Regla No. 7 - La regla de insertar y actualizar "La capacidad de manejar una base de datos con operandos simples aplica no solo para la recuperacin o consulta de datos, sino tambin para la insercin, actualizacin y borrado de datos".Esto significa que las clusulas SELECT, UPDATE, DELETE e INSERT deben estar disponibles y operables sobre los registros, independientemente del tipo de relaciones y restricciones que haya entre las tablas.

Regla No. 8 - La regla de independencia fsica "El acceso de usuarios a la base de datos a travs de terminales o programas de aplicacin, debe permanecer consistente lgicamente cuando quiera que haya cambios en los datos almacenados, o sean cambiados los mtodos de acceso a los datos".El comportamiento de los programas de aplicacin y de la actividad de usuarios va terminales debera ser predecible basados en la definicin lgica de la base de datos, y ste comportamiento debera permanecer inalterado, independientemente de los cambios en la definicin fsica de sta.Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.3.3.6. Reglas de Codd (VI)Regla No. 9 - La regla de independencia lgica "Los programas de aplicacin y las actividades de acceso por terminal deben permanecer lgicamente inalteradas cuando quiera que se hagan cambios (segn los permisos asignados) en las tablas de la base de datos".La independencia lgica de los datos especifica que los programas de aplicacin y las actividades de terminal deben ser independientes de la estructura lgica, por lo tanto los cambios en la estructura lgica no deben alterar o modificar estos programas de aplicacin

Regla No. 10 - La regla de la independencia de la integridad "Todas las restricciones de integridad deben ser definibles en los datos, y almacenables en el catalogo, no en el programa de aplicacin".Las reglas de integridad son: 1. Ningn componente de una clave primaria puede tener valores en blanco o nulos. (esta es la norma bsica de integridad). 2. Para cada valor de clave fornea deber existir un valor de clave primaria concordante. La combinacin de estas reglas aseguran que haya Integridad referencial.Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales4.1.3.3.6. Reglas de Codd (y VII)Regla No. 11 - La regla de la distribucin "El sistema debe poseer un lenguaje de datos que pueda soportar que la base de datos est distribuida fsicamente en distintos lugares sin que esto afecte o altere a los programas de aplicacin".El soporte para bases de datos distribuidas significa que una coleccin arbitraria de relaciones, bases de datos corriendo en una mezcla de distintas mquinas y distintos sistemas operativos y que este conectada por una variedad de redes, pueda funcionar como si estuviera disponible como en una nica base de datos en una sola mquina.

Regla No. 12 - Regla de la no-subversin "Si el sistema tiene lenguajes de bajo nivel, estos lenguajes de ninguna manera pueden ser usados para violar la integridad de las reglas y restricciones expresadas en un lenguaje de alto nivel (como SQL)".Algunos productos solamente construyen una interfaz relacional para sus bases de datos No relacionales, lo que hace posible la subversin (violacin) de las restricciones de integridad. Esto no debe ser permitido.Curso prctico de base de datos e integracin de informacin biolgica

4.- Gestin de bases de datos

4.1 Diseo de bases de datos relacionales

4.1.4 EJERCICIO PRCTICOVamos a construir una base de datos que contenga las protenas encargadas del transporte de pptidos en el hombre.

Curso prctico de base de datos e integracin de informacin biolgica