Diseñando una Base de Datos

Diseñando una Base de Datos Importancia de la Información Actualmente los sistemas de información basados en computadoras ha cobrado la mayor importan
Author:  Ernesto Rey Rojas

1 downloads 18 Views 74KB Size

Recommend Stories


BASE DE DATOS. Qué es una base de datos?
1 BASE DE DATOS ¿Qué es una base de datos? Una base de datos es una herramienta para recopilar y organizar información. En las bases de datos, se pue

Crear tablas en una base de datos
Crear tablas en una base de datos TECNOLOGÍA LECCIÓN 2 ACCESS Contenido 1. ¿Qué es una tabla? ....................................................

Gestión de los datos en una base de datos
Institución educativa JOSE HOLGUIN GARCES. Especialidad en Sistemas. Herramientas de Programación 1 Gestión de los datos en una base de datos. Una v

MICROSOFT ACCESS. Conceptos básicos de Access. Componentes de una Base de datos. Crear una base de datos
MICROSOFT ACCESS Conceptos básicos de Access Base de datos: Una base de datos es un conjunto de datos que están organizados para un uso determinado y

BASE DE DATOS GEOGRÁFICOS
BASE DE DATOS GEOGRÁFICOS Cabo Catoche P. Progreso P. Juárez Sisal MERIDA Cancún Celestún MunáValladolid Nitán Cobá CalkiniYUCATAN Ticul Chichen-itza

Story Transcript

Diseñando una Base de Datos Importancia de la Información Actualmente los sistemas de información basados en computadoras ha cobrado la mayor importancia dentro de las actividades cotidianas de una empresa. El procesamiento de dicha información constituye el punto clave para la toma de decisiones, es así cuando una empresa decide si es conveniente o no ingresar a un nuevo mercado, o elaborar una estrategia frente a la competencia. Aquí se resaltar la importancia del análisis en el diseño de los archivos que compone una Base de Datos, el cual es el punto de partida para el diseño de la Aplicación, así mismo se da las pautas necesarias para que usted amigo lector, sepa diseñar sus informes, pantallas, así como la corrección y detección de errores en los datos de entrada.

Definición de Base de Datos Es un conjunto de información, la cual ha sido organizada y presentada para servir a un propósito específico. Por Gestión de Base de Datos entenderemos a la organización sistemática de grandes lotes de información. Un buen ejemplo de Base de Datos es un directorio telefónico, los datos se encuentran clasificados por orden alfabético, por departamentos, por profesión, etc. note que la información puede presentarse organizada bajo diferentes formas, de modo que facilite la búsqueda, una extracción o la emisión de un listado.

1

Organización de los datos: el Modelo Relacional Una Base de Datos de tipo relacional se muestra como una o más tablas rectangulares basadas en filas o columnas. Cada una de estas tablas constituye un archivo de la Base de Datos. Las filas son llamadas Registros y las columnas Campos. A cada registro se le asigna automáticamente un número secuencial es decir un número de registro y a cada campo un nombre; el nombre del campo. Una tabla presenta dos partes fundamentales: la Estructura de los registros y los datos. La estructura es el armazón en el cual se almacena los registros, para definir una estructura se debe señalar el nombre de cada columna (campo), el tipo (de acuerdo al tipo de dato que se guarde) así como se debe reservar el espacio suficiente para que el dato quepa (ancho de la columna). Los registros de una tabla están situados generalmente según como hayan sido ingresados, aunque es posible cambiar dicho orden y ordenarlo como mejor precisemos: alfabética, numérica o cronológicamente

2

Diseño de la Base de Datos En el diseño de una Base de Datos se busca evitar la redundancia de datos. Ya que impone mayor dificultad para actualizar o para cambiar, por ejemplo cuando en un a tabla de bases de datos se mantienen tanto los pedidos como las direcciones de los clientes, si se cambia la dirección de un cliente significaría cambiar en cada uno de los pedidos hechos por este cliente en la tabla. Trasladar las direcciones de los clientes a una tabla separada hace que sea más fácil actualizar la dirección del suministrador, sólo se tendría que cambiar una dirección de un registro, en vez de cambiarla en cada uno de los pedidos. Cada una de las tablas en una base de datos debería contener solamente datos acerca de una única entidad. Por ejemplo, en una tabla de pedidos debería contener sólo columnas que contengan datos sobre pedidos. Una tabla de clientes debería contener información sólo de los clientes. El proceso de asegurar la singularidad de los datos (así como el correspondiente proceso de eliminar la redundancia de datos) se llama normalización.

3

1. Primera Forma Normal (1FN) La primera forma normal establece que una tabla no puede contener grupos repetitivos. Esto quiere decir que ningún grupo repetitivo de datos estará permitido en la tabla. Cada uno de los registros debe tener el mismo número de atributos. Cada una las filas debe tener el mismo número de columnas. Por ejemplo, veamos la siguiente tabla de datos sobre cantantes que tienen varias producciones:

Intérprete

Producción

José Luis

Me llamas.

Perales Celos de mi guitarra. Quisiera No es una relación

Cambiar una tabla con grupos repetitivos a una tabla sin ellos es simple. Se reemplazan los grupos repetitivos por filas completas. Por ejemplo, pongamos la tabla anterior en 1FN.

Intérprete José Luis Perales José Luis Perales

Producción Me llamas. Celos de mi guitarra.

José Luis Perales

Quisiera. Es una relación

4

Dependencia Funcional

La dependencia funcional muestra las asociaciones lógicas de los datos. La dependencia funcional significa que los valores para dos columnas están lógicamente asociados. Para dos columnas A y B, el valor de B será siempre el mismo para un valor particular de A. El valor de A determina el valor de B. Si B es funcionalmente dependiente de A, entonces A es el determinante de B. Por ejemplo, considerar una organización donde cada uno de los individuos sólo puede trabajar para un único jefe. Es importante para la estructura lógica del esquema que un individuo esté asociado únicamente con un jefe. El diseño lógico del esquema debe mostrar de alguna forma que el jefe depende del empleado. Observe la siguiente tabla con dos columnas, empleado y supervisor: empleado

supervisor

Martín

Yessica

Janet

Yessica

Carlos

Yessica

Sergio

Julie

Hernán

Julie

Patricia

Julie

En este ejemplo, el valor de los datos en la columna llamada supervisor depende del valor de los datos de la columna empleado. Seleccionar cualquier valor para empleado únicamente determina un valor para supervisor. Por ejemplo si el valor para empleado es Martín, entonces el valor de supervisor es siempre Yessica. Empleado es el determinante de supervisor. Un simple diagrama de dependencias muestra esta dependencia funcional. i una persona puede trabajar para dos supervisores, esta dependencia funcional se pierde. Por ejemplo, si Martín trabaja para Yessica y Julie.

5

empleado

supervisor

Martín

Yessica

Martín

Julie

Janet

Yessica

Carlos

Yessica

Sergio

Julie

Hernán

Julie

Patricia

Julie

Todavía existe una relación ya que existe una clave candidata. La clave candidata está ahora compuesta de las dos columnas empleado-supervisor. Está todavía en primera forma normal, ya que no existen grupos repetitivos, ni las filas duplicadas. Sigue siendo una tabla. El supervisor no es una dependencia funcional sobre los empleados. Para un único valor de la columna empleado (Martín hay dos posibilidades valores de la columna supervisor (Yessica y Julie ). Nótese que la dependencia funcional es parte de la estructura de los datos, no es parte del modelo relacional. Si Martín puede trabajar sólo para un supervisor, los datos en esta tabla están mal, ya que es inconsistente con la estructura lógica de la empresa. La tabla no sería un modelo exacto del mundo real. Nada en los datos la hace inconsistente con el modelo relacional. Los datos, a pesar de todo, encajan en la tabla, pero ésta no modela el mundo real.

Dependencia Funcional y Columna Compuestas

Una columna puede ser funcionalmente dependiente de dos o más columnas tomadas juntas como una clave compuesta. Por ejemplo, observe la siguiente tabla: Supervisor

Empleado

Departamento

Julie

Martín

a

Julie

Yessica

a 6

Julie

Jorge

a

César

Martín

b

César

Janet

b

César

Samantha

b

Aquí el departamento no es funcionalmente dependiente del nombre del supervisor, ya que Martín está trabajando ahora para dos supervisores en dos departamentos diferentes. Poner dos columnas juntas, esto es, dos columnas compuestas, logra la dependencia funcional. El departamento es funcionalmente dependiente de las columnas compuestas empleado-supervisor. El departamento es funcionalmente dependiente del supervisor y del empleado tomados juntos. La estructura de los datos especifica que cualquier persona puede trabajar para cualquier supervisor en un departamento dado. Esto es, el departamento depende de los empleados y del supervisor.

Claves y Dependencia Funcional

Cada una de las otras columnas de una tabla depende funcionalmente de una clave candidata. Una clave candidata es un determinante para todas las columnas que no sean claves candidata o primaria. La razón es que seleccionar una clave candidata individual siempre selecciona los mismos valores para las columnas no clave. Conviene notar que nada en la definición de dependencia funcional dice que un determinante sea clave candidata o primaria. Cualquier columna puede depender funcionalmente de otra columna que no sea clave candidata. Observe el siguiente ejemplo:

7

números

x

y

1

a

1

2

a

1

3

a

1

En esta tabla, la columna x no es, obviamente, una clave candidata. Observe que y depende funcionalmente de x, ya que debe tener el valor de 1 siempre que x tenga el valor de a. Dependencia Funcional Completa

Cualquier columna depende funcionalmente de forma completa de una columna compuesta. Es funcionalmente dependiente de la columna compuesta pero no depende funcionalmente de las columnas compuestas tomadas separadamente. Observe el siguiente ejemplo: supervisor

empleado

departamento

Julie

Martín

a

Julie

Yessica

b

Julie

Jorge

c

César

Martín

d

César

Janet

e

César

Samantha

f

En este ejemplo, la columna departamento depende funcionalmente de la columna compuesta supervisor-empleado. En este conjunto de datos, cada uno de los empleados trabaja en un único departamento. Ya que el departamento también depende funcionalmente de la columna empleado, entonces no tiene dependencia funcional completa de las columnas compuestas supervisor-empleado. 8

apellido

nombre

departamento

Mendoza

Martín

1

Mendoza

Janet

2

Mendoza

Jorge

3

Mendoza

Kathy

4

Mendoza

Carlos

5

Hidalgo

Martín

2

Aquí la columna departamento depende funcionalmente de la columna compuesta apellido-nombre. La columna departamento no depende funcionalmente sólo de la columna apellido o de la columna nombre. Ya que la columna departamento depende funcionalmente de las columnas compuestas, es funcionalmente dependiente de forma completa. Las dependencias muestran la estructura de los dos datos en la base de datos. El hecho de que el departamento dependa funcionalmente de forma completa de las columnas compuestas apellido y nombre significa que cada uno de los individuos es de un único departamento (esto también significa que no hay dos personas en la organización con el mismo nombre). Ya que es importante para la estructura de los datos que un individuo esté en un único departamento, esta estructura debe ser representada de alguna forma en el esquema de la base de datos. La estructura de los datos en una base de datos puede ser especificada mediante el establecimiento de dependencias funcionales.

9

Segunda Forma Normal: 2FN Una tabla que esté en 2FN debe estar, primero en 1FN y todas las columnas no clave deben tener dependencia funcional completa de la clave primaria. El ejemplo siguiente muestra una tabla usada anteriormente con dos columnas: nombre y anexo. nombre

anexo

Martín

10

Janet

10

Carlos

14

Sabrina

16

César

18

Karen

20

Esta tabla está en 1FN; no hay grupos repetitivos. Esta tabla está también en 2FN, ya que la columna no clave anexo depende de la columna clave nombre. El siguiente ejemplo añade otra columna a esta tabla que también depende de la clave primaria (una columna de la hora a la que comienzan a trabajar los individuos). Esta columna se llama hora. La columna hora indica si el individuo empieza a trabajar pronto o tarde. nombre

anexo

hora

Martín

10



Janet

10

no

Carlos

14



Sabrina

16



César

18



Karen

20

sí 10

Esta nueva columna contiene información relacionada con la clave primaria. Un individuo está autorizado para comenzar a trabajar pronto o tarde. Esto significa que añadir la nueva columna a la tabla no ha cambiado el que esté en 2FN. Veamos ahora la tabla incluyendo la columna larga-distancia.

nombre

anexo

larga-distancia

Martín

10



Janet

10



Carlos

14

No

Sabrina

16

No

César

18



Karen

20



Esta tabla no está en 2FN, ya que la columna larga distancia no está relacionada con la clave primaria nombre. La columna larga-distancia está relacionada con la anexo. La columna larga-distancia no depende funcionalmente de forma completa de la columna nombre. La proyección de la tabla original en 1FN en dos tablas elimina cualquier dependencia funcional no completa. Esta proyección cambia la tabla en 1FN en dos tablas 2FN. La proyección crea dos tablas en 2FN, donde cada una de las dos tablas tiene una clave primaria y columnas relacionadas con la clave primaria. Esto normaliza la tabla en 1FN. Cada una de las nuevas tablas tiene dependencias funcionales más simples. El resultado apararece en las dos tablas siguientes:

11

TELEFONO nombre

anexo

Martín

10

Janet

10

Carlos

14

Sabrina

16

César

18

Karen

20

AUTORIZACIONES

anexo

larga-distancia

10



14

No

16

No

18



20



El diagrama de dependencias funcionales predice el cambio de una tabla en 1FN en dos tablas en 2FN. Cada una de las dos dependencias se mueve a su propia tabla. La tabla de 1FN tiene dos dependencias funcionales diferentes. Actuando sobre la tabla en 1FN, se crea una nueva tabla para cada una de las dependencias. Nótese que esta descomposición se realiza sin pérdida de información. Las dos tablas que resultan pueden fácilmente recombinarse en una única tabla.

12

Tercera Forma Normal: 3FN En una tabla en 2FN, todas las columnas no clave deben tener dependencia funcional completa con respecto a la clave primaria. Una tabla debe estar en 2FN antes de estar en 3FN. En una tabla en 3FN, todos los elementos no clave deben ser mutuamente independientes. Las columnas no clave son todas mutuamente independientes si ninguna de ellas es funcionalmente dependiente de otra. Para que una tabla esté en 3FN, ninguna de las columnas no clave puede depender funcionalmente de cualquiera de las otras columnas no clave. Aquí hay una tabla con tres columnas, suministrador, estado y ciudad. suministrador

región

ciudad

s1

Norte

Trujillo

s2

Oriente

Iquitos

s3

Oriente

Iquitos

s4

Sur

Cusco

s5

Sur

Cusco

s6

Norte

Trujillo

En este conjunto de datos, cada uno de los suministradores corresponde a una ciudad determinada. Cada una de las ciudades tiene una región específica. La región depende de la ciudad. La ciudad depende del suministrador. Debido a que la ciudad depende del suministrador y la región depende de la ciudad, la región también depende del suministrador. Si se conoce el suministrador, se puede determinar la región, pero sólo a través de la ciudad. La región sólo depende del suministrador transitivamente a través de la ciudad. Esta clase de dependencia transitiva complica al actualización de la tabla. Si la región cambia para una ciudad, cada uno de los registros para esa ciudad deben ser cambiados.

13

La inserción de un nuevo registro puede ser difícil. Añadir un registro para anotar que una ciudad determinada pertenece a una región en particular es imposible hasta que haya un sumiminstrador para esa ciudad. Por ejemplo, no se puede añadir la información de que Piura pertenece a la región Norte hasta que haya un suministrador para Piura. Borrar la única fila para una ciudad en particular hace perder dos elementos de información: (1) la información de que un suministrador es de una determinada ciudad, y (2) la información de que una ciudad pertenece a un región. Proyectar la tabla en 2FN en dos tablas separadas en 3FN resuelve este problema. La proyección separa cada una de las dependencias funcionales en su propia tabla. Las dos tablas que resultan son estas:

suministrador

ciudad

s1

Trujillo

s2

Iquitos

s3

Iquitos

s4

Cusco

s5

Cusco

s6

Trujillo

región

ciudad

Norte

Trujillo

Oriente

Iquitos

Sur

Cusco

Cada una de estas dos tablas están en 3FN. Cada una de las tablas está en 1FN ya que no hay grupos repetitivos. Cada una de las tablas está en 2FN ya que las columnas no clave son funcionalmente dependientes de la clave primaria. Cada una de 14

ellas está en 3FN ya que ninguna columna no clave es funcionalmente dependiente de otra columna no clave. Está en tercera forma normal ya que una de las columnas es mutuamente independiente. En general, se pueden manipular las tablas más fáciles con dependencias simples. Estas son más fáciles de actualizar. Este es el beneficio de las formas normales. Las formas normales ayudan asegurar que las tablas, y un esquema, son simples estructuralmente. Elección de una descomposición

Una tabla pueden descomponerse en componentes independientes, al conjunto de tablas resultantes se llaman atómicas. Pueden decomponerse algunas tablas, pero no hay por que hacerlas necesariamente. A menudo hay más de una posible descomposición de una tabla. Examinemos al siguiente tabla. En este ejemplo, los embarques son hechos desde un almacén y cada uno de los almacenes tiene un estado de abierto o cerrado. embarque

estado

almacén

s1

abierto

CA

s2

cerrado

NV

s3

abierto

CA

s4

cerrado

NV

s5

cerrado

NV

s6

cerrado

NV

La entrada del estado depende del almacén. Cada una de las entradas bajo almacén tiene una entrada de estado de abierto o cerrado. La entrada bajo almacén depende del embarque. Cada elemento de embarque navega desde un único lugar bajo almacén. El estado depende del número de embarque. Cada uno de los embarques tiene un estado asociado de abierto o cerrado. Nótese que esto probablemente no es parte de la estructura lógica de los datos. Es razonable para el almacén que tenga un estado de 15

abierto o cerrado. No es razonable para un embarque que tenga un estado de abierto o cerrado. Dependencia Transitiva

Hay una interdependencia entre estado y almacén. El estado depende transitivamente del número de embarque. El estado depende del número del embarque a través de su relación con almacén. Esta proyección normaliza la tabla ejemplo en una tabla en 3FN. almacén

estado

CA

abierto

NV

cerrado

embarque

almacén

s1

CA

s2

NV

s3

CA

s4

NV

s5

NV

s6

NV

Primer caso Una proyección diferente también normaliza el ejemplo en dos tablas en 3FN. Esta segunda proyección descompone la relación en torno a la dependencia transitiva:

embarque

almacén

s1

CA

s2

NV

s3

CA

s4

NV

s5

NV

s6

NV

16

embarque

estado

s1

abierto

s2

cerrado

s3

abierto

s4

cerrado

s5

cerrado

s6

cerrado

Segundo caso En el primer caso, cada una de las proyecciones es independiente. Actualizar una tabla no requiere actualizar la otra (excepto donde cambie el almacén). El estado para un almacén puede cambiar, independientemente del almacén para un embarque.

En el segundo caso, las proyecciones no son independientes. Cambiar el estado para un almacén requiere actualizar ambas tablas. En el primer caso, la unicidad de las claves persiste, pudiéndose reunir las dos tablas a la vez, en una relación en 2FN. Incluso después de varias actualizaciones, se puede unir dos tablas separadas en una tabla válida en 2FN. En el segundo ejemplo, una actualización a una relación puede hacer imposible volver a juntar las dos relaciones en una tabla en 2FN. Borrando el primer registro de la tabla estado se hace imposible volver a combinar todos los registros de ambas tablas en una única tabla, no habría ningún registro para un embarque en los resultados.

embarque

estado

almacén

s2

cerrado

NV

s3

abierto

CA

s4

cerrado

NV

s5

cerrado

NV

Fusión las tablas del segundo caso 17

Debido a que la dependencia funcional del estado sobre el almacén no ocurre dentro de una única tabla, existe una restricción interrelacional entre las dos relaciones. Esto hace que sea fácil ver que es preferible hacer una descomposición donde las proyecciones sean independientes a una donde no lo sean. Las tablas son independientes solamente si las dependencias funcionales de la tabla original pueden ser lógicamente deducidas de las dependencias funcionales de las tablas compuestas. También, los atributos que son comunes a las dos tablas deben ser una clave candidata para al menos una de las tablas resultados. Las tablas en la primera proyección son independientes. El atributo común embarque es la clave primaria para la tabla almacén. Todas las dependencias funcionales en la tabla original aparecen en las proyecciones o pueden ser deducidas de ellas. En el segundo ejemplo, las proyecciones no son independientes. La dependencia funcional del estado sobre el almacén no puede ser deducida de las dependencias funcionales en las tablas de resultado.

18

Conclusión Se ha introducido los conceptos de dependencia funcional y normalización. La dependencia funcional demuestra la estructura lógica de los datos en una base de datos. Los diagramas de dependencia de datos pueden ayudar a determinar las diversas dependencias de datos existentes en una tabla. Las formas normales ofrecen guías para estructurar una base de datos con dependencias de datos simples. En las diversas formas normales introducidas, cada una de las formas está más organizada que la anterior. Cada una de las formas normales restringe un esquema que tiene menos complejidad de dependencia de datos dentro de las tablas.

Eliminar los grupos repetitivos de datos puede reducir tablas que no estén en 1FN a tablas que sí lo estén.

Se puede proyectar un conjunto de tablas de 2FN procedentes de tablas en 1FN con dependencias funcionales no completas sobre las columnas clave.

Se puede proyectar un conjunto de tablas en 3FN procedentes de tablas en 2FN que tengan interdependencias entre las columnas no clave.

19

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.