Base de Datos Base de Datos
Normalización Normalización
Primera Forma Normal Primera Forma Normal Segunda Forma Normal Segunda Forma Normal Tercera Forma Normal Tercera Forma Normal
Prof. Limett Lugo Prof. Limett Lugo
COMO REDUCIR UN PROBLEMA DETERMINADO A UN COMO REDUCIR UN PROBLEMA DETERMINADO A UN DISEÑO DE BASE DE DATOS
DISEÑO DE BASE DE DATOS
Revisar cada uno de los pasos que se realizan para llevar a cabo la Revisar cada uno de los pasos que se realizan para llevar a cabo la tarea o proceso en estudio.
tarea o proceso en estudio.
Evaluar en cual de los pasos se presenta el problema y estudiar las Evaluar en cual de los pasos se presenta el problema y estudiar las posibilidades para solventarlo, ya que no siempre se ameritará posibilidades para solventarlo, ya que no siempre se ameritará desarrollar un sistema para ello.
desarrollar un sistema para ello.
Si se ha determinado que se debe solventar mediante el desarrollo Si se ha determinado que se debe solventar mediante el desarrollo de una aplicación computarizada se debe realizar lo siguiente.
de una aplicación computarizada se debe realizar lo siguiente.
Definir cual es el proceso que se desea automatizar.Definir cual es el proceso que se desea automatizar.
En base a lo anterior, debe definir cuales serán los datos que el usuario En base a lo anterior, debe definir cuales serán los datos que el usuario deberá introducir al sistema para poder generar este la información deberá introducir al sistema para poder generar este la información deseada, a estos datos se le denomina
deseada, a estos datos se le denomina determinación de determinación de requerimientos de entrada.
requerimientos de entrada.
Luego, deberá definir cual los procesos a los cuales serán sometidos los Luego, deberá definir cual los procesos a los cuales serán sometidos los datos que el usuario introducirá al sistema, es decir, si solo se datos que el usuario introducirá al sistema, es decir, si solo se almacenarán, si se realizarán calculos con estros, entre otros. A este almacenarán, si se realizarán calculos con estros, entre otros. A este paso de le denomina
paso de le denomina Definición de requerimientos de procesamiento.Definición de requerimientos de procesamiento.
Seguidamente, definirá cuales serán los reportes por pantalla e Seguidamente, definirá cuales serán los reportes por pantalla e impreso que amerita que el sistema emita, y a esto se le impreso que amerita que el sistema emita, y a esto se le denomina
denomina Definición de requerimientos de salidas
Definición de requerimientos de salidas. .
Una vez evaluados los requerimientos, se hace un listado con Una vez evaluados los requerimientos, se hace un listado con los requerimientos de entrada.
los requerimientos de entrada.
Agrupa los requerimientos de entrada por tema, área, o Agrupa los requerimientos de entrada por tema, área, o simplemente los que considere que guarden relación entre si.
simplemente los que considere que guarden relación entre si.
Por cada grupo de requerimientos de entrada elabore una tabla Por cada grupo de requerimientos de entrada elabore una tabla y asignele un nombre a la misma de acuerdo a los datos que y asignele un nombre a la misma de acuerdo a los datos que esta contenga, este nombre no debe llevar espacios en blanco.
esta contenga, este nombre no debe llevar espacios en blanco.
Una vez que tenga las tablas, proceda a normalizar cada tabla. Una vez que tenga las tablas, proceda a normalizar cada tabla.
Luego, deberá definir que tablas deben relacionarse para Luego, deberá definir que tablas deben relacionarse para poder generar la información definida en los requerimientos de poder generar la información definida en los requerimientos de salida.
salida.
Debe especificar los campos claves por cada tabla. Debe especificar los campos claves por cada tabla.
COMO REDUCIR UN PROBLEMA DETERMINADO A UN COMO REDUCIR UN PROBLEMA DETERMINADO A UN DISEÑO DE BASE DE DATOS
DISEÑO DE BASE DE DATOS
El siguiente paso es, establecer la restricción de asignaciones por El siguiente paso es, establecer la restricción de asignaciones por cada relación existente entre las tablas de la base de datos.
cada relación existente entre las tablas de la base de datos.
Luego, deberá definir el tipo de valor que contendrá cada campo de Luego, deberá definir el tipo de valor que contendrá cada campo de cada tabla, tomando en cuenta que los campos por los cuales se cada tabla, tomando en cuenta que los campos por los cuales se relacionarán las tablas deberán ser del mismo tipo para asegurar relacionarán las tablas deberán ser del mismo tipo para asegurar que la relación sea efectiva.
que la relación sea efectiva.
Una vez relacionadas las tablas de la base de datos, y definido los Una vez relacionadas las tablas de la base de datos, y definido los tipos de datos, se puede decir que usted, ha realizado el diseño de tipos de datos, se puede decir que usted, ha realizado el diseño de una base de datos.
una base de datos.
Una vez concluido el diseño, deberá seleccionar un sistema Una vez concluido el diseño, deberá seleccionar un sistema manejador de base de datos para elaborar el diseño anteriormente manejador de base de datos para elaborar el diseño anteriormente efectuado y realizar los formularios o pantallas a través de las efectuado y realizar los formularios o pantallas a través de las cuales los usuarios introducirán los datos al sistemas – cuales los usuarios introducirán los datos al sistemas – Requerimientos de entrada-, las consultas -Requerimientos de Requerimientos de entrada-, las consultas -Requerimientos de salidas-, la programación de los procedimientos necesarios – salidas-, la programación de los procedimientos necesarios – Requerimientos de procesamiento-, y los informes o reportes- Requerimientos de procesamiento-, y los informes o reportes- Requerimientos de salidas-.
Requerimientos de salidas-.
COMO REDUCIR UN PROBLEMA DETERMINADO A UN COMO REDUCIR UN PROBLEMA DETERMINADO A UN DISEÑO DE BASE DE DATOS
DISEÑO DE BASE DE DATOS
Claves Claves
CLAVES. CLAVES.
Super Clave. Es un conjunto de uno o más atributos que Super Clave. Es un conjunto de uno o más atributos que considerados conjuntamente, permite identificar de forma única a considerados conjuntamente, permite identificar de forma única a
una entidad en un conjunto de entidades.
una entidad en un conjunto de entidades.
Claves candidatas. Son las diferentes opciones de Claves candidatas. Son las diferentes opciones de
superclaves mínimas que con las que se disponen en una tabla superclaves mínimas que con las que se disponen en una tabla
para hacerla clave principal.
para hacerla clave principal.
Clave primaria. Es un conjunto de uno o más atributos que, Clave primaria. Es un conjunto de uno o más atributos que, tomados colectivamente, permiten identificar de forma única una tomados colectivamente, permiten identificar de forma única una entidad en el conjunto de entidades y una relación en el conjunto entidad en el conjunto de entidades y una relación en el conjunto de relaciones, esta clave surge de las claves candidatas. Se usa de relaciones, esta clave surge de las claves candidatas. Se usa
el termino de clave principal para denotar una clave candidata el termino de clave principal para denotar una clave candidata
que elige el diseñador de la base de datos como el medio que elige el diseñador de la base de datos como el medio principal de identificar entidades dentro de un conjunto de principal de identificar entidades dentro de un conjunto de
entidades.
entidades.
Definiciones Definiciones
Atributos: Unidad mínima de Atributos: Unidad mínima de datos, Campos de las tablas, es un datos, Campos de las tablas, es un dato simple sin sentido por si solos, dato simple sin sentido por si solos, como por ejemplo: Edad, Nombre, como por ejemplo: Edad, Nombre, Cédula, Dirección, teléfono.
Cédula, Dirección, teléfono.
Tupla: es la unidad mínima de Tupla: es la unidad mínima de información, se denomina al información, se denomina al conjunto de atributos relacionados conjunto de atributos relacionados entre si que caracterizan a una entre si que caracterizan a una entidad u objeto. Representa al entidad u objeto. Representa al registro en una tabla.
registro en una tabla.
Afinidad: es la denominación que Afinidad: es la denominación que se le da a un conjunto de entidades se le da a un conjunto de entidades o relaciones, representa una tabla, o relaciones, representa una tabla, y es una base de información sobre y es una base de información sobre un objeto específico. Ejemplo:
un objeto específico. Ejemplo:
CEDULA
CEDULA NOMBRENOMBRE DIRECCIÓNDIRECCIÓN EDADEDAD TELEFONOTELEFONO 10.223.3
10.223.3
3333 LUIS LUIS PEREZ
PEREZ CALLE CALLE ZAMORA
ZAMORA 3434 04142345550414234555 2.346.78
2.346.78
99 MARIA MARIA SALAS
SALAS AV. BOLIVARAV. BOLIVAR 6060 04123453450412345345
AFINIDAD: EMPLEADO TABLA: EMPLEADO
Tupla o registro Tupla o registro
Atributo o Atributo o campo campo
Tipos de datos Tipos de datos
Datos Numéricos:
Permiten representar valores escalares de forma numérica, esto incluye a los números enteros y los reales. Este tipo de datos permiten realizar operaciones aritméticas comunes.
Byte: 0 – 256, Enteros (Cortos, Largos), simple, doble, decimal..
Datos lógicos:
Son aquellos que solo pueden tener dos valores (cierto o falso) ya que representan el resultado de una comparación entre otros datos (numéricos o alfanuméricos). (Sí/No, Verdadero/Falso o Activado/desactivado).
Datos alfanuméricos (string):
Es una secuencia de caracteres alfanuméricos que permiten representar valores identificables de forma descriptiva, esto incluye nombres de personas, direcciones, etc. Es posible representar números como alfanuméricos, pero estos pierden su propiedad matemática, es decir no es posible hacer operaciones con ellos. Este tipo de datos se representan encerrados entre comillas. (Memos, texto)
Tipos de datos Tipos de datos
Fecha-Hora:
Fecha-Hora: Permite Valores de fecha y hora para los años del 100 al 9999.ocupa 8 bytes.
Moneda:
Moneda: Valores de moneda y datos numéricos utilizados en cálculos matemáticos en los que estén implicados datos que contengan entre uno y cuatro decimales. La precisión es de hasta 15 dígitos a la izquierda del separador decimal y hasta 4 dígitos a la derecha del mismo.8 bytes
Autonumérico:
Autonumérico: Número secuencial (incrementado de uno a uno) único, o número aleatorio que Microsoft Access asigna cada vez que se agrega un nuevo registro a una tabla. Los campos Autonumérico no se pueden actualizar. Si desea más información, vea el tema de la propiedad Nuevos valores.4 bytes (16 bytes si el valor de la propiedad Tamaño del campo es Id. la réplica).
Objeto OLE:
Objeto OLE: Objeto (como por ejemplo una hoja de cálculo de Microsoft Excel, un documento de Microsoft Word, gráficos, sonidos u otros datos binarios) vinculado o incrustado en una tabla de Microsoft Access. ocupa Hasta 1 gigabyte (limitado por el espacio disponible en disco)
Tipos de datos Tipos de datos
Hipervínculo:
Hipervínculo: Texto o combinación de texto y números almacenada como texto y utilizada como dirección de hipervínculo. Una dirección de hipervínculo puede tener hasta tres partes: texto: el texto que aparece en un campo o control.
dirección: ruta de acceso a un archivo (ruta UNC) o página (dirección URL).subdirección: posición dentro del archivo o página.información de pantalla:
el texto que aparece como información sobre herramientas. El tipo de datos hipervínculo puede contener hasta 2048 caracteres.
Normalización Normalización Normalización Normalización
Es un proceso que clasifica relaciones, objetos, formas de Es un proceso que clasifica relaciones, objetos, formas de relación y demás elementos en grupos, en base a las características relación y demás elementos en grupos, en base a las características que cada uno posee. Si se identifican ciertas reglas, se aplica una que cada uno posee. Si se identifican ciertas reglas, se aplica una categoría; si se definen otras reglas, se aplicará otra categoría. . categoría; si se definen otras reglas, se aplicará otra categoría. . Cuando las reglas de clasificación sean más y más restrictivas, Cuando las reglas de clasificación sean más y más restrictivas, diremos que la relación está en una forma normal más elevada. La diremos que la relación está en una forma normal más elevada. La relación que está en la forma normal más elevada posible es que relación que está en la forma normal más elevada posible es que mejor se adapta a nuestra necesidades debido a que optimiza las mejor se adapta a nuestra necesidades debido a que optimiza las condiciones que son de importancia para nosotros:
condiciones que son de importancia para nosotros:
La cantidad de espacio requerido para almacenar los datos es la La cantidad de espacio requerido para almacenar los datos es la menor posible;
menor posible;
La facilidad para actualizar la relación es la mayor posible; La facilidad para actualizar la relación es la mayor posible;
La explicación de la base de datos es la más sencilla posible, La explicación de la base de datos es la más sencilla posible,
Primera Forma Normal Primera Forma Normal Primera Forma Normal Primera Forma Normal
Para que una relación esté en primera forma normal (1 FN), debe ser Para que una relación esté en primera forma normal (1 FN), debe ser solamente una relación propia, una matriz m por n, donde:
solamente una relación propia, una matriz m por n, donde:
1.1. Las celdas deben poseer valores simples y no permitir grupos, ni Las celdas deben poseer valores simples y no permitir grupos, ni arreglos repetidos.
arreglos repetidos.
2.2. Todos los ingresos en cualquier columna (Atributos) van a tener un Todos los ingresos en cualquier columna (Atributos) van a tener un nombre único, sin importar el orden de estos.
nombre único, sin importar el orden de estos.
3.3. Dos hileras de una tabla no deben ser iguales.Dos hileras de una tabla no deben ser iguales.
4.4. Cuando se presentan anomalías, se procede a dividir la tabla o afinidad y Cuando se presentan anomalías, se procede a dividir la tabla o afinidad y e inicia la segunda forma normal
e inicia la segunda forma normal
ID
ID ACTIVIDADACTIVIDAD CUOTACUOTA 10001000 ESQUISESQUIS 100100 15001500 NATACIONNATACION 200200 1750
1750 BEISBOLBEISBOL 100100
20002000 FUTBOLFUTBOL 100100
Afinidad:
Actividad
Primera Forma Normal Primera Forma Normal Primera Forma Normal Primera Forma Normal
PRESONAS
PRESONAS RESIDENCIARESIDENCIA PEDRO PEREZ
PEDRO PEREZ
MARIA RUIZ
MARIA RUIZ CIUDADCIUDAD F_CAMBIOF_CAMBIO
SAN SAN FERNANDO
FERNANDO 09-08-198909-08-1989 SAN CARLOS
SAN CARLOS 07-11-199807-11-1998 BARINAS
BARINAS 12-12-200312-12-2003 CIUDAD
CIUDAD F_CAMBIOF_CAMBIO MARACAY
MARACAY 11-12-199911-12-1999 VALENCIA
VALENCIA 15-03-200215-03-2002 CARACAS
CARACAS 20-10-200520-10-2005
NO ES NO ES VALIDO VALIDO
Primera Forma Normal Primera Forma Normal Primera Forma Normal Primera Forma Normal
NOMBRE
NOMBRE CIUDADCIUDAD F_CAMBIOF_CAMBIO PEDRO PEREZ
PEDRO PEREZ MARACAYMARACAY 11-12-199911-12-1999 PEDRO PEREZ
PEDRO PEREZ VALENCIAVALENCIA 15-03-200215-03-2002 PEDRO PEREZ
PEDRO PEREZ CARACASCARACAS 20-10-200520-10-2005
MARIA RUIZ
MARIA RUIZ SAN FERNANDOSAN FERNANDO 09-08-198909-08-1989
MARIA RUIZ
MARIA RUIZ SAN CARLOSSAN CARLOS 07-11-199807-11-1998 MARIA RUIZ
MARIA RUIZ BARINASBARINAS 12-12-200312-12-2003
COMO SE PUEDE OBSERVAR EXISTE DUPLICIDAD DE INFORMACIÓN, ASI COMO SE PUEDE OBSERVAR EXISTE DUPLICIDAD DE INFORMACIÓN, ASI QUE SE DEBE IR A LA SEGUNDA FORMA NORMAL
QUE SE DEBE IR A LA SEGUNDA FORMA NORMAL
Segunda Forma Normal Segunda Forma Normal Segunda Forma Normal Segunda Forma Normal
Una afinidad esta en segunda forma normal, cuando está en primera Una afinidad esta en segunda forma normal, cuando está en primera forma normal y todos sus atributo no claves dependen por completo de forma normal y todos sus atributo no claves dependen por completo de la clave principal
la clave principal
CONTRATISTA
CONTRATISTA PRESU_PROYPRESU_PROY *PROYECTO*PROYECTO TIEMPO_EJE_PTIEMPO_EJE_P
S75S75 3232 P1P1 55
S75S75 4040 P2P2 33
S79S79 3232 P1P1 22
S79S79 2727 P3P3 77
S80
S80 4040 P2P2 11
AFINIDAD: ASIGNACION
Si consideramos como clave el campo proyecto y verificamos si el resto de los campos que Si consideramos como clave el campo proyecto y verificamos si el resto de los campos que no son clase dependen por completo de la clave principal, podemos constatar que no son clase dependen por completo de la clave principal, podemos constatar que efectivamente el campo presupuesto depende directamente del proyecto, pero la contratista efectivamente el campo presupuesto depende directamente del proyecto, pero la contratista no depende del proyecto ni tampoco el tiempo_eje_p por que este depende es de la no depende del proyecto ni tampoco el tiempo_eje_p por que este depende es de la contratista, es por ello se hace necesario dividir la tabla.
contratista, es por ello se hace necesario dividir la tabla.
Si consideramos como clave el campo proyecto y verificamos si el resto de los campos que Si consideramos como clave el campo proyecto y verificamos si el resto de los campos que no son clase dependen por completo de la clave principal, podemos constatar que no son clase dependen por completo de la clave principal, podemos constatar que efectivamente el campo presupuesto depende directamente del proyecto, pero la contratista efectivamente el campo presupuesto depende directamente del proyecto, pero la contratista no depende del proyecto ni tampoco el tiempo_eje_p por que este depende es de la no depende del proyecto ni tampoco el tiempo_eje_p por que este depende es de la contratista, es por ello se hace necesario dividir la tabla.
contratista, es por ello se hace necesario dividir la tabla.
Segunda Forma Normal Segunda Forma Normal Segunda Forma Normal Segunda Forma Normal
*PROYECTO
*PROYECTO PRESU_PROYPRESU_PROY P1P1 3232
P2P2 4040 P3P3 2727
*CONTRATISTA
*CONTRATISTA *PROYECTO*PROYECTO TIEMPO_EJE_PTIEMPO_EJE_P
S75S75 P1P1 55
S75S75 P2P2 33
S79
S79 P1P1 22
S79S79 P3P3 77
S80S80 P2P2 11
AFINIDAD:
AFINIDAD: PROYECTO AFINIDAD: ASIGNACIONAFINIDAD:
Como se puede observar ya se encuentran ambas afinidades en 2da FN, Como se puede observar ya se encuentran ambas afinidades en 2da FN,
*Campos que conforman la clave principal.
*Campos que conforman la clave principal.
Una relación o tabla se encuentra en tercera forma normal (3fn) si no Una relación o tabla se encuentra en tercera forma normal (3fn) si no existen transitividades o dependencias transitivas entre sus atributos existen transitividades o dependencias transitivas entre sus atributos y si ya se encuentra en 2 fn
y si ya se encuentra en 2 fn
Tercera Forma Normal Tercera Forma Normal Tercera Forma Normal Tercera Forma Normal
Afinidad:
Afinidad: Vivencia (CI, Edificio, Cuota)
C.I.C.I. EDIFICIOEDIFICIO CUOTACUOTA 13.111.111
13.111.111 CUMBOTOCUMBOTO 150150 11.234.234
11.234.234 CATACATA 300300
15.345.765
15.345.765 PINOPINO 200200
10.432.111
10.432.111 PAOPAO 250250
EDIFICIO C.I.C.I.
CUOTA
En esta tabla VIVENCIA se registran las cedulas de las personas que viven en En esta tabla VIVENCIA se registran las cedulas de las personas que viven en un edificio y la cuota de condominio que deben pagar por vivir alli, los 3 un edificio y la cuota de condominio que deben pagar por vivir alli, los 3 campos se refieren a la vivencia de inquilinos en un edificio y esta en 1era, y campos se refieren a la vivencia de inquilinos en un edificio y esta en 1era, y 2daFN. Siendo la clave la CI. El campo edificio se relaciona con la cedula del 2daFN. Siendo la clave la CI. El campo edificio se relaciona con la cedula del inquilino que vive en ese edificio, sin embargo la cuota que es el monto de inquilino que vive en ese edificio, sin embargo la cuota que es el monto de condominio que pagan los inquilinos, se relacionan con el inquilino pero no condominio que pagan los inquilinos, se relacionan con el inquilino pero no depende de este directamente sino del edificio (relación transitiva), ya que de depende de este directamente sino del edificio (relación transitiva), ya que de acuerdo al edificio se define la cuota
acuerdo al edificio se define la cuota
Tercera Forma Normal Tercera Forma Normal Tercera Forma Normal Tercera Forma Normal
C.I.C.I. EDIFICIOEDIFICIO 13.111.111
13.111.111 CUMBOTOCUMBOTO 11.234.234
11.234.234 CATACATA 15.345.765
15.345.765 PINOPINO 10.432.111
10.432.111 PAOPAO
EDIFICIO
EDIFICIO CUOTACUOTA CUMBOTO
CUMBOTO 150150 CATACATA 300300
PINO
PINO 200200 PAOPAO 250250
AFINIDAD: VIVENCIA AFINIDAD: EDIFICIO
Al existir una dependencia transitiva se hace necesario dividir la tabla vivencia y generar dos tablas, la tabla VIVENCIA con los campos CI y Edificio que se relacionan sin dependencias transitivas, y la tabla EDIFICIO que queda con los campos edificio y cuota.