Base de datos #13 | Normalización (1FN, 2FN y 3FN)
Summary
TLDREste video educativo de 'Código Compilado' se enfoca en la normalización de bases de datos relacionales, una técnica crucial para la optimización y la prevención de redundancia. Se explican los objetivos de la normalización, como reducir el espacio de almacenamiento y eliminar errores lógicos. Seguidamente, se detallan los niveles de normalización, desde la primera hasta la tercera forma normal, utilizando ejemplos prácticos para ilustrar cómo separar datos y crear tablas interrelacionadas sin perder información. El presentador también menciona la importancia de evitar dependencias transitivas y cómo estas pueden afectar la estructura de la base de datos.
Takeaways
- 😀 La normalización es el proceso de simplificación de datos en bases de datos relacionales.
- 🔍 Los objetivos de la normalización incluyen reducir el espacio de almacenamiento, eliminar datos repetidos y evitar errores lógicos.
- 📚 Existen varias formas de normalizar una base de datos, desde la primera forma normal hasta la quinta, aunque generalmente se normalizan hasta la tercera forma normal.
- 👨🎓 La primera forma normal busca identificar y eliminar grupos de repetición de datos dentro de una tabla.
- 🔑 Para alcanzar la segunda forma normal, se identifican dependencias funcionales y transitivas, asegurándose de que los atributos no clave dependan solo de la clave primaria.
- 📈 Al normalizar hasta la tercera forma normal, se eliminan dependencias transitivas, asegurando que los atributos no clave no dependan de otros atributos no clave.
- 👉 Al separar la información en múltiples tablas, se mejora la estructura y se reduce la redundancia de datos.
- 💾 La normalización también ayuda a optimizar el uso del espacio en la base de datos, al reducir la repetición de información.
- 🔗 Mantener la relación entre los datos en diferentes tablas es crucial para evitar la pérdida de información durante el proceso de normalización.
- 🎓 Se proyecta continuar explorando la normalización en un diagrama entidad-relación en un próximo vídeo para aclarar los conceptos.
Q & A
¿Qué es la normalización en bases de datos relacionales?
-La normalización es el proceso de simplificación de datos con el objetivo de almacenar información de manera eficiente, eliminar datos repetidos, evitar errores lógicos y mantener los datos organizados.
¿Cuáles son los objetivos principales de la normalización de bases de datos?
-Los objetivos principales incluyen ocupar el menor espacio posible, eliminar datos repetidos, evitar errores lógicos y mantener los datos ordenados sin perder información.
¿Cuál es la importancia de la primera forma normal (1NF) en la normalización de bases de datos?
-La 1NF se logra al identificar y separar grupos de repetición de datos, lo que evita la redundancia y permite una estructura de datos más eficiente.
¿Cómo se identifica si una base de datos está en la primera forma normal?
-Una base de datos está en 1NF si no hay grupos de repetición de datos y cada registro es único, sin que los detalles de un registro se repitan en otros registros.
¿Qué son las dependencias funcionales y cómo juegan un papel en la segunda forma normal (2NF)?
-Las dependencias funcionales son donde los atributos de una tabla dependen directamente de la clave primaria. En 2NF, se busca que todos los atributos dependan directamente de la clave primaria y no de otros atributos para evitar dependencias transitivas.
¿Cómo se normaliza una base de datos hasta la segunda forma normal?
-Para alcanzar la 2NF, se identifican las dependencias funcionales y se separan los atributos que no cumplen con esta condición en una nueva tabla, asegurando que no haya dependencias transitivas.
¿Cuál es la diferencia entre una tabla 'fuerte' y una 'intermedia' en el contexto de la normalización de bases de datos?
-Una tabla 'fuerte' tiene una clave primaria y sus atributos dependen directamente de ella. Una tabla 'intermedia' generalmente se crea para evitar redundancia y contiene claves foráneas que hacen referencia a tablas 'fuertes'.
¿Qué se busca lograr con la tercera forma normal (3NF)?
-La 3NF busca eliminar las dependencias transitivas no funcionales, asegurando que los atributos no clave dependan solo de la clave primaria y no de otros atributos no clave.
¿Cómo se identifica si una base de datos está en la tercera forma normal?
-Una base de datos está en 3NF si todas las tablas están en 2NF y no hay dependencias transitivas no funcionales, es decir, los atributos no clave solo dependen de la clave primaria.
¿Por qué es importante evitar la pérdida de información durante el proceso de normalización?
-Evitar la pérdida de información es crucial para mantener la integridad y la exactitud de los datos. La normalización debe simplificar la estructura de la base de datos sin comprometer la cantidad o la calidad de la información que se puede recuperar.
Outlines
📚 Introducción a la Normalización de Bases de Datos
El primer párrafo introduce el tema de la normalización en bases de datos relacionales, destacando su importancia para la optimización del almacenamiento y la eliminación de datos repetidos y errores lógicos. Se explica que la normalización es un proceso de simplificación de datos y se mencionan los objetivos de normalizar, como reducir el espacio de almacenamiento, eliminar redundancia y mantener la información organizada. Además, se menciona que se abordará hasta la tercera forma normal, que generalmente es suficiente para estructurar bases de datos de manera eficiente.
🔍 Primera Forma Normal: Eliminando Redundancia
Este párrafo explica la primera forma normal (1NF) con un ejemplo de una base de datos de alumnos, materias y carreras. Se identifica la redundancia en los datos y se describe cómo separar la información en dos tablas para alcanzar la 1NF. La tabla 'Alumno' contiene datos personales y la tabla 'Alumno Materia' relaciona a los alumnos con las materias que cursan. Se enfatiza la necesidad de mantener la relación entre los datos evitando la pérdida de información.
🔑 Segunda Forma Normal: Identificando Dependencias Funcionales
El tercer párrafo profundiza en la segunda forma normal (2NF), explicando las dependencias funcionales y transitivas. Se utiliza el ejemplo de la tabla 'Alumno Materia' para identificar que la 'Materia' depende funcionalmente del 'Número de Materia', y se separa en dos tablas para cumplir con la 2NF. Se crea una nueva tabla 'Materia' con 'Número de Materia' como clave primaria y se mantiene la relación a través de claves foráneas. Esto elimina dependencias no esenciales y mejora la estructura de la base de datos.
🎓 Tercera Forma Normal: Eliminando Dependencias Transitivas
El cuarto párrafo aborda la tercera forma normal (3NF), identificando dependencias transitivas en la tabla 'Alumno'. Se observa que la 'Carrera' depende del 'Alumno', lo que no es deseable en una base de datos normalizada. Para resolver esto, se crea una tabla 'Carrera' con 'Número de Carrera' como clave primaria, y se relaciona con la tabla 'Alumno' mediante una clave foránea. Esto asegura que la información esté organizada de manera que no haya redundancia y se conserve la relación entre los datos, optimizando el uso del espacio de almacenamiento.
Mindmap
Keywords
💡Normalización
💡Primera forma normal (1NF)
💡Segunda forma normal (2NF)
💡Tercera forma normal (3NF)
💡Dependencia funcional
💡Dependencia transitiva
💡Clave primaria
💡Clave foránea
💡Redundancia de datos
💡Espacio de almacenamiento
Highlights
Normalización es el proceso de simplificación de datos en bases de datos relacionales.
Objetivos de la normalización incluyen almacenar datos con menor espacio, eliminar datos repetidos y errores lógicos, y mantener datos ordenados.
La normalización ayuda a optimizar la base de datos, reducir el espacio de almacenamiento y evitar la repetición de datos.
Existen varios niveles de normalización: 1NF, 2NF, 3NF, BCNF, 4NF y 5NF, con la mayoría de las bases de datos normalizadas hasta la 3NF.
La 1NF se logra identificando y eliminando grupos de repetición de datos.
Ejemplo de identificación de grupos de repetición: matrícula, nombre, dirección, teléfono y carrera.
Para alcanzar la 1NF, se separan los datos en tablas para evitar la redundancia y mantener la relación entre datos.
La 2NF se alcanza identificando dependencias funcionales y transitivas en la base de datos.
Dependencia funcional implica que los atributos dependen directamente de la clave primaria.
Dependencia transitiva ocurre cuando un atributo depende de otro que a su vez depende de la clave primaria.
Para normalizar a 2NF, se separan las tablas para que no haya dependencias transitivas.
La 3NF se logra eliminando dependencias funcionales no primarias, asegurando que solo los atributos dependan de la clave primaria.
Ejemplo de normalización a 3NF: separar la tabla de alumnos para que la carrera no dependa del nombre del alumno sino de la matrícula.
Al normalizar, se evita la pérdida de información y se mantienen los datos relacionados.
Normalización reduce la redundancia, optimiza el espacio de almacenamiento y mejora la estructura de la base de datos.
Se espera que en el siguiente vídeo se explore la normalización con un diagrama entidad-relación para una mejor comprensión.
Transcripts
hola chicos que tal bienvenidos al
código compilado el día de hoy vamos a
ver un tema muy importante en bases de
datos relacionales que es la
normalización antes que nada me gustaría
mencionarles que este es un tema muy
importante en bases de datos por lo que
es primordial que nos quede clarísimo
antes que nada me gustaría decirles que
es normalización normalización es el
proceso de simplificación de datos y
tenemos varios objetivos para normalizar
bases de datos que es tener almacenado
con el menor espacio posible eliminar
datos repetidos eliminar errores lógicos
y tener nuestros datos ordenados muchas
veces si nosotros no normalizamos
nuestras bases de datos vamos a ocupar
muchísimo espacio con nuestra base de
datos de igual manera vamos a tener
datos que van a estar repetidos por lo
que eso no va a ser óptimo la
normalización nos va a servir para
optimizar nuestra base de datos para
ocupar el menor espacio posible y por
supuesto tener los datos necesarios para
no repetir los vamos a organizar nuestra
base de datos de tal manera que los
datos no se repitan pero de igual manera
permanezcan
y por supuesto no perdamos información
existen varias como niveles para
normalizar nuestra base de datos existe
la primera forma normal la segunda forma
normal la tercera forma normal la forma
normal voy scott la cuarta normal y la
quinta forma normal nosotros vamos a
llegar a ver hasta la tercera forma
normal porque por lo general hasta esta
forma es hasta donde se normalizan las
bases de datos porque en esta forma ya
tenemos una base de datos bien
estructurada sin datos repetidos y
estamos optimizando el espacio algo muy
importante que nos debe de quedar muy
claro y no debemos olvidar cuando
normalizamos es que la simplificación
debe darse sin que haya pérdida de
información bueno vamos a empezar con la
primera forma normal aquí yo les tengo
un pequeño ejemplo en donde tenemos una
base de datos es una base de datos en
donde tenemos los datos de un alumno la
materia que cursa y la carrera que
también está cursando tenemos los datos
principales del alumno que es su nombre
su dirección y su teléfono de igual
manera la materia el número que
corresponde a la materia y su carrera al
alumno lo identificamos mediante una
matrícula esta sería una base de datos
no no
ya que si nos fijamos tenemos
redundancia existen repetición de datos
en esta base de datos si nos damos
cuenta podemos ver que la matrícula 1 se
repite tres veces con sus respectivos
campos como el nombre sergio se está
repitiendo tres veces la dirección se
está repitiendo tres veces etcétera
entonces tenemos que identificar la
primera forma normal se trata de
identificar los grupos de repetición
nosotros ya los identificamos es
matricula nombre dirección teléfono y la
carrera ahora cuál es el campo o cuáles
son los los campos que no se están
generando esa redundancia
pues es la materia y el número de
materia y se dan cuenta la materia y el
número de materias son el único dato que
no cambia en la repetición por ejemplo
en nuestro primer registro tenemos 1
sergio por la 22 el teléfono y tenemos
bases de datos el número en materia 1 2
3 en el siguiente registro que es
exactamente igual lo único que cambia es
la materia y el número de materia
y en la siguiente ocurre exactamente lo
mismo la materia y el número de materia
es lo que cambia dentro de nuestra
dentro de nuestro registro es por ello
que lo que vamos a hacer es separar esto
en dos tablas es decir dejar matrícula
nombre dirección teléfono y carrera en
una tabla y poner por otro tabla parte
el número de materia y la materia
quedaría de la siguiente manera tenemos
en normalizados a la primera forma
normal nos quedaría algo así nuestra
base de datos tendríamos la matrícula el
nombre la dirección el teléfono y la
carrera como una tabla a esta tabla la
podríamos llamar alumno y por otro lado
tenemos la tabla que es materia número
de materia y matrícula a esta tabla la
podemos llamar el alumno materia o algo
por el estilo porque decidí poner aquí
la matrícula si yo les dije que íbamos a
dividir en dos tablas
nuestra tabla principal bueno porque si
yo no pongo aquí nuestros campos de
matrícula vamos a perder la relación
entre el alumno y la materia es decir yo
tendría dos tablas aisladas una de
alumno y otra de materia para que estas
relaciones necesitamos tener la
matrícula del alumno para saber qué
alumno está cursando qué materia por
ejemplo aquí con la matrícula 1 yo sé
que el alumno con matrícula 1 está
cruzando la materia base de datos y
quién es el alumno con matrícula 1 bueno
pues me voy adaptable alumno puedo ver
que la matrícula 1 corresponde a sergio
entonces hasta aquí ya tendríamos hasta
la primera forma normal para entender un
poquito la segunda forma normal vamos a
ver dos tipos de dependencias que se
llama dependencia funcional y
dependencia transitiva la dependencia
funcional se trata que vamos a tener
varios atributos por ejemplo en este
caso pongo a b y c donde a va a ser el
atributo primario va a ser por ejemplo
la clave primaria la primaria
y beige dependen funcionalmente y
totalmente de a es decir que ve para que
exista b necesita existir ah y para que
exista se necesita existir y por su
parte la dependencia transitiva se trata
de algo distinto aquí tenemos los mismos
tres atributos a b y c pero tenemos que
es la clave primaria la primaria ahora
ve depende total y funcionalmente de a
pero se depende de entonces aquí estamos
generando una dependencia transitiva
porque pese a que se depende de cómo ve
depende de a se tiene una dependencia
transitiva con o no es una dependencia
directa sin embargo es una dependencia
transitiva ya que ve depende
funcionalmente de a ahorita nos va a
quedar un poquito más claro cuando
veamos un poco de la segunda forma
normal
ahora para que nosotros podamos
normalizar hasta la segunda forma la
tabla debe de estar ya en primer forma
normal y debemos identificar las
dependencias funcionales y transitivas
vamos a hacerlo paso a paso
aquí tenemos ya nuestra base de datos
hasta la primera forma normal en donde
hicimos dos tablas la tabla de alumno y
la tabla de alumno materia ahora aquí lo
que vamos a identificar son las
dependencias funcionales ahora vamos a
irnos directamente a la tabla alumno
materia ya que ésta cuenta con dos
claves primarias que es matrícula y
número de materia nosotros sabemos que
las claves primarias por lo general son
códigos códigos que identifican al
atributo que queramos al que queramos
hacer referencia en esa tabla
en este caso matrícula si lo queremos
ver un poquito más adelante sería una
clave primaria que en este momento está
actuando como clave foránea y número de
materia sería una clave primaria pero
número de materia hace referencia
obviamente a materia es la clave
primaria de materia
ahora vamos a analizar esto un poquito
más materia depende funcionalmente del
número de materia ya que materia no
tendría razón de ser sin un número de
materia ya que el número de materia es
la clave primaria
sin embargo materia no depende
absolutamente de nada con matrícula por
lo que son cosas independientes entonces
aquí nos estamos dando cuenta de algo
que en materia depende funcionalmente
tiene una dependencia funcional con
número de materia sin embargo no tiene
ninguna dependencia con matrícula por lo
que no podemos tener en esta tabla
matrícula materia y número de materia
entonces lo que vamos a hacer es
separarlo de nuevo en dos tablas
distintas quedaría de la siguiente
manera seguimos teniendo nuestra tabla
de alumnos y ahora tenemos una tabla en
donde únicamente tenemos la matrícula
con el número de materia es decir
tenemos las dos claves primarias que
estamos trayendo como foráneas y por
otra parte separamos en otra tabla lo
que es materia y número de materia esa
ya se está convirtiendo en una tabla
en una tabla que tiene su clave primaria
y sus atributos de igual manera la de
alumno es una tabla fuerte tiene una
clave primaria y sus atributos en este
caso esta no sería una tabla fuerte ésta
sería como una tabla intermedia como los
mismos en vídeos anteriores que va a
tener claves foráneas que son las claves
primarias de las claves a las que
estamos uniendo hasta este momento ya
tenemos normalizada nuestra base de
datos hasta la segunda forma normal
ahora vamos a ver la tercera forma
normal
sigamos analizando un poquito nuestra
base de datos si nos damos cuenta ya
casi la tenemos ya tenemos una tabla que
sería intermedia ya tenemos una tabla
fuerte que únicamente tiene dos
atributos la clave primaria y otro
atributo y tenemos nuestra tabla de
alumno sin embargo hay un pequeño
detalle en alumno si nos damos cuenta la
carrera depende del alumno es decir el
alumno estudia una carrera entonces
podríamos decir que esa es la razón de
ser de la carrera en esta tabla
sin embargo
el nombre del alumno no es una clave
primaria recordemos que las dependencias
funcionales y transitivas se deben de
analizar sobre claves primarias siempre
debe haber atributos que dependan de
claves primarias únicamente entonces el
alumno la clave primaria del alumno es
la matrícula entonces estamos teniendo
una dependencia transitiva entre carrera
y matrícula lo que tenemos que hacer
ahora es sacar carrera de esta tabla y
ponerla en otra tabla aparte de la
siguiente manera ahora tenemos a su
tabla alumnos donde tenemos matrícula
nombre dirección teléfono y número de
carrera que es número de carrera
la clave primaria que yo le asigne a la
tabla carrera tengo una nueva tabla que
se llama carrera que tiene su clave
primaria que es número de carrera y la
carrera ahora con esto estamos evitando
también redundancia y estamos reduciendo
el espacio de almacenamiento imaginemos
que nosotros tenemos un millón de
alumnos
entonces vamos a tener un millón de
registros y nosotros aquí dejáramos
carrera
tendríamos sistemas sistemas mecatrónica
e ingeniería civil etcétera muchísimas
carreras y la tendríamos repetidas en
cuanto a espacio estamos ocupando menos
espacio poniendo simplemente a lo mejor
una clave tipo entero que teniendo una
cadena de caracteres que a lo mejor va a
ser un bar char de 20 o de 25 no sé pero
entonces aquí estamos reduciendo espacio
además estamos normalizando
aquí yo agregó otra carrera porque pues
obviamente no nada más vamos a tener la
carrera de sistemas hasta aquí nuestra
base de datos estaría normalizada hasta
la tercera forma normal me gustaría que
la analizaremos un poco más y nos
diéramos cuenta que no estamos teniendo
pérdida de información seguimos teniendo
nuestra tabla con los alumnos nuestros
alumnos están relacionados con la
carrera mediante qué bueno mediante esta
clave que es el número de carrera que es
fueran en gar que es foránea perdón en
alumno y primaria en carrera con esto yo
sé que sergio está estudiando la carrera
1234 que es sistemas también ana está
estudiando la carrera 1234 que es
sistemas de igual manera tenemos una
tabla que podría ser intermedia en donde
tenemos la matrícula y el número de
materia en donde yo sé que el alumno con
matrícula 1 que es sergio está
estudiando la materia 123 que es base de
datos de igual manera y sesiona en la
materia 234 que es programación web la
237 que es programación visual y el
alumno por matriculados qué es
anna es estudiando la materia 123 que es
base de datos entonces si se dan cuenta
no estamos teniendo pérdida de
información y estamos optimizando
nuestra base de datos porque porque ya
no hay repetición recordemos nuestra
tabla inicial en donde sergio la
dirección el teléfono todos los datos de
sergio se repetían tres veces porque
pues simplemente porque tenía tres
distintas materias entonces aquí estamos
evitando repetición no están viendo
pérdida de información los datos siguen
relacionados y estamos ahorrando espacio
en el siguiente vídeo seguiremos viendo
normalización con sergio vamos a verlo
ya en un diagrama entidad relación para
que quede un poquito más claro chicos
esto sería todo por el vídeo de hoy
espero que les haya gustado y les haya
quedado muy claro no olviden que si
tienen alguna duda lo pueden dejar en la
parte de los comentarios
no olvides seguirnos en todas nuestras
redes sociales como twitter facebook y
google+ y suscribirse a su canal código
compilado
関連動画をさらに表示
CURSO de DISEÑO de BASE DE DATOS #13 📚 TERCERA FORMA NORMAL
CURSO de DISEÑO de BASE DE DATOS #10 📚 NORMALIZACION
CURSO de DISEÑO de BASE DE DATOS #11 📚 PRIMERA FORMA NORMAL
Base de Datos #3| Ejercicio Diagrama Entidad Relación
Schema Refinement and Normalization Normal Forms
La importancia de las bases de datos en la vida cotidiana
5.0 / 5 (0 votes)