fragmentación de datos bases de datos distribuidas

25
Fragmentación de Datos Bases de Datos Distribuidas

Upload: marcio-gordon

Post on 22-Jan-2016

226 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Fragmentación de Datos Bases de Datos Distribuidas

Fragmentación de DatosBases de Datos Distribuidas

Page 2: Fragmentación de Datos Bases de Datos Distribuidas

Recordando la clase anterior

Bases de datos distribuidas

Se encuentran en diferentes maquinas, generalmente en localidades geográficas distintas

BD Universidad

Ingeniería

Rectorado

Humanidades

Page 3: Fragmentación de Datos Bases de Datos Distribuidas

Bases de datos distribuidas

Nodos o emplazamientos:Cada uno de los ordenadoresque integran la base de datos

BD Universidad

Ingeniería

Rectorado

Humanidades

Page 4: Fragmentación de Datos Bases de Datos Distribuidas

Bases de datos distribuidas

Transacciones:Todas las acciones que se generan en la base de datos

LocalesGlobales

BD Universidad

Ingeniería

Rectorado

Humanidades

Page 5: Fragmentación de Datos Bases de Datos Distribuidas

Transacciones

Propiedades ACID: Atomicidad Consistencia Aislamiento Durabilidad

Page 6: Fragmentación de Datos Bases de Datos Distribuidas

Un sistema de Base de datos es distribuido si: Los distintos nodos están informados sobre

los demás. Aunque algunas tablas estén almacenadas

sólo en algunos nodos, éstos comparten un esquema global común.

Cada nodo proporciona un entorno de ejecución de transacciones, tanto local, como global.

Bases de datos distribuidas

Page 7: Fragmentación de Datos Bases de Datos Distribuidas

Ventajas: Compartimiento de datos Autonomía Disponibilidad

Bases de datos distribuidas

Page 8: Fragmentación de Datos Bases de Datos Distribuidas

Desventajas: Costo de desarrollo del

software Mayor probabilidad de errores Mayor sobrecarga de

procesamiento

Bases de datos distribuidas

Page 9: Fragmentación de Datos Bases de Datos Distribuidas

Esquema Global

Esquema de Fragmentación

Esquema de Asignación

Esquema de Mapeo local 1

DBMS del sitio 1

Esquema de Mapeo local 2

DBMS del sitio 2

Esquema de Mapeo local N

DBMS del sitio N

Arquitectura Referencial

BD1

BD1

BD1

Page 10: Fragmentación de Datos Bases de Datos Distribuidas

Replicación Fragmentación

Vertical Horizontal

Almacenamiento de Datos

Nuevo contenido

Page 11: Fragmentación de Datos Bases de Datos Distribuidas

El sistema conserva varias copias o réplicas idénticas de una tabla. Cada réplica se almacena en un nodo diferente

Ventajas: Disponibilidad: Tolerancia a fallos Aumento del paralelismo: Cada emplazamiento

puede realizar consultas sobre su replica de datos

Desventajas: Sobrecarga en las actualizaciones

Replicación

Page 12: Fragmentación de Datos Bases de Datos Distribuidas

Una tabla T se divide en subconjuntos, T1, T2, ...Tn.

Los fragmentos se definen a través de una operación de proyección

Cada fragmento se sitúa en un nodo

Cada fragmento debe incluir la clave primaria de la tabla.

Su reconstrucción se realizará con una operación de join de los fragmentos componentes

Fragmentación Vertical

Page 13: Fragmentación de Datos Bases de Datos Distribuidas

Una tabla T se divide en subconjuntos, T1, T2, ...Tn.

Los fragmentos se definen a través de una operación de selección

su reconstrucción se realizará con una operación de unión de los fragmentos componentes

Cada fragmento se sitúa en un nodo

Fragmentación horizontal:

Page 14: Fragmentación de Datos Bases de Datos Distribuidas

Fragmentación Mixta: Aplicación de la fragmentación

horizontal y vertical sobre una misma Tabla

Replica y fragmentación:Replicar fragmentos o Fragmentar replicas

Esquemas Mixtos

Page 15: Fragmentación de Datos Bases de Datos Distribuidas

En resumen

Replicación: El sistema guarda varias réplicas (copias) idénticas de la base de datos y guarda cada réplica en un sitio diferente.

Fragmentación: El sistema divide la base de datos en varios fragmentos y guarda cada fragmento en un sitio diferente.

También existen híbridas, donde se conjugan ambos aspectos.

Se puede realizar alta disponibilidad en SQL Server

Page 16: Fragmentación de Datos Bases de Datos Distribuidas

¿Qué es SQL?

Structured Query Language (Lenguaje de consulta estructurado) es un lenguaje estándar de comunicación con bases de datos.

Hablamos por tanto de un lenguaje normalizado que nos permite trabajar con cualquier tipo de lenguaje (ASP o PHP) en combinación con cualquier tipo de base de datos (MS Access, SQL Server, MySQL).

Page 17: Fragmentación de Datos Bases de Datos Distribuidas

• Es un lenguaje usado para comunicarse con la base de datos

• Fue desarrollado originalmente por IBM en la década del 70

• Fue inicialmente llamado Sequel

• En 1986, ANSI presentó un nuevo estándar llamado SQL-86

• Existe una versión llamada SQL-99 (SQL3) estándar que es muy utilizada

• Es ampliamente aceptado como un estándar en implementaciones de RDBMS

Historia del SQL

Page 18: Fragmentación de Datos Bases de Datos Distribuidas

El hecho de que sea estándar no quiere decir que sea idéntico para cada base de datos. En efecto, determinadas bases de datos implementan funciones específicas que no tienen necesariamente que funcionar en otras.

Aparte de esta universalidad, el SQL posee otras dos características:

Presenta una potencia y versatilidad notables

Su accesibilidad de aprendizaje.

Page 19: Fragmentación de Datos Bases de Datos Distribuidas

Los tipos de datos SQL

Tipo de Datos Longitud Descripción

BINARY 1 byte

Para consultas sobre tabla adjunta de productos de bases de datos que definen un tipo de datos Binario.

BIT 1 byte Valores Si/No ó True/False

BYTE 1 byte Un valor entero entre 0 y 255.

COUNTER 4 bytesUn número incrementado automáticamente (de tipo Long)

CURRENCY 8 bytesUn entero escalable entre 922.337.203.685.477,5808 y 922.337.203.685.477,5807.

DATETIME 8 bytesUn valor de fecha u hora entre los años 100 y 9999.

SINGLE 4 bytes

Un valor en punto flotante de precisión simple con un rango de - 3.402823*1038 a -1.401298*10-45 para valores negativos, 1.401298*10- 45 a 3.402823*1038 para valores positivos, y 0.

Se clasifican en 13 tipos de datos primarios y de varios sinónimos válidos reconocidos por dichos tipos de datos. Los tipos de datos primarios son:

Page 20: Fragmentación de Datos Bases de Datos Distribuidas

Los tipos de datos SQL

DOUBLE 8 bytes

Un valor en punto flotante de doble precisión con un rango de - 1.79769313486232*10308 a -4.94065645841247*10-324 para valores negativos, 4.94065645841247*10-324 a 1.79769313486232*10308 para valores positivos, y 0.

SHORT 2 bytesUn entero corto entre -32,768 y 32,767.

LONG 4 bytesUn entero largo entre -2,147,483,648 y 2,147,483,647.

LONGTEXT 1 byte por carácterDe cero a un máximo de 1.2 gigabytes.

LONGBINARY Según se necesiteDe cero 1 gigabyte. Utilizado para objetos OLE.

TEXT 1 byte por carácter De cero a 255 caracteres

Page 21: Fragmentación de Datos Bases de Datos Distribuidas

Sinónimos de los tipos de datos definidos:

Tipo de Dato Sinónimos

BINARY VARBINARY

BIT

BOOLEAN LOGICAL LOGICAL1 YESNO

BYTE INTEGER1

COUNTER AUTOINCREMENT

CURRENCY MONEY

DATETIMEDATE TIME TIMESTAMP

SINGLEFLOAT4 IEEESINGLE REAL

Page 22: Fragmentación de Datos Bases de Datos Distribuidas

Sinónimos de los tipos de datos definidos:

DOUBLE

FLOATFLOAT8 IEEEDOUBLE NUMBER NUMERIC

SHORTINTEGER2 SMALLINT

LONGINT INTEGER INTEGER4

LONGBINARYGENERAL OLEOBJECT

LONGTEXTLONGCHARMEMO NOTE

TEXTALPHANUMERIC CHAR - CHARACTER STRING - VARCHAR

VARIANT (No Admitido) VALUE

Tipo de Dato Sinónimos

Page 23: Fragmentación de Datos Bases de Datos Distribuidas

Tipos de sentenciasDependiendo de las tareas, estas sentencias se pueden clasificar en tres grupos principales (DML, DDL,DCL) y un cuarto grupo de programación avanzada en SQL (PLSQL)

SENTENCIA DESCRIPCIÓN

DML Manipulación de datosSELECTINSERTDELETEUPDATE

Recupera datos de la base de datos.Añade nuevas filas de datos a la base de

datos.Suprime filas de datos de la base de datos.

Modifica datos existentes en la base de datos.

DDL

Definición de datosCREATE TABLEDROP TABLEALTER TABLE CREATE VIEW DROP VIEW

CREATE INDEX DROP INDEX

CREATE SYNOYM DROP SYNONYM

Añade una nueva tabla a la base de datos.Suprime una tabla de la base de datos.

Modifica la estructura de una tabla existente.

Añade una nueva vista a la base de datos. Suprime una vista de la base de datos. Construye un índice para una columna.

Suprime el índice para una columna. Define un alias para un nombre de tabla.

Suprime un alias para un nombre de tabla.

Page 24: Fragmentación de Datos Bases de Datos Distribuidas

DDL

Definición de datosCREATE TABLEDROP TABLEALTER TABLE CREATE VIEW DROP VIEW

CREATE INDEX DROP INDEX

CREATE SYNOYM DROP SYNONYM

Añade una nueva tabla a la base de datos.Suprime una tabla de la base de datos.

Modifica la estructura de una tabla existente.

Añade una nueva vista a la base de datos. Suprime una vista de la base de datos. Construye un índice para una columna.

Suprime el índice para una columna. Define un alias para un nombre de tabla.

Suprime un alias para un nombre de tabla.

DCL

Control de acceso GRANT REVOKE

Control de transacciones COMMIT

ROLLBACK

Concede privilegios de acceso a usuarios. Suprime privilegios de acceso a usuarios

Finaliza la transacción actual. Regresa la transacción actual.

PLSQL SQL ProgramáticoDECLARE

OPENFETCHCLOSE

Define un cursor para una consulta.Abre un cursor para recuperar resultados

de consulta.Recupera una fila de resultados de

consulta.Cierra un cursor.

Page 25: Fragmentación de Datos Bases de Datos Distribuidas

La mayoría de sentencias SQL tienen la misma estructura.

Todas comienzan por un verbo (select, insert, update, create), a continuación le sigue una o más clausulas que nos dicen los datos con los que vamos a operar (from, where), algunas de estas son opcionales y otras obligatorias como es el caso del from.

Componentes sintácticos