0% encontró este documento útil (0 votos)
106 vistas165 páginas

Ventajas y Tipos de Bases NoSQL

Las bases de datos no relacionales permiten almacenar información cuando las bases de datos relacionales presentan problemas de escalabilidad y rendimiento ante miles de usuarios concurrentes y millones de consultas diarias, al usar estructuras que no requieren tablas relacionadas entre sí.

Cargado por

Jeff Cedeño
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
106 vistas165 páginas

Ventajas y Tipos de Bases NoSQL

Las bases de datos no relacionales permiten almacenar información cuando las bases de datos relacionales presentan problemas de escalabilidad y rendimiento ante miles de usuarios concurrentes y millones de consultas diarias, al usar estructuras que no requieren tablas relacionadas entre sí.

Cargado por

Jeff Cedeño
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

Base de datos No Relacional

“Hablar de bases de datos NoSQL es hablar de estructuras que nos permiten


almacenar información en aquellas situaciones en las que las bases de datos
relacionales generan ciertos problemas debido principalmente a problemas de
escalabilidad y rendimiento de las bases de datos relacionales donde se dan
cita miles de usuarios concurrentes y con millones de consultas diarias”.

Comentario del estudiante: las base de datos no relacionales son aquellas


cuyos datos no se guardan en tablas, sino en objetos planos y no están
relacionadas una tabla con otras, cabe recalcar que son mucho más rápidas que
las relacional.
https://medium.com/@marlonma
sql-vs-nosql-ventajas-y-desventajas-849ccc9
db3d4
VENTAJAS Y DESVENTAJAS

DESVENTAJAS

VENTAJAS
PRINCIPALES DIFERENCIAS
CON BASE DE DATOS
RELACIONAL

https://www.acens.com/wp-content/images/2014/02/bbdd-nosql-wp-acens.pdf
TIPOS DE BASE DE DATOS NO RELACIONAL

Base de datos clave-valor

Son las más popular, siendo la más


sencilla en cuanto a funcionalidad.
En este tipo de sistema, cada
elemento está identificado por una
llave única, lo que permite la
recuperación de la información de
forma rápida.
Se caracterizan por ser muy
eficientes tanto para las lecturas
como para las escrituras.

https://www.acens.com/wp-content/images/2
014/02/bbdd-nosql-wp-acens.pdf
BASE DE DATOS DOCUMENTALES
Almacena la información como
un documento,generalmente
utilizando para ello una
estructura simple como JSON
o XML donde utiliza una
clave única para cada
registro.
Permite realizar búsquedas
por clave-valor, realizar
consultas más avanzadas
sobre el contenido del
documento.
Son las más versátiles.

https://www.acens.com/wp-content/images/2
014/02/bbdd-nosql-wp-acens.pdf
BASE DE DATOS EN GRAFO
La información se representa
como nodos de un grafo y sus
relaciones con las aristas
del mismo, para sacar el
máximo rendimiento, su
estructura debe estar
totalmente normalizada, de
forma que cada tabla tenga
una sola columna y cada
relación dos.
Ofrece una navegación más
eficiente entre las
relaciones que en un modelo
relación
https://www.acens.com/wp-content/images/2
014/02/bbdd-nosql-wp-acens.pdf
BASE DE DATOS ORIENTADAS A OBJETOS

Se representa mediante
objetos, para la
administración de datos que
almacena tanto los datos
como los procedimientos que
actúan sobre ellos, como
objetos que se pueden
recuperar y compartir de
manera automática; los
objetos pueden contener
multimedia.

Sistemas de Información Gerencial. En Infraestructura de la tecnología de la información (p.224), por Laudon K., Laudon
J. (2016, Decimocuarta edición)
E
J
E
M
P
L
O
S
¿Qué es la Arquitectura?
Arquitectura es la organización fundamental de un sistema, donde se integran sus
componentes, se establecen las relaciones e interdependencias entre esos componentes y
su entorno y se establecen los principios para su diseño, gestión y evolución.

Diseño de Sistemas Distribuidos. En Parte 1 - Introducción a los Sistemas Distribuidos (p.7), por Martínez Gomáriz Enric.
(2010)
https://www.slideshare.net/antoniosoria585/arquitecturas-de-bases-de-datos-distribuidas-66039717
Arquitectura de las bases de datos

https://docs.google.com/document/d/1WSWPlIGuT0Acth7mnh5-MxfSjXRiWNQz9gmk-lubQvQ/mobilebasic?hl=en
MULTI BASE DE DATOS ARQUITECTURA DEL
SISTEMA
1. Un sistema multibase de datos distribuido soporta operaciones, en
múltiples sistemas de base de datos.
2. Cada SBD es manejado por un sistema manejador de base de datos
(SMBD).
3. Un SBDC en un SMulBD puede ser centralizado o distribuido
4. Puede residir en la misma computadora o en múltiples computadoras
conectadas por un subsistema de comunicación.

http://catarina.udlap.mx/u_dl_a/tales/documentos/msp/romero_m_m/capitulo1.pdf
DÉBILMENTE
Lorem Ipsum
ACOPLADAS

SISTEMAS DE BASE DE DATOS


Lorem Ipsum
FEDERADAS FEDERACIONES MÚLTIPLES
IpsumDE DATOS

FUERTEMENTE
Lorem Ipsum
ACOPLADAS
MULTIBASE

FEDERACIÓN SENCILLA
SISTEMASLorem

SISTEMAS DE BASE DE DATOS


Lorem Ipsum
NO-FEDERADAS

Sistemas Multibase de datos: http://catarina.udlap.mx/u_dl_a/tales/documentos/msp/romero_m_m/capitulo1.pdf


BASE DE DATOS NO-FEDERADAS
● Un sistema de base de datos no federado es una integración de SMBDs
componentes que no son autónomos.

● Un sistema de este tipo no distingue entre usuarios locales y usuarios


no-locales.

● Una particularidad extra de estos sistemas, es que todas las bases de


datos se integran para proveer un solo esquema global simple, llamado
SMulBD unificado.

Sistemas Multibase de datos: http://catarina.udlap.mx/u_dl_a/tales/documentos/msp/romero_m_m/capitulo1.pdf


BASE DE DATOS FEDERADAS
● Es un sistema en el que varias bases de datos
parecen funcionar como una sola entidad. Cada
componente de la base de datos en el sistema es
completamente auto-sostenido y funcional.

● El FDBS soporta operaciones globales y locales.


Las operaciones globales involucran el acceso a
datos haciendo uso del FDBS. Las operaciones
locales se realizan directamente sobre la BDC.

● Puede estar compuesta de una colección


heterogénea de bases de datos.

Base De Datos Federadas: .https://searchdatacenter.techtarget.com/es/consejo/Que-son-las-bases-de-datos-


federadas
BASE DE DATOS FEDERADAS DÉBILMENTE
ACOPLADAS
● Un SBDF es débilmente acoplado si la responsabilidad de crear y
mantener la federación recae en el usuario y no hay control por parte del
sistema federado y sus administradores.

● Otro requerimiento importante es que el usuario debe ser capaz de


formular manipulaciones multibase de datos no procedurales en la
ausencia de un esquema global.

http://catarina.udlap.mx/u_dl_a/tales/documentos/msp/romero_m_m/capitulo1.pdf
Ventajas de utilizar SGBDF débilmente acoplados:

• Dispone de gran flexibilidad para mapear diferentes semánticas de los mismos


objetos en distintos esquemas de exportación.

• Se tiene mayor facilidad para soportar la evolución de los componentes.

Desventajas de utilizar SGBDF débilmente acoplados:

• Resulta de gran dificultad la comprensión de grandes cantidades de esquemas de


exportación.

• Los esfuerzos para gestionar este tipo de sistema se duplican.

• Existen problemas para actualizar las vistas que utilizan los usuarios.
Arquitectura de referencia para un SGBDF
fuertemente acoplado

Ventajas:

• Capacidad de soportar actualizaciones.

• La interpretación de la semántica de los múltiples datos


integrados en el sistema federado es uniforme.

Desventajas:

• Debido a la libertad que disfrutan los administradores


globales se puede llegar a violar la autonomía que poseen
los sistemas componente.

• No soporta la evolución dinámica de los esquemas de


exportación o componentes.

https://modelosbd2012t1.wordpress.com/2012/03/15/bases-de-datos-fede
radas/?fbclid=IwAR1wAh7QN6tlwRGYFf-_sU1xz4Hg6Ok7h4FswxxOJ0rq
BASE DE DATOS BASE DE DATOS
FEDERADAS FEDERADAS
FUERTEMENTE FUERTEMENTE
ACOPLADAS ACOPLADAS
SENCILLAS MÚLTIPLES
Permite la creación y manejo de Permite la creación y manejo de
solamente un esquema federado múltiples federaciones

Ayuda a mantener la uniformidad en Provee localización, duplicación y


la interpretación semántica de los transparencia de distribución.
datos integrados
Sistemas Multibase de datos: http://catarina.udlap.mx/u_dl_a/tales/documentos/msp/romero_m_m/capitulo1.pdf
ARQUITECTURA DE 5 NIVELES POR SETH Y
LARSON
1. Esquema Local. Esquema
conceptual de los componentes.
2. Esquema Componente. Traslada el
esquema local en un modelo de datos.
3. Esquema de Exportación.
Representa un subconjunto de la
totalidad de los datos que contiene el
esquema componente.
4. Esquema Federado. Integración de
múltiples esquemas de exportación de
cada base de datos componente.
5. Esquema Externo. Representa una
vista hacia un usuario o conjunto de
usuarios determinado.

Sistemas Multibase de datos: https://modelosbd2012t1.wordpress.com/2012/03/15/bases-de-datos-federadas/


Arquitectura de 3 niveles (ANSI/SPARC)
1. Nivel Físico: compuesto por el
esquema interno, contiene las diferentes
bases de datos que forman la base de
datos federada.
2. Nivel Lógico: corresponde al esquema
conceptual, contiene el modelo global de
datos, es decir, el conjunto de datos
compartido por todas las bases de datos
componente.
3. Nivel Externo: representado por el
esquema externo, compuesto por las
diferentes vistas que poseen los
usuarios a los datos compartidos.

Sistemas Multibase de datos: https://modelosbd2012t1.wordpress.com/2012/03/15/bases-de-datos-federadas/


Distribución y creación de réplicas de los datos
“En un número cada vez mayor de sistemas de
computación se encuentran procesadores múltiples.
Cuando los procesadores están acoplados cercanos, es
posible compartir el almacenamiento de manera que los
datos puedan distribuirse. Los beneficios de tener
múltiples procesadores, desde el punto de vista de la
base de datos, son mayor capacidad de cómputo y de
respaldo en caso de que falle el procesador. Si se
requiere protección para el caso de fallas de dispositivo
de almacenamiento, será necesario crear una réplica de
lo almacenado. La creación de réplicas (o copias) es
común cuando los procesadores no están acoplados
cercanos”.
https://docs.microsoft.com/es-es/azure/cosmo
s-db/global-dist-under-the-hood

Diseño de Bases de Datos. En Evaluación general del sistema de archivo (p.311), por Wiederhold Gio. (1985, Segunda
edición)
Replicación de Base de Datos
Es el proceso de copiar y mantener objetos
de bases de datos como tablas, triggers,
índices, programas en múltiples base de
datos que constituyen una base de datos
distribuida.
Los cambios aplicados en un sitio son
almacenados localmente para
posteriormente ser enviados y aplicados al
sitio remoto.
https://drive.google.com/file/d/1a6E512vhV6gP1bLF0zN8nT2uBL
wA3tel/view?usp=sharing

https://www.monografias.com/trabajos81/distribucion-replicacion-oracle/distribucion-replicacion-oracle2.shtml
Diferencias en la Distribución y la Replicación

Las razones para replicar una BD, incluyen disponibilidad, Rendimiento,


Computación desconectada, Reducción de Carga en la red, entre otras.

https://drive.google.com/file/d/1UOTB-5FdJ5yL9D5_D4aRWICt8IgJOQQD/view?usp=sharing
Alternativas para la implementación de SMBD

En la Figura se presentan
las diferentes dimensiones
(factores) que se deben
considerar para la
implementación de un
sistema manejador de
base de datos. Las
dimensiones son tres:

https://lihectortorres.files.wordpress.com/2010/09/base_de_datos_distribuidas.pdf
Dimensiones a considerar al integrar múltiples bases de
datos

https://lihectortorres.files.wordpress.com/2010/09/base_de_datos_distribuidas.pdf
https://drive.google.com/file/d/1-0y0g9dXlEi3pqq2WZzsHB0aQ9oL6khE/view?usp=sharing
SMBDD homogéneo

https://1drv.ms/u/s!AqedHu63r2pKkXxUWFQXUilOX1bX
Arquitectura de un SMBDD homogéneo.

http://repositorio.utn.edu.ec/bitstream/123456789/522/6/04%20ISC%20151%20CAPITULO%20IV.pdf
Replicación
Taller replicación Merge(Bidireccional)
https://1drv.ms/b/s!AqedHu63r2pKkhsfY9_aj5fxlgI6

https://docs.microsoft.com/es-es/sql/relational-databases/replication/transactional/transactional-replication?view=sql-server-2017
https://mm.tt/1288963014?t=G4rVNGXT2c
SMBDD heterogéneo

https://1drv.ms/u/s!AqedHu63r2pKkXxUWFQXUilOX1bX
Arquitectura de un SMBDD
heterogéneo

https://lihectortorres.files.wordpress.com/2010/09/base_de_datos_distribuidas.pdf
Consiste en dos partes como son: el
procesador de datos y el Procesador de
usuario.

https://lihectortorres.files.wordpress.com/2010/09/base_de_datos_distribuidas.pdf
Consta de un sistema de manejo de
bases datos para usuarios globales y
usuarios locales.

https://lihectortorres.files.wordpress.com/2010/09/base_de_datos_distribuidas.pdf
Manejo del directorio de datos en bases de datos distribuidas .

El manejo de directorio de datos es de una importancia mayor en bases de datos distribuidas. Por un lado, puede haber directorios locales o un solo
directorio global. Por otra parte, su manejo puede ser local o distribuido. Finalmente, desde otro punto de vista el directorio puede ser replicado o no
replicado, existen combinaciones, en estas tres dimensiones, que no tienen mayor relevancia. Sin embargo, en varios de los vértices del cubo en tres
dimensiones aparecen las combinaciones importantes para bases de datos distribuidas.

https://lihectortorres.files.wordpress.com/2010/09/base_de_datos_distribuidas.pdf
Arquitectura de Aplicaciones
“La mayoría de usuarios de un sistema de
bases de datos no están situados actualmente
junto al sistema de bases de datos, sino que
se conectan a él a través de una red. Se
puede diferenciar entonces entre las máquinas
cliente, en donde trabajan los usuarios
remotos de la base de datos, y las máquinas
servidor, en las que se ejecuta el sistema de
bases de datos”.

“Las aplicaciones de bases de datos se


dividen usualmente en dos o tres partes”.

“Los estándares de interfaces de programas


de aplicación como ODBC y JDBC se usan
para la interacción entre el cliente y el
servidor.
FUNDAMENTOS DE BASES DE DATOS. En capítulo 1 - Introducción (p.12), por Silberschatz, Korth, Sudarshan. (2002,
Cuarta edición)
Estándares de Interfaces de Programas de Aplicación

Configuración de los estándares

IBM. (31/07/2013) Información general sobre ODBC, JDBC y OLE DB. IBM Knowledge Center. Recuperado de:
https://www.ibm.com/support/knowledgecenter/es/SSULQD_7.1.0/com.ibm.nz.datacon.doc/c_datacon_introduction.html
ODBC
“La norma ODBC (Open Database Connectivity, Conectividad abierta de
bases de datos) define una forma para que un programa de aplicación se
comunique con un servidor de bases de datos. ODBC define una interfaz
para programas de aplicación (API, Application Program Interface) que
pueden usar las aplicaciones para abrir una conexión con una base de
datos, enviar consultas y actualizaciones y obtener resultados.”

Código de ejemplo
subido en GITHUB

FUNDAMENTOS DE BASES DE DATOS. En capítulo 4 - SQL (p.111), por Silberschatz, Korth, Sudarshan. (2002, Cuarta
edición)
ARQUITECTURA ODBC

IBM. (31/07/2013) Arquitectura ODBC y JDBC. IBM Knowledge Center. Recuperado de:
https://www.ibm.com/support/knowledgecenter/es/SSULQD_7.1.0/com.ibm.nz.datacon.doc/c_datacon_architecture.html
OLE DB
OLE DB se ha diseñado como sustituto de alto nivel para ODBC para dar
soporte a una variedad más amplia de bases de datos no relacionales que
no implementan SQL necesariamente (por ejemplo, bases de datos de
objeto y hojas de cálculo). OLE tiene un modelo cliente-servidor, donde los
clientes solicitan acceder a los datos y los servidores son las interfaces de
componente de software que permiten el acceso a los datos.

Información
sobre Ole DB

IBM. (31/07/2013) Información general sobre ODBC, JDBC y OLE DB. IBM Knowledge Center. Recuperado de:
https://www.ibm.com/support/knowledgecenter/es/SSULQD_7.1.0/com.ibm.nz.datacon.doc/c_datacon_introduction.html
JDBC
“La norma JDBC define una API que pueden usar los programas Java para
conectarse a los servidores de bases de datos (la palabra JDBC fue
originalmente abreviatura de <<Java Database Connectivity>> -Conectividad
de bases de datos con Java- pero la forma completa ya no se usa”.

Código de ejemplo
subido en GITHUB

FUNDAMENTOS DE BASES DE DATOS. En capítulo 4 - SQL (p.112), por Silberschatz, Korth, Sudarshan. (2002, Cuarta
edición)
ARQUITECTURA JDBC

IBM. (31/07/2013) Arquitectura ODBC y JDBC. IBM Knowledge Center. Recuperado de:
https://www.ibm.com/support/knowledgecenter/es/SSULQD_7.1.0/com.ibm.nz.datacon.doc/c_datacon_architecture.html
Arquitectura de 3 capas
“En una arquitectura de tres capas, la máquina cliente actúa simplemente
como frontal y no contiene ninguna llamada directa a la base de datos. En
su lugar, el cliente se comunica con un servidor de aplicaciones,
usualmente mediante una interfaz de formularios. El servidor de
aplicaciones, a su vez, se comunica con el sistema de bases de datos para
acceder a los datos. La lógica del negocio de la aplicación, que establece
las acciones a realizar bajo determinadas condiciones, se incorpora en el
servidor de aplicaciones, en lugar de ser distribuida en múltiples clientes.
Las aplicaciones de tres capas son más apropiadas para grandes
aplicaciones, y para las aplicaciones que se ejecutan en World Wide Web.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 1 - Introducción (p.12), por Silberschatz, Korth, Sudarshan. (2002,
Cuarta edición)
● Capa 1: Presentación
e interacción con el
usuario.

● Capa 2: Gestiona la
lógica empresarial de
la aplicación y puede
acceder a los
servicios del tercer
nivel.

● Capa 3: Servicios
requeridos.

IBM (28/10/2014). Arquitectura de tres niveles. IBM Knowledge Center. Recuperado de:
https://www.ibm.com/support/knowledgecenter/es/SSAW57_8.5.5/com.ibm.websphere.nd.multiplatform.doc/ae/covr_3-tier.html
DISEÑO DE UNA BASE DE DATOS

Hunter, A. (s.f). Diseño de BDD. El problema del diseño. Academia. Recuperado de:
https://www.academia.edu/29647240/UNIDAD_III_DISE%C3%91O_DE_BDD_3.1_El_problema_de_dise%C3%B1o
ENFOQUES DEL DISEÑO DE UNA
BASE DE DATOS Esta es adecuada cuando creamos un
sistema de BD por vez primera sin
restricciones de otros sistemas ya
instalados y que deban ser integrados al
sistema distribuido, es decir,Primero
elaboramos el esquema conceptual
global del proyecto y trabajamos en
función de resolver las diferentes partes
de dicho proyecto.

Requiere de la selección de un modelo


de bases de datos común para describir
el esquema global de la base de datos. Es
posible que se utilicen diferentes SGBD.
Después se hace la traducción de cada
esquema local en el modelo de datos
común y finalmente se hace la
integración del esquema local en un
esquema global común.

Hunter, A. (s.f). Diseño de BDD. El problema del diseño. Academia. Recuperado de:
https://www.academia.edu/29647240/UNIDAD_III_DISE%C3%91O_DE_BDD_3.1_El_problema_de_dise%C3%B1o
Fragmentación de los datos

Si la relación r se fragmenta en varios fragmentos r1,r2,..., rn. Estos


fragmentos contienen suficiente información como para permitir la
reconstrucción de la relación original r. Hay dos esquemas diferentes de
fragmentación de las relaciones: fragmentación horizontal y
fragmentación vertical. La fragmentación horizontal divide la relación
asignando cada tupla de r en uno o más fragmentos. La fragmentación
vertical divide la relación descomponiendo el esquema R de la relación
r.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 19 - Bases de Datos Distribuidas (p.464), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
TIPOS DE FRAGMENTACIÓN

CASO PRÁCTICO: Fragmentación


vertical, horizontal y mixta

Archivo.- Pasos para crear, conectar y r


ealizar la fragmentación horizontal, verti
cal y mixta.

Chinchilla Arley, R.(s.f). Fragmentación de datos en bases de datos distribuidas. Tecnología en Marcha. Vol 16 N° 4.
Fragmentación Horizontal Fragmentación vertical Fragmentación Mixta

● La fragmentación horizontal se realiza


● La fragmentación vertical ha sido ● La forma más simple de construir
sobre las tuplas de la relación. Cada
estudiada principalmente dentro del fragmentación mixta consiste en
fragmento será un subconjunto de las
contexto de los sistemas de manejo de aplicar fragmentación horizontal a
tuplas de la relación. Existen dos
bases de datos centralizados como fragmentos verticales, o aplicar
variantes de la fragmentación
una herramienta de diseño, la cual fragmentación vertical a fragmentos
horizontal: la primaria y la derivada. La
permite que las consultas de usuario horizontales.
fragmentación horizontal primaria de
traten con relaciones más pequeñas ● Aunque se pueden generar árboles de
una relación se desarrolla empleando
haciendo, por tanto, un número menor fragmentación muy complejos,
los predicados definidos en esa
de accesos a páginas. Es más normalmente debe ser suficiente con
relación. Por el contrario, la
complicada que el particionamiento dos niveles.
fragmentación horizontal derivada
horizontal, ya que existe un gran
consiste en dividir una relación
número de alternativas para realizarla.
partiendo de los predicados definidos
sobre alguna otra.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 19 - Bases de Datos Distribuidas (p.464), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Centralizada

La distribución centralizada es muy similar al


modelo cliente/servidor, en el sentido que los
datos están centralizados en un único lugar y
los nodos están distribuidos. Este modelo
solo tiene la ventaja de tener el
procesamiento distribuido a efectos de
consultas y actualizaciones, pero en el
sentido de disponibilidad y fiabilidad de los
datos no se gana nada.

San, Martín González, Enrique. Salvaguarda y seguridad de los datos: administración de bases de datos (UF1473), IC Editorial, 2014. ProQuest Ebook
Central, http://ebookcentral.proquest.com/lib/uleamecsp/detail.action?docID=4184153.
Características.

● Se almacena completamente en una localidad central.


● No posee múltiples elementos de procesamiento ni mecanismos de intercomunicación como las
bases de datos distribuidas.
● Los componentes de las bases de datos centralizadas son: los datos, el software de gestión de
bases de datos y los dispositivos de almacenamiento secundario asociados.

Jose. D, blogspot.com, Arquitectura centralizada


Ventajas y Desventajas Se evita la redundancia.

Se evita la inconsistencia
Ventajas
El procesamiento de los datos
ofrece un mejor rendimiento

Si el sistema de base de datos falla, se pierde


la disponibilidad y procesamiento de la
información que posee el sistema
Desventajas
Las cargas de trabajo no se pueden difundir
entre varias computadoras

Jose. D, blogspot.com, Arquitectura centralizada


¿Cuando utilizar bdd centralizada?

Aquellas compañías o negocios que requieran registrar reservas tales como aerolíneas o en el caso de
un hotel, esto con tal de evitar que exista una doble reserva.
Replicadas

Copia y mantiene los objetos de las bases de datos en las múltiples bases de datos que levantan un
sistema distribuido.

San, Martín González, Enrique. Salvaguarda y seguridad de los datos: administración de bases de datos (UF1473), IC Editorial, 2014. ProQuest Ebook
Central, http://ebookcentral.proquest.com/lib/uleamecsp/detail.action?docID=4184153.
Ventajas

1. Aumento de la fiabilidad: mediante la replicación de base de datos a través de múltiples servidores, te aseguras
que los datos van a estar disponibles incluso en el caso de que una de las máquinas tenga un fallo grave de
hardware.
2. Mejora en el rendimiento: al estar los datos distribuidos en diferentes servidores, los múltiples accesos no saturan
los servidores
3. Mejora en la seguridad de los datos: en un sistema transaccional tradicional, todas las actualizaciones de una
base de datos se guardan en un mismo disco. La seguridad de tus datos queda entonces en manos de la estrategia
de copias de seguridad que tengas implementada en ese servidor.

PowerData, Beneficio de una base de datos Replicada, Junio 2017.


Técnicas de replicación

Replicación pasiva. - para la tolerancia a fallos nos encontramos con un nodo primario y un conjunto de
nodos secundarios. En este caso el cliente envía la petición al nodo primario el cual eventualmente
actualiza su copia y envía la actualización de manera síncrona a los secundarios. Estos, a su vez,
envían un mensaje de ACK al primario cuando han actualizado su copia.

Replicación activa. - la petición de un cliente se envía a todas las réplicas las cuales la tratan de forma
concurrente. En este caso el cliente se sincroniza con la primera respuesta que obtiene y desecha las
posteriores.

MediumCorporation, Edu Salgero, Sistemas Distribuidos replicacados, Marzo 2018.


Particionadas o fragmentadas.

Este modelo consiste en que solo hay una copia de cada elemento, pero la información está distribuida a
través de los nodos.

San, Martín González, Enrique. Salvaguarda y seguridad de los datos: administración de bases de datos (UF1473), IC Editorial, 2014. ProQuest Ebook
Central, http://ebookcentral.proquest.com/lib/uleamecsp/detail.action?docID=4184153.
Híbrida

Las bases de datos híbridas combinan características de las bases de datos relacionales y las bases
de datos orientadas a objetos. Manejan datos textuales y datos binarios, a los cuales se extienden las
posibilidades de consulta. Es una tecnología reciente y aún existen pocas en el mercado.

CASO PRÁCTICO: Bases de datos


híbrida

Archivo.- Crear una base de datos


híbrida

J Fernández, JC Giraldo Metodología para la construcción de un migrador universal de bases de datos, Dyna, 2011.
https://www.redalyc.org/pdf/496/49622372028.pdf
Base de datos relacional

Una base de datos relacional es aquella donde la información


se pueden almacenar en relaciones, dichas relaciones se
representan en forma de tablas.

JMP Gómez .Bases de datos relacionales y modelos de datos, 2013 - books.google.com.


Definición de seguridad
“El término seguridad se emplea para describir la
protección contra la destrucción de los sistemas y
su contenido”.

“Si se desea asegurar una base de datos, es


necesario lograr un modo de operación confiable y
predecible; también es necesario proporcionar un
mecanismo de protección para lograr el control
deseado de los accesos a los datos. Por último es
necesario asegurarse de que no se presentará
interferencia destructiva cuando múltiples usuarios
compartan el acceso a la base de datos.”

Diseño de bases de datos. En Capítulo 11 - Métodos para lograr confiabilidad (p.641), por Wiederhold Gio. (1985,
Segunda edición)
Violaciones de la seguridad
Los datos guardados en la base de datos deben estar protegidos contra los
accesos no autorizados, de la destrucción o alteración malintencionadas
además de la introducción accidental de inconsistencias que evitan las
restricciones de integridad.

Entre las formas de acceso malintencionado se encuentran:

- La lectura no autorizada de los datos (robo de información).


- La modificación no autorizada de los datos.
- La destrucción no autorizada de los datos.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 6 - Integridad y seguridad (p.149), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Autorizaciones
Los usuarios pueden tener varios tipos de autorización para diferentes
partes de la base de datos. Entre ellas están las siguientes.

- La autorización de lectura permite la lectura de los datos, pero no su


modificación.
- La autorización de inserción permite la inserción de datos nuevos,
pero no la modificación de los existentes.
- La autorización de actualización permite la modificación de los datos,
pero no su borrado.
- La autorización de borrado permite el borrado de los datos.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 6 - Integridad y seguridad (p.150), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Esquemas, catálogos y entornos
“Los sistemas de bases de datos actuales
proporcionan una jerarquía de tres niveles
para denominar a las relaciones. El nivel
superior de la jerarquía consiste en
catálogos, cada uno de los cuales puede
contener esquemas. Los objetos SQL
tales como las relaciones y las vistas
están contenidos en un esquema”.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 4 - SQL (p.114), por Silberschatz, Korth, Sudarshan. (2002, Cuarta
edición)
Autorizaciones para modificar el esquema de base de
datos
Los usuarios pueden recibir autorización para modificar el esquema de la
base de datos.

- La autorización de índices, permite la creación y borrado de índices.


- La autorización de recursos permite la creación de relaciones nuevas.
- La autorización de alteración permite el añadido o el borrado de
atributos de las relaciones.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 6 - Integridad y seguridad (p.150), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Autorizaciones y vistas
“Una vista puede ocultar los datos que un
usuario no necesita ver. La capacidad de
las vistas para ocultar datos sirve para
simplificar el uso del sistema y para
mejorar la seguridad. El uso del sistema
se simplifica porque se permite al usuario
restringir su atención a los datos de
interés”.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 6 - Integridad y seguridad (p.150), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
El privilegio de conceder privilegios
Un usuario o papel al que se le concede un privilegio no está autorizado de manera predeterminada a
concederselo a otro usuarios o papeles. Si se desea conceder un privilegio a un usuario y permitirle que
lo transmita a otros usuarios hay que añadir la cláusula with grant option a la orden grant
correspondiente. Por ejemplo, si se desea conceder U1 el privilegio select sobre sucursal y que pueda
transmitirlo a otros, hay que escribir.

grant select on sucursal to U1 with grant option

Para retirar una autorización se utiliza la instrucción revoke. Adopta una forma casi idéntica a la de grant:

revoke<lista de privilegios> on <nombre de relación o de vista> from <lista de usuarios o papeles> [restrict|
cascade]

Por tanto, para retirar los privilegios que se han concedido con anterioridad hay que escribir.

revoke select on sucursal from U1,U2,U3


revoke update (importe) on préstamo from U1,U2,U3
revoke references (nombre-sucursal) on sucursal from U1

FUNDAMENTOS DE BASES DE DATOS. En capítulo 6 - Integridad y seguridad (p.154), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
El cifrado
“El cifrado es una operación
criptográfica reversible que
transforma datos significativos sin
proteger, conocidos como texto
sin formato, en datos ilegibles,
cifrados, conocido como texto
cifrado, utilizando una clave
llamada clave de cifrado.”

Consideraciones para el uso de cifrado en las bases de datos:


https://revista.seguridad.unam.mx/numero22/consideraciones-para-el-uso-de-cifrado-en-las-bases-de-datos
Base de datos cifrada
Esto dependerá del gestor de bases de
datos que se esté utilizando, esto se
define al momento de crear la base de
datos y posteriormente se trabajará con
dicha BD de manera normal.
Ejemplos de gestores de BD que
permiten esto son: MySQL y SQL Server.

Consideraciones para el uso de cifrado en las bases de datos:


https://revista.seguridad.unam.mx/numero22/consideraciones-para-el-uso-de-cifrado-en-las-bases-de-datos
Backups o respaldo

Una forma de mantener segura


nuestra base de datos junto con
sus datos es la creación de un
respaldo, un respaldo es una
copia de la base de datos a
usarse en el caso de que nuestra
base de datos se vea afectada
por diversos tipos de factores.

Definición propia
Imagen: https://blogs.msdn.microsoft.com/luispanzano/2011/06/26/backup-para-sql-azure/
Cuando una base de datos se encuentra en múltiples servidores y distribuye a un número determinado de nodos

Transformaciones equivalentes
Métodos Arquitectura

PROCESAMIENTO DISTRIBUIDO
DE CONSULTAS
Reuniones-Join

En los sistemas distribuidos hay que tener en cuenta:

El coste de la La ganancia
transmisión de los Replicación y potencial en
datos por la red fragmentación rendimiento

FUNDAMENTOS DE BASES DE DATOS. En capítulo 19 - Bases de Datos Distribuidas (p.480), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Transformaciones de consultas

Considérese una consulta extremadamente sencilla: “Hallar todas las


tuplas de la relación cuenta.

Si la relación con la que se esté trabajando está replicada se tiene que


elegir la réplica, si las réplicas no se han dividido, se escoge aquélla para
la que el coste de transmisión sea mínimo. Sin embargo, si alguna réplica
se ha dividido, la elección no resulta tan sencilla, ya que hay que calcular
varias reuniones o uniones para reconstruir la relación cuenta.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 19 - Bases de Datos Distribuidas (p.480), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Relación: cuenta

cuenta1 cuenta2

La transparencia de la fragmentación implica que los usuarios pueden escribir una consulta como:

SELECT * FROM cuenta WHERE nombre_sucursal = Manta;

FUNDAMENTOS DE BASES DE DATOS. En capítulo 19 - Bases de Datos Distribuidas (p.480), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Procesamiento de reuniones sencillas

Una decisión importante en la selección de una estrategia de


procesamiento de consultas es la estrategia de reunión.

Ninguna estrategia es siempre la mejor, por esta razón se debe tomar


en cuenta el volúmen de datos que se va a enviar, el coste de
transmisión de los bloques de datos entre los pares de sitios y la
velocidad relativa de procesamiento que tiene cada sitio.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 19 - Bases de Datos Distribuidas (p.481), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Enviar
Sitio 1 copia

Enviar
copia
Sitio 2 SITIO DE CONSULTA

Enviar
copia

Sitio 3
SITIO DE CONSULTA
Sitio 1

Enviar
copia

Calcular
Sitio 2

ar
n vi
E

Calcular
Sitio 3
Estrategia de semirreunión (Semi-Join)
El procesamiento de consultas distribuidas mediante la operación de
semirreunión se basa en la idea de reducir el número de tuplas de una
relación antes de transferirla a otro sitio.

Esta estrategia resulta muy útil cuando pocas tuplas de una relación
contribuyen a la operación “join”. Generalmente esto ocurre cuando la
relación con la que se realiza el join es el resultado de un select. De
esta manera existiría un ahorro de costes al no tener que enviar toda
la relación al sitio que solicitó la consulta.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 19 - Bases de Datos Distribuidas (p.481), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Estrategia de semirreunión (Semi-Join)

FUNDAMENTOS DE BASES DE DATOS. En capítulo 19 - Bases de Datos Distribuidas (p.481), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Estrategia de semirreunión (Semi-Join)

https://mariadb.com/kb/it/semi-join-subquery-optimizations/
Estrategia de reunión que aprovechan el paralelismo
paralelismo
El paralelismo en consultas se refiere a la ejecución en paralelo de una única consulta en
varios procesadores y discos interviniendo por rangos basados en un atributo .

FUNDAMENTOS DE BASES DE DATOS. En capítulo 19 - Bases de Datos Distribuidas (p.482), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Estrategia de reunión que aprovechan el paralelismo
una estrategia de consulta basada en paralelismo se basa en hacer
paralelas las consultas , haciendo paralelas las operaciones que esta
contiene.
como fuente de paralelismo para la evaluación de las consultas está el árbol
de operadores de las consultas, el cual puede contener varias operaciones ,
estas evaluaciones del árbol de operadores se pueden hacer paralelos
evaluando en paralelos algunas de las operaciones que no tengan ninguna
dependencia entre sí. Además puede que se logre encauzar el resultado de
una operación hacia otra.
Las dos operaciones pueden ejecutarse en paralelo en procesadores separados,
uno que genere el resultado que consuma el otro, incluso simultáneamente con
su generación.
FUNDAMENTOS DE BASES DE DATOS. En capítulo 19 - Bases de Datos Distribuidas (p.482), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Estrategia de reunión que aprovechan el paralelismo

Paralelismo en operaciones. Se
Paralelismo entre
puede acelerar el procesamiento de
operaciones. Se puede acelerar
consultas haciendo paralela la
el procesamiento de consultas
ejecución de cada una de las
ejecutando en paralelo las
operaciones individualmente, como
diferentes operaciones de las
puede ser la ordenación, la selección,
expresiones de las consultas.
la proyección y la reunión. (order,
este se trabaja desde un solo
select, from where, join). o también
select
se puede trabajar mediante varios
select.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 19 - Bases de Datos Distribuidas (p.482), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Estrategia de reunión que aprovechan el paralelismo

FUNDAMENTOS DE BASES DE DATOS. En capítulo 19 - Bases de Datos Distribuidas (p.482), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Características de los Procesadores de consultas
Tipo de optimización

El problema de optimización de consultas es altamente demandante en tiempo de


ejecución y, en el caso general, es un problema de la clase NP.
Existen dos estrategias para su solución: búsqueda exhaustiva o el uso de heurísticas.

Granularidad de la
optimización
Existen dos alternativas: considerar sólo una consulta a la vez o tratar de optimizar
múltiples consultas.
Tiempo de la
optimización

Una consulta puede ser optimizada en tiempos diferentes con relación a tiempo de
ejecución de la consulta.
¿Qué es la multitarea?

Las multitareas se refieren a la


multiprogramación en los
sistemas operativos individuales,
como los que se usan en las
microcomputadoras.
Una persona puede ejecutar dos
o más programas en una sola
computadora.

Administración de los sistemas de información. En Capítulo 7 - El Software de los sistemas de información (p.229), por
Laudon K., Laudon J. (1996, Tercera edición)
Procesamiento de consultas
El procesamiento de consultas hace referencia a la serie de actividades
implicadas en la extracción de datos de una base de datos. Estas
actividades incluyen la traducción de consultas expresadas en lenguajes de
bases de datos de alto nivel en expresiones implementadas en el nivel físico
del sistema, así como transformaciones de optimización de consultas y
evaluación real de las mismas.

Los pasos básicos del procesamiento de consultas son:

- Análisis y traducción.
- Optimización.
- Evaluación.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 13 - Procesamiento de consultas (p.319), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Procesamiento de consultas

Consulta Analizador Expresión del


y traductor álgebra relacional

Optimizador

Resultado de Motor de
la consulta evaluación Plan de ejecución

Pasos en el procesamiento
de una consulta Datos Estadísticas de
los datos
FUNDAMENTOS DE BASES DE DATOS. En capítulo 13 - Procesamiento de consultas (p.319), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Medidas de coste de una consulta
El coste de la evaluación de una consulta se puede expresar en términos de
diferentes recursos, incluyendo los accesos a disco, el tiempo de UCP en
ejecutar una consulta y, en sistemas de bases de datos distribuidos o
paralelos, el coste de la comunicación. De esta manera para medir el coste
del disco se usan los MB/s tanto de escritura como de lectura, en el caso del
procesador se toma en cuenta la velocidad de reloj, la cual se mide en GHz
y finalmente el coste de comunicación va enfocado al ancho de banda que
por lo general es medido en Mbps.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 13 - Procesamiento de consultas (p.321), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
ARQUITECTURA DEL PROCESAMIENTO DE
CONSULTAS
El procesamiento de consultas tiene como objetivo principal transformar una consulta escrita en un
lenguaje de alto nivel, como puede ser SQL, en una estrategia de ejecución correcta y eficiente expresada
en un lenguaje de bajo nivel, como puede ser el álgebra relacional, y ejecutar la estrategia para extraer
los datos requeridos.

Medina, T. (23 de Abril de 2013). Bases de datos distribuidas. Recuperado el 22 de Julio de 2019, de
http://basesdedatosatope.blogspot.de/2013/04/bases-de-datos-distribuidas.html
Descomposición Optimización

Procesamiento de
consultas

Generación de código Ejecución

Medina, T. (23 de Abril de 2013). Bases de datos distribuidas. Recuperado el 22 de Julio de 2019, de
http://basesdedatosatope.blogspot.de/2013/04/bases-de-datos-distribuidas.html
● La descomposición de consultas transforma una consulta de alto nivel en una consulta de
álgebra relacional y comprueba que dicha consulta sea sintáctica y semánticamente
correcta.

● La fase de optimización de una consulta tiene por objeto generar el plan de ejecución para
la consulta a partir del programa algebraico generado en la fase de descomposición anterior.

● La generación de código consiste en la fase donde un compilador convierte un programa


sintácticamente correcto en una serie de instrucciones a ser interpretadas por una máquina.

● La fase de ejecución es la fase en la que ejecutamos las instrucciones, donde ”las llevamos
a cabo”.

Medina, T. (23 de Abril de 2013). Bases de datos distribuidas. Recuperado el 22 de Julio de 2019, de
http://basesdedatosatope.blogspot.de/2013/04/bases-de-datos-distribuidas.html
Descomposición de consultas
En la descomposición de consultas, la primera parte se encarga de descomponer una consulta en
cálculo relacional, en una consulta en álgebra relacional que opera sobre relaciones globales.
Consta de cinco partes:

2- Normalización
1- Análisis

Descomposición
de Consultas

3- Análisis Semántico
5- Reestructuración

4- Simplificación
Marqués, M. (22 de Enero de 2009). Departamento de Ingeniería y Ciencia de la Computación. Recuperado el
23 de Julio de 2019, de http://www3.uji.es/~mmarques/apuntes_bbdd/apuntes.pdf
Ventajas:
Las ventajas de utilizar la descomposición de consultas:
● Favorecer la naturaleza distribuida de muchas aplicaciones, no
solamente a nivel local sino incluso en diferentes lugares.
● Mejorar el rendimiento de las consultas a través de la utilización de
algoritmos eficientes
● Reducir el número de transacciones ejecutándose por sitio.
● Descomposición de consultas en subconsultas que pueden ejecutarse
en paralelo.
● Aumento de la fiabilidad y la disponibilidad de los datos.
● La autonomía de estos sistemas es alta.

M, T. (22 de Enero de 2014). Descomposición de Consultas. Recuperado el 22 de Julio del 2019, de


http://profesores.fi-b.unam.mx/pilarang/docencia/Notas-BDDistribuidas.pdf
Desventajas:
● Las desventajas de utilizar la descomposición de consultas son:
● Hay una menor seguridad en cuanto al control de acceso a los datos: control de
réplicas y errores que puedan producirse en la red.
● Excesivos costos en el intento de conseguir la transparencia mencionada
anteriormente.
● Falta de estándares y de experiencia en estos modelos avanzados de BD.
● No se puede garantizar al 100 % el rendimiento y la fiabilidad

M, T. (22 de Enero de 2014). Descomposición de Consultas. Recuperado el 22 de Julio del 2019, de


http://profesores.fi-b.unam.mx/pilarang/docencia/Notas-BDDistribuidas.pdf
Optimización Global de Consultas
El objetivo de esta capa es hallar una estrategia de ejecución para la consulta cercana a la óptima. La
estrategia de ejecución para una consulta distribuida puede ser descrita con los operadores del álgebra
relacional y con primitivas de comunicación para transferir datos entre nodos. Para encontrar una buena
transformación se consideran las características de los fragmentos, tales como, sus cardinalidades. Un
aspecto importante de la optimización de consultas es el ordenamiento de juntas, dado que algunas
permutaciones de juntas dentro de la consulta pueden conducir a un mejoramiento de varios órdenes de
magnitud. La salida de la capa de optimización global es una consulta algebraica optimizada con operación
de comunicación incluidas sobre los fragmentos.

M, T. (22 de Enero de 2014). Descomposición de Consultas. Recuperado el 24 de Julio de 2017, de


http://profesores.fi-b.unam.mx/pilarang/docencia/Notas-BDDistribuidas.pdf
Optimización Local de Consultas
El trabajo de la última capa se efectúa en todos los nodos con fragmentos involucrados
en la consulta. Cada subconsulta que se ejecuta en un nodo, llamada consulta local, es
optimizada usando el esquema local del nodo. Hasta este momento, se pueden eligen los
algoritmos para realizar las operaciones relacionales.

M, T. (22 de Enero de 2014). Descomposición de Consultas. Recuperado el 24 de Julio de 2017, de


http://profesores.fi-b.unam.mx/pilarang/docencia/Notas-BDDistribuidas.pdf
https://mm.tt/1291528480?t=JgDqj4XFv1
Reducción de Expresiones
Con la simplificación de expresiones se pretende reducir la complejidad de
la consulta que escribe el usuario utilizando, fundamentalmente,
equivalencias o leyes lógicas basadas en el Álgebra de Boole, Leyes de
Morgan, tales como:

Departamento de Lenguajes y Sistemas Informáticos E.T.S. Ingeniería Informática. Universidad de Sevilla. Diseño de
bases de datos. 2005
http://www.lsi.us.es/docencia/get.php?id=1473
Ejemplo:
Teniendo en cuenta la siguiente expresión sql

La condición (WHERE condición) puede reexpresarse como :

la consulta es equivalente
a la expresión simplificada:

Solución mediante
álgebra booleana
Algebra relacional en Base de
Datos
El álgebra relacional tiende a ser considerado como una
parte integral del modelo de datos relacional

Sus operaciones pueden dividirse en 2 grupos

operaciones unarias operaciones binarias

SELECCIÓN (SELECT) UNIÓN (UNION)


PROYECCIÓN (PROJECT) INTERSECCIÓN (INTERSECTION)
CONCATENACIÓN o COMBINACIÓN (JOIN) DIFERENCIA DE CONJUNTOS (SET DIFFERENCE)
PRODUCTO CARTESIANO (CARTESIAN PRODUCT)

FUNDAMENTOS DE BASES DE DATOS. En capítulo 6 - Álgebra relacional y cálculos relacionales (p.145), por Rames
Elmasri, Shamkant V. Navathe (2007, Quinta edición)
Selección
Existen numerosas opciones a la hora de ejecutar una
operación SELECT; algunas dependen de las rutas de acceso
específicas al fichero y quizá sólo se apliquen a determinados
tipos de condiciones de selección. En esta sección veremos
algunos de los algoritmos para la implementación de SELECT

Ejemplo:

FUNDAMENTOS DE BASES DE DATOS. En capítulo 15 - Algoritmos para procesamiento y optimización de consultas


(p.468), por Rames Elmasri, Shamkant V. Navathe (2007, Quinta edición)
Búsqueda Lineal.- Extraer todos los registros del fichero y comprobar si sus
S1 valores de atributos satisfacen la condición de selección

Búsqueda Binaria.- Si la condición de selección implica una comparación de


S2 igualdad sobre un atributo clave con el que está ordenado el fichero se puede
utilizar la búsqueda binaria, que es más eficaz que la búsqueda lineal.

Utilización de un índice primario (o clave hash o clave de dispersión).- Si la


condición de selección implica una comparación de igualdad sobre un atributo
S3 clave con un índice primario, se utilizará el índice primario (o clave hash)
para encontrar el registro. Con esta condición se extrae un único registro.

Métodos de búsqueda
Utilización de un índice primario para encontrar varios registros.- Si la
en SELECTION Simple condición de comparación es >, >, <, o < sobre un campo clave con un índice
S4 primario, se utilizará el índice para encontrar el registro que satisfaga la
correspondiente condición de igualdad

Utilización de un índice agrupado para encontrar varios registros.- Si la


condición de selección implica una comparación de igualdad sobre un atributo
S5 que no es clave mediante un índice agrupado, se utilizará el índice para extraer
todos los registros que cumplan la condición.

Utilización de un índice secundario (árbol B) sobre una comparación de


igualdad.- Este método de búsqueda se puede utilizar para extraer un único
S6 registro si el campo indexado es una clave (tiene valores únicos) o para extraer
varios registros si el campo.
Selección conjuntiva utilizando un índice individual.- Si un atributo implicado
en cualquier condición simple y única de la condición conjuntiva tiene una ruta
de acceso que permite el uso de uno de los métodos S2 a S6, se utilizará esa
S7 condición para extraer los registros y, posteriormente, comprobar si cada
registro extraído satisface las condiciones simples restantes de la condición
conjuntiva

Selección conjuntiva utilizando un índice compuesto.- Si dos o más atributos


Métodos de búsqueda están implicados en condiciones de igualdad de la condición conjuntiva y existe
en SELECTION S8 un índice compuesto (o estructura hash) sobre los campos combinados,
compleja podemos utilizar el índice directamente.

Selección conjuntiva mediante intersección de punteros a registros.6 Si se


encuentran disponibles índices secundarios (u otras rutas de acceso) sobre
más de uno de los campos implicados en condiciones simples de la condición
S9 conjuntiva, y si los índices incluyen punteros a registros (en lugar de
punteros a bloques) entonces se puede utilizar cada uno de los índices para
extraer el conjunto de punteros a registros que satisfacen la condición
individual.
JOIN
es una de las operaciones que más tiempo consumen durante el
procesamiento de una consulta. Muchas de las operaciones de
concatenación que se pueden encontrar en las consultas son de
los tipos EQUIJOIN y NATURAL JOIN.

Ejemplo:

FUNDAMENTOS DE BASES DE DATOS. En capítulo 15 - Algoritmos para procesamiento y optimización de consultas


(p.470), por Rames Elmasri, Shamkant V. Navathe (2007, Quinta edición)
Concatenación de bucle anidado (fuerza bruta).- Para cada registro t de R
J1 (bucle externo), obtiene todos los registros s de S (bucle interno) y comprueba
si los dos registros satisfacen la condición de concatenación t [A] = s[B]

Concatenación de bucle simple (utilizando una estructura de acceso para


obtener los registros que cumplen la condición).- Si existe un índice (o clave
hash) para uno de los atributos de la concatenación (por ejemplo, B de S),
J2 obtiene todos los registros t de R, uno a la vez (bucle simple), y a continuación
utiliza la estructura de acceso para obtener directamente todos los registros s
Métodos de búsqueda de S que cumplen s[B] = t [A].
en Concatenaciones
Concatenación de ordenación-mezcla.- Si los registros de R y S se encuentran
físicamente clasificados (ordenados) por el valor de los atributos de
concatenación A y B respectivamente, podemos implementar la concatenación
J3 del modo más eficiente posible. Ambos ficheros serán explorados
concurrentemente siguiendo el orden de los atributos de concatenación y
emparejando los registros que tienen los mismos valores para A y B.

Concatenación de dispersión (hash). Los registros de los ficheros R y S se


encuentran clasificados en el mismo fichero de dispersión, utilizando la
J4 misma función de dispersión sobre los atributos A
de R y B de S como claves de dispersión

FUNDAMENTOS DE BASES DE DATOS. En capítulo 15 - Algoritmos para procesamiento y optimización de consultas


(p.471), por Rames Elmasri, Shamkant V. Navathe (2007, Quinta edición)
Definición de Transacciones en SQL
“Una transacción se define como un programa que modifica el estado de la base de datos
de manera que, si el estado inicial de dicha base de datos era correcto y la transacción no
introduce un error debido a una falla o a datos incorrectos de entrada, el estado de la base
de datos vuelve a ser correcto después de que la transacción haya concluido con éxito. Si
la transacción no concluye adecuadamente ninguno de sus efectos deberá ser visible en la
base de datos”

En la norma SQL se especifica el comienzo de una transacción


explícitamente. Las transacciones se terminan con una de las instrucciones
SQL siguientes:

- Commit work compromete la transacción actual y comienza una


nueva.
- Rollback work provoca que la transacción actual aborte.
FUNDAMENTOS DE BASES DE DATOS. En capítulo 15 - Transacciones (p.378), por Silberschatz, Korth, Sudarshan.
(2002, Cuarta edición)
Transacciones Distribuidas
Hay dos tipos de transacciones que se deben considerar. Las
transacciones locales son las que tienen acceso a los datos y los
actualizan sólo en una base de datos local; las transacciones globales
son las que tienen acceso a datos y los actualizan en varias bases de
datos locales.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 19 - Bases de Datos Distribuidas (p.466), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Asegurar la integridad de datos
Para asegurar la integridad de los datos se necesita que el sistema de base de datos
mantenga las siguientes propiedades de las transacciones.

Atomicidad.- O todas las operaciones de la transacción se realizan adecuadamente en la


base de datos o ninguna de ellas.

Consistencia.- La ejecución aislada de la transacción (es decir, sin otra transacción que se
ejecute concurrentemente) conserva la consistencia de la base de datos.

Aislamiento.- Aunque se ejecuten varias transacciones concurrentemente, el sistema


garantiza que para cada par de transacciones T i y Tj, se cumple que para los efectos Ti, o
bien que Tj ha comenzado su ejecución después de que T i termine. De este modo, cada
transacción ignora al resto de las transacciones que se ejecuten concurrentemente en el
sistema.

Durabilidad.- Tras la finalización con éxito de una transacción, los cambios realizados en la
base de datos permanecen, incluso si hay fallos en el sistema.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 15 - Transacciones (p.368), por Silberschatz, Korth, Sudarshan.
(2002, Cuarta edición)
Terminación con éxito de una transacción
Es necesario precisar qué se entiende por terminación con éxito de una transacción. Se
establece por tanto un modelo simple abstracto de transacción. Una transacción debe estar
en uno de los estados siguientes.

Activa, el estado inicial; la transacción permanece en este estado durante su ejecución.

Parcialmente comprometida, después de ejecutarse la última transacción.

Fallida, tras descubrir que no puede continuar la ejecución normal.

Abortada, después de haber retrocedido la transacción y restablecido la base de datos a su


estado anterior al comienzo de una transacción.

Comprometida, tras completarse con éxito.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 15 - Transacciones (p.369), por Silberschatz, Korth, Sudarshan.
(2002, Cuarta edición)
Transición estados de una transacción

FUNDAMENTOS DE DISEÑO DE BASES DE DATOS. En capítulo 13 - Transacciones (p.437), por Silberschatz, Korth,
Sudarshan. (2007, Quinta edición)
ÁREAS DE APLICACIÓN
❖ Las transacciones se pueden ejecutar en aplicaciones no
distribuidas.
❖ Las transacciones que operan en datos distribuidos se les
conoce como transacciones distribuidas.
❖ Por otro lado, dado que los resultados de una transacción que
realiza un commit son durables, la única forma de deshacer los
efectos de una transacción con commit es mediante otra
transacción. A este tipo de transacciones se les conoce como
transacciones compensatorias.

TÒPICOS DE BASE DE DATOS - 1.5. Manejo de transacciones - por Díaz Domínguez Genaro
https://topicdb.wordpress.com/1-5-manejo-de-transacciones/
TIPOS DE TRANSACCIONES
❖ Finalmente, en ambientes heterogéneos se presentan
transacciones heterogéneas sobre los datos.

FUNDAMENTOS DE DISEÑO DE BASES DE DATOS. En capítulo 24.6- Gestión de Transacciones, por Silberschatz,
Korth, Sudarshan. (2007, Quinta edición)
TIEMPO DE DURACIÓN
Tomando en cuenta el tiempo que transcurre desde que se inicia una
transacción hasta que se realiza un commit o se aborta, las transacciones
pueden ser de tipo batch o en línea. Estas se pueden diferenciar también
como transacciones de corta y larga vida.
Las transacciones en línea se caracterizan por tiempos de respuesta muy
cortos y por accesar un porción relativamente pequeña de la base de
datos.
Por otro lado, las transacciones de tipo batch toman tiempos
relativamente largos y accesan grandes porciones de la base de datos.

TÒPICOS DE BASE DE DATOS - 1.5. Manejo de transacciones - por Díaz Domínguez Genaro
https://topicdb.wordpress.com/1-5-manejo-de-transacciones/
ESTRUCTURA
La estructura que puede tener una
ESTRUCTURA DE TRANSACCIONES transacción se examinan dos
aspectos: si una transacción
puede contener a su vez
subtransacciones o el orden de las
consisten de acciones de lectura y escritura
TRANSACCIONES ANIDADAS:
una secuencia dentro de una transacción.
de operaciones
EJEMPLO: primitivas
TRANSACCIONES PLANAS:
encerradas
si el padre de una entre las consisten de una secuencia de
o varias palabras clave operaciones primitivas encerradas
transacciones begin y end. entre las palabras clave begin y end.
aborta, las
subtransacciones
restricciones obvias en una
hijas también
transacción anidada: debe EJEMPLO:
serán abortadas. empezar después que su
padre y debe terminar antes
que él.
TÒPICOS DE BASE DE DATOS - 1.5. Manejo de transacciones - por Díaz Domínguez Genaro
https://topicdb.wordpress.com/1-5-manejo-de-transacciones/
Concurrencia

ADMINISTRACIÓN DE BASES DE DATOS. En capítulo 5 - Concurrencia de transacciones (p93), por Mercy Ospina
(2018,)
Control de concurrencia

Si no se hace un adecuado control de concurrencia, se pueden presentar dos anomalías.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 24 - Procesamiento avanzado de transacciones (p.600), por


Silberschatz, Korth, Sudarshan. (2002, Cuarta edición)
FUNDAMENTOS DE BASES DE DATOS. http://virtual.umng.edu.co (2017)
Control de concurrencia en Oracle
El control de concurrencia multiversión de Oracle
difiere de los mecanismos de concurrencia
utilizados por la mayoría de los fabricantes de bases
de datos.

Para las consultas de solo lectura se proporcionan


instantáneas consistentes en lectura, que son
vistas de la base de datos tal como existía en un
cierto momento, conteniendo todas las
actualizaciones que se comprometieron hasta ese
momento y no el resto.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 25 - Oracle (p.624), por Silberschatz, Korth, Sudarshan. (2002,
Cuarta edición)
Ejemplo de ROLLBACK

https://www.google.com/search?q=ejemplo+de+rollback+oracle&source=lnms&tbm=isch&sa=X&ved=0ahUKEwiXmaDep8_jAhVux1kKHXRwDI
wQ_AUIESgB&biw=1242&bih=568#imgrc=wqW9Xmm0qLy_8M:
BLOQUEOS EN ORACLE
➢ Oracle provee concurrencia e integridad de datos entre
transacciones concurrentes a través de bloqueos.
➢ Como los mecanismos de control de concurrencia de Oracle
están ligados a mecanismos de bloqueos, Oracle
proporciona y administra automáticamente mecanismos del
bloqueo.
➢ En Oracle existen bloqueos implícitos para las
sentencias SQL, así los usuarios (casi) no necesitan
bloquear explícitamente los datos.
➢ Estos mecanismos automáticos ocurren al más bajo nivel
de restrictividad (a nivel de filas garantizando
integridad de datos y alta concurrencia.)

https://www.fdi.ucm.es/profesor/fernan/DBD/apuntestema07.pdf
SERIALIZACIÓN DE TRANSACCIONES
Consiste en asegurarse que los cambios siguen un orden adecuado.
También llamado una historia se define un conjunto de transacciones I=
{T1,T2, TN} y especifican orden entrelazada de la ejecución de las
operaciones de las transacciones. La canderilizacion puede ser
especificada como una orden parcial sobre T.

En bases de datos distribuidos es necesario considerar dos tipos de historia para


poder generar calendarizaciones serializables: la calendarización de la ejecución de
transacciones globales serán serializables se deben satisfacer las siguientes
condiciones:
• Cada historia local debe ser serializable.
• Dos operaciones en conflicto deben estar en el mismo orden relativo en todas las
historias locales donde las operaciones aparecen juntas.

https://www.fdi.ucm.es/profesor/fernan/DBD/apuntestema07.pdf
Taxonomía de los mecanismos de Control de
concurrencias
El criterio de clasificación más
común de los algoritmos de control
de concurrencia es el tipo de
primitiva de sincronización.

Pesimista: sincronizan la
ejecución concurrente de las
transacciones en su etapa inicial
de su ciclo de ejecución.

Optimista: retrasan la
sincronización de las transacciones
hasta su terminación

PROCESAMIENTO DE BASE DE DATOS: FUNDAMENTOS, DISEÑO E IMPLEMENTACIÓN. En capítulo 11 - (p.305),


por David M. Kroenke. (2003)
Algoritmos basados en candados
En los algoritmos basados en candados, las transacciones
indican sus intenciones solicitando candados al despachador.
Los candados son de lectura (rl), también llamados compartidos,
o de escritura (wl), también llamados exclusivos.

Existen diversos enfoques para complementar el gestor de bloqueos, cada uno de ellos
con ventaja y desventaja se describen a continuación los principales enfoques. Gestión
único de bloqueo.-

El sistema conserva un único de bloqueos que reside en un único emplazamiento a modo


de todas las solicitudes de bloqueo y desbloqueos se realizan sobre él. Cada transacción
solicita a esta localidad los bloqueos que necesita y luego, en caso de lectura. La misma
se realiza sobre cualquier copia, si es una escritura se debe resolver sobre todas las
copias.
PROCESAMIENTO DE BASE DE DATOS: FUNDAMENTOS, DISEÑO E IMPLEMENTACIÓN. En capítulo 11 - (p.305),
por David M. Kroenke. (2003)
Algoritmos basados en estampas de tiempo.
En un sistema distribuido, cada transacción debe tener una estampa de tiempo única
para usar en la decisión del orden de seriabilidad.

Una estampa de tiempo es un identificador simple que sirve para identificar cada
transacción de manera única.

Otra propiedad de las estampas de tiempo es la monotonicidad, esto es, dos estampas
de tiempo generadas por el mismo administrador de transacciones deben ser
monotónicamente crecientes.

PROCESAMIENTO DE BASE DE DATOS: FUNDAMENTOS, DISEÑO E IMPLEMENTACIÓN. En capítulo 15 BASADOS


EN ESTAMPAS DE TIEMPO - (p.96), por David M. Kroenke. (2003)
Algoritmos basados en estampas de tiempo.
Los algoritmos basados en estampas de tiempo no pretenden mantener la
seriabilidad por exclusión mutua.
En lugar de eso, ellos seleccionan un orden de serialización a prioridad y
ejecutan las transacciones, de acuerdo a ellas.

Para establecer este ordenamiento, el administrador de transacciones le asigna


a cada transacción T1 una estampa de tiempo única t1 (T1) cuando ésta inicia.

PROCESAMIENTO DE BASE DE DATOS: FUNDAMENTOS, DISEÑO E IMPLEMENTACIÓN. En capítulo 11 - (p.330),


por David M. Kroenke. (2003)
Algoritmos basados en estampas de tiempo.
El administrador de transacciones El ordenamiento de estampas de tiempo (TO) se realiza
asigna también una estampa de mediante la siguiente regla:
tiempo a todas las operaciones
solicitadas por una transacción. ● Dadas dos operaciones en conflicto, Oij y Okl,
Más aún, a cada elemento de perteneciendo a las transacciones Ti y Tk,
datos x se le asigna una estampa respectivamente, Oij es ejecutada antes de Okl, si
de tiempo de escritura, wts(x), y y solamente si, ts ( Ti ) < ts ( Tk ). En este caso Ti
una estampa de tiempo de lectura, se dice ser un transacción más vieja y Tk se dice
rts(x). ser una transacción más joven .

http://martinezprosperobdd.blogspot.com/2012/11/control-de-concurrencia.html
Definición de vistas
“Las vistas se definen utilizando la instrucción create view. Para definir una
vista hay que darle un nombre e indicar la consulta que la va a calcular. La
forma de la instrucción create view es.

create view v as <expresión de consulta>

Donde <expresión de consulta> es cualquier expresión legal de consulta del


álgebra relacional. el nombre de la vista se representa mediante v.”

FUNDAMENTOS DE BASES DE DATOS. En capítulo 3 - El Modelo Relacional (p.73), por Silberschatz, Korth, Sudarshan.
(2002, Cuarta edición)
“Si una relación de vistas se calcula y se guarda, puede quedar desfasada si
las relaciones utilizadas para definirla se modifican”...

“Cuando se define una vista, el sistema de la base de datos guarda la


definición de la propia vista, en vez del resultado de la evaluación de la
expresión del álgebra relacional que la define”.
Vistas Materializadas
“Algunos sistemas de bases de datos permiten que se guarden las
relaciones de vistas, pero se aseguran de que, si las relaciones reales
utilizadas en la definición de la vista cambian, la vista se mantenga
actualizada”...
“El proceso de mantener actualizada la vista se denomina mantenimiento
de vistas”..
FUNDAMENTOS DE BASES DE DATOS. En capítulo 3 - El Modelo Relacional (p.73), por Silberschatz, Korth, Sudarshan.
(2002, Cuarta edición)
Mantenimiento de las vistas
Un problema con las vistas materializadas es que hay que mantenerlas
actualizadas cuando se modifican los datos empleados en la definición de la
vista. Por ejemplo, se se actualiza el valor importe de un préstamo, la vista
materializada se vuelve inconsistente con los datos subyacentes y hay que
actualizarla. La tarea de mantener actualizada una vista materializada con
los datos subyacentes se denomina mantenimiento de la vista.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 14 - Optimización de consultas (p.359), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Administración deVistas
- Creación o modificación de vistas con CREATE VIEW o ALTER VIEW
- Eliminación de vistas con DROP VIEW
- Obtención de información de definición de una vista con SHOW
CREATE VIEW

Vistas Avanzadas
.Vistas Estáticas.- Pueden contener datos de tablas y las columnas necesarias de
estas tablas se deben especificar con cláusulas SELECT y WHERE.
•Vistas Dinámicas.- Pueden contener datos de una o dos tablas e incluir
automáticamente todas las columnas de la tabla o tablas especificadas.

https://slideplayer.es/slide/152251/
Definición de seguridad
“El término seguridad se emplea para describir la protección contra la
destrucción de los sistemas y su contenido”.

“Si se desea asegurar una base de datos, es necesario lograr un modo


de operación confiable y predecible; también es necesario proporcionar
un mecanismo de protección para lograr el control deseado de los
accesos a los datos. Por último es necesario asegurarse de que no se
presentará interferencia destructiva cuando múltiples usuarios
compartan el acceso a la base de datos.”

Diseño de bases de datos. En Capítulo 11 - Métodos para lograr confiabilidad (p.641), por Wiederhold Gio. (1985,
Segunda edición)
Violaciones de la seguridad
Los datos guardados en la base de datos deben estar protegidos contra los
accesos no autorizados, de la destrucción o alteración malintencionadas
además de la introducción accidental de inconsistencias que evitan las
restricciones de integridad.

Entre las formas de acceso malintencionado se encuentran:

- La lectura no autorizada de los datos (robo de información).


- La modificación no autorizada de los datos.
- La destrucción no autorizada de los datos.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 6 - Integridad y seguridad (p.149), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Autorizaciones
Los usuarios pueden tener varios tipos de autorización para diferentes
partes de la base de datos. Entre ellas están las siguientes.

- La autorización de lectura permite la lectura de los datos, pero no su


modificación.
- La autorización de inserción permite la inserción de datos nuevos,
pero no la modificación de los existentes.
- La autorización de actualización permite la modificación de los datos,
pero no su borrado.
- La autorización de borrado permite el borrado de los datos.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 6 - Integridad y seguridad (p.150), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Autorizaciones para modificar el esquema de base de
datos
Los usuarios pueden recibir autorización para modificar el esquema de la
base de datos.

- La autorización de índices, permite la creación y borrado de índices.


- La autorización de recursos permite la creación de relaciones nuevas.
- La autorización de alteración permite el añadido o el borrado de
atributos de las relaciones.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 6 - Integridad y seguridad (p.150), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
El privilegio de conceder privilegios
Un usuario o papel al que se le concede un privilegio no está autorizado de manera predeterminada a
concederselo a otro usuarios o papeles. Si se desea conceder un privilegio a un usuario y permitirle que
lo transmita a otros usuarios hay que añadir la cláusula with grant option a la orden grant
correspondiente. Por ejemplo, si se desea conceder U1 el privilegio select sobre sucursal y que pueda
transmitirlo a otros, hay que escribir.

grant select on sucursal to U1 with grant option

Para retirar una autorización se utiliza la instrucción revoke. Adopta una forma casi idéntica a la de grant:

revoke<lista de privilegios> on <nombre de relación o de vista> from <lista de usuarios o papeles> [restrict|
cascade]

Por tanto, para retirar los privilegios que se han concedido con anterioridad hay que escribir.

revoke select on sucursal from U1,U2,U3


revoke update (importe) on préstamo from U1,U2,U3
revoke references (nombre-sucursal) on sucursal from U1

FUNDAMENTOS DE BASES DE DATOS. En capítulo 6 - Integridad y seguridad (p.154), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Integridad de la Base de Datos
Cuando hablamos de integridad en base de datos nos estamos refiriendo a la completitud, la
exactitud y la coherencia del conjunto de datos de una base de datos. Podemos tener una
percepción de esta integridad en base de datos cuando vemos que entre dos instancias o entre
dos actualizaciones de un registro de datos, no hay ninguna alteración, lo que significa que los
datos están intactos y sin cambios.

La importancia de la seguridad e integridad en base de datos:https://blog.powerdata.es/el-valor-de-la-gestion-de-datos/la-


importancia-de-la-seguridad-e-integridad-en-base-de-datos
Tipos de ataques a la integridad en base de datos
Está claro que el riesgo implícito en este tipo de acciones
maliciosas varía de una organización a otra, aunque entre
los ataques más comunes se encuentran los que tienen
como objetivo:
● Datos personales de clientes, números de tarjetas
de crédito y seguridad social.
● Detalles estratégicos del negocio.
● Información financiera de la propia compañía y de
sus socios.
● Datos sensibles acerca de los empleados.

La importancia de la seguridad e integridad en base de datos:https://blog.powerdata.es/el-valor-de-la-gestion-de-datos/la-


importancia-de-la-seguridad-e-integridad-en-base-de-datos
Restricciones
En este tema se trata uno de los aspectos más importantes para añadir consistencia a los
diseños de bases de datos: son las restricciones de integridad que ayudan a mantener la
consistencia semántica de los datos.

Tipos de restricciones de integridad:


• Declaración de claves (primarias, candidatas).
• Cardinalidad de la relación.
• Participación mín/máx.
• Restricciones de los dominios.
• Integridad referencial.
• Dependencias funcionales.
• Dependencias multivaloradas.

Restricciones de integridad :http://gpd.sip.ucm.es/rafa/docencia/bdsi/apuntes/TEMA05.pdf, por Rafael Caballero Roldán


Restricciones de integridad :http://gpd.sip.ucm.es/rafa/docencia/bdsi/apuntes/TEMA05.pdf, por Rafael Caballero Roldán
Integridad Referencial
“A menudo se desea asegurar que un valor que aparece en una relación
para un conjunto de atributos determinados aparezca también en otra
relación para un cierto conjunto de atributos. Esta condición se denomina
integridad referencial”.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 6 - Integridad y seguridad (p.142), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Problemas de integridad
Los valores de los datos almacenados en la base de datos deben satisfacer
ciertos tipos de restricciones de consistencia. Por ejemplo, el saldo de
ciertos tipos de cuentas bancarias no puede nunca ser inferior a una
cantidad predeterminada(por ejemplo $25,00). Los desarrolladores hacen
cumplir esas restricciones en el sistema añadiendo el código
correspondiente en los diversos programas de aplicación. Sin embargo,
cuando se añaden nuevas restricciones, es difícil cambiar los programas
para hacer que se cumplan.

FUNDAMENTOS DE DISEÑO DE BASES DE DATOS. En capítulo 1 - Introducción (p.3), por Silberschatz, Korth,
Sudarshan. (2007, Quinta edición)
Protocolos basados en bloqueo
Bloque
o
Existen muchos modos mediante los
cuales se puede bloquear un elemento de
datos.

- Compartido. Si una - Exclusivo. Si una transacción


transacción Ti obtiene un Ti obtiene un bloqueo de
bloqueo en modo modo exclusivo (denotado
compartido (denotado por C) por X) sobre el elemento Q,
sobre el elemento Q, entonces entonces Ti puede tanto leer
Ti puede leer Q pero no lo como escribir Q.
puede escribir.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 16 - Control de concurrencia (p.383), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Concesión de
Bloqueo
Cuando una Transacción desee solicitar un
bloqueo hacia un elemento de dato, se le
puede otorgar sin ningún problema.

Pero...

La transacción T1 nunca progresará y se dice que tiene inanición


FUNDAMENTOS DE BASES DE DATOS. En capítulo 16 - Control de concurrencia (p.386), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
inanición No exista otra transacción
que posea un bloqueo sobre
Q en un modo que esté en
Se puede evitar la inanición de las conflicto con M.
transacciones al conceder los bloqueos de la
siguiente manera: cuando una transacción Ti
solicita un bloqueo sobre un elemento de
datos Q en un modo particular M, el gestor No exista otra transacción
de control de concurrencia concede el que esté esperando un
bloqueo siempre que: bloqueo sobre Q y que lo
haya solicitado antes que Ti

De este modo, una petición de bloqueo nunca se quedará bloqueada por otra
petición de bloqueo solicitada más tarde
Protocolo de bloqueo de dos
fases

Este protocolo exige que cada transacción realice las


peticiones de bloqueo y desbloqueo de dos fases

Fase de crecimiento. Fase de decrecimiento.


.
Una transacción puede Una transacción puede
obtener bloqueos pero no liberar bloqueos pero no
puede liberarlos. puede obtener ninguno
nuevo.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 16 - Control de concurrencia (p.386), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Implementación de
bloqueos
Se puede implementar como un proceso que recibe
mensajes de transacciones y envía mensajes como
respuesta.

El proceso gestor de bloqueos responde a los mensajes


de solicitud de bloqueo con mensajes de concesión de
bloqueo, o con mensajes que solicitan un retroceso de la
transacción (en caso de interbloqueos).

Los mensajes de desbloqueo tan sólo requieren un


reconocimiento como respuesta, pero pueden dar lugar a
un mensaje de concesión para otra transacción que esté
esperando.
Es un método común para determinar el
Marcas orden de secuencialidad de seleccionar
previamente el orden de las
temporales transacciones

El sistema de base de datos asigna esta marca temporal antes de que comience
la ejecución de Ti. Si a la transacción Ti se le ha asignado la marca temporal
MT(Ti) y una nueva transacción Tj entra en el sistema, entonces MT(Ti) < MT(Tj ).

Existen 2 métodos de implementar este esquema:

1.- Usar el valor del reloj del sistema Usar un contador lógico que se
como marca temporal; es decir, la marca incrementa cada vez que se asigna una
temporal de una transacción es igual al nueva marca temporal; es decir, la marca
valor del reloj en el momento en el que la temporal de una transacción es igual al
transacción entra en el sistema. valor del contador en el momento en el
cual la transacción entra en el sistema.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 16 - Control de concurrencia (p.540), por Silberschatz, Korth,
Sudarshan. (2006, Quinta edición)
Protocolo
de En aquellos casos en que la mayoría de las transacciones son de sólo
lectura, la tasa de conflictos entre las transacciones puede ser baja.
Validación
1.-Fase de lectura. Durante esta fase tiene lugar la ejecución
de la transacción Ti. Se leen los valores de varios elementos
de datos y se almacenan en variables locales de Ti. Todas las
operaciones escribir se realizan sobre las variables locales
Se asume que cada temporales sin actualizar la base de datos actual.
transacción Ti se
ejecuta en dos o tres 2.-Fase de validación. La transacción Ti realiza una prueba de
las validación para determinar si puede copiar a la base de datos
fases diferentes Fases
durante su tiempo de las variables locales temporales que tienen los resultados de
Son las operaciones escribir sin causar una violación de la
vida dependiendo de
si es una transacción secuencialidad.
de sólo lectura o una 3.-Fase de escritura. Si la transacción Ti tiene éxito en la
de actualización. validación (paso 2) entonces las actualizaciones reales se
aplican a la base de datos. En otro caso, Ti retrocede.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 16 - Control de concurrencia (p.543), por Silberschatz, Korth,
Sudarshan. (2006, Quinta edición)
Para realizar la prueba de validación se necesita conocer el momento en
que tienen lugar las distintas fases de las transacciones Ti. Se asociarán
por tanto tres marcas temporales distintas a la transacción Ti

1.Inicio(Ti). 2.Validación(Ti). 3.Fin(Ti).


Momento en Momento en el cual Momento en el
el cual Ti Ti termina su fase cual Ti termina
comienza su de lectura y su fase de
ejecución. comienza su fase de escritura.
validación.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 16 - Control de concurrencia (p.543), por Silberschatz, Korth,
Sudarshan. (2006, Quinta edición)
Protocolo de
interbloqueo
Un sistema está en estado de interbloqueo si existe un
conjunto de transacciones tal que toda transacción del
conjunto está esperando a otra transacción del conjunto.

El único remedio a esta situación no deseada es que el sistema


invoque alguna acción drástica, como retroceder alguna de las
transacciones involucradas en el interbloqueo. El retroceso de una
transacción puede ser parcial: esto es, se puede retroceder una
transacción hasta el punto donde obtuvo un bloqueo cuya liberación
resuelve el interbloqueo.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 16 - Control de concurrencia (p.398), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Prevención de
interbloqueos
Existen dos enfoques a la prevención de interbloqueos.

- Un enfoque asegura que no puede haber esperas cíclicas ordenando las peticiones de
bloqueo o exigiendo que todos los bloqueos se adquieran juntos.
- El otro enfoque es más cercano a la recuperación de interbloqueos y realiza retrocesos de las
transacciones en lugar de esperar un bloqueo, siempre que el bloqueo pueda llevar
potencialmente a un interbloqueo.

Se han propuesto dos esquemas de prevención de interbloqueos que usan marcas


temporales
1.- El esquema esperar-morir está basado 2.- El esquema herir-esperar está basado en
en una técnica sin expropiación. Cuando la una técnica de expropiaciones, lo cual es
transacción Ti solicita un elemento de datos opuesto al esquema esperar-morir. Cuando la
que posee actualmente Tj, Ti puede esperar transacción Ti solicita un elemento de datos
sólo si tiene una marca temporal más que posee actualmente Tj, Ti puede de
pequeña que la de Tj (es decir, Ti es anterior esperar sólo si tiene una marca temporal
a Tj). En otro caso Ti se retrocede (muere). mayorque la de Tj (es decir, Ti es más
reciente que Tj).
FUNDAMENTOS DE BASES DE DATOS. En capítulo 16 - Control de concurrencia (p.399), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Detección y
recuperación Mantener información sobre la asignación de los
elementos de datos a las transacciones, así como
de interbloqueos de toda petición de elemento de datos pendiente.

Si el sistema no utiliza algún


protocolo que asegure la Proporcionar un algoritmo que use esta información
Para ello, el
ausencia de interbloqueos, para determinar si el sistema ha entrado en un
sistema debe:
entonces se debe usar un estado de interbloqueo.
esquema de detección y
recuperación. Periódicamente
se invoca a un algoritmo que
examina el estado del sistema Recuperarse del interbloqueo cuando el algoritmo
para determinar si hay un de detección determine que existe un interbloqueo.
interbloqueo. Si lo hay, entonces
el sistema debe intentar
recuperarse del interbloqueo.

FUNDAMENTOS DE BASES DE DATOS. En capítulo 16 - Control de concurrencia (p.399), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Detección de
interbloqueos Para ilustrar estos conceptos
considérese el siguiente grafo
de espera

Los interbloqueos se pueden describir


con precisión por medio de un grafo
dirigido llamado grafo de espera. Este
grafo consiste en un par G = (V, A),
siendo V el conjunto de vértices y A el
conjunto de arcos. El conjunto
de vértices consiste en todas las
transacciones del sistema. • La transacción T25 está esperando a las
transacciones T26 y T27.
• La transacción T27 está esperando a la
transacción T26.
• La transacción T26 está esperando a la
transacción T28.
FUNDAMENTOS DE BASES DE DATOS. En capítulo 16 - Control de concurrencia (p.400), por Silberschatz, Korth,
Sudarshan. (2002, Cuarta edición)
Recuperación de
interbloqueos
Cuando un algoritmo de detección de interbloqueos
determina que existe un interbloqueo, el sistema debe
recuperarse del mismo. La solución más común es
retroceder una o más transacciones para romper el
interbloqueo.

1. Selección de una víctima. 2. Retroceso. Una vez que se 3. Inanición. En un sistema en


Dado un conjunto de ha decidido que se retrocederá el cual la selección de víctimas
transacciones interbloqueadas una transacción en particular, esté basada principalmente en
se debe determinar la se debe determinar hasta factores de coste, puede ocurrir
transacción (o transacciones) dónde se retrocederá dicha que siempre se elija a la misma
que se van a retroceder para transacción. transacción como víctima
romper el interbloqueo.
.
Métodos para lograr la confiabilidad
“Si se desea asegurar una base de datos:”
● Es necesario lograr un modo de operación
confiable y predecible.
● Proporcionar un mecanismo de
protección para lograr el control deseado
de los accesos a los datos.
● Asegurarse de que no se presentaran
interferencia destructiva cuando múltiples
usuarios compartan el acceso a la base de
datos.

Diseño de Bases de Datos. En Métodos para lograr confiabilidad (p.641), por Wiederhold Gio. (1985, Segunda edición)
Confiabilidad
“La confiabilidad se logra cuando un sistema de computación, tanto
hardware como software, siempre produce resultados correctos. Un
problema obvio resulta la determinación de lo que es correcto. Se
empleará el término falla para denotar la causa y la palabra error para la
manifestación de una falla. El hecho de que algo no esté totalmente
correcto se demuestra al ocurrir un error”

Diseño de Bases de Datos. En Métodos para lograr confiabilidad (p.642), por Wiederhold Gio. (1985, Segunda edición)
“Para producir resultados correctos se requieren datos correctos y
algoritmos correctos, el sistema debe efectuar correctamente los
algoritmos. Con frecuencia una sola técnica puede proporcionar tanto
detección como cierta capacidad de restauración.”

Diseño de Bases de Datos. En Métodos para lograr confiabilidad (p.642), por Wiederhold Gio. (1985, Segunda edición)
MTBF (Tiempo medio
Probabilidades de entre fallas) Falla del sistema de
fallas almacenamiento

Técnicas de
confiabilidad

Control de fallas Empleo de sistemas


MTTR (Tiempo medio con réplicas
para reparar)

Diseño de Bases de Datos. En Métodos para lograr confiabilidad (p.643, 644, 645), por Wiederhold Gio. (1985, Segunda
edición)
Disponibilidad
“El efecto del manejo de fallas, tal como lo ve el usuario, a menudo se
mide como la disponibilidad, esto es, la fracción de tiempo que el
sistema es capaz de producir”

Diseño de Bases de Datos. En Métodos para lograr confiabilidad (p.645), por Wiederhold Gio. (1985, Segunda edición)
Protocolos y técnicas
Protocolos Locales
Cada nodo posee un administrador de recuperación local (LRM) cuyas
funciones mantienen las propiedades de atomicidad y durabilidad de las
transacciones locales.
Ellas están relacionadas a la ejecución de los comandos que son
pasados al LRM, las cuales son:
- begin_transaction
- read
- write
- commit y
- abort
http://temasdelainformaticatv.blogspot.com/2015/11/base-de-datos-distribuidas.html
En las tareas de recuperación se revisará particularmente la interfaz entre
el LRM y el administrador del buffer de la base de datos.

El administrador de buffers de la base de datos mantiene en memoria


principal los datos más recientemente accedidos, esto se hace con el
propósito de mejorar el rendimiento.

https://www.academia.edu/21644659/CAPITULO_1._INTRODUCCION
Técnica de Prevención de Fallas
Asegura que en el sistema implementado no ocurrirá
ninguna falla.

Se concentra en hacer un diseño con componentes


altamente confiables y haciéndole pruebas e irse
refinando. Se buscan todas las fallas durante el desarrollo
antes de ser implementado, y si alguna falla surge se
hace el mantenimiento manualmente.

Hay mecanismos que solo alertan que la falla ha ocurrido.

https://www.academia.edu/21644659/CAPITULO_1._INTRODUCCION
Técnica de Tolerancia a Fallas
Reconoce que las fallas pueden ocurrir, por lo que implementa mecanismo
dentro del sistema que detectan y solventan la falla.
Para esto se vale de:
- Redundancia de componentes.
- Modularización -> cada componente es un módulo con interfaces bien definidas
-> asegura el aislamiento de la falla dentro de un componente.
-
Un componente puede ser fail-stop (constantemente se monitorea y cuando
detecta una falla se termina automáticamente) ó process-pairs el módulo se
encuentra duplicado teniendo una réplica primaria y otra de backup, manteniendo
entre ellas una constante comunicación por pase de mensajes o memoria
compartida.
https://www.academia.edu/21644659/CAPITULO_1._INTRODUCCION
Recuperación en un DBMS
El DBMS se enfrenta y debe recuperarse de varias fallas. éstas van desde
errores en programas de aplicación o software de sistema a fallas de hardware e
interrupciones de energía eléctrica. La clave para una recuperación de desastre
es la redundancia de almacenamiento, y la magnitud de almacenamiento
copiado está determinada por la exposición a riesgo que puede ser tolerada. Si
el diseñador debe reducir el riesgo a un valor muy bajo, debe mantener dos o
más copias completas de toda la base de datos. Este método sufre de la
sobrecarga agregada de ejecutar transacciones en todas las copias y de
mantener sincronización continua entre los sistemas redundantes. La mayor
parte de sistemas de bases de datos toma un método menos radical, estos
intentan reducir al mínimo la cantidad de datos perdidos en un falla, al
restablecer el estado correcto de base de datos a un punto y tiempo tan cercano
como sea posible al punto de falla. Además, el DBMS puede volver a iniciar
ciertas transacciones que fueron interrumpidas por la falla.

Bases de datos - Modelos, lenguajes, diseño. En capítulo 20 - Desempeño (p.981), por Silberschatz, Korth, Sudarshan.
(2000)

También podría gustarte