Sunteți pe pagina 1din 21

AA9-Ev3-Normalización de Bases de Datos

JOEL RODELO GORDILLO

ESPECIALIZACIÓN TECNOLÓGICA EN GESTIÓN Y


SEGURIDAD DE BASES DE DATOS (1881791)

SERVICIO NACIONAL DE APRENDIZAJE SENA


Centro Nacional Colombo Alemán / Regional Atlántico /
Barranquilla -Colombia
AA9-Ev3-Normalización de Bases de Datos

JOEL RODELO GORDILLO

EVIDENCIAS DE LA ACTIVIDAD DE APRENDIZAJE 9

Director: CANDELARIA VICTORIA SUAREZ BELEÑO


Ingeniera de Sistemas, Con maestría por certificar en Educación y Ambientes
virtuales
cvsuarez@misena.edu.co

ESPECIALIZACIÓN TECNOLÓGICA EN GESTIÓN Y


SEGURIDAD DE BASES DE DATOS (1881791)

SERVICIO NACIONAL DE APRENDIZAJE SENA


Centro Nacional Colombo Alemán / Regional Atlántico /
Barranquilla -Colombia Pamplona, mes día de año
TABLA DE CONTENIDO

1. INTRODUCCION ............................................................................................ 04
2. OBJETIVOS .................................................................................................... 05
2.1 Objetivo general ........................................................................................ 05
2.2 Objetivos específicos ................................................................................ 05
3. APLICACIÓN Y DISEÑO DE BASE DE DATOS ............................................. 06
4. NORMALIZAR LA BASE DE DATOS ........................................................ 06-20
5. CONCLUSIONES ............................................ 2Error! Bookmark not defined.
1. INTRODUCCION

Un administrador de base de datos siempre está en la búsqueda de un nivel óptimo


de rendimiento en los servicios de base de datos. Una de las tareas a que conlleva
a esto, es la verificación de la estructura de la base de datos y el desarrollo de
acciones que permitan optimizarla; para esto se deben revisar 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, deteriorando 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.
2. OBJETIVOS

2.1 OBJETIVO GENERAL

Elabora un informe de normalización para la base de datos.

2.2 OBJETIVOS ESPECÍFICOS

 Presenta informe de la optimización de la estructura de la base de datos, con


la justificación de las acciones desarrolladas.
3. 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.

4. 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.

Primera forma normal (1FN)

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.
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 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).

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


alumnos están ahora en primera forma normal.

Segunda forma normal (2FN)

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:
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 la clave primaria
compuesta, por lo que se puede afirmar que este cuadro no está en Segunda forma
normal. 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.

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.
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.

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

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

Observación: No se evidencia en la tabla, atributos que contengan grupos de


repetición.

 Validación de la segunda forma normal (2FN)

Observación: Esta tabla tiene una clave primaria compuesta y está en


segunda forma normal.

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

Observación: No se evidencia 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].[CONTRAVENCION]') 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)

Observación: No se evidencia en la tabla, atributos que contengan grupos de


repetición.

 Validación de la segunda forma normal (2FN)

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

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

Observación: No se evidencia dependencia funcional de los campos con


aquellos que no son clave.

Tabla Inspección

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
 Validación de la primera forma normal (1FN)

Observación: No se evidencia en la tabla, atributos que contengan grupos de


repetición.

 Validación de la segunda forma normal (2FN)

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

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

Observación: No se evidencia 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
 Validación de la primera forma normal (1FN)

Observación: No se evidencia en la tabla, atributos que contengan grupos de


repetición.

 Validación de la segunda forma normal (2FN)

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

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

Observación: No se evidencia dependencia funcional de los campos con


aquellos que no son clave.

Tabla Actuación

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
 Validación de la primera forma normal (1FN)

Observación: No se evidencia en la tabla, atributos que contengan grupos de


repetición.

 Validación de la segunda forma normal (2FN)

Observación: Esta tabla tiene una clave primaria compuesta y está en


segunda forma normal.

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

Observación: No se evidencia dependencia funcional de los campos con


aquellos que no son clave.

Tabla Contractuación

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
 Validación de la primera forma normal (1FN)

Observación: No se evidencia en la tabla, atributos que contengan grupos de


repetición.

 Validación de la segunda forma normal (2FN)

Observación: Esta tabla tiene una clave primaria compuesta y está en


segunda forma normal.

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

Observación: No se evidencia 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)

Observación: No se evidencia en la tabla, atributos que contengan grupos de


repetición.

 Validación de la segunda forma normal (2FN)

Observación: Esta tabla tiene una clave primaria compuesta y está en


segunda forma normal.

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

Observación: No se evidencia 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)

Observación: No se evidencia en la tabla, atributos que contengan grupos de


repetición.

 Validación de la segunda forma normal (2FN)

Observación: Esta tabla tiene una clave primaria compuesta y está en


segunda forma normal.

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

Observación: No se evidencia dependencia funcional de los campos con


aquellos que no son clave.

Tabla Detención

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
 Validación de la primera forma normal (1FN)

Observación: No se evidencia en la tabla, atributos que contengan grupos de


repetición.

 Validación de la segunda forma normal (2FN)

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

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

Observación: No se evidencia dependencia funcional de los campos con


aquellos que no son clave.

Tabla INSPECCION CONTRAVENCION

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id =


OBJECT_ID(N'[dbo].[INSPECCION_CONTRAVENCION]') 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(idCONTRAVENCION)
);
END
GO
 Validación de la primera forma normal (1FN)

Observación: No se evidencia en la tabla, atributos que contengan grupos de


repetición.

 Validación de la segunda forma normal (2FN)

Observación: Esta tabla tiene una clave primaria compuesta y está en


segunda forma normal.

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

Observación: No se evidencia 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(idCONTRAVENCION)
);
END
GO
 Validación de la primera forma normal (1FN)

Observación: No se evidencia en la tabla, atributos que contengan grupos de


repetición.

 Validación de la segunda forma normal (2FN)

Observación: Esta tabla tiene una clave primaria compuesta y está en


segunda forma normal.

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

Observación: No se evidencia dependencia funcional de los campos con


aquellos que no son clave.
5. CONCLUSIONES

Según en el análisis efectuado de la bd, se evidencia que se han designado algunas


llaves foráneas como primarias también en las demás tablas, lo anterior se
considera un hallazgo a modificar. Se evidencia también que la bd cumple con la
aplicación de las primeras tres (03) formas normales en cada una de las tablas que
la conforman, se realizó análisis tabla por tabla, validando de esto la normalización
en las mismas. La bd también cuenta con una tabla de conexión, método opcional
que también forma parte de los procesos de normalización.

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