Este documento resume las bases de datos masivas y conceptos relacionados. Explica que el corte 1 representa el 35% de la calificación y se compone de un proyecto integrador, un parcial y trabajos en clase. También describe las características de bases de datos SQL y NoSQL, y conceptos avanzados de SQL como vistas, índices, particionamiento, funciones, procedimientos almacenados y disparadores.
4. BASES DE DATOS
Característica Base de datos SQL Base de datos NoSQL
Desempeño (performance) Bajo Alto
Availability (disponibilidad) Pobre Buena
Fiabilidad (reliability) Buena Pobre
Consistencia (consistency) Buena Pobre
Almacenamiento (data
storage)
Tamaño medio Optimizado para grandes datos
Escalabilidad (scalability) Alta pero cara Alta
5. SQL AVANZADO
Vistas:
Tabla virtual generada a partir de la ejecución de varias consultas sobre una o más
tablas. Una vista tiene la misma estructura de filas y columnas que cualquier otra
tabla MySQL, se almacenan del mismo modo y no es posible que existan dos con el
mismo nombre.
CREATE [OR REPLACE] VIEW nombre_vista [lista_columnas] AS consulta
6. SQL AVANZADO
Índices:
Son punteros a una fila de una determinada tabla de nuestra base de
datos.
• Permiten localizar y devolver registros de una forma sencilla y rápida. Son
especialmente útiles cuando se quiere buscar elementos de entre los
millones y hasta billones de registros que puede contener una tabla.
• OJO: La creación de índices implica un aumento en el tiempo de ejecución
sobre aquellas consultas de inserción, actualización y eliminación. Del
mismo modo, los índices necesitan un espacio para almacenarse, por lo que
también tienen un coste adicional en forma de espacio en disco.
8. SQL AVANZADO
Índices para que se usan:
• Encontrar las filas que cumplen la condición WHERE de la consulta cuyas
columnas estén indexadas.
• Recuperar las filas de otras tablas cuando se emplean operaciones de tipo JOIN.
• Disminuir el tiempo de ejecución de las consultas con ordenación o
agrupamiento si todas las columnas presentes en los criterios forman parte de
un índice.
• Si la consulta emplea una condición simple cuya columna de la condición está
indexada, las filas serán recuperadas directamente a partir del índice, sin pasar a
consular la tabla.
9. SQL AVANZADO
¿Qué tipos de índices hay?
• INDEX (NON-UNIQUE): Índice normal, no único. Esto implica que admite valores
duplicados para la columna (o columnas) que componen el índice. No aplica
ninguna restricción especial a los datos de la columna (o columnas) que
componen el índice sino que se emplea simplemente para mejorar el tiempo de
ejecución de las consultas.
CREATE INDEX T_IE1 ON T (B);
CREATE INDEX T_IE1 ON T (B);
CREATE INDEX T_IE1 ON T (B);
10. SQL AVANZADO
¿Qué tipos de índices hay?
• UNIQUE: Se refiere a un índice en el que todas las columnas deben tener un valor
único. Esto implica que no admite valores duplicados para la columna (o
columnas) que componen el índice.
CREATE UNIQUE INDEX index_name
ON table_name(column_1,column_2);
11. SQL AVANZADO
¿Qué tipos de índices hay?
• PRIMARY: este tipo de índice se refiere a un índice en el que todas las columnas deben
tener un valor único (al igual que en el caso del índice UNIQUE) pero con la limitación de
que sólo puede existir un índice PRIMARY en cada una de las tablas.
ALTER TABLE table_name
ADD PRIMARY KEY(column_list);
CREATE TABLE roles(
role_id INT AUTO_INCREMENT,
role_name VARCHAR(50),
PRIMARY KEY(role_id) );
12. SQL AVANZADO
¿Qué tipos de índices hay?
• FULLTEXT: estos índices se emplean para realizar búsquedas sobre texto (CHAR,
VARCHAR y TEXT). Estos índices se componen por todas las palabras que están
contenidas en la columna (o columnas) que contienen el índice. Este tipo de
índices sólo están soportados por InnoDB y MyISAM en MySQL 5.7.
CREATE FULLTEXT INDEX idx ON opening_lines(opening_line);
13. SQL AVANZADO
Particionamiento
Particionar es el proceso donde tablas muy grandes son divididas en múltiples partes más
pequeñas. Al separar una tabla grande en tablas individuales más pequeñas, las consultas
que acceden sólo a una fracción de los datos pueden correr más rápido porque hay menos
datos que escanear.
14. SQL AVANZADO
Particionamiento
• Mejorar la escalabilidad.
• Mejorar el rendimiento. Las operaciones de acceso a datos en cada partición se realizan en un volumen de datos
menor. Si se realiza correctamente, la creación de particiones puede aumentar la eficiencia del sistema.
• Mejorar la seguridad. En algunos casos, puede separar los datos confidenciales y no confidenciales en particiones
distintas y aplicar controles de seguridad distintos a los primeros.
• Proporcionan flexibilidad operativa. La creación de particiones ofrece muchas oportunidades para ajustar con precisión
las operaciones, maximizar la eficacia administrativa y minimizar los costes.
• Adaptación del almacén de datos al patrón de uso.
• Mejorar la disponibilidad.
16. SQL AVANZADO
Diseño de Particionamiento
• Particiones horizontales: En esta estrategia, cada partición es un almacén de datos independiente, pero todas
las particiones tienen el mismo esquema.
17. SQL AVANZADO
Diseño de Particionamiento
• Particiones verticales. En esta estrategia, cada partición contiene un subconjunto de los campos de elementos del almacén
de datos. Los campos se dividen según su patrón de uso.
18. SQL AVANZADO
Diseño de Particionamiento
• Creación de particiones funcional. En esta estrategia, los datos se agregan en función de cómo los usa cada contexto limitado
en el sistema. Por ejemplo, un sistema de comercio electrónico puede almacenar los datos de facturas en una partición y los
del inventario de productos en otra.
19. SQL AVANZADO
Tipos de Particionamiento Horizontal
• RANGE: Este tipo de partición asigna filas a particiones en función de los valores de columna que se encuentran
dentro de un rango establecido.
20. SQL AVANZADO
Tipos de Particionamiento Horizontal
• HAST: Para definir este tipo de particionado, deberemos de indicarle una columna del tipo integer o una
función de usuario que devuelva un integer. En este caso, se ejecutará una función sobre un determinado
campo que devolverá un valor entero. Según el valor, MySql insertará el registro en una partición distinta.
21. SQL AVANZADO
Tipos de Particionamiento Horizontal
• LIST: Se realiza según una lista de valores definida sobre una determinada columna de la tabla o expresión. Es
decir, se indica el numero de particiones a crear, y para cada partición, la lista de valores que serán la condición
para insertar en ella, de forma que cuando un registro que se va a introducir en la base de datos tenga un valor
incluido en la lista de valores, el registro se insertara en dicha partición.
22. SQL AVANZADO
Tipos de Particionamiento Horizontal
• KEY:. similar al HASH, pero la función para el particionado la proporciona MySql automáticamente (con la
función MD5). Se pueden indicar los campos para el particionado, pero siempre han de ser de la clave primaria
de la tabla o de un índice único.
23. SQL AVANZADO
Funciones
Es una rutina creada para tomar unos parámetros, procesarlos y
retornar en un salida. Se diferencian de los procedimientos en las
siguientes características:
• Solamente pueden tener parámetros de entrada IN y no parámetros
de salida OUT o INOUT
• Deben retornar en un valor con algún tipo de dato definido
• Pueden usarse en el contexto de una sentencia SQL
• Solo retornan un valor individual, no un conjunto de registros.
25. SQL AVANZADO
Funciones
Un procedimiento o función se considera “determinista” si siempre
produce el mismo resultado para los mismos parámetros de
entrada, y “no determinista” en cualquier otro caso. Si no se da ni
DETERMINISTIC ni NOT DETERMINISTIC por defecto es NOT
DETERMINISTIC.
26. SQL AVANZADO
Procedimientos Almacenados
Conjunto de comandos que pueden ser ejecutados directamente en el servidor, es decir,
será ejecutado por el servidor de Base de Datos y no por el programa cliente que lo
accede, permitiendo la ejecución de una acción o conjunto de acciones especificas.
Para poder crear un procedimiento almacenado es necesario que tengas
permisos INSERT y DELETE sobre la base de datos.
27. SQL AVANZADO
Procedimientos Almacenados
IN: Es el tipo de parámetro que se usa por defecto. La aplicación o código que invoque al
procedimiento tendrá que pasar un argumento para este parámetro.
OUT: El valor de este parámetros pude ser cambiado en el procedimiento, y además su
valor modificado será enviado de vuelta al código o programa que invoca el
procedimiento.
INOUT: Es una mezcla de los dos conceptos anteriores. La aplicación o código que invoca
al procedimiento puede pasarle un valor a éste, devolviendo el valor modificado al
terminar la ejecución. En caso de resultarte confuso, echa un ojo al ejemplo que verás
más adelante.
33. SQL AVANZADO
Disparadores (Triggers)
• Serie de reglas predefinidas que se asocian a una tabla. Se aplican cuando
se realizan determinadas operaciones en una tabla, ejemplo, al insertar,
actualizar o eliminar registros.
• Su principal función es contribuir a mejorar la gestión de la base de datos.
Ya que se pueden realizar operaciones de forma automática.
• Útiles para aumentar la seguridad e integridad de la información debido a
la programación de restricciones o requerimientos de verificación que
permiten minimizar los errores y sincronizar la información.
35. SQL AVANZADO
Disparadores (Triggers)
• Sintaxis de CREATE TRIGGER
nombre_tabla: Tabla a la que se asocia. Esta debe ser una tabla permanente.
momento_disp: Acción disparadora. BEFORE (antes) o AFTER (después), para
indicar que se ejecute antes o después que la sentencia que lo activa.
evento_disp : Sentencia que activa al disparador. INSERT, UPDATE, o DELETE.
36. SQL AVANZADO
Disparadores (Triggers)
• Sintaxis de CREATE TRIGGER
• No puede haber dos disparadores en una misma tabla que correspondan al mismo
momento y sentencia.
• sentencia_disp : Sentencia que se ejecuta cuando se activa el disparador. Si se desean
ejecutar múltiples sentencias, deben ir entre BEGIN - END.
• Las columnas de la tabla asociadas pueden referenciarse empleando los alias OLD y NEW.
OLD.nombre_col hace referencia a la columna antes de ser actualizada o borrada.
NEW.nombre_col hace referencia a una columna en una nueva fila a punto de ser insertada,
o en una fila existente luego de que fue actualizada.
38. SQL AVANZADO
Disparadores (Triggers)
MOMENTO EVENTO TOMA DE DATOS TIPS
BEFORE INSERT New.campo: campo nuevo
AFTER INSERT New.campo: campo nuevo No se puede trabajar sobre la misma tabla
BEFORE UPDATE New.campo: campo nuevo
old.campo: campo viejo
AFTER UPDATE New.campo: campo nuevo
old.campo: campo viejo
No se puede trabajar sobre la misma tabla
BEFORE DELETE old.campo: campo viejo
AFTER DELETE old.campo: campo viejo
39. Dirección estratégica
Es una disciplina que integra las distintas estrategias y
tácticas empresariales, analiza decisiones tomadas y
observa sus consecuencias o efectos durante un
periodo de tiempo, aparte de su pretensión de
alcanzar objetivos empresariales a largo plazo.
Es decir, precisa el camino que debería seguir la
compañía para el logro de objetivos. Esto implica una
revisión periódica de las metas trazadas versus los
cambios de la empresa a nivel local, nacional o
internacional, además de realizar los ajustes
necesarios para cumplir con los objetivos trazados.
40. Dirección estratégica
¿Por qué es necesaria?
• La orientación a la alta gerencia.
• La gestión integral.
• El aumento de la competitividad.
• El aseguramiento una planificación estratégica.
• La aplicación y manejo del ciclo PHVA (planear, hacer, verificar y actuar).
• El establecimiento del Cuadro de Mando Integral o CMI (Balanced
ScoreCard o, BSC).
• La implantación de indicadores de gestión y proceso
41. Datos, Información y Conocimiento
• Los datos son elementos sin procesar,
sacados de la realidad que a su vez genera
nuevos elementos y que por sí solos no
generan nuevo conocimiento.
• La información es el principio del
conocimiento. Son datos con un significado o
función especial o el resultado de combinar
diferentes datos, es decir, son datos con
contexto.
• El conocimiento es la información analizada
que hace nuevos aportes a un área específica.
42. Inteligencia de Negocios
• El business intelligence o inteligencia de
negocios, es un proceso de intercambio
para explorar y analizar información
estructurada de la empresa o sobre una
determinada área, para descubrir
tendencias o patrones, a partir de los
cuales derivar ideas y extraer
conocimiento para el mejoramiento de la
empresa.
44. Inteligencia de Negocios
• Procesos ETL: consisten en la extracción, transformación y carga de los datos en el
data warehouse. Antes de guardarlos ahí, deben ser transformados, limpiados,
filtrados y redefinidos. Como se mencionó anteriormente, la información que
tienen las empresas en los sistemas transaccionales no está preparada para la
toma de decisiones.
• Data warehouse: también llamado almacén de datos, con el metadata o
diccionario de datos. Se busca almacenar los datos de una forma que facilite y
maximice su flexibilidad, facilidad de acceso y administración. Surge como
respuesta a las necesidades de los usuarios que necesitan información
consistente, integrada, histórica y preparada para ser analizada y apoyar la toma
de decisiones.
45. Inteligencia de Negocios
• Herramientas OLAP: para proveer la capacidad de cálculo, consultas,
funciones de planeamiento, pronóstico y análisis de escenarios en grandes
volúmenes de datos. En la actualidad existen otras alternativas tecnológicas
al OLAP. Siguiendo el modelo se deben analizar las tecnologías que
permitirán tratar y visualizar la información que reside en un data
warehouse. En este apartado también se tratarán las herramientas de
visualización, ya que en muchas ocasiones van ligadas. .
48. BODEGAS DE DATOS (DATAWAREHOUSE)
Ciclo de Vida (Metodología Kimball)
49. BODEGAS DE DATOS (DATAWAREHOUSE)
Ciclo de Vida (Metodología Kimball)
Este ciclo de vida del proyecto de DW, está basado en cuatro principios básicos:
• Centrarse en el negocio: Hay que concentrarse en la identificación de los
requerimientos del negocio y su valor asociado, y usar estos esfuerzos para desarrollar
relaciones sólidas con el negocio, mejorando el análisis del mismo y la competencia.
• Construir una infraestructura de información adecuada: Diseñar una base de
información única, integrada, fácil de usar, de alto rendimiento donde se reflejará la
amplia gama de requerimientos de negocio identificados en la empresa.
50. BODEGAS DE DATOS (DATAWAREHOUSE)
Este ciclo de vida del proyecto de DW, está basado en cuatro principios básicos:
• Realizar entregas en incrementos significativos: Crear el almacén de datos (DW) en
incrementos entregables en plazos de 6 a 12 meses. Hay que usa el valor de negocio de
cada elemento identificado para determinar el orden de aplicación de los incrementos.
• Ofrecer la solución completa: proporcionar todos los elementos necesarios para
entregar valor a los usuarios de negocios. También se deberá entregar herramientas de
consulta ad hoc, aplicaciones para informes y análisis avanzado, capacitación, soporte,
sitio web y documentación.
51. BODEGAS DE DATOS (DATAWAREHOUSE)
Conocido también como el almacén de datos, se busca almacenar datos de forma que
facilite y maximice su flexibilidad, facilidad de acceso y administración. Surge como
respuesta a las necesidades de los usuarios que necesitan información consistente,
integrada, histórica y preparada para ser analizada y poder tomar decisiones.
52. BODEGAS DE DATOS (DATAWAREHOUSE)
Características
• Orientado a un área: significa que cada parte de la bodega de datos está
construida para resolver un problema de negocio, que ha sido definido por
quienes toman las decisiones. Por ejemplo, entender los hábitos de compra de los
adolescentes, analizar la calidad de los productos, analizar la productividad de
una línea de producción.
• Integrado: la información debe ser convertida en medidas comunes, códigos
comunes y formatos comunes para que pueda ser útil. La integración permite a
las organizaciones implementar la estandarización de conceptos, por ejemplo: la
moneda, las fechas, etc.
53. BODEGAS DE DATOS (DATAWAREHOUSE)
Características
• Indexado en el tiempo: Significa que la información histórica se mantiene y
se almacena en determinadas unidades de tiempo, tales como horas, días,
semanas, meses, trimestres o años. Ello nos permitirá analizar, por
ejemplo, la evolución de las ventas, los inventarios en los periodos que se
definan.
• No volátil: Esta información no es mantenida por los usuarios, como se
realizaría en los entornos transaccionales. La información se almacena
para la toma de decisiones. La actualización no se realiza de forma
continua, sino periódicamente, como lo defina la empresa.
54. BODEGAS DE DATOS (DATAWAREHOUSE)
Datamart
• Es un almacén de datos orientado a un área específica, como por
ejemplo, Ventas, Recursos Humanos u otros sectores en una organización.
Por ello, también se le conoce como una base de información
departamental. Este almacén permite que una empresa pueda acceder a
datos claves de un área de forma sencilla, además de realizar diversas
funciones, tales como:
• La organización de información para su posterior análisis.
• La elaboración de indicadores clave de rendimiento (KPI).
• La creación de informes para un aprendizaje automático.
• La evaluación de datos sobre el cumplimiento de objetivos de un sector.
55. BODEGAS DE DATOS (DATAWAREHOUSE)
Datamart vs Datawarehouse
Datamart Datawarehouse
Tamaño <100 GB +100 GB
Ámbito Un único ámbito Varios ámbitos
Alcance Área de negocio Toda la empresa
Fuentes de datos Pocas fuentes Muchos sistemas de fuentes
Integración de datos
Un único ámbito de actividad
Todos los datos de la
empresa
Tiempo de creación Minutos, semanas, meses De muchos meses a años
56. BODEGAS DE DATOS (DATAWAREHOUSE)
Tipos de Datamart
• Datamarts dependientes: Se crea a partir de un almacén de datos
empresariales existente. Para formar un almacén de datos, se agrega un
conjunto de datos concreto a partir del almacén, se reestructuran y luego
se cargan al datamart, donde pueden realizarse consultas. Pueden ser una
visión lógica o un subconjunto físico del almacén de datos:
• Visión lógica: una tabla/vista virtual separada lógicamente aunque no
físicamente del almacén de datos
• Subconjunto físico: extracción de datos que constituye una base de datos
separada físicamente del almacén de datos
57. BODEGAS DE DATOS (DATAWAREHOUSE)
Tipos de Datamart
• Datamarts independientes: Es un sistema autónomo (creado
sin utilizar ningún almacén) que se centra en una única
disciplina o área del negocio. Los datos se extraen de fuentes
internas o externas (o de ambas), se procesan y luego se
cargan al repositorio del datamart, donde se almacenan hasta
que son necesarios para análisis comerciales.
• Datamarts híbridos: Combina datos de un almacén de datos
existente con otros sistemas de fuentes operativas.
58. BODEGAS DE DATOS (DATAWAREHOUSE)
Modelos Datawarehouse
• Modelo Estrella: Está formado por
una tabla central de hechos y varias
dimensiones, incluida una dimensión
de tiempo. Lo más representativo de
la arquitectura de estrella es que
solo existe una tabla de dimensiones
para cada dimensión.
59. BODEGAS DE DATOS (DATAWAREHOUSE)
Modelos Datawarehouse
• Modelo Estrella: Es un modelo desnormalizado, ya que lo que se busca es una
mejora en el rendimiento de las consultas. Los join en las bases de datos
relacionales pueden ser muy pesados. Ventajas y desventajas de este modelo:
• Simple y rápido para un análisis multidimensional. Permite consultar datos
agregados y detalles.
• Permite implementar la funcionalidad de los datos multidimensionales y a la
vez las ventajas de una base de datos relacional.
• En cuanto a rendimiento es la mejor opción, ya que permite indexar las
dimensiones de forma individualizada sin que el rendimiento de la base de
datos se vea afectado.
60. BODEGAS DE DATOS (DATAWAREHOUSE)
Modelos Datawarehouse
• Copo de Nieve: En este modelo la tabla
de hechos ya no es la única que se relaciona
con otras tablas ya que existen otras tablas
que se relacionan con las dimensiones y que
no tienen relación directa con la tabla de
hechos. El modelo fue concebido para
facilitar el mantenimiento de las
dimensiones, sin embargo esto permite que
se vinculen más tablas a las secuencias SQL.
61. BODEGAS DE DATOS (DATAWAREHOUSE)
Modelos Datawarehouse
• Copo de Nieve: Ventajas y desventajas de este modelo:
• Algo positivo de este esquema es que al estar normalizado se evita la
redundancia de datos.
• El tiempo de respuesta es muy elevado, por lo que si es necesaria una
respuesta rápida y es crítico para el sistema, puede no ser la mejor
opción.
62. Bibliografia
• Mohammadhossein-Barkhordari, M. N. (2017). Atrak: a MapReduce-based data
warehouse for big data. The Journal of Supercomputing, 4596-4610.
• Sebastian-Busch, V. N. (2017). Automatic classification of data-warehouse-data for
information lifecycle management using machine learning techniques. Information
Systems Frontiers; New York, 1085-1099.
• Ramos, S. (2016). Proceso de negocio, data mart, data warehouse. En Business
Intelligence (BI) y Analytics: el arte de convertir los datos en conocimiento. Alicante:
SolidQ Press.
• Cano, J. L. (2007). Business Intelligence: competir con información (pp. 392). Madrid:
ESADE Business School. Recuperado de:
http://itemsweb.esade.edu/biblioteca/archivo/Business_Intelligence_competir_con_i
nformacion.pdf