La base de datos se aloja en un computador central (servidor) que recibe las peticiones generadas por los sistemas clientes.
Estos sistemas tienen las siguientes características:
Reparto de funcionalidades.
Se utilizan como terminales ordenadores personales que gestionan la interfaz de usuario.
El servidor satisface las peticiones realizadas por el sistema cliente.
Existen dos tipos de servidores:
a.Servidores de transacciones o servidor de consultas. Los clientes envían peticiones para realizar una acción que el servidor ejecutará devolviendo los resultados al cliente.
b.Servidores de datos. El servidor envía los datos a los clientes realizándose en estos el procesamiento de los datos para después enviar el resultado de vuelta al servidor.
La estructura de un sistema cliente-servidor puede verse en el siguiente esquema:
Son sistemas que han surgido debido a la necesidad de manejar sistemas de bases de datos extremadamente grandes (del orden de terabytes, esto es 1012 bytes), o que deben procesar gran cantidad de transacciones por segundo.
Estos sistemas mejoran la velocidad de procesamiento de Entrada-Salida (E/S) mediante el empleo de una CPU y de discos en paralelo, realizando muchas operaciones de manera simultánea y a una velocidad elevada que disminuye el tiempo empleado para realizar una tarea dada.
Se distinguen dos tipos de máquinas en paralelo:
Máquinas de grano grueso que consisten en un pequeño número de potentes procesadores.
Máquinas masivamente paralelas o de grano fino que utilizan miles de procesadores pequeños.
Entre sus inconvenientes se encuentran:
Costes de inicio. Una operación paralela puede estar compuesta por miles de procesos, pudiendo llegar a ser mucho mayor el tiempo de inicio que el tiempo real de procesamiento.
Interferencia. Pueden darse interferencias entre todos los procesos que se ejecutan en paralelo y que acceden de manera simultánea a los recursos compartidos del sistema.
Sesgo. El tiempo empleado para una tarea vendrá determinado por el tiempo empleado en el proceso más lento. No puede dividirse una tarea en partes exactamente iguales, por lo que se dice que habrá una distribución sesgada de tamaños.
Los sistemas en paralelo están formados por una serie de componentes (procesadores, memoria y discos) que se interconectan a través de una red de conexión. Se distinguen tres tipos de redes:
Bus. Los componentes se encuentra conectados a través de un único bus (canal) de conexión.
Malla. Los componentes se encuentran conectados formando una red reticular en la que los vértices se encuentran ocupados por los componentes.
Hipercubo. Los componentes se alojan en los vértices de una red cúbica tridimensional.
Aplicación práctica
Suponga que trabaja como administrador de una base de datos en una empresa que crece rápidamente cada año, y donde el trabajo principal consiste en el procesamiento de un elevado número de transacciones. ¿Qué sistema elegiría?
SOLUCIÓN
La empresa crece rápidamente, luego el tamaño de la base de datos también crecerá de manera exponencial. Por otro lado el trabajo principal del SGBD consiste en procesar un elevado número de transacciones.
La elección de un sistema en paralelo sería la más adecuada. Estos sistemas son capaces de manejar bases de datos extremadamente grandes, y además pueden procesar gran cantidad de transacciones por segundo.
En estos sistemas la base de datos se almacena en varios ordenadores conectados a través de redes de alta velocidad o líneas telefónicas. Los ordenadores que componen el sistema, también denominados sitios o nodos, no comparten ni memoria ni discos, y pueden variar en tamaño y función. Además, estos nodos pueden encontrarse en lugares geográficos muy distintos.
Existen dos tipos de transacciones:
Transacciones locales. Cuando se accede a datos del nodo que inició la transacción.
Transacciones globales. Cuando se accede a datos de un nodo distinto o acceso a datos de varios nodos distintitos.
En cuanto a las ventajas que ofrecen los sistemas distribuidos frente a otros:
Acceso a los datos alojados en sitios distintos. Por ejemplo, dos sucursales bancarias.
Cada sistema es autónomo, y por tanto controlado por su propio administrador del sistema.
Seguridad y disponibilidad de los datos. Por ejemplo, si falla un nodo los datos pueden encontrarse disponibles a través de otro si se encuentran duplicados.
Sabía que...
Existen básicamente dos tipos de redes: redes de área local, en las que los equipos que la componen (ordenadores, discos, impresoras, etc.) se encuentran en áreas geográficas pequeñas (edificios, almacenes, centros de trabajo, etc.), y redes de área amplia, donde los equipos que la componen se encuentran distribuidos en un área geográfica extensa, como puede ser un país, varios o incluso el mundo.
Las bases de datos distribuidas pueden almacenar la información de dos maneras: mediante Réplica o mediante Fragmentación. En la primera el sistema mantiene copias idénticas de la información, y guarda copias en sitios diferentes. En la segunda, la información se divide en fragmentos y se guarda cada fragmento en sitios distintos.
Considerando una relación “r” que hay que almacenar en una base de datos, esta puede replicarse dos o más veces, hasta incluso generar una réplica completa para guardar en cada uno de los sitios que componen el sistema.
Las réplicas tienen las siguientes ventajas e inconvenientes:
Disponibilidad. La información se haya en todos los sitios, de manera que si uno falla puede encontrarse en cualquier otro.
Paralelismos. Varios sitios pueden procesar a la vez las lecturas que impliquen una misma relación de datos “r”. A mayor número de réplicas, mayor será la probabilidad de que los datos se encuentren en el sitio donde se ejecuta la transacción, minimizándose el movimiento de los datos.
Sobrecarga. Cada vez que se actualiza una relación de datos esta ha de propagarse a todos los sitios que contengan réplicas, lo que puede ocasionar una sobrecarga en el sistema.
Cuando una relación “r” se fragmenta se divide en varios fragmentos (r1, r2,...,rn,) de manera que la reunión de estos fragmentos permite la reconstrucción de la información contenida en “r”.
Existen tres formas principales de fragmentación:
Fragmentación horizontal. Cada uno de los fragmentos r1, r2, ..., rn, ha de contener al menos una tupla (fila de una tabla de datos) de la relación.
Se utiliza para conservar las tuplas en los sitios que más se emplean y disminuir así la transferencia de datos.
Fragmentación vertical. La relación se va a dividir en un conjunto de relaciones más pequeñas de manera que las aplicaciones únicamente hagan uso de un fragmento, minimizándose el tiempo de ejecución de las aplicaciones que emplean esos fragmentos.
Fragmentación mixta. Es una combinación de las dos anteriores.
Un sistema gestor de bases de datos (SGBD) consiste básicamente en un conjunto de datos relacionados entre ellos, y en una serie de aplicaciones o programas mediante los cuales se podrá trabajar con dichos datos.
Los SGBD están diseñados para gestionar gran cantidad de información. Dicha gestión implica un modelo para el almacenaje y conservación de los datos, así como proveer de herramientas adecuadas (lenguajes de definición y manipulación) para el tratamiento de dicha información.
La arquitectura de un SGBD se encuentra altamente influenciada por el sistema informático subyacente donde está instalado el sistema. Los sistemas pueden ser centralizados o cliente-servidor. En los primeros el sistema se ejecuta en un único sistema informático sin interaccionar con ninguna otra computadora, mientras que en los segundos el servidor ejecuta trabajos en múltiples máquinas clientes.
1.Un SGBD comprenderá un conjunto de programas que van a permitir la...
a.... redacción, funcionamiento y mantenimiento de una base de datos.
b.... creación, alteración, y compactación de una base de datos.
c.... creación, administración, funcionamiento, uso y mantenimiento de una base de datos.
d.Todas las respuestas anteriores son incorrectas.
2.Indique si las siguientes afirmaciones son verdaderas o falsas.
a.El objetivo primordial de un SGBD es proveer de una herramienta adecuada para extraer y almacenar la información contenida en la base de datos.
Verdadera
Falsa
b.Los sistemas tradicionales de ficheros también son conocidos como sistemas orientados a la gestión de bases de datos.
Verdadera
Falsa
3.Los sistemas tradicionales de ficheros...
a.... cuentan con numerosas aplicaciones, cada una destinada a la realización de determinadas operaciones.
b.... almacenan los datos en archivos dentro de diferentes unidades de almacenamiento.
c.... cada programa gestiona y almacena sus propios datos.
d.Todas las respuestas anteriores son correctas.
4.Los SGBD utilizan...
a.... Lenguajes de Definición de Datos LDD.
b.... Lenguajes de Definición de Programas LDP.
c.... Lenguajes de Manipulación Definidos LMD.
d.... Lenguajes de Manipulación de Programas LMP.
5.Indique si las siguientes afirmaciones son verdaderas o falsas.
a.Los componentes principales de una base de datos son los datos, hardware, software y usuarios.
Verdadera
Falsa
b.Los usuarios de un SGBD únicamente pueden ser expertos informáticos.
Verdadera
Falsa
6.Complete el siguiente párrafo con las palabras correctas.
En los sistemas de ______ se pueden observar dos estructuras distintas: la ______ y la ______. La lógica es la que ve el ______ y la física es la forma en la que se almacenan los datos.
7.¿Qué se pretende con la introducción en los SGBD del denominado nivel conceptual o estructura lógica global?
8.Los niveles de abstracción de un SGBD son:
a.Interno, externo y superior.
b.Externo, conceptual e inferior.
c.Conceptual, material y lógico.
d.Externo, conceptual e interno.
9.Respecto a la estructura física...
a.... es muy dependiente de cada SGBD.
b.... no va a depender del SGBD con el que se esté trabajando.
c.... dependerá del nivel lógico.
d.... dependerá del sistema operativo del ordenador.
10.Complete el siguiente párrafo con las palabras correctas.
El ______ ______ ______ es el responsable de relacionar los datos de ______ ______ en la base de datos y los programas de aplicación y consultas.
11.Indique si las siguientes afirmaciones son verdaderas o falsas.
a.El diccionario de datos almacena la estructura de la base de datos y su esquema.
Verdadera
Falsa
b.Los índices tienen como función proporcionar un acceso rápido a los datos.
Verdadera
Falsa
12.Complete el siguiente esquema.
13.Nombre las arquitecturas que pueden encontrarse para los diferentes SGBD.
14.En los sistemas en paralelo pueden encontrase hasta tres tipos de redes. Indique cuáles.
a.Bus, malla y cónica.
b.Bus, hipermalla y cúbica.
c.Hiperbus, malla y cúbica.
d.Todas las respuestas anteriores son incorrectas.
15.Las formas de almacenamiento de la información son:
a.Réplica y cúbica.
b.Cúbica y fragmentada.
c.Completa y fragmentada.
d.Réplica y fragmentada.
El lenguaje relacional se encuentra constituido por:
Un Lenguaje de Definición de Datos DDL (Data Definition Language).
Un Lenguaje de Manipulación de Datos DML (Data Manipulation Language).
Un Lenguaje para el Control y Seguridad de los Datos DCL (Data Control Language).
Estos tres lenguajes definen un conjunto de operaciones básicas conocidas como álgebra relacional, las cuales permiten al usuario especificar las peticiones fundamentales de recuperación, cuyo resultado es una nueva relación constituida por una o más relaciones que pueden ser manipuladas más adelante utilizando operaciones del mismo álgebra.
Las primeras implementaciones comerciales del modelo relacional datan de los años 80, y desde entonces han sido implementadas en muchos Sistemas Gestores de Bases de Datos (SGBD). Los SGBD relacionales más populares actualmente son DB2 e Informix Dynamic Server (de IBM), Oracle, MySql, SQL Server y Access.
El lenguaje SQL o lenguaje de consulta estructurado (Structured Query Language) es actualmente el estándar de los SGBD relacionales comerciales. Se trata de un lenguaje de bases de datos normalizado que permite crear y manipular bases de datos, además de la creación de consultas con las que obtener información proveniente o alojada en una base de datos.
El lenguaje se compone de cláusulas, operadores, comandos y funciones de agregado que se combinan con instrucciones y sentencias para la creación, actualización y manipulación de los datos de la base de datos.
La metodología orientada a datos, también conocida como modelo lógico de datos, se centra en los datos que componen un sistema y en las relaciones que se establecen entre ellos.
El modelo Entidad-Relación es una técnica utilizada por las metodologías orientadas a datos. Fue propuesto por Peter Chen en el año 1976.
El objetivo es modelizar las estructuras de datos lógicos o entidades y las relaciones entre ellas. Se ha de establecer un modelo conceptual transformando los objetos con los que se va a trabajar en entidades (tablas), atributos (propiedades) y relaciones.
Nota
El concepto relación es un término matemático para tabla. De manera informal es común tratar los conceptos relación y tabla como si fuesen sinónimos.
Las bases de datos relacionales o sistemas relacionales se basan en una teoría matemática denominada modelo relacional de datos. La información alojada en una base de datos relacional es percibida por el usuario como estructurada en una serie de tablas. Estas tablas han de satisfacer ciertas restricciones de integridad. Además los datos contenidos en estas tablas pueden ser manipulados por el usuario, por ejemplo, para fines de recuperación de datos.
Sabía que...
Los principios del modelo relacional fueron establecidos por F.Codd en el año 1969-70. A finales de 1968 descubrió que las matemáticas podían ser útiles para dar principios sólidos y de cierto rigor al campo de la administración de bases de datos.
Se han de tener en cuenta los siguientes conceptos:
Relación: equivale a una tabla.
Tupla: cada una de las filas de una relación o tabla. No pueden existir dos filas o tuplas iguales.
Atributo: nombre que identifica cada dominio de una relación. También se llama nombre de campo. Al considerar una relación como si fuese una tabla los atributos son los nombres que se dan a las columnas de la tabla.
Clave: se emplea para identificar de forma unívoca cada fila de la tabla. Puede estar formada por una columna o una combinación de columnas. Existen diversos tipos:
Primarias (PRIMARY KEY). Es la clave primera o principal que se utiliza para ordenar la relación. Puede ser el DNI, número de factura, etc. La clave primaria no puede contener atributos con valores nulos.
Clave secundaria. Es otro atributo que establece una forma de ordenar diferente a la dada por la clave principal (nombre, dirección, etc.).
Clave foránea. Está compuesta por los atributos pertenecientes a una relación R1, y que a su vez coinciden con la clave primaria de otra relación R2. Mediante esta clave la relación R1 puede interrelacionarse con la relación R2.
Dominio: conjunto de valores de donde se toman los valores de atributos específicos de relaciones específicas, es decir, un domino no es más que un tipo de datos. Pueden utilizarse las palabras tipo y dominio de manera indistinta.
En SQL existen diferentes tipos de datos para los atributos:
Tipo numérico. Está formado por números enteros de varios tamaños, INTEGER o INT y SMALLINT, así como números con decimales (números en coma flotante), FLOAT o REAL, y DOUBLE PRECISION. Los atributos que contienen datos de este tipo contienen normalmente cuentas, cantidades, edades, etc.
Tipo de datos de cadenas de caracteres. Pueden ser de longitud fija: CHAR(n) o CHARACTER(n), donde “n” es la cantidad de caracteres, o de longitud variable: VARCHAR(n), CHAR VARYING(n), CHARACTER VARYING(n), siendo “n” la cantidad máxima de caracteres. Los datos de cadenas de caracteres se han de encerrar entre comillas simples (por ejemplo, ’García, José’, ‘Málaga’). El tipo de datos carácter está formado por todos los caracteres del alfabeto incluyendo letras, números y símbolos especiales.
Tipo de datos de cadena de bits. Puede ser de longitud fija, BIT(n), o de longitud variable, BIT VARYING(n), donde “n” es la cantidad máxima de bits. El valor predeterminado para “n” es de 1. Las cadenas de bits se escriben entre comillas pero precedidas de la letra “B” para distinguirlas de las cadenas de caracteres (B’10101’). También existe el dominio o tipo BINARY LARGE OBJECT o BLOB para las columnas que contengan valores binarios grandes, como pueden ser las imágenes.
Tipo de datos booleano. Puede tener los valores TRUE (verdadero), FALSE (falso) y UNKNOWN (desconocido) para valores nulos.
Tipos de datos de fecha y hora. SQL solo permite fechas y horas válidas. Los valores se representan mediante cadenas de caracteres entre comillas simples precedidas de la palabra clave DATE o TIME, por ejemplo, DATE ‘2007-07-07’ o TIME ’20:30:00’. Está formado por los tipos de datos:
DATE. Sus componentes son año, mes y día, según la forma AAAA-MM-DD.
TIME. Sus componentes son horas, minutos y segundos en la forma HH:MM:SS.
TIME(i). Especifica i + 1 posiciones adicionales para TIME (una posición para un carácter separador adicional, e i posiciones para especificar las fracciones decimales de un segundo).
TIME WITH TIME ZONE. Cuenta con seis posiciones para especificar la hora respecto a la zona horaria universal estándar. Si no se incluye se toma como valor predeterminado la zona horaria local de la sesión de SQL.
Tipo de datos de marca de tiempo (TIMESTAMP). Cuenta con los campos DATE y TIME, más un mínimo de seis posiciones para fracciones decimales de segundos y un calificador WITH TIME ZONE opcional. Como en el caso anterior, los valores se representan entre comillas simples precedidos de la palabra TIMESTAMP en este caso, y con un espacio en blanco entre la fecha y la hora. Por ejemplo, TIMESTAMP ‘2007-07-07 20:30:00 747474’.
Tipo de datos de intervalos (INTERVAL). Se utiliza para incrementar o reducir el valor absoluto de una fecha, hora o marca temporal. Los intervalos pueden ser año/mes o día/hora.
Nota
Los tipos de datos DATE, TIME y TIMESTAMP pueden ser considerados como un tipo especial de cadena, y por tanto pueden utilizarse en comparaciones de cadena si son previamente convertidos en sus cadenas equivalentes.
SQL permite la creación de dominios mediante la sentencia CREATE DOMAIN. El nombre del dominio puede utilizarse en la especificación del atributo, de manera que esto hace más fácil cambiar el tipo de datos utilizado por numerosos atributos de una relación, ya que simplemente habrá que cambiar el tipo de datos del dominio. Ejemplo: CREATE DOMAIN nDNI AS CHAR(9).
Actividades
1.Establezca a qué tipos de datos corresponden los siguientes valores: 6789065, 999,65, ‘Juan Gómez’, ‘2013-10-10’, ’08:30:00’.
2.Cree dominios para los datos de la actividad anterior.