2.4. Gestión de Datos (DM)
Desde mediados de la década de 1970, el estudio de la Gestión de Datos (DM) ha significado un estudio casi exclusivo de los sistemas de bases de datos relacionales. Dependiendo del contexto institucional, los estudiantes han estudiado, en proporciones variables, lo siguiente.
- Modelado de datos y diseño de bases de datos: por ejemplo, modelo de datos E-R, modelo
relacional, teoría de normalización
- Construcción de consultas: por ejemplo, álgebra relacional, SQL
- Procesamiento de consultas: por ejemplo, índices (árbol B+, hash), algoritmos (por ejemplo, ordenamiento externo, selección, proyección, unión), optimización de consultas (transformaciones, selección de índices)
- Internos de DBMS: por ejemplo, concurrencia/bloqueos, gestión de transacciones, gestión de búfer
Se espera que los graduados de hoy posean habilidades de usuario (en lugar de implementador) de DBMS. Estas incluyen principalmente modelado de datos y construcción de consultas; capacidad para tomar una colección no organizada de datos, organizarla usando un DBMS y acceder/actualizar la colección mediante consultas.
Además, los estudiantes necesitan estudiar lo siguiente:
- El rol que juegan los datos en una organización. Esto incluye el Ciclo de Vida de los Datos: Creación-Procesamiento-Revisión/Reporte-Retención/Recuperación-Destrucción.
- Los aspectos sociales/legales de la recolección de datos: por ejemplo, escala, privacidad de datos, privacidad de base de datos (cumplimiento) por diseño, desidentificación, propiedad, confiabilidad, seguridad de base de datos y aplicaciones intencionales y no intencionales.
- Tecnologías emergentes y avanzadas que están aumentando/reemplazando los sistemas relacionales tradicionales, particularmente aquellas usadas para soportar análisis de datos (grandes), incluyendo NoSQL (por ejemplo, JSON, XML, bases de datos de almacén clave-valor), bases de datos en la nube, MapReduce y dataframes.
-
Los roles existentes y emergentes para aquellos involucrados con la gestión de datos, que incluyen los siguientes.
- Profesionales de características de producto: aquellos que usan tanto bases de datos operativas SQL como NoSQL.
- Profesionales analíticos/Profesionales en datos: aquellos que escriben código SQL, Python y Scala analítico para construir activos de datos para grupos de negocios.
- Analistas de negocio: aquellos que construyen/gestionan datos más frecuentemente con hojas de cálculo Excel.
- Profesionales de infraestructura de datos: aquellos que implementan un sistema de gestión de datos en una variedad de aplicaciones de datos (por ejemplo, OLTP).
-
Todos los que producen o consumen datos deben comprender los problemas sociales, éticos y profesionales asociados.
Un rol que trasciende todas las categorías anteriores es el de custodio de datos. Anteriormente, los datos eran vistos como un recurso para ser gestionado (Gestión de Sistemas de Información) al igual que otros recursos empresariales. Hoy, los datos son vistos en un contexto más amplio. Los datos sobre clientes ahora pueden verse como pertenecientes a (o en algunos contextos nacionales, como propiedad de) esos clientes. Ahora existe una comprensión aceptada de que el almacenamiento y uso seguro y ético de los datos institucionales es parte de ser un custodio de datos responsable.
Además, reconocemos la tensión entre un enfoque curricular en preparación profesional versus el estudio de un área de conocimiento como un esfuerzo científico. Esto es particularmente cierto con la Gestión de Datos. Por ejemplo, demostrar (o al menos conocer) la completitud de los Axiomas de Armstrong es fundamental en la teoría de dependencias funcionales. Sin embargo, la mayoría de los graduados en informática nunca utilizarán este concepto durante sus carreras profesionales. Lo mismo puede decirse de muchos otros temas en el canon de Gestión de Datos. Por el contrario, si nuestros graduados solo pueden normalizar datos en forma normal de Boyce-Codd (usando una herramienta automatizada) y escribir consultas SQL, sin comprender el rol que juegan los índices en la ejecución eficiente de consultas, les hemos hecho un perjuicio a ellos y a la sociedad.
Con este fin, el número de horas de Núcleo CS es relativamente pequeño en relación con las horas de Núcleo KA. Este enfoque está diseñado para permitir que las instituciones con contextos diferentes personalicen sus planes de estudio apropiadamente. Una institución que se enfoque en implementación OLTP, por ejemplo, priorizaría el almacenamiento eficiente y el acceso a datos, mientras que una institución que se enfoque en características de producto priorizaría el acceso programático a bases de datos existentes.
Sin embargo, como una institución maneje esta tensión, deseamos dar voz a una de las ironías de los planes de estudio de informática. Los estudiantes típicamente pasan gran parte de su vida educativa leyendo (y escribiendo) datos de un archivo o interactivamente, mientras que fuera de la academia los datos predominantes provienen de bases de datos a las que se accede programáticamente. Quizás en un futuro no muy lejano los estudiantes aprenderán acceso programático a bases de datos desde temprano y luego continuarán esta práctica a medida que avanzan en su plan de estudios.
Finalmente, entendemos que aunque el KA de Gestión de Datos puede ser ortogonal a los KAs de SEC (Seguridad) y SEP (Sociedad, ética y la Profesión), también es punto cero para estas (y otras) áreas de conocimiento. Al diseñar almacenes de datos persistentes, la pregunta de qué debe almacenarse debe examinarse desde perspectivas legales y éticas. ¿Hay preocupaciones de privacidad? Y tan importante como eso, ¿qué tan bien protegidos están los datos?
| área de Conocimiento (Knowledge Area-KA) (KA) | Core Tier1 | Core Tier2 | Electivo |
| 2.4.1 El Rol de los Datos y el Ciclo de Vida de los Datos |
|
| No |
| 2.4.2 Conceptos Fundamentales de Sistemas de Bases de Datos |
|
| No |
| 2.4.3 Modelado de Datos |
|
| No |
| 2.4.4 Bases de Datos Relacionales |
|
| No |
| 2.4.5 Construcción de Consultas |
|
| No |
| 2.4.6 Procesamiento de Consultas |
|
| No |
| 2.4.7 Internos de DBMS |
|
| No |
| 2.4.8 Sistemas NoSQL |
|
| No |
| 2.4.9 Seguridad y Privacidad de Datos |
|
| No |
| 2.4.10 Análisis de Datos |
|
| No |
| 2.4.11 Bases de Datos Distribuidas/Computación en la Nube |
|
| No |
| 2.4.12 Bases de Datos Semiestructuradas y No Estructuradas |
|
| No |
| 2.4.13 Sociedad, ética y Profesión |
|
| No |
2.4.1. DM/El Rol de los Datos y el Ciclo de Vida de los Datos
Temas:
Core
- Ciclo de Vida de los Datos: Creación-Procesamiento-Revisión/Reporte-Retención/Recuperación-Destrucción
Aprendizaje esperado (Learning Outcomes):
Core:
2.4.2. DM/Conceptos Fundamentales de Sistemas de Bases de Datos
Temas:
Core
- Propósito y ventajas de los sistemas de bases de datos
- Componentes de los sistemas de bases de datos
- Diseño de funciones fundamentales de DBMS (por ejemplo, mecanismos de consulta, gestión de transacciones, gestión de búfer, métodos de acceso)
- Arquitectura de base de datos, independencia de datos y abstracción de datos
- Gestión de transacciones
- Normalización
- Enfoques para gestionar grandes volúmenes de datos (por ejemplo, sistemas de bases de datos NoSQL, uso de MapReduce)
- Cómo soportar aplicaciones solo de CRUD
- Bases de datos distribuidas/sistemas basados en la nube
- Datos estructurados, semiestructurados y no estructurados
- Uso de un lenguaje de consulta declarativo
- Sistemas que soportan contenido estructurado y/o de flujo
Aprendizaje esperado (Learning Outcomes):
Core:
- 1.
- Identificar al menos cuatro ventajas que proporciona el uso de un sistema de base de datos [Analizar]
- 2.
- Enumerar los componentes de un sistema de base de datos (relacional) [Enumerar]
- 3.
- Seguir una consulta a medida que es procesada por los componentes de un sistema de base de datos (relacional) [Analizar]
- 4.
- Defender el valor de la independencia de datos [Defender]
- 5.
- Componer una consulta simple de selección-proyección-unión en SQL [Componer]
- 6.
- Enumerar las cuatro propiedades de un gestor de transacciones correcto [Enumerar]
- 7.
- Describir las ventajas de eliminar datos duplicados repetidos [Describir]
- 8.
- Esbozar cómo MapReduce usa paralelismo para procesar datos eficientemente [Esquematizar/Esbozar]
- 9.
- Evaluar las diferencias entre bases de datos estructuradas y semiestructuradas/no estructuradas [Evaluar]
2.4.3. DM/Modelado de Datos
Temas:
Core
- Modelado de datos
- Modelo de datos relacional
- Modelos conceptuales (por ejemplo, entidad-relación, diagramas UML)
- Modelos de datos semiestructurados (expresados usando DTD, XML o JSON Schema, por ejemplo)
Non Core
- Modelos de hojas de cálculo
-
Modelos orientados a objetos:
- 1.
- GraphQL
- Nuevas características en SQL
-
Temas de Modelado de Datos Especializados:
- 1.
- Datos de series temporales (agregación, unión)
- 2.
- Datos de grafos (recorrido de enlaces)
- 3.
- Técnicas para evitar acceso ineficiente a datos crudos (por ejemplo, "precio promedio diario"): vistas materializadas y estructuras de datos especiales (por ejemplo, Hyperloglog, mapa de bits)
- 4.
- Datos Geoespaciales (por ejemplo, bases de datos GIS)
Aprendizaje esperado (Learning Outcomes):
Core:
- 1.
- Describir los componentes del modelo de datos relacional [Describir]
- 2.
- Modelar relaciones 1:1, 1:n y n:m usando el modelo de datos relacional [Usar]
- 3.
- Describir los componentes del modelo E-R (o algún otro modelo no relacional) [Describir]
- 4.
- Modelar un entorno dado usando un modelo de datos conceptual [Analizar]
- 5.
- Modelar un entorno dado usando el modelo de datos basado en documentos o basado en almacén clave-valor [Aplicar]
2.4.4. DM/Bases de Datos Relacionales
Temas:
Core
- Integridad de entidad y referencial: Clave candidata, superclaves
- Diseño de base de datos relacional
- Mapeo de esquema conceptual a un esquema relacional
- Diseño físico de base de datos: estructuras de archivos y almacenamiento
- Introducción a la teoría de dependencias funcionales
-
Teoría de Normalización:
- 1.
- Descomposición de un esquema; propiedades de unión sin pérdida y preservación de dependencias de una descomposición
- 2.
- Formas normales (BCNF)
-
3.
- Desnormalización (para eficiencia)
Non Core
-
Teoría de dependencias funcionales:
- 1.
- Clausura de un conjunto de atributos
- 2.
- Cubierta canónica
-
Teoría de normalización:
- 1.
- Dependencia multivaluada (4NF)
- 2.
- Dependencia de unión (PJNF, 5NF)
- 3.
- Teoría de representación
Aprendizaje esperado (Learning Outcomes):
Core:
- 1.
- Describir las características definitorias detrás del modelo de datos relacional [Describir]
- 2.
- Comentar sobre la diferencia entre una clave foránea y una superclave [Explicar]
- 3.
- Enumerar los diferentes tipos de restricciones de integridad [Enumerar]
- 4.
- Componer un esquema relacional a partir de un esquema conceptual que contenga relaciones 1:1, 1:n y n:m [Componer]
- 5.
- Mapear estructura de archivo apropiada a relaciones e índices [Mapear/Mapa conceptual]
- 6.
- Describir cómo la teoría de dependencias funcionales generaliza la noción de clave [Describir]
- 7.
- Defender una descomposición dada como sin pérdida y/o que preserva dependencias [Defender]
- 8.
- Detectar qué forma normal produce una descomposición dada [Detectar]
- 9.
- Comentar sobre las razones para desnormalizar una relación [Interpretar]
2.4.5. DM/Construcción de Consultas
Temas:
Core
-
Formación de Consultas SQL:
- 1.
- Ejecución interactiva de SQL
- 2.
- Ejecución programática de una consulta SQL
-
álgebra Relacional
-
SQL:
- 1.
- Definición de datos incluyendo especificaciones de integridad y otras restricciones
- 2.
- Sublenguaje de actualización
Non Core
- Cálculo Relacional
- QBE y entornos de 4ta generación
- Diferentes formas de invocar consultas no procedimentales en lenguajes convencionales
- Introducción a otros lenguajes de consulta principales (por ejemplo, XPATH, SPARQL)
- Procedimientos almacenados
Aprendizaje esperado (Learning Outcomes):
Core:
- 1.
- Componer consultas SQL que incorporen selección, proyección, unión, intersección, diferencia de conjuntos y división de conjuntos [Componer]
- 2.
- Determinar cuándo una consulta SQL anidada está correlacionada o no [Determinar]
- 3.
- Iterar sobre datos recuperados programáticamente de una base de datos a través de una consulta SQL [Crear]
- 4.
- Definir, en SQL, un esquema de relación, incluyendo todas las restricciones de integridad y activadores de eliminación/actualización [Definir]
- 5.
- Componer una consulta SQL para actualizar una tupla en una relación [Componer]
2.4.6. DM/Procesamiento de Consultas
Temas:
Core
- Estructuras de página
-
Estructuras de índice:
- 1.
- árboles B+
- 2.
- Índices hash: estáticos y dinámicos
- 3.
- Creación de índices en SQL
-
Estructuras de archivos:
- 1.
- Archivos de montón (heap)
- 2.
- Archivos hash
-
Algoritmos para operadores de consulta:
- 1.
- Ordenamiento externo
- 2.
- Selección
- 3.
- Proyección; con y sin eliminación de duplicados
- 4.
- Uniones naturales: Bucle anidado, Mezcla-ordenada, Unión hash
- 5.
- Análisis de eficiencia de algoritmos
- Transformaciones de consultas
-
Optimización de consultas:
- 1.
- Rutas de acceso
- 2.
- Construcción de plan de consulta
- 3.
- Estimación de selectividad
- 4.
- Planes solo de índice
- Procesamiento de Consultas en Paralelo (por ejemplo, exploración paralela, unión paralela, agregación paralela)
-
Afinamiento/rendimiento de base de datos:
- 1.
- Selección de índices
- 2.
- Impacto de índices en el rendimiento de consultas
- 3.
- Desnormalización
Aprendizaje esperado (Learning Outcomes):
Core:
- 1.
- Describir el propósito y organización de las estructuras de índice tanto de árbol B+ como hash [Describir]
-
2.
- Componer un comando SQL para crear un índice (de cualquier tipo) [Componer]
- 3.
- Especificar los pasos para los diversos algoritmos de operadores de consulta: ordenamiento externo, proyección con eliminación de duplicados, unión por mezcla-ordenada, unión hash, unión por bucle anidado por bloques [Analizar]
- 4.
- Derivar el tiempo de ejecución (en solicitudes de E/S) para cada uno de los algoritmos anteriores [Analizar]
- 5.
- Transformar una consulta en álgebra relacional a su equivalente apropiado para una ejecución canalizada de profundidad izquierda [Rediseñar]
- 6.
- Calcular estimaciones de selectividad para una operación de selección y/o unión dada [Computar/Calcular]
- 7.
- Describir cómo modificar una estructura de índice para facilitar una operación solo de índice para una relación dada [Describir]
- 8.
- Para un escenario dado decidir qué índices soportar para la ejecución eficiente de un conjunto de consultas [Evaluar (valorar)]
- 9.
- Describir cómo los DBMS aprovechan el paralelismo para acelerar el procesamiento de consultas dividiendo el trabajo entre múltiples procesadores o nodos [Describir]
2.4.7. DM/Internos de DBMS
Temas:
Core
- Gestión de Búfer de DB
-
Gestión de Transacciones:
- 1.
- Niveles de Aislamiento
- 2.
- ACID
- 3.
- Serializabilidad
- 4.
- Transacciones Distribuidas
-
Control de Concurrencia:
- 1.
- Bloqueo en 2 Fases
- 2.
- Estrategias de manejo de bloqueos mutuos
- 3.
- Modelos de consistencia basados en quórum
-
Gestor de Recuperación:
-
1.
- Relación con el Gestor de Búfer
-
Non Core
-
Control de Concurrencia:
- 1.
- Control de concurrencia optimista
- 2.
- Control de concurrencia por marca de tiempo
-
Gestor de Recuperación:
- 1.
- Registro por escritura anticipada
- 2.
- Sistema de recuperación ARIES (Análisis, REDO, UNDO)
Aprendizaje esperado (Learning Outcomes):
Core:
- 1.
- Describir cómo un DBMS gestiona su Grupo de Búferes [Describir]
- 2.
- Describir las cuatro propiedades para un gestor de transacciones correcto [Describir]
- 3.
- Esbozar el principio de serializabilidad [Esquematizar/Esbozar]
2.4.8. DM/Sistemas NoSQL
Temas:
Core
- ¿Por qué NoSQL? (por ejemplo, Desajuste de impedancia entre Aplicación [CRUD] y RDBMS)
- Modelo de datos Clave-Valor y Documento
Non Core
- Sistemas de almacenamiento (por ejemplo, sistemas Clave-Valor, Lagos de Datos (Data Lakes))
- Modelos de Distribución (Fragmentación y Replicación)
- Bases de Datos de Grafos
- Modelos de Consistencia (Actualización y Lectura, consistencia de quórum, teorema CAP)
- Modelo de procesamiento (por ejemplo, Map-Reduce, map-reduce multi-etapa, map-reduce
incremental)
- Estudios de Caso: Sistema de almacenamiento en la nube (por ejemplo, S3); Bases de datos de grafos; Çuándo no usar NoSQL"
Aprendizaje esperado (Learning Outcomes):
Core:
- 1.
- Desarrollar un caso de uso para el uso de NoSQL sobre RDBMS [Crear]
- 2.
- Describir las características definitorias detrás de los modelos de datos basados en Clave-Valor y Documentos [Describir]
2.4.9. DM/Seguridad y Privacidad de Datos
Temas:
Core
- Diferencias entre seguridad de datos y privacidad de datos
- Proteger datos y sistemas de bases de datos de ataques, incluyendo ataques de inyección como inyección SQL
- Información de identificación personal (PII) y su protección
- Consideraciones éticas para asegurar la seguridad y privacidad de los datos
- Necesidad de, y diferentes enfoques para asegurar datos en reposo, en tránsito y durante el procesamiento
- Auditoría de base de datos y su rol en forensía digital
- Inferencia de datos y prevención de ataques
- Leyes y regulaciones que gobiernan la seguridad de datos y la privacidad de datos
Non Core
- Factores de riesgo típicos y medidas de prevención para asegurar la integridad de datos
- Ransomware y prevención de pérdida y destrucción de datos
Aprendizaje esperado (Learning Outcomes):
Core:
- 1.
- Describir las diferencias en los objetivos para seguridad de datos y privacidad de datos [Describir]
- 2.
- Identificar y mitigar riesgos asociados con diferentes enfoques para proteger datos [Analizar]
- 3.
- Describir consideraciones legales y éticas de seguridad y privacidad de datos de extremo a extremo [Describir]
- 4.
- Desarrollar un sistema de auditoría de base de datos dadas consideraciones de riesgo [Crear]
- 5.
- Aplicar varios enfoques de exploración de datos para comprender conjuntos de datos no familiares [Aplicar]
2.4.10. DM/Análisis de Datos
Temas:
Core
- Técnicas exploratorias de datos (motivación, representación, estadísticas descriptivas, visualizaciones)
- Ciclo de vida de ciencia de datos: comprensión del negocio, comprensión de datos, preparación de datos, modelado, evaluación, despliegue y aceptación del usuario
- Algoritmos de minería de datos y aprendizaje automático: por ejemplo, clasificación, agrupamiento, asociación, regresión
- Adquisición y gobernanza de datos
- Consideraciones de seguridad y privacidad de datos
- Equidad y sesgo de datos
- Técnicas de visualización de datos y su uso en análisis de datos
- Resolución de Entidades
Aprendizaje esperado (Learning Outcomes):
Core:
- 1.
- Describir varios enfoques de exploración de datos, incluyendo visualización, para comprender conjuntos de datos no familiares [Describir]
- 2.
- Aplicar varios enfoques de exploración de datos para comprender conjuntos de datos no familiares [Aplicar]
- 3.
- Describir algoritmos básicos de aprendizaje automático/minería de datos y cuándo son apropiados para su uso [Describir]
- 4.
- Aplicar varios algoritmos de aprendizaje automático/minería de datos [Aplicar]
- 5.
- Describir consideraciones legales y éticas en la adquisición, uso y modificación de conjuntos de datos [Describir]
- 6.
- Describir problemas de equidad y sesgo en la recolección y uso de datos [Describir]
2.4.11. DM/Bases de Datos Distribuidas/Computación en la Nube
Temas:
Non Core
-
DBMS Distribuido:
- 1.
- Almacenamiento de datos distribuido
- 2.
- Procesamiento de consultas distribuido
- 3.
- Modelo de transacción distribuida
- 4.
- Soluciones homogéneas y heterogéneas
- 5.
- Bases de datos distribuidas cliente-servidor
-
DBMS Paralelo:
- 1.
- Arquitecturas de DBMS paralelo: memoria compartida, disco compartido, nada compartido
- 2.
- Aceleración y escalamiento, por ejemplo, uso del modelo de procesamiento MapReduce
- 3.
- Replicación de datos y modelos de consistencia débil
Aprendizaje esperado (Learning Outcomes):
NonCore:
- 1.
- Describir los componentes clave de un DBMS distribuido, incluyendo almacenamiento de datos distribuido, procesamiento de consultas y gestión de transacciones [Describir]
- 2.
- Analizar las ventajas y desventajas entre arquitecturas de DBMS paralelo: memoria compartida, disco compartido y nada compartido [Analizar]
- 3.
- Describir estrategias de replicación de datos y modelos de consistencia débil en sistemas de bases de datos distribuidas [Describir]
2.4.12. DM/Bases de Datos Semiestructuradas y No Estructuradas
Temas:
Non Core
-
Datos no estructurados vectorizados (texto, video, audio, etc.) y almacenamiento vectorial:
- 1.
- Vectorizador TF-IDF con n-grama
- 2.
- Word2Vec
- 3.
- Base de datos de arreglos o manejo de tipo de datos arreglo
-
Bases de datos semiestructuradas (por ejemplo, JSON):
- 1.
- Almacenamiento:
- a)
- Codificación y compresión de tipos de datos anidados
- 2.
- Indexación:
- a)
- árbol B, índice de salto, filtro Bloom
- b)
- Índice invertido y compresión de mapa de bits
- c)
- Indexación por curva de llenado de espacio para datos geo-semiestructurados
- 3.
- Procesamiento de consultas para casos de uso OLTP y OLAP:
- a)
- Compromisos de inserción, selección, actualización/eliminación
- b)
- Estudios de caso sobre Postgres/JSON, MongoDB y Snowflake/JSON
Aprendizaje esperado (Learning Outcomes):
NonCore:
- 1.
- Describir representaciones vectorizadas de datos no estructurados (por ejemplo, TF-IDF, Word2Vec) y sus modelos de almacenamiento [Describir]
- 2.
- Aplicar técnicas de indexación (por ejemplo, árbol B, índice invertido, filtro Bloom) a datos semiestructurados almacenados en formato JSON [Aplicar]
- 3.
- Analizar las ventajas y desventajas del procesamiento de consultas en bases de datos semiestructuradas para casos de uso OLTP y OLAP [Analizar]
2.4.13. DM/Sociedad, ética y Profesión
Temas:
Core
- Problemas relacionados con la escala
-
Privacidad de datos en general:
- 1.
- Privacidad por diseño y por defecto
-
Anonimato de datos
- Propiedad/custodia de datos
- Aplicaciones intencionales y no intencionales de los datos almacenados
- Fiabilidad de los datos
- Procedencia, linaje de datos y gestión de metadatos
- Seguridad de datos
Aprendizaje esperado (Learning Outcomes):
Core:
- 1.
- Enumerar tres problemas sociales y tres legales relacionados con grandes colecciones de datos [Enumerar]
- 2.
- Describir el valor de la privacidad de datos [Describir]
- 3.
- Identificar las partes interesadas en competencia con respecto a la propiedad de los datos [Analizar]
- 4.
- Enumerar tres consecuencias negativas no intencionales de una aplicación centrada en datos (bien conocida) dada (por ejemplo, Facebook, LastPass, Ashley Madison) [Enumerar]
- 5.
- Describir el significado de procedencia y linaje de datos [Describir]
- 6.
- Identificar cómo una base de datos podría contribuir a la seguridad de los datos, así como cómo puede introducir inseguridades [Analizar]