Upc Pre Si400 Database Design Fundamentals Part 2 v1

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 32

PREGRADO

UNIDAD 1 | OVERVIEW

DATABASE DESIGN FUNDAMENTALS


PART II

SI400 | Diseño de Base de Datos


Al finalizar la unidad de aprendizaje, el estudiante extrae
características relevantes para la persistencia de datos a
partir de requisitos de software, a fin de ejecutar un
proceso de diseño e implementación de una base de
datos, sobre un Database Management System,
utilizando herramientas resultado de un proceso de
evaluación y selección.
Logro de la semana:
Al finalizar la semana de aprendizaje, el estudiante
identifica los componentes principales y tipos de
Database Management System y su rol en el diseño y
desarrollo de soluciones de software.
AGENDA

INTRODUCCION
RELATIONAL DATABASES
NON-RELATIONAL DATABASES
Introducción

La velocidad de la generación de datos se acelera y el valor asociado a ella disminuye con el tiempo. Si no
se procesa en tiempo real, las empresas deben enfrentar oportunidades perdidas con implicaciones
financieras y, en ocasiones, especialmente en escenarios de IoT industrial, pueden resultar en situaciones
fatales.

La pregunta para la que intentaremos encontrar una respuesta es ¿cómo organizamos los datos
almacenados escalables con lectura y escritura de baja latencia y cómo los procesamos en tiempo real?
SQL es el lenguaje estándar de la industria que significa lenguaje de consulta estructurado. Este es el
lenguaje utilizado por las bases de datos relacionales para consultar y administrar datos. Estas bases de
datos forman la base de las transacciones mundiales. Estas bases de datos son totalmente compatibles con
ACID. Las bases de datos no relaciones son un grupo de sistemas de gestión de datos con características
comunes de alta disponibilidad y escalamiento masivo.
Caso e-commerce
AGENDA

INTRODUCCION
RELATIONAL DATABASES
NON-RELATIONAL DATABASES
Relational database

Una base de datos relacional es una colección de elementos de datos con relaciones predefinidas entre
ellos. Estos elementos se organizan como un conjunto de tablas con columnas y filas. Las tablas se utilizan
para contener información sobre los objetos que se representarán en la base de datos.
Características

SQL: SQL o lenguaje de consulta estructurado es la interfaz principal utilizada para comunicarse con bases
de datos relacionales.

Integridad de datos: La integridad de los datos es la integridad, precisión y consistencia general de los
datos. Las bases de datos relacionales utilizan un conjunto de restricciones para imponer la integridad de
los datos en la base de datos.

Transacciones: Una transacción de base de datos es una o más sentencias SQL que se ejecutan como una
secuencia de operaciones que forman una única unidad lógica de trabajo.

ACID: Todas las transacciones de la base de datos deben cumplir con ACID o ser atómicas, consistentes,
aisladas y duraderas para garantizar la integridad de los datos.
Motores
AGENDA

INTRODUCCION
RELATIONAL DATABASES
NON-RELATIONAL DATABASES
Non-relational databases

Las bases de datos NoSQL están diseñadas específicamente para modelos de datos específicos y tienen
esquemas flexibles para crear aplicaciones modernas. Las bases de datos NoSQL son ampliamente
reconocidas porque son fáciles de desarrollar, por su funcionalidad y el rendimiento a escala.
Razones de uso

Flexibilidad: Ofrecen esquemas flexibles que permiten un desarrollo más rápido y más iterativo. El modelo
de datos flexible hace que las bases de datos no relacionales sean ideales para datos semiestructurados y
no estructurados.

Escalabilidad: Están diseñadas para escalar usando clústeres distribuidos de hardware en lugar de escalar
añadiendo servidores caros y sólidos. Algunos proveedores de la nube manejan estas operaciones en
segundo plano, como un servicio completamente administrado.

Alto rendimiento: Están optimizadas para modelos de datos específicos y patrones de acceso que
permiten un mayor rendimiento que el intento de lograr una funcionalidad similar con bases de datos
relacionales.

Altamente funcional: Proporcionan API altamente funcionales y tipos de datos que están diseñados
específicamente para cada uno de sus respectivos modelos de datos.
Key-value database

Una base de datos clave-valor es un tipo de base de datos no relacional que utiliza un método simple de
clave-valor para almacenar datos. Una base de datos clave-valor almacena datos como un conjunto de
pares clave-valor en los que una clave sirve como un identificador único. Tanto las claves como los valores
pueden ser cualquier cosa, desde objetos simples hasta objetos compuestos complejos. Las bases de datos
clave-valor son altamente divisibles y permiten el escalado horizontal a escalas que otros tipos de bases de
datos no pueden alcanzar.
Características

Simplicidad: Las bases de datos de valores clave utilizan una estructura de datos mínima. Quizás te
preguntas, ¿por qué alguien querría usar una base de datos mínima cuando podría usar una base de datos
relacional rica en funcionalidades? La respuesta es que a veces no necesitas todas esas funcionalidades
adicionales.

Velocidad: Las bases de datos de valores clave son conocidas por su velocidad. Con una estructura de
datos de matriz asociativa simple y características de diseño para optimizar el rendimiento, las bases de
datos de valores clave pueden ofrecer operaciones de alto rendimiento y uso intensivo de datos.

Escalabilidad: Es importante que las bases de datos clave-valor y otros tipos de bases de datos NoSQL
utilizadas en la web y otras aplicaciones a gran escala se escalen con una interrupción mínima de las
operaciones.
Usos

Almacén de sesiones: Una aplicación orientada a la sesión, como una aplicación web, inicia una sesión
cuando un usuario inicia sesión y está activo hasta que el usuario cierra la sesión o esta expira. Durante este
período, la aplicación almacena todos los datos relacionados con la sesión en la memoria principal o en una
base de datos. Los datos de la sesión pueden incluir información del perfil del usuario, mensajes, datos
personalizados y temas, recomendaciones, promociones dirigidas y descuentos. Cada sesión de usuario
tiene un identificador único. Solo la clave principal consulta los datos de la sesión nunca, por lo que un
almacén clave-valor rápido se adapta mejor a los datos de la sesión. En general, las bases de datos clave-
valor pueden proporcionar una sobrecarga más pequeña por página que las bases de datos relacionales.

Carro de compras: Durante la temporada de compras navideñas, un sitio web de e-commerce puede
recibir miles de millones de pedidos en segundos. Las bases de datos clave-valor pueden manejar el
escalado de grandes cantidades de datos y volúmenes extremadamente altos de cambios de estado,
mientras se atiende a millones de usuarios simultáneamente a través del procesamiento y el
almacenamiento distribuidos. Las bases de datos clave-valor también tienen redundancia incorporada, lo
cual puede manejar la pérdida de nodos de almacenamiento.
Motores
Document database

Los documentos son estructuras de datos flexibles. No requieren esquemas predefinidos y se adaptan
fácilmente a las variaciones en la estructura de los documentos. Los documentos se organizan en
conjuntos relacionados denominados colecciones. Las colecciones son análogas a una tabla relacional y
los documentos son análogos a las filas de una tabla relacional.
Características

Modelo de documento: Los datos se almacenan en documentos. Los documentos se asignan a objetos en
los lenguajes de programación más populares, lo que permite a los desarrolladores desarrollar
rápidamente sus aplicaciones.

Esquema flexible: Las bases de datos basadas en documentos tienen un esquema flexible, lo que significa
que no todos los documentos de una colección deben tener los mismos campos. Tenga en cuenta que
algunas bases de datos de documentos admiten la validación de esquemas, por lo que el esquema se
puede bloquear opcionalmente.

Distribuido y resistente: Las bases de datos basadas en documentos están distribuidas, lo que permite el
escalado horizontal (normalmente más económico que el escalado vertical) y la distribución de datos. Las
bases de datos de documentos proporcionan resistencia a través de la replicación.

Consulta a través de una API o lenguaje de consulta : Las bases de datos basadas en documentos tienen
una API o lenguaje de consulta que permite a los desarrolladores ejecutar las operaciones CRUD en la base
de datos. Los desarrolladores tienen la capacidad de consultar documentos en función de identificadores
únicos o valores de campo.
Usos

Gestión de contenido: Una base de datos basada en documentos es una excelente opción para
aplicaciones de administración de contenido, como blogs y plataformas de video. Con una base de datos
de documentos, cada entidad que rastrea la aplicación se puede almacenar como un único documento. La
base de datos de documentos es más intuitiva para que un desarrollador actualice una aplicación a
medida que evolucionan los requisitos. Además, si es necesario cambiar el modelo de datos, solo es
necesario actualizar los documentos afectados. No se requiere actualizar el esquema y no es necesario
tiempo de inactividad de la base de datos para realizar los cambios.

Catálogos: Las bases de datos basadas en documentos son eficientes y efectivas para almacenar
información de catálogo. Por ejemplo, en una aplicación de e-commerce, los diferentes productos suelen
tener diferentes números de atributos. Administrar miles de atributos en bases de datos relacionales no es
eficiente y afecta al rendimiento de lectura. Usando una base de datos de documentos, los atributos de
cada producto se pueden describir en un solo documento para la administración sea fácil y la velocidad de
lectura sea más rápida.
Motores
Columnar database

Mientras una base de datos relacional está optimizada para almacenar filas de datos, normalmente para
aplicaciones transaccionales, una base de datos en columnas está optimizada para lograr una recuperación
rápida de columnas de datos, normalmente en aplicaciones analíticas. El almacenamiento basado en
columnas para las tablas de bases de datos es un factor importante en el desempeño de las consultas
analíticas, ya que reduce notablemente los requisitos globales de E/S del disco , y disminuye el volumen
de datos que hay que cargar desde él.
Características

Multipropósito: Las bases de datos en columnas reciben mucha atención con las aplicaciones de Big Data.
También se utilizan para otros fines: ejecutar cubos de procesamiento analítico en línea (OLAP), almacenar
metadatos y realizar análisis en tiempo real. Las bases de datos columnares son eficientes para estas tareas
porque se destacan en la carga de nuevos datos rápidamente.

Auto indexación: Permite usar menos espacio en disco que un sistema de administración de base de datos
relacional que contiene los mismos datos.

Rapidez y eficacia: Las bases de datos columnares realizan consultas analíticas más rápido que otras bases
de datos. También son rápidos y eficientes para realizar uniones, una forma de combinar datos de dos
tablas en una base de datos relacional. Aunque es una forma estándar de combinar datos, una unión
puede ser ineficiente y de rendimiento lento. Una base de datos columnar puede unir rápidamente
cualquier número de conjuntos de datos y puede agregar los resultados de una consulta en un solo
resultado.
Usos

Inteligencia de negocios: Las bases de datos en columnas superan las limitaciones de las bases de datos
relacionales tradicionales, lo que posiciona a las bases de datos en columnas como el futuro de la
inteligencia de negocios..
Motores
Graph database

Una base de datos orientada a grafos es un sistema de base de datos de tipo NoSQL basado en una
estructura de red topográfica. La idea surge de la teoría de grafos en matemáticas, donde los grafos
representan conjuntos de datos usando nodos, bordes y propiedades.
Características

Los nodos o puntos son instancias o entidades de datos que representan cualquier objeto a rastrear, como
personas, cuentas, ubicaciones, etc.

Las aristas o arcos son los conceptos críticos en las bases de datos orientadas a grafos que representan las
relaciones entre los nodos. Las conexiones tienen una dirección que es unidireccional (sentido único) o
bidireccional (sentido bidireccional).

Las propiedades representan información descriptiva asociada con los nodos. En algunos casos, los
bordes también tienen propiedades.
Usos

Detección del fraude: Las bases de datos orientadas a grafos son capaces de ofrecer una sofisticada
prevención del fraude. Con las bases de datos orientadas a grafos, puede usar las relaciones para procesar
transacciones financieras y de compras casi en tiempo real. Con consultas de grafos rápidas, podrá
detectar si, por ejemplo, un posible comprador está utilizando la misma dirección de correo electrónico y
tarjeta de crédito que un caso de fraude conocido. Las bases de datos orientadas a grafos también puede
ayudarle a detectar con facilidad patrones de relaciones como, por ejemplo, que varias personas tengan
asociadas la misma dirección de correo electrónico personal o que varias personas compartan la misma
dirección IP aunque vivan en direcciones físicas distintas.

Motores de recomendaciones: Las bases de datos orientadas a grafos son una buena opción para
aplicaciones de recomendaciones. Con las bases de datos orientadas a grafos, puede almacenar en un
grafo las relaciones entre las categorías de información, como intereses del cliente, amigos e historial de
compras. Puede utilizar una base de datos orientadas a grafos de alta disponibilidad para recomendar
productos a un usuario a partir de los productos que han comprado otros usuarios que siguen el mismo
deporte o presentan un historial de compras similar. También puede identificar a las personas que tienen
un amigo en común, pero que todavía no se conocen, y enviarles una recomendación de amistad.
Motores
RESUMEN
Recordemos
Relational databases
Non-relational databases
REFERENCIAS
Para profundizar
Next Generation Databases: NoSQL, NewSQL, and Big Data

NoSQL for Mere Mortals


PREGRADO
Ingeniería de Software
Escuela de Ingeniería de Sistemas y Computación | Facultad de Ingeniería

UPC
Universidad Peruana
de Ciencias Aplicadas

Prolongación Primavera 2390,


Monterrico, Santiago de Surco
Lima 33 - Perú
T 511 313 3333
https://www.upc.edu.pe

exígete, innova

También podría gustarte