View
232
Download
4
Category
Preview:
Citation preview
Fragmentación de DatosBases 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
Bases de datos distribuidas
Nodos o emplazamientos:Cada uno de los ordenadoresque integran la base de datos
BD Universidad
Ingeniería
Rectorado
Humanidades
Bases de datos distribuidas
Transacciones:Todas las acciones que se generan en la base de datos
LocalesGlobales
BD Universidad
Ingeniería
Rectorado
Humanidades
Transacciones
Propiedades ACID: Atomicidad Consistencia Aislamiento Durabilidad
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
Ventajas: Compartimiento de datos Autonomía Disponibilidad
Bases de datos distribuidas
Desventajas: Costo de desarrollo del
software Mayor probabilidad de errores Mayor sobrecarga de
procesamiento
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
Replicación Fragmentación
Vertical Horizontal
Almacenamiento de Datos
Nuevo contenido
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
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
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:
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
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
¿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).
• 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
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.
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:
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
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
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
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.
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.
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
Recommended