Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ANALISTA
DE DATOS
Autor de contenido
John Freddy Parra Peña
Autor de contenido
EMPEZAR
Tabla de
Contenido
Presentación
Recursos de video
2
Presentación
Objetivo general
Capacitar a los estudiantes en las diferentes partes del proceso de análisis de
datos, iniciando desde la preparación y la limpieza de estos hasta la presenta-
ción de informes resultantes del procesamiento y representación de los datos.
Objetivo específico
- Presentar al estudiante las herramientas de uso común que pueden ser
utilizadas para el procesamiento y análisis de los datos.
- Capacitar al estudiante en las técnicas para obtener y preparar los datos
que van a ser analizados posteriormente
- Enseñar al estudiante a usar las herramientas para procesar y presentar
los datos de forma visual, extrayéndoles valor
- Enseñar técnicas de aprendizaje automático para que estén en capaci-
dad de predecir escenarios futuros a partir de información pasada y ac-
tual.
3
Mapa de contenido de la unidad
IMAGEN
Módulo 5
Fundamentos de
bases de datos
Ideas clave
Las bases de datos constituyen la persistencia de los sistemas de información, por esta
razón resultan siendo el centro de dichos sistemas, dentro de las responsabilidades
de los sistemas gestores de bases de datos se encuentra la de velar por la integridad
de los datos. En la actualidad existen muchos modelos de bases de datos, pero para
efectos de este curso, el estudio se centrará en las bases de datos relacionales, que son
actualmente las más usadas para gestionar lo referente a la información estructurada.
4
5.1. Fundamentos de diseño de bases de datos
El modelo E-R planteado por Peter Chen parte de la división del objeto de estudio en
una serie de entidades de las que se desea almacenar información, entidades que inte-
ractúan entre ellas. Por ejemplo, si se quiere modelar la información de un colegio, las
entidades serían: estudiantes, cursos, docentes, salones, entre otras.
Una vez determinada la lista de entidades relevantes, se procede a identificar cada uno
de los atributos de esa entidad, para el caso de un estudiante, esas características po-
drían ser: nombre, apellido, documento, entre otras. En el modelo una entidad con sus
atributos se representa así:
5
Existen dos tipos de entidades, las entidades fuertes, que son las que ya se presenta-
ron y las débiles, que son entidades que no tienen significado por sí solas, sino que su
significado depende de otras entidades., estas se representan así:
Los atributos que tiene una entidad pueden tener varios tipos, siendo estos:
• Atributos simples: son atributos normales, que solo aparecen una vez y no se pue-
den dividir
• •Atributos compuestos: son atributos que se pueden dividir, por ejemplo, docu-
mento, el cual se podría dividir en tipo y número
6
• Atributos multivaluados: puede tener varias ocurrencias dentro de una entidad,
por ejemplo, los productos vendidos en una factura.
7
Acompañando a las entidades aparecen las relaciones, que son las encargadas de vin-
cular a las entidades con otras. Una relación se lee de una forma similar a cuando un
estudiante cursa una o más asignaturas.
Las relaciones se representan así:
8
Completando el diagrama, el resultado sería de la siguiente forma:
5.1.2. Normalización
La normalización consiste en aplicar una serie de reglas que organicen el modelo y evi-
ten las redundancias, a continuación, se presentan las primeras 3 formas normales.
Esta primera forma se basa en 4 reglas, en caso de que no se cumplan, se deben hacer
modificaciones al modelo.
9
5.1.2.2. Segunda Forma Normal
Para la segunda forma normal se valida si existen llaves primarias compuestas, es decir
que la llave esté integrada por más de un atributo., en caso de que dichas llaves com-
puestas no existan, automáticamente se cumple la segunda forma normal, en caso de
que si existan se debe validar que todos los demás atributos dependen de toda la llave
y no de solo una parte de ellas. Para el caso del ejemplo, como no hay llaves compues-
tas, el modelo está automáticamente en segunda forma normal
El modelo una vez pasa por esta forma normal quedaría así:
10
5.1.2.4. No relaciones muchos a muchos
Es importante tener en cuenta que, por restricciones del modelo, las relaciones mu-
chos a muchos no son posibles, dado que se crearía una dependencia circular entre las
dos entidades, es decir que ambas dependen mutuamente.
Por esta razón estas relaciones se rompen creando una entidad que generalmente es
débil, con relaciones a las dos entidades originales con cardinalidades muchos a uno.
11
5.1.3. Modelo relacional
En el modelo relacional las entidades pasan a ser unas cajas, donde internamente se
agregan filas por cada uno de los atributos, así:
Esta notación generalmente tiene variaciones dependiendo del editor usado, en este
caso se usó el editor mysql workbench.
• Nombre de la entidad
• Nombre y tipo de los atributos
• Si el atributo es opcional u obligatorio (rombo azul obligatorio, rombo blanco op-
cional)
• Si el atributo es identificador (aparece con una llave como ícono)
•
Para las relaciones el modelo incluye las llaves foráneas, que son simplemente invoca-
ciones de las llaves primarias de otras tablas, para esto se debe crear un atributo en la
tabla que está en el lado muchos de la relación que coincida en tipo con el atributo de
la llave primaria de otra tabla.
Por ejemplo, para la entidad inscripción se adicionan los atributos que corresponden a
las llaves tanto de estudiante como de asignatura.
12
La relación se representa como una línea que une a una entidad con otra, la finaliza-
ción de esta línea indicará la cardinalidad así:
Si la línea fuese continua se indicaría que la llave primaria de la tabla del lado muchos
incluiría a la llave primaria del lado 1.
13
Este modelo, construido en una herramienta case, permite generar el código SQL
necesario para construir l base de datos. Por ejemplo, en mysql workbench se pue-
de generar el siguiente código
14
-- -----------------------------------------------------
-- Table `mydb`.`Estudiante`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Estudiante` (
`id` INT NOT NULL,
`nombre` VARCHAR(45) NOT NULL,
`apellido` VARCHAR(45) NULL,
`numero` VARCHAR(45) NOT NULL,
`Tipo_documento_id` INT NOT NULL,
PRIMARY KEY (`id`),
INDEX `fk_Estudiante_Tipo_documento1_idx` (`Tipo_documento_id` ASC) VISI-
BLE,
CONSTRAINT `fk_Estudiante_Tipo_documento1`
FOREIGN KEY (`Tipo_documento_id`)
REFERENCES `mydb`.`Tipo_documento` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`Asignatura`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Asignatura` (
`codigo` INT NOT NULL,
`Nombre` VARCHAR(45) NULL,
PRIMARY KEY (`codigo`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`Inscripcion`
-- -----------------------------------------------------
15
CREATE TABLE IF NOT EXISTS `mydb`.`Inscripcion` (
`id` INT NOT NULL,
`Estudiante_id` INT NOT NULL,
`Asignatura_codigo` INT NOT NULL,
PRIMARY KEY (`id`),
INDEX `fk_Inscripcion_Estudiante_idx` (`Estudiante_id` ASC) VISIBLE,
INDEX `fk_Inscripcion_Asignatura1_idx` (`Asignatura_codigo` ASC) VISIBLE,
CONSTRAINT `fk_Inscripcion_Estudiante`
FOREIGN KEY (`Estudiante_id`)
REFERENCES `mydb`.`Estudiante` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Inscripcion_Asignatura1`
FOREIGN KEY (`Asignatura_codigo`)
REFERENCES `mydb`.`Asignatura` (`codigo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`Tema`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Tema` (
`id` INT NOT NULL,
`nombre` VARCHAR(45) NOT NULL,
`Asignatura_codigo` INT NOT NULL,
PRIMARY KEY (`id`),
INDEX `fk_Tema_Asignatura1_idx` (`Asignatura_codigo` ASC) VISIBLE,
16
CONSTRAINT `fk_Tema_Asignatura1`
FOREIGN KEY (`Asignatura_codigo`)
REFERENCES `mydb`.`Asignatura` (`codigo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
El detalle de este código generado se abordará en el siguiente tema.
5.2.1. DDL
5.2.2. CREATE
Tablas
CREATE TABLE nombreTabla (atributo1 tipo opciones, atributo1 tipo opciones, atri-
buto1 tipo opciones);
Por ejemplo, para crear una tabla estudiante como la del modelo del tema ante-
rior, se puede hacer así:
CREATE TABLE Estudiante (
id INT NOT NULL PRIMARY KEY,
17
nombre VARCHAR(45) NOT NULL,
apellido VARCHAR(45) NULL,
numero VARCHAR(45) NOT NULL,
Tipo_documento_id INT NOT NULL)
Nota: el modificador NOT NULL hace que el atributo sea obligatorio, el modificador
primary key fija a una columna como identificador.
Nota: los tipos de datos pueden variar dependiendo del motor de bases de datos, estos
tipos aplican para Mysql y MariaDB entre otros.
5.2.3. ALTER
La modificación de objetos se hace usando la sentencia ALTER, seguida del tipo de ob-
jeto a modificar y el nombre del objeto, después se especifica que va a cambiar,
Por ejemplo, para modificar una tabla adicionando una llave foránea, esto se hace
usando la sentencia ALTER de esta forma:
FOREIGN KEY(estudiante_id)
REFERENCES estudiante(id);
5.2.4. DROP
La sentencia se encarga de borrar los objetos de las bases de datos, solo se requiere el
tipo de objeto y el nombre, por ejemplo, para borrar la tabla estudiante, la sintaxis sería:
18
5.3. DML
5.3. DML
Con la sentencia INSERT, se pueden adicionar registros a las tablas de las bases de da-
tos, su sintaxis consiste en indicar a qué tabla se le va a hacer la inserción, luego entre
paréntesis listar los campos de la tabla, después se ubica la palabra VALUES seguida de
los valores encerrados entre paréntesis.
5.3.2. UPDATE
La sentencia UPDATE permite actualizar los datos de una tabla, la sintaxis es la siguien-
te:
5.3. DML
Para borrar datos de las bases de datos se usa esta sentencia, acompañada de la tabla
a la cual se le van a borrar los datos, así:
19
NOTA: importante, si no se especifica condición se borrarán todos los datos
5.3.4. SELECT
Esta es la sentencia que permite consultar los datos de una o más tablas en la base de
datos, la sintaxis puede resultar siendo la más compleja de las que se han visto hasta
ahora, dado que tiene varias cláusulas, las cuales se presentan a continuación.
Por ejemplo, se quieren listar todas las asignaturas que tienen los estudiantes, para ello
se haría
from estudiante,asignatura,inscripcion
20
Otros materiales para profundizar
Material complementario
Silberschatz, Abraham., Korth, H. F., & Sudarshan, S. (2002). Database system con-
cepts. McGraw-Hill.
21
21