Está en la página 1de 63

5 Bases de Datos para Cómputo

en la Nube (Parte I)
Enero, 2018
Bases de Datos para Aplicaciones

Por: Dr. Gimer A. Cervera Evia


Introducción
• Las bases de datos es un método para el
almacenamiento estructurado e íntegro de los
datos.
• Sistema de Gestión de Bases de Datos, es un
sistema que se encarga de la administración
de las transacciones en una base de datos.
Definición
• Una base de datos (BD) es un conjunto de datos
interrelacionados almacenados en conjunto, sin
redundancias innecesarias, de forma
independiente de los programas que acceden a
ellos.

• Esta representación informática (o conjunto


estructurado de datos) debe poder ser utilizada
de forma compartida por muchos usuarios de
distintos tipos.
Evolución de las Bases de Datos

Años 50’s Años 70’s Años 90’s


Almacenamiento Bases de datos Lenguajes de consultas
en cintas magnéticas. Relacionales. SQL. Bases de datos en
Internet

50’s 60’s 70’s 80’s 90’s

Años 60’s Años 80’s


Almacenamiento en discos. Bases de datos
Bases de datos jerárquicas Orientadas a
y de red. Objetos.
Bases de Datos Actuales
El sistema gestor de BD
• El sistema gestor de BD (II) se utiliza para:
– Definir y crear datos
– manipular esos datos
– Proveer seguridad e integridad de los datos
– Recuperar los datos: lenguaje SQL
– Mantenimiento de un diccionario de datos
– Alto rendimiento: se debe asegurar que todas
estas funciones se ejecuten lo más rápidamente
posible.
Diferencia entre un archivo y una base
de datos.
Ejemplo de un archivo con datos de un estudiante:

Matrícula Nombre Edad Carrera Grupo Materia


1 Luis Pérez 18 IDAD 1B Base de Datos
1 Luis Pérez 18 IDAD 1B Algoritmos
1 Luis Pérez 18 IDAD 1B Matemáticas I
1 Luis Pérez 28IDAD 1B Diseño I
2 María Lara 19 IDAD 1B Base de Datos
2 María Lara 19 IDAD 1B Algoritmos
2 María Lara 20 IDAD 1B Matemáticas I
2 María Lara 19 IDAD 1B Diseño I
3 Victor Quijano 21IDAD 1B Base de Datos
3 Victor Quijano 21 IDAD 1B Algoritmos
3 Victor Quijano 21 IDAD 1B Matemáticas I
3 Victor Quijano 21 IDAD 1B Diseño I

¿Qué problemas tiene este archivo?


Diferencia entre un archivo y una base
de datos.
¡Datos concatenados!
Matrícula Nombre Edad Carrera Grupo Materia
1 Luis Pérez 18IDAD 1B Base de Datos
1 Luis Pérez 18IDAD 1B Algoritmos
1 Luis Pérez 18IDAD 1B Matemáticas I
1 Luis Pérez 28IDAD 1B Diseño I
2 María Lara 19IDAD 1B Base de Datos
2 María Lara 19IDAD 1B Algoritmos
2 María Lara 20IDAD 1B Matemáticas I
2 María Lara 19IDAD 1B Diseño I
3 Victor Quijano 21IDAD 1B Base de Datos
3 Victor Quijano 21IDAD 1B Algoritmos
3 Victor Quijano 21IDAD 1B Matemáticas I
3 Victor Quijano 21IDAD 1B Diseño I
Diferencia entre un archivo y una base
de datos.
Redundancia en la Información
Matrícula Nombre Apellido Edad Carrera Grupo Materia
1 Luis Pérez 18 IDAD 1B Base de Datos
1 Luis Pérez 18 IDAD 1B Algoritmos
1 Luis Pérez 18 IDAD 1B Matemáticas I
1 Luis Pérez 28 IDAD 1B Diseño I
2 María Lara 19 IDAD 1B Base de Datos
2 María Lara 19 IDAD 1B Algoritmos
2 María Lara 20 IDAD 1B Matemáticas I
2 María Lara 19 IDAD 1B Diseño I
3 Victor Quijano 21 IDAD 1B Base de Datos
3 Victor Quijano 21 IDAD 1B Algoritmos
3 Victor Quijano 21 IDAD 1B Matemáticas I
3 Victor Quijano 21 IDAD 1B Diseño I

¿Qué problemas tiene este archivo?


Diferencia entre un archivo y una base
de datos.
Validación de la Información!
Matrícula Nombre Apellido Edad Carrera Grupo Materia
1 Luis Pérez 18 IDAD 1B Base de Datos
1 Luis Pérez 18 IDAD 1B Algoritmos
1 Luis Pérez 18 IDAD 1B Matemáticas I
1 Luis Pérez 28 IDAD 1B Diseño I
2 María Lara 19 IDAD 1W Base de Datos
2 María Lara 19 IDAD 1W Algoritmos
2 María Lara 20 IDAD 1W Matemáticas I
2 María Lara 19 IDAD 1W Diseño I
3 Victor Qijano 21 IDAD 1B Base de Datos
3 Victor Qijano 21 IDAD 1B Algoritmos
3 Victor Quijano 21 IDAD 1B Matemáticas I
3 Victor Quijano 21 IDAD 1B Diseño I

¿Qué problemas tiene este archivo?


Diferencia entre un archivo y una base
de datos.
¡Inconsistencia en la información!
Matrícula Nombre Apellido Edad Carrera Grupo Materia
1 Luis Pérez 18 IDAD 1B Base de Datos
1 Luis Pérez 18 IDAD 1B Algoritmos
1 Luis Pérez 18 IDAD 1B Matemáticas I
1 Luis Pérez 28 IDAD 1B Diseño I
2 María Lara 19 IDAD 1B Base de Datos
2 María Lara 19 IDAD 1B Algoritmos
2 María Lara 20 IDAD 1B Matemáticas I
2 María Lara 19 IDAD 1B Diseño I
3 Victor Quijano 21 IDAD 1B Base de Datos
3 Victor Qijano 21 IDAD 1B Algoritmos
3 Victor Quijano 21 IDAD 1B Matemáticas I
3 Victor Quijano 21 IDAD 1B Diseño I

¿Qué problemas tiene este archivo?


Diferencia entre un archivo y una base
de datos.
¡Problemas de mantenimiento y actualización!
Matrícula Nombre Apellido Edad Carrera Grupo Materia
1 Luis Pérez 18 IDAD 1B Base de Datos
1 Luis Pérez 18 IDAD 1B Algoritmos I
1 Luis Pérez 18 IDAD 1B Matemáticas I
1 Luis Pérez 28 IDAD 1B Diseño II
2 María Lara 19 IDAD 1B Base de Datos
2 María Lara 19 IDAD 1B Algoritmos I
2 María Lara 20 IDAD 1B Matemáticas I
2 María Lara 19 IDAD 1B Diseño I
3 Victor Quijano 21 IDAD 1B Base de Datos
3 Victor Quijano 21 IDAD 1B Algoritmos
3 Victor Quijano 21 IDAD 1B Matemáticas I
3 Victor Quijano 21 IDAD 1B Diseño I

¿Qué problemas tiene este archivo?


Diferencia entre un archivo y una base
de datos.
¡Problemas de Acceso concurrente!
Matrícula Nombre Apellido Edad Carrera Grupo Materia
1 Luis Pérez 19 IDAD 1B Base de Datos
1 Luis Pérez 18 IDAD 1B Algoritmos I
1 Luis Pérez 18 IDAD 1B Matemáticas I
1 Luis Pérez 18 IDAD 1B Diseño II
2 María Lara 19 IDAD 1B Base de Datos
2 María Lara 19 IDAD 1B Algoritmos I
2 María Lara 20 IDAD 1B Matemáticas I
2 María Lara 19 IDAD 1B Diseño I
3 Victor Quijano 21 IDAD 1B Base de Datos
3 Victor Quijano 21 IDAD 1B Algoritmos I
3 Victor Quijano 21 IDAD 1B Matemáticas I
3 Victor Quijano 21 IDAD 1B Diseño I

¿Qué problemas tiene este archivo?


Diferencia entre un archivo y una base
de datos.
¡Problemas de Acceso local o en red.
Matrícula Nombre Apellido Edad Carrera Grupo Materia
1 Luis Pérez 19 IDAD 1B Base de Datos
1 Luis Pérez 18 IDAD 1B Algoritmos I
1 Luis Pérez 18 IDAD 1B Matemáticas I
1 Luis Pérez 18 IDAD 1B Diseño II
2 María Lara 19 IDAD 1B Base de Datos
2 María Lara 19 IDAD 1B Algoritmos I
2 María Lara 20 IDAD 1B Matemáticas I
2 María Lara 19 IDAD 1B Diseño I
3 Victor Quijano 21 IDAD 1B Base de Datos
3 Victor Quijano 21 IDAD 1B Algoritmos I
3 Victor Quijano 21 IDAD 1B Matemáticas I
3 Victor Quijano 21 IDAD 1B Diseño I

¿Qué problemas tiene este archivo?


Ejemplo: Tablas

¿Ventajas?

1. Escalabilidad
2. Mejor control de errores.
3. Reducción del tamaño de la información
4. Incremento en el rendimiento
Tipos de Bases de Datos
• Centralizada
Tipos de Bases de Datos
• Distribuida
Mirroring/Backup
Mirroring
• El concepto de Mirroring en base de datos, se
refiere a la acción de duplicar las acciones en
tiempo real que se realizan de una base de
datos principal a otra secundaria.
• El mirroring se hace sobre los datos y las
transacciones para conservar un historial.
• La base de datos secundaria está diseñada
para tener acceso en caso de algún fallo en la
base de datos principal.
Backup/Respaldo
• La base de datos de backup o de respaldo,
almacena la información de una base de datos
primaria para tener una copia en caso de fallas
en la BD principal.
• El respaldo puede ser asíncrono y no siempre
se almacenan las transacciones.
Mirroring Process
Balanceo de Cargas

En el balanceo de cargas, el cliente tiene acceso a más de una BD para


obtener toda la información. Esto previene que múltiples usuarios
accedan al mismo tiempo a una sola base de datos.
El modelo entidad-relación
• Se usa para diseñar la BD

• La mayoría de BD actuales son de tecnología


relacional. Conceptos base:
– Entidades (y atributos y elementos)
– Relación entre las entidades.
Entidades
• Las entidades son los objetos que aparece en
la vida real. Por ejemplo: Personas, alumnos,
empleados, aviones, coches, etc.
• Una entidad da lugar a una
– Tabla en la BD.

Entidad
Atributos
• Estas entidades están compuestas por varios
atributos que vienen a ser sus propiedades.
• Por ejemplo, la entidad alumnos, tendrá los
atributos nombre, nacionalidad, fecha de
nacimiento, etc.
• Los atributos también reciben el nombre de
columnas en la terminología de BD
Atributo
Elementos o Tuplas
• Cada entidad tendrá un número ilimitado de
elementos o tuplas. Por ejemplo, un elemento de la
entidad alumnos será un alumno en sí; así el alumno
Pepe será un elemento, José será otro, etc.

• Cada uno de esos elementos también recibe el


nombre de fila en la terminología de BD.

Fila o Tupla
Tablas
• Combinando estos tres conceptos: Entidades,
atributos (o columnas) y filas (o tuplas) tenemos una
estructura del tipo tabla, la base de las BD.

Filas

Columnas
Relaciones
• Las entidades no están aisladas sino que están
relacionadas entre sí.
• Esta relación se establece usando un identificador
único en cada tabla (llave primaria).
• Estas relaciones pueden ser de tres tipos
diferentes:
– 1a1
– 1 a muchos (1 a N)
– Muchos a muchos (M a N)
Llave Primaria (Primary Key - Pk)

Pk

1. La llave primaria es un identificador único para


cada elemento.
2. Puede ser la combinación de dos o más campos (llave
compuesta).
3. Un campo que recibe una llave primaria de otra
tabla se llama llave foránea (foreign key - Fk)
4. Una llave foranea puede ser la llave primaria de
la misma tabla, es decir un elemento se puede
relacionar con otro de la misma tabla.
Llave Foránea (Primary Key - Pk)

Llave Compuesta

Llave Foránea en Grupos


Relaciones
• Las entidades no están aisladas sino que están
relacionadas entre sí.
• Estas relaciones pueden ser de tres tipos
diferentes:
–1a1
– 1 a muchos (1 a N)
– Muchos a muchos (M a N)
Representación del Modelo
• Modelo 1 a 1
1 1
Entidad A Entidad B

• Ejemplo:

1 1
Alumno NoCelular

Se utiliza para establecer que tipo de relación existe entre las entidades.
Representación del Modelo
• Modelo 1 a 1
1 1
Alumno NoCelular
Tiene un

1 1
Persona Persona
Está casada con otra

Se utiliza para establecer que tipo de relación existe entre las entidades.
Representación del Modelo

1 1
Persona Persona
Está casada con otra
Representación del Modelo
• Modelo 1 a N (1 a muchos)
1 1
Entidad A Entidad B

• Ejemplo:

1 N
Carrera Alumno

tiene muchos
Representación del Modelo
• Modelo M a N (muchos a muchos)
M N
Entidad A Entidad B

• Ejemplo:

M N
Profesor Asignaturas

Muchos profesores
están asociados a muchas
Ejercicio 1
• Hacer un modelo Entidad-Relación para la
siguiente situación: tenemos una universidad,
en la que se ofrecen cursos optativos. Cada
curso está dirigido por un profesor, el cual
puede dirigir varios cursos. Un alumno se
puede matricular a un solo curso optativo.
Solución

1 N
Profesor Curso
1

N
Alumno

Modelo Entidad - Relación


Solución
Tablas 1 N
Profesor Curso
1

N
Alumno

Modelo Entidad - Relación


Ejercicio 2
• Compliquemos un poco la situación anterior:
– ahora supongamos que un curso está compuesto
por varias asignaturas. Cada una de ellas tiene un
número de créditos. Los alumnos se matriculan de
las asignaturas que quieren. Por último el alumno
recibe una calificación para cada asignatura, al
final del curso.
Solución (Parte I)

1 N
Profesor Curso
1

N
M N
Alumno Asignaturas

¿Calificaciones?
Solución Ejercicio 2- Final

1 N
Profesor Curso
1

N
M N
Alumno Asignaturas

Existe una nota por cada relación


Nota entre alumno y asignatura.
Normalización
• Para que un modelo sea correcto se debe de
cumplir con un conjunto de reglas que llamamos
reglas de normalización.

• El proceso de normalización de bases de datos


consiste en aplicar una serie de reglas a las
relaciones obtenidas tras el paso del modelo
entidad-relación al modelo relacional.

• Los ejemplos anteriores muestran el modelo


entidad-relación. Sin embargo las tablas no
necesariamente están normalizadas.
1FN – Primera Forma Normal
• 1FN: Una base de datos cumple la 1FR si todas
las tablas contienen solo valores atómicos, es
decir un único valor.
• Ejemplo, alumnos matriculados con sus
asignaturas y calificaciones.
• Esta tabla no cumple con la primera forma
normal:
1FN – Primera Forma Normal
• Se tienen que hacer asociaciones. La clave
será la asignatura y la matrícula del alumno.
Ejemplo: ¿Cumple la 1FN?

1. ¿Qué sucede si se necesita agregar un tercer proveedor?


2. ¿Qué sucede si un proveedor entrega más de un producto?
Ejemplo: ¿Cumple la 1FN?

1. ¿Qué sucede si se necesita agregar un tercer proveedor?


2. ¿Qué sucede si un proveedor entrega más de un producto?
Ejemplo: ¿Cumple la 1FN?
• Supongamos que un producto es entregado
exclusivamente por un proveedor, entonces:
Ejemplo: ¿Cumple la 1FN?
• Supongamos que un producto puede ser
entregado por más de un proveedor:
2FN – Segunda Forma Normal
• Todos los atributos que no forman parte de la
llave principal (simple o compuesta) deben
depender de ella en su totalidad y no de un
subconjunto de ella.

¡No cumple la 2FN!


2FN – Segunda Forma Normal
• En este ejemplo el atributo Nombre depende
solamente de la Matrícula. En este caso, se
debe de eliminar el atributo nombre de la
tabla.

¡No cumple la 2FN!


2FN – Segunda Forma Normal

¡Si Cumplen la 2FN!


3FN – Tercera Forma Normal
• Todos los atributos que forman parte de la
tabla deben de ser independientes entre sí.

¡No cumple la 3FN!


3FN – Tercera Forma Normal
• En el ejemplo el atributo Estatus depende del
atributo Calificación. Este campo puede ser
calculado fácilmente a partir de otro campo.
• Es redundante tenerlo en la tabla.

¡SI cumple la 3FN!


Ejercicio
• Se tiene el siguiente escenario. En un hospital se tienen
médicos que pueden tener más de una especialidad y
atender a más de un paciente. Cada doctor está asociado
a una o más áreas en el hospital. Los pacientes pueden
ser atendidos por más de un doctor. La información que
se tiene es la siguiente:
Paso 1.
• Vamos a eliminar los atributos que sean redundantes y
se puedan calcular.
• Edad y NoEspecialidades pueden ser calculados a partir
de otros atributos.
Paso 2.
• Vamos a separar aquellos atributos que no dependen
de la llave primaria en su totalidad (Área y IdDoctor).
• Esto para cumplir con la 2FN. Tabla: AreaDoctor
Paso 3.
• Demos crear una tabla solo con información de los
doctores para comenzar a eliminar los campos que
no son atómicos (i.e., 1FN).
Tabla: Doctores
Paso 4.
• Esta tabla no contiene información atómica, se
necesita separar a los pacientes y considerar que se
pueden agregar más especialidades.
• Vamos a crear una tabla de pacientes y otra de
especialidades.
Paso 5.
• Creamos una tabla de Pacientes y otra de
Especialidades.
• Necesitamos establecer dos tablas más:
– DoctorPaciente
– DoctorEspecialidad.

Tabla: Especialidades

Tabla: Pacientes
Paso 6.
• Relación entre pacientes y Doctores.
Tabla: DoctorPaciente

Tabla: Pacientes
Paso 7
• Establecemos la relación entre Doctores y sus
especialidades.
Tabla: DoctorEspecialidad

Tabla: Especialidades
Solución: Tablas
Tabla: Doctores Tabla: Pacientes

Tabla: Especialidades

Tabla: DoctorPaciente

Tabla: DoctorEspecialidad Tabla: AreaDoctor

También podría gustarte