Sunteți pe pagina 1din 28

DISEÑO Y ADMINISTRACIÓN DE UNA BODEGA DE DATOS PARA UNA

ALCALDÍA

ACTIVIDAD DE PROYECTO 5: DESARROLLAR MANTENIMIENTO PREVENTIVO,

CORRECTIVO O PROACTIVO PARA GARANTIZAR NIVELES DE SERVICIO REQUERIDOS

POR LA ORGANIZACIÓN

AA9-EV3-NORMALIZACIÓN DE BASES DE DATOS.

INSTRUCTOR

JAVIER MAURICIO ALVAREZ VARGAS

ESP. GESTION Y SEGURIDAD DE BASES DE DATOS

SERVICIO NACIONAL DE APRENDIZAJE SENA

CENTRO DE SERVICIOS FINANCIEROS

OCTUBRE DE 2019

BOGOTÁ D.C
Página 5 de 28
TABLA DE CONTENIDO

INTRODUCCIÓN .................................................................................................................. 8

OBJETIVOS ........................................................................................................................... 6

APLICACIÓN Y DISEÑO DE BASE DE DATOS ............................................................ 11

Normalizar la base de datos .................................................................................................. 11

2.1. Primera forma normal (1FN). ..................................................................................... 12

2.2. Segunda forma normal (2FN). .................................................................................... 14

2.3. Tercera forma normal (3FN). ..................................................................................... 15

2.4. Consideraciones finales y problemas de la normalización. ........................................ 17

SECRETARÍA DE GOBIERNO ......................................................................................... 18

TABLA PERSONA .......................................................................................................... 18

TABLA DETENCION ..................................................................................................... 19

TABLA “INSPECCION” ................................................................................................. 20

TABLA INSPECCION_CONTRAVENCION ................................................................ 22

TABLA “CONTRAVENCIÓN” ...................................................................................... 23

TABLA INVOLUCRADO ............................................................................................... 24

TABLA QUERELLA ....................................................................................................... 25

TABLA ACTUACION ..................................................................................................... 26

Página 6 de 28
TABLA CONTRACTUACION ....................................................................................... 28

TABLA DEMANDANTE ................................................................................................ 29

TABLA DEMANDADO .................................................................................................. 30

Página 7 de 28
INTRODUCCIÓN

La búsqueda de un nivel óptimo de rendimiento en los servicios asociados a las bases de

datos es una constante para lograr el mantenimiento proactivo que debe proveer el

administrador de las bases de datos. Consecuentemente una de las tareas a implementar es

la verificación de la estructura de la base de datos y el desarrollo de acciones que permitan

optimizarla, para esto deben ser revisados temas asociados a la normalización y

desnormalización de la base de datos, ya que una estructura deficiente puede incidir en que

las consultas a los datos relacionados no puedan realizarse de una manera óptima y

deterioren el nivel de respuesta esperado. Otro aspecto a analizar es el uso de herramientas

que permitan optimizar las consultas, así como la creación y uso apropiado de índices para

el mejoramiento del rendimiento en la ejecución de consultas. Al tener consultas de larga

duración se consumen recursos del sistema que hacen que el servidor y las aplicaciones

funcionen con lentitud, desencadenando otros problemas y por tanto es necesario adoptar

diferentes estrategias para buscar la ejecución más eficiente de las consultas.

Fuente Material de formación “FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio

Nacional de Aprendizaje OPTIMIZACIÓN DE LA ESTRUCTURA DE BASE DE DATOS.”

Página 8 de 28
OBJETIVOS

Se procede a definir y evidenciar las tres formas normales se cumplan en los diseños de

las bases de datos, así lograr identificar posibles problemas que se pueden generar y así

solucionar mediante modificaciones.

Las evidencias encontradas se deben argumentar coherentemente para realizar las

modificaciones que se pueden realizar en la base de datos.

6
APLICACIÓN Y DISEÑO DE BASE DE DATOS

Las técnicas que permiten optimizar el diseño de una base de datos han evolucionado a medida

que se desarrollan más aplicaciones. Las técnicas se basan en la aplicación de la normalización

para el desarrollo de bases de datos, junto con una estrecha colaboración entre los

administradores de bases y desarrolladores de aplicaciones, así como técnicas de trabajo, tanto

en preproducción como en los sistemas terminados.

Normalizar la base de datos

El objetivo de la normalización es la construcción de un esquema de base de datos que

satisfacen propiedades de las formas normales.

Un esquema mal definido en la etapa de diseño puede conducir a una serie de anomalías

durante la fase operativa, tales como duplicación de la información y anomalías durante las

operaciones de actualización (insertar, suprimir, modificar). Estas anomalías no aparecerán si

se descompone la base de datos desde el principio. El proceso de normalización implementa

la aplicación de una serie de reglas conocidas como “las formas normales”. Las tres primeras

formas normales ayudan a evitar la redundancia de información y a mejorar el rendimiento de

la base de datos, específicamente en las consultas. Estas formas normales se basan en las

dependencias funcionales entre los atributos de un esquema de base de datos.

pág. 11
2.1. Primera forma normal (1FN).

CONDICION

Una tabla se encuentra en primera forma normal cuando sus atributos no contienen grupos de

repetición.

A continuación, se presenta un ejemplo de aplicación de las formas normales con una base de

datos para una institución educativa.

En la estructura de la tabla, indicada en la siguiente figura se tiene un grupo de repetición y

por tanto no está en primera Forma Normal.

PROBLEMAS

Una tabla con esta estructura presenta varios problemas. Por ejemplo, si una pareja tiene más

de un niño en la misma institución, debemos introducir el nombre del Padre y la Madre varias

veces por cada niño. Esto forma un grupo de repetición. Por otra parte, se puede presentar un

error tipográfico en el nombre del Padre, si no se introduce exactamente el mismo nombre todo

pág. 12
el tiempo, se pueden causar problemas cuando ejecuten búsquedas, así como en la presentación

de informes.

Este problema se produce porque combinamos información en la misma tabla. Ponemos la

información de los padres y los niños en la misma tabla. La solución para este problema es

simple: crear una tabla separada para la información de los padres, que se relacionan con la

tabla de los Alumnos a través de una relación uno a muchos, es decir, una pareja de padres

puede tener varios hijos. Observe en la siguiente figura la relación de padres y

alumnos (representando los hijos).

EJEMPLOS

Las dos tablas resultantes de la aplicación de la Primera Forma Normal: Padres y alumnos

están ahora en primera forma normal.

pág. 13
2.2. Segunda forma normal (2FN).

CONDICION

Se produce cuando la clave principal está compuesta por más de un campo. En este caso, todos

los campos que dependan funcionalmente de la clave principal forman una tabla y los campos

que no se identifiquen con la clave principal deben pertenecer a otra tabla.

Continuando con el ejemplo, ahora se tiene la tabla Cursos:

PROBLEMA

CONTINUAMOS CON EL PROBLEMA

Esta tabla tiene una clave primaria compuesta y no está en segunda forma normal. La clave

principal está formada por la combinación de campos NoMatricula y CodCurso. Al evaluar

que campos dependen de la clave primaria, se obtiene que el campo “Descripción” sólo

depende del campo “CodCurso”, es decir, que con el “código de curso” es posible encontrar

su “descripción”, independientemente del valor de “NoMatricula”. Por tanto, este campo que

no es parte de la clave primaria y depende solamente de uno de los campos que constituye
pág. 14
la clave primaria Compuesta, por lo que se puede afirmar que este cuadro no está en Segunda

forma normal.

EJEMPLO

Para solucionar esta situación: “se divide la tabla que no está en la segunda forma normal en

otras dos tablas, como se muestra en la siguiente figura, y las dos tablas resultantes se

encuentran en segunda forma normal.

Obteniendo Matriculas y Cursos en tablas separadas.

En conclusión, la segunda forma está conectada con la aparición de claves primarias

compuestas.

2.3. Tercera forma normal (3FN).

La tercera forma normal revisa la dependencia funcional de los campos con aquellos que no son

clave, si esto ocurre, se deben extraer de la tabla, sin que se pierda el vínculo existente con las

tablas.

En el siguiente ejemplo algunos campos no dependen directamente de la clave principal o

parte de ella, sino que depende de otro campo de la tabla, por tanto, decimos que la tabla no

está en tercera forma normal.


pág. 15
El campo DescripCargo sólo depende del CodCargo, que no forma parte de la clave principal,

por eso se puede afirmar que la tabla no está en tercera forma normal.

Para solucionar este problema se debe dividir la tabla en otras dos, como se indica en la

siguiente figura. Las dos tablas resultantes se encuentran en tercera forma normal.

Como resultado del proceso de normalización, se obtiene un mayor número de tablas, pero

sin redundancia y problemas de inconsistencia de los datos.

pág. 16
2.4. Consideraciones finales y problemas de la normalización.

La teoría de la normalización nos ayuda a estructurar mejor las tablas de la base de datos,

evitando posibles redundancias. Mientras la normalización resuelve los problemas

relacionados con la estructuración de los datos en tablas, crea problemas añadidos a su propio

concepto, como es la ineficacia en la recuperación de información. Así, el proceso de

normalización envuelve la descomposición de una tabla en tablas más pequeñas, lo cual

requiere que la clave primaria de la tabla original se incluya, como una clave foránea, en las

nuevas tablas que se forman. Esto significa que a medida que se van creando estas claves

foráneas se va incrementando las probabilidades de poner en peligro la integridad de la base

de datos. Otro efecto adicional al número creciente de tablas en la base de datos, es que se ve

disminuido el rendimiento del sistema en la recuperación de la información contenida, por tanto,

en ciertas ocasiones es necesario llegar a un equilibrio entre el nivel de normalización de la

base de datos y el rendimiento del sistema.

Fuente Material de formación “FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio

Nacional de Aprendizaje OPTIMIZACIÓN DE LA ESTRUCTURA DE BASE DE DATOS.

pág. 17
SECRETARÍA DE GOBIERNO

TABLA PERSONA

IF NOT EXISTS (SELECT * FROM


sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[PERSONA]') AND
type in (N'U'))
BEGIN
CREATE TABLE PERSONA (
idPERSONA INT IDENTITY NOT NULL ,
idDETENCION INT NOT NULL ,
APELLIDO VARCHAR(30) NULL,
NOMBRES VARCHAR(30) NULL,
IDENTIFICACION VARCHAR(30) NULL,
TIPODOCUMENTO INT NULL ,
PRIMARY KEY(idPERSONA,
idDETENCION),
FOREIGN KEY(idDETENCION)
REFERENCES
DETENCION(idDETENCION)
);
END
GO

pág. 18
Validación de la primera forma normal (1FN)

 Aplica

 Observación: No presenta inconvenientes en la tabla ya que los atributos que

contengan grupos de repetición.

Validación de la 2FN (2FN)

 Aplica

 Observación: La tabla tiene una clave primaria compuesta y está en 2FN

Validación de la tercera forma normal (3FN)

 Aplica

 Observación: No presenta dependencia funcional de los campos con aquellos que no

son clave.

TABLA DETENCION

IF NOT EXISTS (SELECT * FROM


sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[DETENCION]')
AND type in (N'U'))
BEGIN
CREATE TABLE DETENCION (
idDETENCION INT IDENTITY NOT
NULL ,
idINSPECCION INT NOT NULL ,
FECHA DATE NULL,
MOTIVO VARCHAR(4000) NULL,
TIPO INT NULL ,
HECHOS VARCHAR(4000) NULL,
PRIMARY KEY(idDETENCION),
FOREIGN KEY(idINSPECCION)
REFERENCES
INSPECCION(idINSPECCION)
);
END
GO

pág. 19
Validación de la primera forma normal (1FN)

 Aplica

 Observación: No presenta en la tabla, atributos que contengan grupos de repetición.

Validación de la 2FN (2FN)

 Aplica

 Observación: No aplica al no poseer llave primaria compuesta

Validación de la tercera forma normal (3FN)

 Aplica

 Observación: No presenta dependencia funcional de los campos con aquellos que no

son clave.

TABLA “INSPECCION”

IF NOT EXISTS (SELECT * FROM


sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[INSPECCION]')
AND type in (N'U'))
BEGIN
CREATE TABLE INSPECCION (
idINSPECCION INT IDENTITY NOT
NULL,
NOMBRE VARCHAR(30) NULL,
PRIMARY KEY(idINSPECCION)
);
END
GO

pág. 20
Validación de la primera forma normal (1FN)

 Aplica

 Observación: No presenta en la tabla, atributos que contengan grupos de repetición.

Validación de la 2FN (2FN)

 Aplica

 Observación: No aplica al no poseer llave primaria compuesta

Validación de la tercera forma normal (3FN)

 Aplica

 Observación: No presenta dependencia funcional de los campos con aquellos que no

son clave.

pág. 21
TABLA INSPECCION_CONTRAVENCION

IF NOT EXISTS (SELECT * FROM


sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[INSPECCION_C
ONTRAVENCION]') AND type in
(N'U'))
BEGIN
CREATE TABLE
INSPECCION_CONTRAVENCION (
idINSPECCION INT NOT NULL ,
idCONTRAVENCION INT NOT
NULL ,
INSPECTOR VARCHAR(60) NULL,
PRIMARY KEY(idINSPECCION,
idCONTRAVENCION),
FOREIGN KEY(idINSPECCION)
REFERENCES
INSPECCION(idINSPECCION),
FOREIGN
KEY(idCONTRAVENCION)
REFERENCES
CONTRAVENCION(idCONTRAVENCI
ON)
);
END
GO

Validación de la primera forma normal (1FN)

 Aplica

 Observación: No presenta en la tabla, atributos que contengan grupos de repetición.

Validación de la 2FN (2FN)

 Aplica

 Observación: Esta tabla tiene una clave primaria compuesta y está en 2FN.

pág. 22
Validación de la tercera forma normal (3FN)

 Aplica

 Observación: No presenta dependencia funcional de los campos con aquellos que

no son clave.

TABLA “CONTRAVENCIÓN”

IF NOT EXISTS (SELECT * FROM


sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[CONTRAVENCI
ON]') AND type in (N'U'))
BEGIN
CREATE TABLE CONTRAVENCION (
idCONTRAVENCION INT IDENTITY
NOT NULL ,
FECHA DATETIME NULL,
TIPO INT NULL ,
HECHOS VARCHAR(4000) NULL,
ESTADO INT NULL ,
PRIMARY
KEY(idCONTRAVENCION)
);
END;
GO

Validación de la primera forma normal (1FN)

 Aplica

 Observación: No presenta en la tabla, atributos que contengan grupos de repetición.

Validación de la 2FN (2FN)

 Aplica

 Observación: No aplica al no poseer llave primaria compuesta

pág. 23
Validación de la tercera forma normal (3FN)

 Aplica

 Observación: No presenta dependencia funcional de los campos con aquellos que

no son clave.

TABLA INVOLUCRADO

IF NOT EXISTS (SELECT * FROM


sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[INVOLUCRADO]
') AND type in (N'U'))
BEGIN
CREATE TABLE INVOLUCRADO (
idINVOLUCRADO INT IDENTITY
NOT NULL ,
idCONTRAVENCION INT NOT
NULL ,
NOMBRE VARCHAR(60) NULL,
IDENTIFICACION VARCHAR(30)
NULL,
TIPODOCUMENTO INT NULL ,
TIPOACTUACION INT NULL ,
PRIMARY KEY(idINVOLUCRADO,
idCONTRAVENCION),
FOREIGN
KEY(idCONTRAVENCION)
REFERENCES
CONTRAVENCION(idCONTRAVENCI
ON)
);
END
GO

pág. 24
Validación de la primera forma normal (1FN)

 Aplica

 Observación: No presenta en la tabla, atributos que contengan grupos de repetición.

Validación de la 2FN (2FN)

 Aplica

 Observación: Esta tabla tiene una clave primaria compuesta y está en 2FN.

Validación de la tercera forma normal (3FN)

 Aplica

 Observación: No presenta dependencia funcional de los campos con aquellos que

no son clave.

TABLA QUERELLA

IF NOT EXISTS (SELECT * FROM


sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[QUERELLA]')
AND type in (N'U'))
BEGIN
CREATE TABLE QUERELLA (
idQUERELLA INT identity NOT
NULL ,
idINSPECCION INT NOT NULL ,
FECHA DATE NULL,
ASUNTO VARCHAR(4000) NULL,
HECHOS VARCHAR(4000) NULL,
ESTADO INT NULL ,
PRIMARY KEY(idQUERELLA),
FOREIGN KEY(idINSPECCION)
REFERENCES
INSPECCION(idINSPECCION)
);
END
GO

pág. 25
Validación de la primera forma normal (1FN)

 Aplica

 Observación: No presenta en la tabla, atributos que contengan grupos de repetición.

Validación de la 2FN (2FN)

 Aplica

 Observación: No aplica al no poseer llave primaria compuesta

Validación de la tercera forma normal (3FN)

 Aplica

 Observación: No presenta dependencia funcional de los campos con aquellos que

no son clave.

TABLA ACTUACION

IF NOT EXISTS (SELECT * FROM


sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[ACTUACION]')
AND type in (N'U'))
BEGIN
CREATE TABLE ACTUACION (
idACTUACION INT IDENTITY NOT
NULL ,
idQUERELLA INT NOT NULL ,
FECHA DATE NULL,
HECHOS VARCHAR(4000) NULL,
ESTADO INT NULL ,
PRIMARY KEY(idACTUACION,
idQUERELLA),
FOREIGN KEY(idQUERELLA)
REFERENCES
QUERELLA(idQUERELLA)
);
END
GO

pág. 26
Validación de la primera forma normal (1FN)

 Aplica

 Observación: No presenta en la tabla, atributos que contengan grupos de repetición.

Validación de la 2FN (2FN)

 Aplica

 Observación: Esta tabla tiene una clave primaria compuesta y está en 2FN.

Validación de la tercera forma normal (3FN)

 Aplica

 Observación: No presenta dependencia funcional de los campos con aquellos que

no son clave.

pág. 27
TABLA CONTRACTUACION

IF NOT EXISTS (SELECT * FROM


sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[CONTRACTUAC
ION]') AND type in (N'U'))
BEGIN
CREATE TABLE CONTRACTUACION
(
idCONTRACTUACION INT
IDENTITY NOT NULL ,
idCONTRAVENCION INT NOT
NULL ,
FECHA DATETIME NULL,
OBSERVACION VARCHAR(4000),
PRIMARY
KEY(idCONTRACTUACION,
idCONTRAVENCION),
FOREIGN
KEY(idCONTRAVENCION)
REFERENCES
CONTRAVENCION(idCONTRAVENCI
ON)
);
END
GO

Validación de la primera forma normal (1FN)

 Aplica

 Observación: No presenta en la tabla, atributos que contengan grupos de repetición.

Validación de la 2FN (2FN)

 Aplica

 Observación: Esta tabla tiene una clave primaria compuesta y está en 2FN.

Validación de la tercera forma normal (3FN)

pág. 28
 Aplica

 Observación: No presenta dependencia funcional de los campos con aquellos que

no son clave.

TABLA DEMANDANTE

IF NOT EXISTS (SELECT * FROM


sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[DEMANDANTE]'
) AND type in (N'U'))
BEGIN
CREATE TABLE DEMANDANTE (
idDEMANDANTE INT IDENTITY
NOT NULL ,
idQUERELLA INT NOT NULL ,
NOMBRE VARCHAR(60) NULL,
IDENTIFICACION VARCHAR(30)
NULL,
TIPODOCUMENTO INT NULL ,
PRIMARY KEY(idDEMANDANTE,
idQUERELLA),
FOREIGN KEY(idQUERELLA)
REFERENCES
QUERELLA(idQUERELLA)
);
end
GO
Validación de la primera forma normal (1FN)

 Aplica

 Observación: No presenta en la tabla, atributos que contengan grupos de repetición.

Validación de la 2FN (2FN)

 Aplica

 Observación: Esta tabla tiene una clave primaria compuesta y está en 2FN.

pág. 29
Validación de la tercera forma normal (3FN)

 Aplica

 Observación: No presenta dependencia funcional de los campos con aquellos que

no son clave.

TABLA DEMANDADO

IF NOT EXISTS (SELECT * FROM


sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[DEMANDADO]')
AND type in (N'U'))
BEGIN
CREATE TABLE DEMANDADO (
idDEMANDADO INT IDENTITY
NOT NULL ,
idQUERELLA INT NOT NULL ,
NOMBRE VARCHAR(60) NULL,
IDENTIFICACION VARCHAR(30)
NULL,
TIPODOCUMENTO INT NULL ,
PRIMARY KEY(idDEMANDADO,
idQUERELLA),
FOREIGN KEY(idQUERELLA)
REFERENCES
QUERELLA(idQUERELLA)
);
END
GO
Validación de la primera forma normal (1FN)

 Aplica

 Observación: No presenta en la tabla, atributos que contengan grupos de repetición.

Validación de la 2FN (2FN)

 Aplica

 Observación: Esta tabla tiene una clave primaria compuesta y está en 2FN.

pág. 30
Validación de la tercera forma normal (3FN)

 Aplica

 Observación: No presenta dependencia funcional de los campos con aquellos que

no son clave.

Página 6 de 28
CONCLUSIONES

Teniendo en cuenta los procesos de normalización que aseguran que las políticas de

seguridad las cuales se aplican en el almacenamiento de la base de datos y así poder

corregir errores eventuales que suceden dentro de la base.

Lo anterior explicado se da anotar que las organizaciones deben estar bien estructuras

como inteligencia de negocio ya que el manejo de información debe ser administrada de

manera adecuada y sobre todo el personal debe ser capacitado para asumir dicha

responsabilidad.

Página 7 de 28
Referencias

 Material de formación “SENA – Servicio Nacional de Aprendizaje

OPTIMIZACIÓN DE LA ESTRUCTURA DE BASE DE DATOS.”

 https://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos

 https://es.slideshare.net/hugofreestyle/normalizacin-de-bases-de-datos

 https://support.microsoft.com/es-co/help/283878/description-of-the-database-

normalization-basics

 https://www.cs.upc.edu/~bcasas/docencia/pfc/NormalitzacioBD.pdf

Página 8 de 28

S-ar putea să vă placă și