SlideShare una empresa de Scribd logo
1 de 29
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
1
12/03/2022
NewSQL
Unidad 10
Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo para
uso de los cursos de Bases de Datos
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
2
12/03/2022
Objetivo general de la Unidad 10
Caracterizar la fundamentación teórica del NewSQL,
mediante el análisis de sus características y diferencias con
enfoques previos (NoSQL y SQL tradicional)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
3
12/03/2022
Contenido
▪ Definición
▪ Sistemas
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
4
12/03/2022
¿Qué es NewSQL?
▪ NewSQL es una clase de sistemas modernos de
gestión de bases de datos relacionales que
▪ tratan de conseguir el mismo rendimiento escalable de
sistemas NoSQL para el procesamiento de
transacciones en línea (lectura-escritura)
▪ durante las cargas de trabajo mantienen las garantías
ACID de un sistema de base de datos tradicional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
5
12/03/2022
OLTP: Tipos de consultas
• Point Query
SELECT balance
FROM accounts
WHERE number = 1023;
• Multipoint Query
SELECT balance
FROM accounts
WHERE branchnum = 100;
• Range Query
SELECT number
FROM accounts
WHERE balance > 10000;
• Prefix Match Query
SELECT *
FROM employees
WHERE name = ‘Jensen’
and firstname = ‘Carl’
and age < 30;
Tablas están en BNF, derivados de entidades y relaciones
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
6
12/03/2022
OLTP: Tipos de consultas
• Extremal Query
SELECT *
FROM accounts
WHERE balance =
max(select balance from accounts)
• Ordering Query
SELECT *
FROM accounts
ORDER BY balance;
• Grouping Query
SELECT branchnum, avg(balance)
FROM accounts
GROUP BY branchnum;
• Join Query
SELECT distinct branch.adresse
FROM accounts, branch
WHERE
accounts.branchnum =
branch.number
and accounts.balance > 10000;
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
7
12/03/2022
NewSQL
▪ Al igual que NoSQL, es más un movimiento que un
producto específico o incluso una familia de productos
▪ El "Nuevo" se refiere a los proveedores y no al SQL
▪ Objetivo(s):
▪ Llevar los beneficios del modelo relacional a las
arquitecturas distribuidas, o,
▪ VoltDB, ScaleDB, etc.
▪ Mejorar el rendimiento de la base de datos relacional para
que ya no requiera el escalado horizontal
▪ Tokutek, ScaleBase, etc.
▪ “SQL-as-a-service”: Amazon RDS, Microsoft SQL Azure, Google
Cloud SQL
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
8
12/03/2022
10 años a partir de ahora
▪ Los términos NoSQL y NewSQL ya no estarán allí
▪ El enfoque estará en cómo mapear problemas en
soluciones.
▪ Ya sea SQL, NoSQL, NewSQL, realmente aquello será
irrelevante
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
9
12/03/2022
Definición de Stonebraker
▪ SQL como interfaz principal
▪ Soporte ACID para transacciones
▪ Control de concurrencia sin bloqueo
▪ Alto rendimiento por nodo
▪ Arquitectura paralela sin nada compartido
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
10
12/03/2022
NoSQL vs. NewSQL
NoSQL
▪ Nueva generación de productos de
bases de datos no relacionales
▪ Rechazos de esquema de tabla fija y
operaciones de combinación
▪ Diseñado para cumplir con los
requisitos de escalabilidad de las
arquitecturas distribuidas
▪ y/o requisitos de gestión de datos sin
esquema
NewSQL
▪ Nueva generación de productos de
bases de datos relacionales
▪ Conservar SQL y ACID
▪ Diseñado para cumplir con los
requisitos de escalabilidad de las
arquitecturas distribuidas
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
11
12/03/2022
Teorema CAP
▪ Un sistema distribuido puede satisfacer dos pero no
tres de:
▪ Consistency – todos los nodos ven los mismos datos al
mismo tiempo
▪ Availability – cada solicitud recibe una respuesta ya sea
exitosa o fallida
▪ Partition tolerance – opera a pesar de la pérdida del
mensaje o falla de parte del sistema
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
12
12/03/2022
Scale
▪ Para lograr un alto rendimiento y consistencia
debemos:
▪ Scale in (escalar dentro) – ejecutar todas las
transacciones en la RAM (performance) en la misma
computadora (consistency)
▪ Scale up (escalar arriba)– obtenga un potente servidor
multi-core con mucha RAM(performance)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
13
12/03/2022
Cuellos de botella en las transacciones
(Transaction Bottlenecks)
▪ Lecturas/escrituras de disco
▪ Datos persistentes, registros de deshacer/rehacer
▪ Red de comunicacion
▪ Intra-Nodo, Cliente-Servidor
▪ Control de concurrencia
▪ Bloqueo(Locking), Enganche(Latching)
▪ Una transacción OLTP suele ser rápida, repetitiva y
pequeña.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
14
12/03/2022
Un sistema OLTP ideal
▪ Solo memoria principal(Main memory only)
▪ Sin sobrecarga multiprocesador(No multi-processor
overhead)
▪ Alta escalabilidad(High scalability)
▪ Alta disponibilidad(High availability)
▪ Configuración autonómica(Autonomic configuration)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
15
12/03/2022
Necesidades de NewSQL
(from Stonebraker)
▪ Necesita algo más que el bloqueo tradicional a nivel de
registro
▪ Timestamp order, MVCC
▪ Necesita una solución al buffer pool overhead
▪ Main memory, otras formas de reducer el buffer pool cost
▪ Necesita una solución para bloquear(latching)
estructuras de datos compartidos
▪ Uso innovativo de B-trees, Single-threading
▪ Necesita una solución para el log de escritura
anticipada (write-ahead logging)
▪ Replicación Built-in y failover proccess
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
16
12/03/2022
Control de concurrencia multiversión
▪ Escenario
▪ A está leyendo al mismo tiempo que B está escribiendo
▪ A puede ver un dato a medio-escribir o incoherente
▪ Lock/timestamp podría ser lento
▪ MVCC
▪ Cada usuario ve una instantánea en un momento determinado.
▪ Cualquier cambio realizado por un escritor no será visto por otros
hasta que se haya confirmado la transacción.
▪ Cuando la base de datos actualiza un elemento, marca los datos
antiguos como obsoletos y agrega la versión más nueva en otro
lugar.
▪ Por lo tanto, se almacenan varias versiones, pero solo una es la
más reciente.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
17
12/03/2022
Contenido
▪ Definición
▪ Sistemas
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
18
12/03/2022
Sistemas
▪ Aunque los sistemas de NewSQL varían mucho en sus
arquitecturas internas, sus dos señas de identidad
comunes son el apoyo al modelo de datos relacionales
y el uso de SQL como su interfaz principal.
▪ Uno de los sistemas NewSQL más conocidos es el H-
Store.
▪ Los sistemas NewSQL pueden ser agrupados en tres
categorías:
▪ Nuevas arquitecturas
▪ Motores de almacenamiento
▪ Protección transparente
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
19
12/03/2022
1)Nuevas arquitecturas
▪ El primer tipo de sistemas NewSQL son plataformas de
bases de datos completamente nuevas.
▪ Están diseñadas para funcionar en un clúster distribuido shared-
nothing, en el que cada nodo posee un subconjunto de los datos.
▪ Aunque en muchas de las nuevas bases de datos se han
usado diferentes enfoques de diseño, hay dos categorías
principales en evolución.
▪ El primer tipo envía la ejecución de transacciones y consultas a
los nodos que contienen los datos necesarios.
▪ Las consultas SQL se dividen en fragmentos y se envían a los
nodos, que son los que procesan y contienen los datos.
▪ Estas bases de datos son capaces de escalar linealmente a
medida que se agregan nodos adicionales.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
20
12/03/2022
1)Nuevas arquitecturas
▪ Bases de datos de uso general:
▪ Estas mantienen la funcionalidad completa de bases de
datos tradicionales y el manejo de todo tipo de consultas.
▪ Estas bases de datos se escriben a menudo a partir de cero
con una arquitectura distribuida en mente, e incluyen
componentes como el control distribuido de concurrencia, el
control de flujo, y el procesamiento de consultas distribuidas.
▪ Entre ellas están LeanXcale Google Spanner, Clustrix,
NuoDB,1213 y TransLattice.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
21
12/03/2022
1)Nuevas arquitecturas
▪ Base de datos en memoria:
▪ Las solicitudes dirigidas por estos sistemas NewSQL se
caracterizan por tener un gran número de transacciones de corta
duración (es decir, sin puestos de usuario), que tocan un
pequeño subconjunto de datos utilizando las búsquedas de
índice (es decir, no hay recorridos de tablas completos o grandes
joins distribuidos) y repetitivas (es decir, ejecutan las mismas
consultas con diferentes entradas).
▪ Estos sistemas NewSQL logran un alto rendimiento y
escalabilidad al evitar que gran parte de la arquitectura sea
heredada del diseño original del Sistema R, tales como los
algoritmos de recuperación o de control de concurrencia.
▪ Dos sistemas de ejemplo de esta categoría son VoltDB y
SQLFire de GoPivotal.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
22
12/03/2022
Sistema R
https://people.eecs.berkeley.edu/~brewer/cs262/SystemR.pdf
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
23
12/03/2022
2)Motores de almacenamiento (MySQL)
▪ La segunda categoría está optimizada como motor de
almacenamiento de SQL.
▪ Estos sistemas proporcionan la misma interfaz de
programación que MySQL, pero con mejor escala
incorporada en los motores, como InnoDB.
▪ Varios ejemplos de estos nuevos motores son:
TokuDB, MemSQL y Akiban
CREATE TABLE index_demo (
name VARCHAR(20) NOT NULL,
age INT,
pan_no VARCHAR(20),
phone_no VARCHAR(20)
)ENGINE=INNODB;
ENGINE=TOKUDB
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
24
12/03/2022
2)Motores de almacenamiento (MySQL)
▪ TokuDB
▪ Es un mecanismo de almacenamiento de MySQL y MariaDB
especialmente diseñado para conseguir altas prestaciones
con cargas de escritura elevadas.
▪ TokuDB ha jugado un importante papel en el movimiento Big
Data basado en MySQL
▪ Lo consigue vía indexación de árboles fractales, lo que se
basa en algoritmos de caché distraídos.
▪ Ya sabemos que…la mayoría de las bases de datos relacionales
usan índices para mejorar la velocidad de respuesta de las
instrucciones SQL.
▪ Los índices sirven para reducir significativamente la cantidad de
datos a examinar al ejecutar una consulta.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
25
12/03/2022
2)Motores de almacenamiento (MySQL)
▪ Índices basados en árboles binarios
▪ Los índices se implementan habitualmente con árboles binarios
(B-trees), una estructura de datos descrita por primera vez en
1970.
▪ La estructura de árbol binario permite operaciones como la
inserción de datos e iteraciones ordenadas, las funciones
primarias de un índice.
▪ Dependiendo de la carga y la implementación, la prestación de
los árboles binarios puede estar limitada por el acceso a disco.
▪ Adicionalmente, mientras las bases de datos jóvenes tienen un
buen comportamiento secuencial, éste se torna más complejo a
medida que la base de datos crece, dando lugar a más accesos
aleatorios y a la degradación de las prestaciones.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
26
12/03/2022
2)Motores de almacenamiento (MySQL)
▪ Índices fractales
▪ Implementan las mismas operaciones de un árbol binario, al que
reemplazan de manera automática.
▪ Estos sustituyen las operaciones de escritura pequeñas y frecuentes
con otras mayores y menos frecuentes.
▪ Esto permite mejorar el factor de compresión y la velocidad de
inserción.
▪ Los árboles fractales también permiten la inserción de mensajes en el
árbol de modo que cambios en el esquema -como la adición o
eliminación de una columna o índice- pueden realizarse on-line y en
segundo plano.
▪ Como resultado pueden mantenerse más índices sin degradación
de las prestaciones.
▪ Esto ocurre gracias a que mientras que la adición de datos a índices tiene alto
coste computacional tratándose de árboles binarios, resulta económica en
índices fractales.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
27
12/03/2022
3) Protección transparente
▪ Estos sistemas proporcionan una capa protectora
intermedia para dividir automáticamente las bases
de datos a través de múltiples nodos.
▪ Algunos ejemplos de este tipo de sistema son
dbShards, Scalearc, Scalebase y MySQL Cluster.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
28
12/03/2022
/
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
29
12/03/2022
NewSQL
Unidad 10
Final de la unidad
Y del curso…. !Muchas gracias
a todos!

Más contenido relacionado

La actualidad más candente

Introduccion datawarehouse
Introduccion datawarehouseIntroduccion datawarehouse
Introduccion datawarehouseEduardo Castro
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño Ikaolong
 
Enfoque estructurado enfoque oo
Enfoque estructurado   enfoque ooEnfoque estructurado   enfoque oo
Enfoque estructurado enfoque ookarlanm07
 
HISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSHISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSdfgdfgs
 
Fundamentos de base de datos 1a. unidad
Fundamentos de base de datos 1a. unidadFundamentos de base de datos 1a. unidad
Fundamentos de base de datos 1a. unidademilio_ambrosio
 
1 - Modelo Entidad Relacion
1 - Modelo Entidad Relacion1 - Modelo Entidad Relacion
1 - Modelo Entidad RelacionJuGGaLoFX
 
Enfoque estructurado y Enfoque OO - Ingenieria de software
Enfoque estructurado y Enfoque OO  - Ingenieria de softwareEnfoque estructurado y Enfoque OO  - Ingenieria de software
Enfoque estructurado y Enfoque OO - Ingenieria de softwareKola Real
 
Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooJosé Antonio Sandoval Acosta
 
Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualSergio Sanchez
 
Análisis de sistemas fases del diseño de sistemas
Análisis de sistemas fases del diseño de sistemasAnálisis de sistemas fases del diseño de sistemas
Análisis de sistemas fases del diseño de sistemasprofmyriamsanuy
 
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivosSO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivosFranklin Parrales Bravo
 
Conclusionessobrebasesdedatos1
Conclusionessobrebasesdedatos1Conclusionessobrebasesdedatos1
Conclusionessobrebasesdedatos1Daniela Diaz
 
Introduccion a la administracion de los procesos y el procesador (S.O)
Introduccion a la administracion de los procesos y el procesador (S.O)Introduccion a la administracion de los procesos y el procesador (S.O)
Introduccion a la administracion de los procesos y el procesador (S.O)Javier Alvarez
 
Archivos Y Procesamiento
Archivos Y ProcesamientoArchivos Y Procesamiento
Archivos Y Procesamientojorgeabustillo
 

La actualidad más candente (20)

Base de datos
Base de datos Base de datos
Base de datos
 
DB1 Unidad 6: Indices
DB1 Unidad 6: IndicesDB1 Unidad 6: Indices
DB1 Unidad 6: Indices
 
Introduccion datawarehouse
Introduccion datawarehouseIntroduccion datawarehouse
Introduccion datawarehouse
 
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
Enfoque estructurado enfoque oo
Enfoque estructurado   enfoque ooEnfoque estructurado   enfoque oo
Enfoque estructurado enfoque oo
 
HISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSHISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOS
 
Fundamentos de base de datos 1a. unidad
Fundamentos de base de datos 1a. unidadFundamentos de base de datos 1a. unidad
Fundamentos de base de datos 1a. unidad
 
1 - Modelo Entidad Relacion
1 - Modelo Entidad Relacion1 - Modelo Entidad Relacion
1 - Modelo Entidad Relacion
 
Enfoque estructurado y Enfoque OO - Ingenieria de software
Enfoque estructurado y Enfoque OO  - Ingenieria de softwareEnfoque estructurado y Enfoque OO  - Ingenieria de software
Enfoque estructurado y Enfoque OO - Ingenieria de software
 
DB1 Unidad 5: SQL Avanzado
DB1 Unidad 5: SQL AvanzadoDB1 Unidad 5: SQL Avanzado
DB1 Unidad 5: SQL Avanzado
 
Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma poo
 
Lenguaje SQL
Lenguaje SQLLenguaje SQL
Lenguaje SQL
 
Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos Conceptual
 
Análisis de sistemas fases del diseño de sistemas
Análisis de sistemas fases del diseño de sistemasAnálisis de sistemas fases del diseño de sistemas
Análisis de sistemas fases del diseño de sistemas
 
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivosSO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos
 
Conclusionessobrebasesdedatos1
Conclusionessobrebasesdedatos1Conclusionessobrebasesdedatos1
Conclusionessobrebasesdedatos1
 
Introduccion a la administracion de los procesos y el procesador (S.O)
Introduccion a la administracion de los procesos y el procesador (S.O)Introduccion a la administracion de los procesos y el procesador (S.O)
Introduccion a la administracion de los procesos y el procesador (S.O)
 
Sistema de Archivos
Sistema de ArchivosSistema de Archivos
Sistema de Archivos
 
Archivos Y Procesamiento
Archivos Y ProcesamientoArchivos Y Procesamiento
Archivos Y Procesamiento
 

Similar a DB1 Unidad 10: New SQL (20)

Base de datos
Base de datosBase de datos
Base de datos
 
Principales bases de datos existentes
Principales bases de datos existentesPrincipales bases de datos existentes
Principales bases de datos existentes
 
NoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradasNoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradas
 
DOCENTE
DOCENTEDOCENTE
DOCENTE
 
Vazquez diaz nelson_basede_datos
Vazquez diaz nelson_basede_datosVazquez diaz nelson_basede_datos
Vazquez diaz nelson_basede_datos
 
Cordova angelica basededatos
Cordova angelica basededatosCordova angelica basededatos
Cordova angelica basededatos
 
Principales bases de datos
Principales bases de datosPrincipales bases de datos
Principales bases de datos
 
Bases de datos por jesus j felix rodriguez lopez
Bases de datos por jesus j felix rodriguez lopezBases de datos por jesus j felix rodriguez lopez
Bases de datos por jesus j felix rodriguez lopez
 
Carmen rojas
Carmen rojasCarmen rojas
Carmen rojas
 
Alfredo reyes
Alfredo reyesAlfredo reyes
Alfredo reyes
 
Base de Datos
Base de DatosBase de Datos
Base de Datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Alfredo reyes
Alfredo reyesAlfredo reyes
Alfredo reyes
 
Alfredo reyes
Alfredo reyesAlfredo reyes
Alfredo reyes
 
Base de datos
Base de datosBase de datos
Base de datos
 
Paz perez carolina_basede_datos
Paz perez carolina_basede_datosPaz perez carolina_basede_datos
Paz perez carolina_basede_datos
 
Base de datos
Base de datos Base de datos
Base de datos
 
Base de datos ryjt
Base de datos ryjtBase de datos ryjt
Base de datos ryjt
 
MongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercadoMongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercado
 
Principales bases de datos
Principales bases de datosPrincipales bases de datos
Principales bases de datos
 

Más de Franklin Parrales Bravo

Presentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaPresentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaFranklin Parrales Bravo
 
IW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebIW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebFranklin Parrales Bravo
 
IW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaIW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaFranklin Parrales Bravo
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosFranklin Parrales Bravo
 
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebIW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebFranklin Parrales Bravo
 
AD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaAD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaFranklin Parrales Bravo
 
AD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasAD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasFranklin Parrales Bravo
 
EP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosEP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosFranklin Parrales Bravo
 
AD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosAD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosFranklin Parrales Bravo
 
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosAD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosFranklin Parrales Bravo
 
EP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosEP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosFranklin Parrales Bravo
 
EP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraEP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraFranklin Parrales Bravo
 
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareGCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareFranklin Parrales Bravo
 
GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software Franklin Parrales Bravo
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosFranklin Parrales Bravo
 
POO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosPOO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosFranklin Parrales Bravo
 
POO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosPOO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosFranklin Parrales Bravo
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosFranklin Parrales Bravo
 
RD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoRD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoFranklin Parrales Bravo
 

Más de Franklin Parrales Bravo (20)

Presentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaPresentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en Cuenca
 
IW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebIW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería Web
 
IW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaIW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicua
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelos
 
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modeladoMOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
 
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebIW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
 
AD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaAD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuida
 
AD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasAD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidas
 
EP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosEP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgos
 
AD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosAD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidos
 
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosAD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
 
EP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosEP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectos
 
EP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraEP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestra
 
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareGCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
 
GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivos
 
POO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosPOO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilos
 
POO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosPOO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a Objetos
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a Objetos
 
RD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoRD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y Enrutamiento
 

DB1 Unidad 10: New SQL

  • 1. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 1 12/03/2022 NewSQL Unidad 10 Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo para uso de los cursos de Bases de Datos
  • 2. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 2 12/03/2022 Objetivo general de la Unidad 10 Caracterizar la fundamentación teórica del NewSQL, mediante el análisis de sus características y diferencias con enfoques previos (NoSQL y SQL tradicional)
  • 3. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 3 12/03/2022 Contenido ▪ Definición ▪ Sistemas
  • 4. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 4 12/03/2022 ¿Qué es NewSQL? ▪ NewSQL es una clase de sistemas modernos de gestión de bases de datos relacionales que ▪ tratan de conseguir el mismo rendimiento escalable de sistemas NoSQL para el procesamiento de transacciones en línea (lectura-escritura) ▪ durante las cargas de trabajo mantienen las garantías ACID de un sistema de base de datos tradicional
  • 5. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 5 12/03/2022 OLTP: Tipos de consultas • Point Query SELECT balance FROM accounts WHERE number = 1023; • Multipoint Query SELECT balance FROM accounts WHERE branchnum = 100; • Range Query SELECT number FROM accounts WHERE balance > 10000; • Prefix Match Query SELECT * FROM employees WHERE name = ‘Jensen’ and firstname = ‘Carl’ and age < 30; Tablas están en BNF, derivados de entidades y relaciones
  • 6. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 6 12/03/2022 OLTP: Tipos de consultas • Extremal Query SELECT * FROM accounts WHERE balance = max(select balance from accounts) • Ordering Query SELECT * FROM accounts ORDER BY balance; • Grouping Query SELECT branchnum, avg(balance) FROM accounts GROUP BY branchnum; • Join Query SELECT distinct branch.adresse FROM accounts, branch WHERE accounts.branchnum = branch.number and accounts.balance > 10000;
  • 7. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 7 12/03/2022 NewSQL ▪ Al igual que NoSQL, es más un movimiento que un producto específico o incluso una familia de productos ▪ El "Nuevo" se refiere a los proveedores y no al SQL ▪ Objetivo(s): ▪ Llevar los beneficios del modelo relacional a las arquitecturas distribuidas, o, ▪ VoltDB, ScaleDB, etc. ▪ Mejorar el rendimiento de la base de datos relacional para que ya no requiera el escalado horizontal ▪ Tokutek, ScaleBase, etc. ▪ “SQL-as-a-service”: Amazon RDS, Microsoft SQL Azure, Google Cloud SQL
  • 8. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 8 12/03/2022 10 años a partir de ahora ▪ Los términos NoSQL y NewSQL ya no estarán allí ▪ El enfoque estará en cómo mapear problemas en soluciones. ▪ Ya sea SQL, NoSQL, NewSQL, realmente aquello será irrelevante
  • 9. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 9 12/03/2022 Definición de Stonebraker ▪ SQL como interfaz principal ▪ Soporte ACID para transacciones ▪ Control de concurrencia sin bloqueo ▪ Alto rendimiento por nodo ▪ Arquitectura paralela sin nada compartido
  • 10. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 10 12/03/2022 NoSQL vs. NewSQL NoSQL ▪ Nueva generación de productos de bases de datos no relacionales ▪ Rechazos de esquema de tabla fija y operaciones de combinación ▪ Diseñado para cumplir con los requisitos de escalabilidad de las arquitecturas distribuidas ▪ y/o requisitos de gestión de datos sin esquema NewSQL ▪ Nueva generación de productos de bases de datos relacionales ▪ Conservar SQL y ACID ▪ Diseñado para cumplir con los requisitos de escalabilidad de las arquitecturas distribuidas
  • 11. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 11 12/03/2022 Teorema CAP ▪ Un sistema distribuido puede satisfacer dos pero no tres de: ▪ Consistency – todos los nodos ven los mismos datos al mismo tiempo ▪ Availability – cada solicitud recibe una respuesta ya sea exitosa o fallida ▪ Partition tolerance – opera a pesar de la pérdida del mensaje o falla de parte del sistema
  • 12. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 12 12/03/2022 Scale ▪ Para lograr un alto rendimiento y consistencia debemos: ▪ Scale in (escalar dentro) – ejecutar todas las transacciones en la RAM (performance) en la misma computadora (consistency) ▪ Scale up (escalar arriba)– obtenga un potente servidor multi-core con mucha RAM(performance)
  • 13. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 13 12/03/2022 Cuellos de botella en las transacciones (Transaction Bottlenecks) ▪ Lecturas/escrituras de disco ▪ Datos persistentes, registros de deshacer/rehacer ▪ Red de comunicacion ▪ Intra-Nodo, Cliente-Servidor ▪ Control de concurrencia ▪ Bloqueo(Locking), Enganche(Latching) ▪ Una transacción OLTP suele ser rápida, repetitiva y pequeña.
  • 14. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 14 12/03/2022 Un sistema OLTP ideal ▪ Solo memoria principal(Main memory only) ▪ Sin sobrecarga multiprocesador(No multi-processor overhead) ▪ Alta escalabilidad(High scalability) ▪ Alta disponibilidad(High availability) ▪ Configuración autonómica(Autonomic configuration)
  • 15. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 15 12/03/2022 Necesidades de NewSQL (from Stonebraker) ▪ Necesita algo más que el bloqueo tradicional a nivel de registro ▪ Timestamp order, MVCC ▪ Necesita una solución al buffer pool overhead ▪ Main memory, otras formas de reducer el buffer pool cost ▪ Necesita una solución para bloquear(latching) estructuras de datos compartidos ▪ Uso innovativo de B-trees, Single-threading ▪ Necesita una solución para el log de escritura anticipada (write-ahead logging) ▪ Replicación Built-in y failover proccess
  • 16. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 16 12/03/2022 Control de concurrencia multiversión ▪ Escenario ▪ A está leyendo al mismo tiempo que B está escribiendo ▪ A puede ver un dato a medio-escribir o incoherente ▪ Lock/timestamp podría ser lento ▪ MVCC ▪ Cada usuario ve una instantánea en un momento determinado. ▪ Cualquier cambio realizado por un escritor no será visto por otros hasta que se haya confirmado la transacción. ▪ Cuando la base de datos actualiza un elemento, marca los datos antiguos como obsoletos y agrega la versión más nueva en otro lugar. ▪ Por lo tanto, se almacenan varias versiones, pero solo una es la más reciente.
  • 17. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 17 12/03/2022 Contenido ▪ Definición ▪ Sistemas
  • 18. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 18 12/03/2022 Sistemas ▪ Aunque los sistemas de NewSQL varían mucho en sus arquitecturas internas, sus dos señas de identidad comunes son el apoyo al modelo de datos relacionales y el uso de SQL como su interfaz principal. ▪ Uno de los sistemas NewSQL más conocidos es el H- Store. ▪ Los sistemas NewSQL pueden ser agrupados en tres categorías: ▪ Nuevas arquitecturas ▪ Motores de almacenamiento ▪ Protección transparente
  • 19. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 19 12/03/2022 1)Nuevas arquitecturas ▪ El primer tipo de sistemas NewSQL son plataformas de bases de datos completamente nuevas. ▪ Están diseñadas para funcionar en un clúster distribuido shared- nothing, en el que cada nodo posee un subconjunto de los datos. ▪ Aunque en muchas de las nuevas bases de datos se han usado diferentes enfoques de diseño, hay dos categorías principales en evolución. ▪ El primer tipo envía la ejecución de transacciones y consultas a los nodos que contienen los datos necesarios. ▪ Las consultas SQL se dividen en fragmentos y se envían a los nodos, que son los que procesan y contienen los datos. ▪ Estas bases de datos son capaces de escalar linealmente a medida que se agregan nodos adicionales.
  • 20. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 20 12/03/2022 1)Nuevas arquitecturas ▪ Bases de datos de uso general: ▪ Estas mantienen la funcionalidad completa de bases de datos tradicionales y el manejo de todo tipo de consultas. ▪ Estas bases de datos se escriben a menudo a partir de cero con una arquitectura distribuida en mente, e incluyen componentes como el control distribuido de concurrencia, el control de flujo, y el procesamiento de consultas distribuidas. ▪ Entre ellas están LeanXcale Google Spanner, Clustrix, NuoDB,1213 y TransLattice.
  • 21. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 21 12/03/2022 1)Nuevas arquitecturas ▪ Base de datos en memoria: ▪ Las solicitudes dirigidas por estos sistemas NewSQL se caracterizan por tener un gran número de transacciones de corta duración (es decir, sin puestos de usuario), que tocan un pequeño subconjunto de datos utilizando las búsquedas de índice (es decir, no hay recorridos de tablas completos o grandes joins distribuidos) y repetitivas (es decir, ejecutan las mismas consultas con diferentes entradas). ▪ Estos sistemas NewSQL logran un alto rendimiento y escalabilidad al evitar que gran parte de la arquitectura sea heredada del diseño original del Sistema R, tales como los algoritmos de recuperación o de control de concurrencia. ▪ Dos sistemas de ejemplo de esta categoría son VoltDB y SQLFire de GoPivotal.
  • 22. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 22 12/03/2022 Sistema R https://people.eecs.berkeley.edu/~brewer/cs262/SystemR.pdf
  • 23. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 23 12/03/2022 2)Motores de almacenamiento (MySQL) ▪ La segunda categoría está optimizada como motor de almacenamiento de SQL. ▪ Estos sistemas proporcionan la misma interfaz de programación que MySQL, pero con mejor escala incorporada en los motores, como InnoDB. ▪ Varios ejemplos de estos nuevos motores son: TokuDB, MemSQL y Akiban CREATE TABLE index_demo ( name VARCHAR(20) NOT NULL, age INT, pan_no VARCHAR(20), phone_no VARCHAR(20) )ENGINE=INNODB; ENGINE=TOKUDB
  • 24. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 24 12/03/2022 2)Motores de almacenamiento (MySQL) ▪ TokuDB ▪ Es un mecanismo de almacenamiento de MySQL y MariaDB especialmente diseñado para conseguir altas prestaciones con cargas de escritura elevadas. ▪ TokuDB ha jugado un importante papel en el movimiento Big Data basado en MySQL ▪ Lo consigue vía indexación de árboles fractales, lo que se basa en algoritmos de caché distraídos. ▪ Ya sabemos que…la mayoría de las bases de datos relacionales usan índices para mejorar la velocidad de respuesta de las instrucciones SQL. ▪ Los índices sirven para reducir significativamente la cantidad de datos a examinar al ejecutar una consulta.
  • 25. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 25 12/03/2022 2)Motores de almacenamiento (MySQL) ▪ Índices basados en árboles binarios ▪ Los índices se implementan habitualmente con árboles binarios (B-trees), una estructura de datos descrita por primera vez en 1970. ▪ La estructura de árbol binario permite operaciones como la inserción de datos e iteraciones ordenadas, las funciones primarias de un índice. ▪ Dependiendo de la carga y la implementación, la prestación de los árboles binarios puede estar limitada por el acceso a disco. ▪ Adicionalmente, mientras las bases de datos jóvenes tienen un buen comportamiento secuencial, éste se torna más complejo a medida que la base de datos crece, dando lugar a más accesos aleatorios y a la degradación de las prestaciones.
  • 26. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 26 12/03/2022 2)Motores de almacenamiento (MySQL) ▪ Índices fractales ▪ Implementan las mismas operaciones de un árbol binario, al que reemplazan de manera automática. ▪ Estos sustituyen las operaciones de escritura pequeñas y frecuentes con otras mayores y menos frecuentes. ▪ Esto permite mejorar el factor de compresión y la velocidad de inserción. ▪ Los árboles fractales también permiten la inserción de mensajes en el árbol de modo que cambios en el esquema -como la adición o eliminación de una columna o índice- pueden realizarse on-line y en segundo plano. ▪ Como resultado pueden mantenerse más índices sin degradación de las prestaciones. ▪ Esto ocurre gracias a que mientras que la adición de datos a índices tiene alto coste computacional tratándose de árboles binarios, resulta económica en índices fractales.
  • 27. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 27 12/03/2022 3) Protección transparente ▪ Estos sistemas proporcionan una capa protectora intermedia para dividir automáticamente las bases de datos a través de múltiples nodos. ▪ Algunos ejemplos de este tipo de sistema son dbShards, Scalearc, Scalebase y MySQL Cluster.
  • 28. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 28 12/03/2022 /
  • 29. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 29 12/03/2022 NewSQL Unidad 10 Final de la unidad Y del curso…. !Muchas gracias a todos!