Está en la página 1de 20

Asignatura

Bases de Datos
Especialización en Analítica de Datos
Sep 20, 2023

Docente: Fernando Ardila

Esta clase está dirigida a estudiantes con


conocimientos técnicos previos.
Hoy hablaremos de…
● Diseño de Bases de Datos
● Modelos Entidad Relación
Arquitecturas de Bases de Datos
Ciclo de Desarrollo de un proyecto de base de datos

Análisis Diseño Desarrollo Pruebas Puesta en prod

Entender Definir la arquitectura Desarrollo de la base Pruebas de usuario Estrategia de


requerimientos de datos UAT despliegue
Creación de los
Definir requerimientos modelos ER Pruebas (rendimiento, Pruebas (rendimiento, Despliegue controlado
funcionales y no extress, extress,
funcionales Definir la tecnología a escalabilidad…) escalabilidad…) Full rollout
utilizar
Refinación de Refinamiento de la Soporte y/o
requerimientos, Realizar pruebas de base de datos mantenimiento
datos.etc concepto
Integración
¿En tu empresa,
como nace un
proyecto de bases de
Discusión
datos?
Nacimiento de los proyectos de bases de datos
Eficiencia
Reducir la redundancia de datos
y a mejorar el rendimiento de las Componentes
consultas
Objetivos de ● Modelado de Datos: Modelo
negocio Requerimiento Escalabilidad ER, Normalización
Objetivos estratégicos de la Solución de un problema Dividir las bases de datos en ● Selección de Tecnología
empresa, que resultarán en específico que la base de partes más pequeñas a medida ● Diseño Físico: Indices,
eficiencias, mejoras datos pueda ayudar a resolver. que crecen. particiones.etc
comerciales, reducción de ● Seguridad: Control de
problemas.etc., Acceso, Cifrado
Seguridad ● Mantenimiento: Monitoreo,
Mecanismos para proteger los Copias de seguridad y
datos de acceso no autorizado. recuperación
● Documentación: Diagramas
ER, Diccionario de datos.etc
Confiabilidad ●

Estándares de codificación
Pruebas
Proporcionar datos precisos y
consistentes, incluso cuando se
producen fallas o interrupciones

Que Donde Objetivos/KPIs Como

Ejecutivos alto nivel Especialista en datos/Director datos + equipo


¿Que es lo que me
pregunto antes de
iniciar a diseñar una
Discusión
BD?
Algunas preguntas antes de diseñar una BD
● ¿Cuál es el propósito de la base de datos? ¿Se utilizará para
almacenar datos de clientes, productos, inventario, etc.?
● ¿Qué tipos de datos se almacenarán en la base de datos? ¿Son
datos numéricos, alfanuméricos, de texto, etc.?
● ¿Qué relaciones existen entre los datos? ¿Los datos se relacionan
entre sí de alguna manera?
● ¿Cuáles son los requisitos de rendimiento? ¿La base de datos debe
poder soportar un gran volumen de transacciones o consultas?
● ¿Cuáles son los requisitos de seguridad? ¿Los datos deben estar
protegidos de acceso no autorizado?
● ¿Quiénes serán los usuarios de la base de datos? ¿Qué nivel de
acceso necesitarán?
● ¿Cómo se utilizará la base de datos? ¿Se utilizará para realizar
informes, análisis, etc.?
● ¿Qué cambios se esperan en el futuro? ¿Es posible que los datos o
las relaciones cambien en el futuro?
Modelado de Datos Normalización de Bases de Datos
El modelo Entidad-Relación (ER) Es un proceso de diseño de tablas que reduce la redundancia de
datos y mejora la integridad de los datos.
Es un enfoque teórico y gráfico para ● Primera forma normal (1FN): Cada columna debe
describir la estructura de una base de contener un valor único por fila.
datos de una manera abstracta. ● Segunda forma normal (2FN): Cada columna no clave
debe depender solo de la clave principal.
● Permite organizar la información de ● Tercera forma normal (3FN): Las dependencias
manera estructurada. transitivas deben eliminarse.
● Cuarta forma normal (4FN): Las dependencias
● Permite evitar redundancias y mantener la
multivaluadas deben eliminarse.
integridad de los datos.
● Quinta forma normal (5FN): Las dependencias de unión
deben eliminarse.

PROS CONS
● Reduce la redundancia de ● Puede aumentar la
datos complejidad de las tablas
● Mejora la integridad de los ● Puede reducir el rendimiento
datos
● Facilita el mantenimiento de
los datos
Diagrama ER

Entidad: Es un objeto o concepto sobre el cual se


almacena información. Generalmente representa un
"cosa" real o abstracta en el mundo que estamos
modelando. Por ejemplo, en una base de datos para
una librería, las entidades podrían ser "Libro", "Autor",
"Editorial", etc.

Relación: Una relación es una asociación definida


entre dos o más entidades que indica alguna
interconexión significativa entre ellas. Por ejemplo,
una relación podría ser la asociación entre las
entidades "Autor" y "Libro" para indicar qué autor
escribió qué libro.
Relacion Atributo: Un atributo es una propiedad que define una
entidad; es un detalle específico que describe las
Entidad características de una entidad. Por ejemplo, algunos
atributos de la entidad "Libro" podrían ser "Título",
"ISBN", "Número de Páginas", etc.
Atributos
Ejemplo de Normalización
Tabla sin
normalizar

Tabla
normalizada
Pasos para normalizar una base de datos:
1. Identificar las dependencias funcionales
entre las columnas: Una dependencia
funcional es una relación entre dos columnas
de una tabla, en la que el valor de una
columna determina el valor de la otra
columna.
2. Aplicar las reglas de normalización: Hay
cinco formas de normalización, cada una con
sus propias reglas.
3. Repetir los pasos 1 y 2 hasta que la base de
datos esté en la forma normal deseada.
Integridad Referencial y Tipos de Datos
INTEGRIDAD REFERENCIAL TIPOS DE DATOS
Se mantiene la consistencia y precisión de los datos a
● Numero: Numeric, Int, Double, Decimal,
través de reglas de integridad referencial, que garantizan
que las relaciones entre las tablas se preserven. Smallint, Bigint,....
● Caracteres: char, varchar, text….
Tipos de relaciones: ● Verdadero/Falso: Boolean, Bool
- Uno a Uno (1:1): Ej: una persona solo puede tener un ● Fecha: Date, Datetime/Timestamp, Time,...
número de cédula ● Otros…
- Uno a Muchos (1: N): un padre puede tener muchos hijos,
pero cada hijo solo tiene ese padre

- Muchos a Muchos (N:N): un estudiante puede estar


matriculado en varias materias y cada materia puede tener Durante la selección del tipo de dato,
varios estudiantes matriculados
considere:
- Recursivas: un empleado puede tener a otro empleado como
su supervisor ● El tipo de datos que se almacenarán en la
columna
- Otras: Ternarias (N-arias), Herencia, Composición y ● Los requisitos de precisión
Agregación
● Los requisitos de rendimiento
● Los requisitos de almacenamiento
Llaves Primarias y Secundarias
Llave Primaria (PK) Llave Secundaria (FK)

Definición Es un tipo de restricción que se utiliza para identificar de Es una columna o conjunto de columnas en una tabla que
forma única cada fila en una tabla. Una llave primaria se utiliza para establecer y mantener una relación con otra
debe contener valores únicos y no puede contener tabla a través de su llave primaria. Esencialmente, es una
valores nulos. referencia a una llave primaria en otra tabla.

Propiedades Unicidad: Cada valor debe ser único. Referencia: Debe referenciar a una llave primaria
No Nulidad: No puede contener valores nulos. existente en otra tabla.
Integridad Referencial: Ayuda a mantener la integridad
referencial en la base de datos asegurando que las
relaciones entre las tablas permanezcan consistentes.

Uso Ayuda a mantener la integridad de la base de datos y Se utiliza para crear relaciones entre tablas y puede
facilita las operaciones de búsqueda y recuperación de facilitar operaciones como JOIN para combinar datos de
datos. diferentes tablas.

Ejemplo En una tabla de "Clientes", el "Número de Cédula" podría En una tabla de "Ordenes", podríamos tener una columna
ser la llave primaria porque cada estudiante tendría un "ID_Cliente" que sería una llave secundaria que referencia
número de identificación único. la llave primaria ("ID_Cliente") en una tabla "Clientes".
¿Qué desafíos crees
que debemos
enfrentar durante el
Discusión
diseño del modelo de
una BD?
Cómo empezar a diseñar una BD
1. Empiece con un diseño conceptual: Esto le ayudará a visualizar la
estructura general de la base de datos.
2. Divida los datos en tablas: Cada tabla debe representar un conjunto de
datos relacionados.
3. Especifique las claves primarias y las claves foráneas: Las claves
primarias identifican de forma única cada registro en una tabla, mientras que
las claves foráneas proporcionan una relación entre dos tablas.
4. Establezca las relaciones entre las tablas
5. Testee el diseño de la base de datos: Asegúrese de que el diseño satisface
los requisitos de los usuarios.
¿Durante el proceso
de selección de la
tecnología de BD,
Discusión
que suelo
preguntarme?
¿Cómo seleccionar la tecnología para una base de datos?
Algunas preguntas:
Costo
● ¿Qué tipo de datos se almacenarán en la base de datos?
● ¿Cuál es el tamaño esperado de la base de datos?
Tiempo
● ¿Qué tipo de rendimiento es necesario?
● ¿Qué nivel de seguridad es necesario?
● ¿Qué otros sistemas y aplicaciones necesitan acceder a Recursos
la base de datos?
● ¿Cuál es el presupuesto para la tecnología de base de Compatibilidad
datos?
● ¿Qué recursos humanos están disponibles para Escalabilidad
implementar y mantener la tecnología de base de datos?
KPIs
Diseño Físico de BD
Índices

Es el proceso de definir la estructura física de Los índices son estructuras de datos que se utilizan
los datos, incluyendo el almacenamiento, la para almacenar información sobre los datos
organización y el acceso a los datos. almacenados en una tabla. Los índices permiten al
sistema de gestión de bases de datos (SGBD)
encontrar los datos necesarios de forma más rápida
que si no hubiera índices.
Los índices y las particiones son dos técnicas
importantes de diseño físico que se utilizan para
mejorar el rendimiento de las consultas.
Particiones

Las particiones son un método para dividir los datos


de una tabla en varias partes más pequeñas. Las
particiones se pueden utilizar para mejorar el
rendimiento, la escalabilidad y la disponibilidad de
los datos.
Problemas y Soluciones con los Índices
PROBLEMAS BUENAS PRÁCTICAS

● Índices no utilizados: Pueden ralentizar el ● Crear índices en las columnas que se utilizan
rendimiento de las consultas. con frecuencia en las consultas.

● Índices obsoletos: Pueden provocar que las ● Crear índices en las columnas que se utilizan
consultas se ejecuten de forma incorrecta. para las operaciones de ordenación.

● Índices demasiado grandes: Pueden ocupar ● Evitar crear índices en columnas que se
demasiado espacio de almacenamiento y modifican con frecuencia. Los índices deben
ralentizar el rendimiento de las consultas. mantenerse actualizados para que sean eficaces.
Si una columna se modifica con frecuencia, el
● Índices demasiado pequeños: Pueden no ser
índice se puede volver obsoleto rápidamente.
eficaces para las consultas.
● Mantener actualizados los índices. Cuando se
modifican los datos de una tabla, se debe
actualizar el índice correspondiente.
¿Preguntas?

También podría gustarte