Base
de datos relacional
Una base de datos relacional es una base de datos que
cumple con el modelo relacional, el cual es el modelo más
utilizado en la actualidad para implementar bases de datos ya planificadas.
Permiten establecer interconexiones (relaciones) entre los datos (que están
guardados en tablas), y a través de dichas conexiones relacionar los datos de
ambas tablas, de ahí proviene su nombre:"Modelo
Relacional". Tras ser postuladas sus bases en 1970 por Edgar Frank
Codd, de los laboratorios IBM en San José (California), no tardó en
consolidarse como un nuevo paradigma en los modelos de base de datos.1
Elementos
Relaciones base
y derivadas
En una base de datos relacional, todos
los datos se almacenan y se accede a ellos por medio de relaciones. Las
relaciones que almacenan datos son llamadas "relaciones base" y su
implementación es llamada "tabla". Otras relaciones no almacenan
datos, pero son calculadas al aplicar operaciones relacionales. Estas
relaciones son llamadas "relaciones derivadas" y su implementación es
llamada "vista" o "consulta". Las relaciones derivadas son
convenientes ya que expresan información de varias relaciones actuando como si
fuera una sola.
Restricciones
Una restricción es una limitación que
obliga el cumplimiento de ciertas condiciones en la base de datos. Algunas no
son determinadas por los usuarios, sino que son inherentemente definidas por el
simple hecho de que la base de datos sea relacional. Algunas otras
restricciones las puede definir el usuario, por ejemplo, usar un campo con
valores enteros entre 1 y 10.
Las restricciones proveen un método de
implementar reglas en la base de datos. Las restricciones limitan los datos que
pueden ser almacenados en las tablas. Usualmente se definen usando expresiones
que dan como resultado un valor booleano, indicando si los datos satisfacen la
restricción o no.
Las restricciones no son parte formal
del modelo relacional, pero son incluidas porque juegan el rol de organizar
mejor los datos. Las restricciones son muy discutidas junto con los conceptos
relacionales.
Dominios
Un dominio describe un conjunto de
posibles valores para cierto atributo. Como un dominio restringe los valores
del atributo, puede ser considerado como una restricción. Matemáticamente,
atribuir un dominio a un atributo significa "todos los valores de este
atributo deben de ser elementos del conjunto especificado".
Distintos tipos de dominios son:
enteros, cadenas de texto, fecha,no procedurales etc.
Clave única
Cada tabla puede tener uno o más
campos cuyos valores identifican de forma única cada registro de dicha tabla,
es decir, no pueden existir dos o más registros diferentes cuyos valores en
dichos campos sean idénticos. Este conjunto de campos se llama clave única.
Pueden existir varias claves únicas en
una determinada tabla, y a cada una de éstas suele llamársele candidata a clave
primaria.
Clave
primaria
Una clave primaria es una clave única
elegida entre todas las candidatas que define unívocamente a todos los demás
atributos de la tabla, para especificar los datos que serán relacionados con
las demás tablas. La forma de hacer esto es por medio de claves foráneas.
Sólo puede existir una clave primaria
por tabla y ningún campo de dicha clave puede contener valores NULL.
Clave foránea
Una clave foránea es una referencia a
una clave en otra tabla, determina la relación existente en dos tablas. Las
claves foráneas no necesitan ser claves únicas en la tabla donde están y sí a
donde están referenciadas.
Por ejemplo, el código de departamento
puede ser una clave foránea en la tabla de empleados. Se permite que haya
varios empleados en un mismo departamento, pero habrá uno y sólo un
departamento por cada clave distinta de departamento en la tabla de empleados.
Clave índice
Las claves índice surgen con la
necesidad de tener un acceso más rápido a los datos. Los índices pueden ser
creados con cualquier combinación de campos de una tabla. Las consultas que
filtran registros por medio de estos campos, pueden encontrar los registros de
forma no secuencial usando la clave índice.
Las bases de datos relacionales
incluyen múltiples técnicas de ordenamiento, cada una de ellas es óptima para
cierta distribución de datos y tamaño de la relación.
Los índices generalmente no se
consideran parte de la base de datos, pues son un detalle agregado. Sin
embargo, las claves índices son desarrolladas por el mismo grupo de
programadores que las otras partes de la base de datos.
Procedimientos
almacenados
Un procedimiento almacenado es código
ejecutable que se asocia y se almacena con la base de datos. Los procedimientos
almacenados usualmente recogen y personalizan operaciones comunes, como
insertar un registro dentro de una tabla, recopilar información estadística, o
encapsular cálculos complejos. Son frecuentemente usados por un API por
seguridad o simplicidad.
Los procedimientos almacenados no son
parte del modelo relacional, pero todas las implementaciones comerciales los
incluyen.
Estructura
La base de datos se organiza en dos
marcadas secciones; el esquema y los datos (o instancia).
El esquema es la definición de la
estructura de la base de datos y principalmente almacena los siguientes datos:
·
El
nombre de cada tabla
·
El
nombre de cada columna
·
El
tipo de dato de cada columna
·
La
tabla a la que pertenece cada columna
Las bases de datos relacionales pasan
por un proceso al que se le conoce como normalización, el
resultado de dicho proceso es un esquema que permite que la base de datos sea
usada de manera óptima.
Los datos o instancia es el contenido
de la base de datos en un momento dado. Es en sí, el contenido de todos los
registros.
Sistema de gestión de bases de datos
Un Sistema de
Gestión de Bases de Datos (SGBD) es un conjunto de programas que permiten el
almacenamiento, modificación y extracción de la información en una base de datos,
además de proporcionar herramientas para añadir, borrar modificar y analizar
los datos. Los usuarios pueden acceder a la información usando herramientas
específicas de interrogación y de generación de informes, o bien mediante
aplicaciones al efecto.
Los SGBD también
proporcionan métodos para mantener la integridad de los datos, para administrar
el acceso de usuarios a los datos y recuperar la información si el sistema se
corrompe. Permite presentar la información de la base de datos en variados
formatos. La mayoría de los SGBD incluyen un generador de informes. También
puede incluir un módulo gráfico que permita presentar la información con
gráficos y tartas.
Hay muchos tipos
de SGBD distintos según manejen los datos y muchos tamaños distintos según
funcionen sobre ordenadores personales y con poca memoria a grandes sistemas que
funcionan en mainframes con sistemas de almacenamiento
especiales.
Generalmente se
accede a los datos mediante lenguajes de interrogación, lenguajes de alto nivel
que simpifican la tarea de construir las aplicaciones. También simplifican la
interrogación y la presentación de la información. Un SGDB permite controlar el
acceso a los datos, asegurar su integridad, gestionar el acceso concurrente a
ellos, recuperar los datos tras un fallo del sistema y hacer copias de
seguridad. Las Bases de Datos y los sistemas para su gestión son esenciales
para cualquier área de negocio, y deben ser gestionados con esmero.
Introducción
Las Bases de Datos generalmente
funcionan en ordenadores dedicados. Por las prestaciones requeridas,
generalmente funcionan en ordenadores multi-procesador con abundante memoria.
Para el almacenaje de los datos puede contar con sistemas de disco propio
(DAS), puede conectarse a una red de almacenamiento (SAN) o conectarse a un
sistema de almacenamiento en red (NAS). Existen aceleradores hardware, usados en grandes sistema de proceso
de transacciones. Los SGBD se encuentran en el corazón de toda aplicación que
maneje datos. Los SGDB se basan en sistemas operativos estándar para efectuar
dichas funciones.
Historia
Las Bases de Datos han estado en uso
desde los primeros días de los ordenadores electrónicos. A diferencia de los
sistemas modernos, que se pueden aplicar a datos y necesidades muy diferentes,
la mayor parte de los sistemas originales estaban enfocados a bases de datos
específicas y pensados para ganar velocidad a costa de perder flexibilidad. Los
SGBD originales sólo estaban a disposición de las grandes organizaciones que
podían disponer de los complejos ordenadores necesarios.
Sistemas de
navegación de 1960
Según los ordenadores fueron ganando
velocidad y capacidad, aparecieron sistemas e bases de datos de propósito
general; a mediados de 1960 ya había algunos sistema en uso. Apareció el
interés en obtener un estándar y Charles Bachman -autor de uno de los primeros
productos, el Integrated Data Store (IDS)- fundó el "Database Task
Group" dentro de CODASYL, el grupo responsable de la creación y
estandarización de COBOL. En 1971 publicaron su estándar, que pasó a ser
conocido como la "aproximación CODASYL", y en breve aparecieron
algunos productos basados en esta línea.
La estrategia de CODASYL estaba basada en la navegación manual
por un conjunto de datos enlazados en red. Cuando se arrancaba la base de
datos, el programa devolvía un enlace al primer registro de la base de datos,
el cual a su vez contenía punteros a otros datos. Para encontrar un registro
concreto el programador debía ir siguiendo punteros hasta llegar al registro
buscado.
Para responder a preguntas sencillas
como "buscar todas las personas en Japón" el programa debía recorrer
todos los datos para escoger los registros correctos. Esencialmente no existían
los conceptos "buscar" ni "encontrar" que sería inaceptable
hoy en día, pero que en los tiempos en que los datos se guardaban en cintas no
era viable llevarlos a la práctica.
Se encontraron soluciones a muchos de
esos problemas. El fabricante Prime creó un SGBD ajustado a CODASYL basado en árboles binarios que atajaba la navegación de registro
en registro proveyendo caminos alternativos de acceso. También aportaba un
lenguaje de interrogación muy claro. De hecho no hay razón para no poder
aplicar los conceptos de normalización a bases de datos CODASYL, pero en último
término CODASYL resultaba muy complejo y requería de mucho esfuerzo y práctica
para producir una aplicación útil.
IBM también tenía su SGBD propio en
1968, conocido como IMS. Se
trataba de un software desarrollado para el programa Apolo sobre System/360. IMS tenía conceptos
similares a CODASYL, pero usaba una jerarquía estricta de ordenación de los
datos, frente a la estructura en red de CODASYL. Ambos conceptos fueron
englobados posterioremnte en el concepto de Bases de Datos de navegación debido
al modo de acceso a los datos, de hecho Bachman recibió al premio Turing en
1973 por su ponencia "El programador como navegador"1 . De los SGBD primigenios, IMS está
catalogado hoy en día como una base de datos jerárquica, mientras que IDMS y TOTAL se consideran bases de datos
en red.
Niveles de un sgbd
·
1.
Niveles de un sgbdEn 1975, el comité ANSI-SPARC (American National Standard
Institute -StandardsPlanning and RequirementsCommittee) propuso una
arquitectura de tresniveles para los SGBD cuyo objetivo principal era el de
separar los programas deaplicación de la BD física. En esta arquitectura el
esquema de una BD se define en tresniveles de abstracción distintos:- Nivel
interno o físico: el más cercano al almacenamiento físico, es decir, tal y
comoestán almacenados en el ordenador. Describe la estructura física de la BD
mediante unesquema interno. Este esquema se especifica con un modelo físico y
describe los detallesde cómo se almacenan físicamente los datos: los archivos
que contienen la información,su organización, los métodos de acceso a los
registros, los tipos de registros, la longitud,los campos que los componen,
etcétera.- Nivel externo o de visión: es el más cercano a los usuarios, es
decir, es donde sedescriben varios esquemas externos o vistas de usuarios. Cada
esquema describe laparte de la BD que interesa a un grupo de usuarios en este
nivel se representa la visiónindividual de un usuario o de un grupo de
usuarios.- Nivel conceptual: describe la estructura de toda la BD para un grupo
de usuariosmediante un esquema conceptual. Este esquema describe las entidades,
atributos,relaciones, operaciones de los usuarios y restricciones, ocultando
los detalles de lasestructuras físicas de almacenamiento. Representa la
información contenida en la BD.Tipos de sgbd Clasificación de los SGBDEsta
clasificación está basada en el modelo de datos en que está basado el SGBD. Los
modelos de datosmás habituales son:* Relacional (SGBDR): representa a la base
de datos como una colección de tablas. Estas bases de datossuelen utilizar SQL
como lenguaje de consultas de alto nivel.* Orientado a objetos: define a la
base de datos en términos de objetos, sus propiedades y sus operaciones.Todos
los objetos que tienen la misma estructura y comportamiento pertenecen a una
clase y las clases de
·
2.
organizan en jerarquías.* Objeto-relacional o relacional extendido: son los
sistemas relacionales con características de los orientado aobjetos.*
Jerárquico: representa los datos como estructuras jerárquicas de árbol.* En red
o CODASYL DBTG.Un SGBD también puede clasificarse por el número de usuario a
los que da servicio:* Monousuario* MultiusuarioTambién puede clasificarse según
el número de sitios en los que está distribuida la base de datos:*
Centralizado: la base de datos y el software SGBD están almacenados en un solo
sitio (una solacomputadora).* Distribuido (SGBDD): la base de datos y el
software SGBD pueden estar distribuidos en múltiples sitiosconectados por una
red.Breve historia de los SGBDREl modelo relacional fue presentado en la década
del 70, y a partir de ese momento comenzaron adesarrollarse múltiples sistemas
para gestionar las bases de datos relacionales. IBM fue una de las pionerasen
el desarrollo de productos comerciales sobre SGBD relacionales; algunos de sus
productos fueron elSQL/DS para los entornos DOS/VSE y VM/CMS, y el DB2 para el
sistema operativo MVS en 1983.En tanto, INGRES fue otro SGBDR desarrollado por
la Universidad de Berkeley a principios de los setenta.Luego se convirtió en
comercial y comenzó a ser distribuido por Ingres Inc. y luego por
ComputerAssociates.Otras marcas comerciales de SGBDR son Oracle de Oracle Inc.,
Sybase de Sybase Inc., RDB de DigitalEquipment Corp. de Compaq, INFORMIX de
Informix Inc. y UNIFY de Unify Inc.Además de los SGBDR mencionados, en los
ochenta aparecen múltiples aplicaciones para PCs como serRIM, RBASE 5000,
PARADOX, OS/2 Database Manager, DBase IV, XDB, WAT-COM SQL, SQLServer (deSybase
Inc.), SQL Server (de Microsoft), Access, etc.Modelo entidad-relación
·
3.
Ejemplo de diagrama E-R.Un diagrama o modelo entidad-relación (a veces
denominado por su siglas, E-R "Entityrelationship", o,
"DER" Diagrama de Entidad Relación) es una herramienta parael
modelado de datos de un sistema de información. Estos modelos expresan
entidades relevantespara un sistema de información así como sus interrelaciones
y propiedades. Contenido [ocultar]1 Modelado Entidad-Relación2 Base Teórica y
Conceptual o 2.1 Entidad o 2.2 Conjunto de entidades o 2.3 Atributos o 2.4
Relación o 2.5 Conjunto de relaciones3 Restricciones o 3.1 Correspondencia de
cardinalidades o 3.2 Restricciones de participación4 Claves5 Diagrama
entidad-relación o 5.1 Entidad o 5.2 Atributo o 5.3 Relaciones6 Diagramas extendidos
o 6.1 Entidades fuertes y débiles
·
Transformación
de relaciones múltiples en binarias.§4. o 6.2 Cardinalidad
de las relaciones o 6.3 Atributos en relaciones o 6.4 Herencia o 6.5
Agregación7 Véase tambiénModelado Entidad-Relación [editar]El Modelo
Entidad-Relación, también conocido como DER (diagramas entidad-relación) es
unaherramienta de modelado para bases de datos, propuesto por Peter Chen en
1976, mediante elcual se pretende visualizar los objetos que pertenecen a la
Base de Datos como entidades (secorresponde al concepto de clase, cada tupla
representaría un objeto, de la ProgramaciónOrientada a Objetos) las cuales
tienen unos atributos y se vinculan mediante relaciones.Es una representación
conceptual de la información. Mediante una serie de procedimientos sepuede
pasar del modelo E-R a otros, como por ejemplo el modelo relacional.El modelado
entidad-relación es una técnica para el modelado de datos utilizando
diagramasentidad relación. No es la única técnica pero sí la más utilizada.
Brevemente consiste en lossiguientes pasos: 1. Se parte de una descripción
textual del problema o sistema de información a automatizar (los requisitos).
2. Se hace una lista de los sustantivos y verbos que aparecen. 3. Los
sustantivos son posibles entidades o atributos. 4. Los verbos son posibles
relaciones. 5. Analizando las frases se determina la cardinalidad de las
relaciones y otros detalles. 6. Se elabora el diagrama (o diagramas)
entidad-relación. 7. Se completa el modelo con listas de atributos y una descripción
de otras restricciones que no se pueden reflejar en el diagrama.Dado lo
rudimentario de esta técnica se necesita cierto entrenamiento y experiencia
para lograrbuenos modelos de datos.El modelado de datos no acaba con el uso de
esta técnica. Son necesarias otras técnicas paralograr un modelo directamente
implementable en una base de datos. Brevemente:
·
Todos
los países del mundo, comparten las características: nombre, continente, área,
lengua principal, lengua secundaria, moneda, etc.Atributos [editar]Los
atributos son las propiedades que describen a cada entidad en un conjunto de
entidades.§ Todos los atletas que participan en los
Juegos Olímpicos, comparten sus atributos: nombre, número de identificación,
edad, peso, categoría...§ Una casa (Aunque sea
exactamente igual a otra, aún se diferenciará en su dirección).Una entidad
puede ser un objeto con existencia física como: una persona, un animal, una
casa,etc. (entidad concreta), o un objeto con existencia conceptual como: un
puesto de trabajo, unaasignatura de clases, un nombre,etc. (entidad
abstracta).Una entidad está descrita y se representa por sus características o
atributos. Por ejemplo, laentidad Persona puede llevar consigo las
características: Nombre, Apellido, Género, Estatura,Peso, Fecha de nacimiento,
etc...Conjunto de entidades [editar]Es una colección de entidades que comparten
los mismos atributos o características.Ejemplos: Un automóvil. (Aunque sean de
la misma marca, el mismo modelo,..., tendrán atributos diferentes, por ejemplo,
el número de bastidor).§ Una persona. (Se
diferencia de cualquier otra persona, incluso siendo gemelos).§
Conversión en tablas (en caso de utilizar una base de datos relacional).Base
Teórica y Conceptual [editar]El modelo entidad-relación se basa en los conceptos
descritos a continuación para representar unmodelo de la vida real.Entidad
[editar]Representa una “cosa” u "objeto" del mundo real con
existencia independiente, es decir, sediferencia unívocamente de cualquier otro
objeto o cosa, incluso siendo del mismo tipo, o unamisma entidad.Algunos
Ejemplos:§ Normalización de una base de datos de
relaciones (algunas relaciones pueden transformarse en atributos y viceversa).§5.
·
...Cada
una de las entidades pertenecientes a este conjunto se diferencia de las demás
por el valorde sus atributos. Nótese que dos o más entidades diferentes pueden
tener los mismos valores paraalgunos de sus atributos, pero nunca para todos.En
particular, los atributos identificativos son aquellos que permiten diferenciar
a una instanciade la entidad de otra distinta. Por ejemplo, el atributo
identificativo que distingue a un alumno deotro es su número de id.Para cada
atributo, existe un dominio del mismo, este hace referencia al tipo de datos
que seráalmacenado o a restricciones en los valores que el atributo puede tomar
(Cadenas de caracteres,números, solo dos letras, solo números mayores que cero,
solo números enteros...).Cuando una entidad no tiene un valor para un atributo
dado, este toma el valor nulo, bien sea queno se conoce, que no existe o que no
se sabe nada al respecto del mismo.Relación [editar]Describe cierta dependencia
entre entidades o permite la asociación de las mismas.Ejemplo:Dadas dos
entidades "Habitación 502" y "Mark", es posible relacionar
quelahabitacion 502 se encuentra ocupada por el huésped de nombre Mark.Una
relación tiene sentido al expresar las entidades que relaciona. En el ejemplo
anterior, UnHuésped (entidad), se aloja (relación) en una habitación
(entidad).Conjunto de relaciones [editar]§ (3, Gabriela, 20
años, 2)§ (2, Josefa, 19 años, 5)§
(1, Sofia, 18 años, 2)§6. Un conjunto de
entidades dentro de una entidad, tiene valores específicos asignados para
cadauno de sus atributos, de esta forma, es posible su identificación
unívoca.Ejemplos:A la colección de entidades Alumnos, con el siguiente conjunto
de atributos en común, (id, nombre,edad, semestre), pertenecen las entidades:
·
Total:
Cuando cada entidad en A participa en al menos una relación de R.§
Varios a varios: Una entidad en A se puede relacionar con 0 o muchas entidades
en B y viceversa.Restricciones de participación [editar]Dado un conjunto de
relaciones R en el cual participa un conjunto de entidades A,
dichaparticipación puede ser de dos tipos:§ Varios a uno: Una
entidad en A se relaciona exclusivamente con una entidad en B. Pero una entidad
en B se puede relacionar con 0 o muchas entidades en A.§
Uno a varios: Una entidad en A se relaciona con cero o muchas entidades en B.
Pero una entidad en B se relaciona con una única entidad en A.§
Uno a uno: Una entidad de A se relaciona únicamente con una entidad en B y
viceversa.§7. Consiste en una colección, o conjunto, de
relaciones de la misma naturaleza.Ejemplo:Dados los conjuntos de entidades
"Habitación" y "Huésped", todas las relaciones de la
formahabitación-huésped, permiten obtener la información de los huéspedes y sus
respectivashabitaciones.La dependencia o asociación entre los conjuntos de
entidades es llamada participación. En elejemplo anterior los conjuntos de
entidades "Habitación" y "Huésped" participan en el
conjunto derelaciones habitación-huésped.Se llama grado del conjunto de
relaciones a la cantidad de conjuntos de entidades participantes enla
relación.Restricciones [editar]Son reglas que deben mantener los datos
almacenados en la base de datos.Correspondencia de cardinalidades [editar]Dado
un conjunto de relaciones en el que participan dos o más conjuntos de
entidades, lacorrespondencia de cardinalidad indica el número de entidades con
las que puede estarrelacionada una entidad dada.Dado un conjunto de relaciones
binarias y los conjuntos de entidades A y B, la correspondencia
decardinalidades puede ser:
·
R
es de uno a uno de A a B entonces se toma cualquiera de las dos claves
primarias, como clave primaria de R.§ R es de uno a muchos
de A a B entonces se toma sólo la clave primaria de B, como clave primaria de
R.§ R es de muchos a uno de A a B entonces sólo
se toma la clave primaria de A, como clave primaria de R.§
R tiene atributos asociados: En este caso, se usa como clave primaria de R la
unión de los atributos asociados y las claves primarias de todos los conjuntos
de entidades participantes.Si el conjunto de relaciones, R, sobre las que se
pretende determinar la clave primaria estácompuesto de relaciones binarias, con
los conjuntos de entidades participantes A y B, seconsideran los siguientes
casos, según sus cardinalidades:§ R NO tiene atributos
asociados: En este caso, se usa como clave primaria de R la unión de las claves
primarias de todos los conjuntos de entidades participantes.§
Clave primaria: Es una clave candidata, elegida por el diseñador de la base de
datos, para identificar unívocamente las entidades en un conjunto de
entidades.Los valores de los atributos de una clave, no pueden ser todos
iguales para dos o más entidades.Para poder distinguir unívocamente las
relaciones en un conjunto de relaciones R, se debenconsiderar dos casos:§
Clave candidata: Dada una superclave, si ésta deja de serlo quitando únicamente
uno de los atributos que la componen, entonces ésta es una clave candidata.§
Superclave: Es un subconjunto de atributos que permite distinguir unívocamente
cada una de las entidades de un conjunto de entidades. Si se añade un atributo
al anterior subconjunto, el resultado seguirá siendo una superclave.§
Parcial: Cuando al menos una entidad en A NO participa en alguna relación de
R.Claves [editar]Es un subconjunto del conjunto de atributos comunes en una
colección de entidades, que permiteidentificar unívocamente cada una de las
entidades pertenecientes a dicha colección. Asimismo,permiten distinguir entre
sí las relaciones de un conjunto de relaciones.Dentro de los conjuntos de
entidades existen los siguientes tipos de claves:§8.
·
R
es de muchos a muchos de A a B entonces se toma la unión de los atributos que
conforman las claves primarias de A y de B, como clave primaria de R.Diagrama
entidad-relación [editar]Formalmente, los diagramas E-R son un lenguaje gráfico
para describir conceptos. Informalmente,son simples dibujos o gráficos que
describen la información que trata un sis§9. tema de
información yel software que lo automatiza.Entidad [editar]Se representa
mediante un rectángulo o "caja" etiquetada en su interior mediante un
identificador.Ejemplos de entidades habituales en los sistemas de información
son: factura, persona, empleado,etc.Atributo [editar]Se representan mediante un
círculo o elipse etiquetado mediante un nombre en su interior. Cuandoun
atributo es identificativo de la entidad se suele subrayar dicha
etiqueta.Relaciones [editar]Se representa mediante un rombo etiquetado en su
interior con un verbo. Este rombo se debe unirmediante líneas con las entidades
(rectángulos) que relaciona.Por motivos de legibilidad, los atributos no suelen
representarse en un diagrama entidad-relación,sino que se describen
textualmente en otros documentos adjuntos.Diagramas extendidos [editar]DER
extendidoLos diagramas Entidad-Relación no cumplen su propósito con eficacia
debido a que tienenlimitaciones semánticas. Por ese motivo se suelen utilizar
los diagramas Entidad-Relaciónextendidos que incorporan algunos elementos más
al lenguaje:
·
Un
cliente (entidad) puede comprar (relación) varios artículos (entidad) y un
artículo puede ser comprado por varios clientes distintos. Es una relación
N:M.Atributos en relaciones [editar]Las relaciones también pueden tener
atributos asociados. Se representan igual que los atributos delas entidades. Un
ejemplo típico son las relaciones de tipo "histórico" donde debe
constar unafecha o una hora. Por ejemplo, supongamos que es necesario hacer constar
la fecha de emisiónde una factura a un cliente, y que es posible emitir
duplicados de la factura (con distinta fecha). Ental caso, el atributo
"Fecha de emisión" de la factura debería colocarse en la relación
"se emite".§ Una factura
(entidad) se emite (relación) a una persona (entidad) y sólo una, pero una
persona puede tener varias facturas emitidas a su nombre. Todas las facturas se
emiten a nombre de alguien. Es una relación 1:N.§ Cada esposo
(entidad) está casado (relación) con una única esposa (entidad) y viceversa. Es
una relación 1:1.§ "N" ,
"M", ó "*" si cada instancia de la entidad no está obligada
a participar en la relación y puede hacerlo cualquier número de veces.Ejemplos
de relaciones que expresan cardinalidad:§ "1" si
toda instancia de la entidad está obligada a participar en la relación y,
además, solamente participa una vez.§ "0" si
cada instancia de la entidad no está obligada a participar en la relación.§10.
Entidades fuertes y débiles [editar]Cuando una entidad participa en una
relación puede adquirir un papel fuerte o débil. Una entidaddébil es aquella
que no puede existir sin participar en la relación, es decir, aquella que no
puedeser unívocamente identificada solamente por sus atributos. Una entidad
fuerte (también conocidacomo entidad regular) es aquella que sí puede ser
identificada unívocamente. En los casos en quese requiera, se puede dar que una
entidad fuerte "preste" algunos de sus atributos a una entidaddébil
para que, esta última, se pueda identificar.Las entidades débiles se representan-
mediante un doble rectángulo, es decir, un rectángulo condoble
línea.Cardinalidad de las relaciones [editar]El tipo de cardinalidad se
representa mediante una etiqueta en el exterior de la relación,respectivamente:
"1:1", "1:N" y "N:M", aunque la notación depende
del lenguaje utilizado, la quemás se usa actualmente es el unificado. Otra
forma de expresar la cardinalidad es situando unsímbolo cerca de la línea que
conecta una entidad con una relación:
·
11.
Herencia La herencia es un intento de adaptación de estos diagramas al
paradigma orientado a objetos. La herencia es un tipo de relación entre una
entidad "padre" y una entidad "hijo". La entidad
"hijo" hereda todos los atributos y relaciones de la entidad "padre".
Por tanto, no necesitan ser representadas dos veces en el diagrama. La relación
de herencia se representa mediante un triángulo interconectado por líneas a las
entidades. La entidad conectada por el vértice superior del triángulo es la
entidad "padre". Solamente puede existir una entidad
"padre" (herencia simple). Las entidades "hijo" se conectan
por la base del triángulo. Agregación [editar] Ejemplo agregación Es una
abstracción a través de la cual las relaciones se tratan como entidades de un
nivel más alto. Se utiliza para expresar relaciones entre relaciones o entre
entidades y relaciones. Se representa englobando la relación abstraída y las
entidades que participan en ella en un rectángulo. En la figura se muestra un
ejemplo de agregación en el que se representa la situación en la que un
profesor, cuando está impartiendo una clase, puede poner una incidencia
ocurrida a lo largo de ésta (se fue la luz, falta la configuración de un
determinado software, etc.). Modelo Relacional - PresentationTranscript1. BASE
DE DATOS (IV) Prof. Omar A. Rivera Zarate Instituto Superior Tecnológico
Público “OXAPAMPA”2. MODELO RELACIONAL3. MODELO RELACIONAL o Edgar Frank Codd a
finales definió las bases del modelo relacional a finales de los 60.Trabajaba
para IBM empresa que tardó un poco en implementar sus bases. Pocos años después
el modelo se empezó a implementar cada vez más, hasta ser el modelo de bases de
datos más popular.4. OBJETIVOS DEL MODELO
·
12.
o Independencia física . La forma de almacenar los datos, no debe influir en su
manipulación lógica o Independencia lógica . Las aplicaciones que utilizan la
base de datos no deben ser modificadas por que se modifiquen elementos de la
base de datos. o Flexibilidad . La base de datos ofrece fácilmente distintas
vistas en función de los usuarios y aplicaciones. o Uniformidad . Las
estructuras lógicas siempre tienen una única forma conceptual (las tablas) o
Sencillez .5. EVOLUCION DEL MODELO o Año Hecho o 1970 Codd publica las bases
del modelo relacional o 1971-72 Primeros desarrollos teóricos o 1973-78 Primeros
prototipos o 1978 Aparece el lenguaje QBE o 1979 Aparece Oracle o 1980 Aparece
Ingres o 1981 Aparece SQL o 1982 Aparece DB2 o 1986 ANSI normaliza el SQL
(SQL/ANSI) o 1987 SQL de ISO o 1990 Versión dos del modelo relacional (RM/V2) o
1992 SQL 92 o 1998 SQL 36. TABLAS o Las bases de datos relacionales se basan en
el uso de tablas (también se las llama relaciones ). Las tablas se representan
gráficamente como una estructura rectangular formada por filas y columnas. Cada
columna almacena información sobre una propiedad determinada de la tabla (se le
llama también atributo ), nombre, dni, apellidos, edad,.... Cada fila posee una
ocurrencia o ejemplar de la instancia o relación representada por la tabla (a
las filas se las llama también tuplas ).7. TABLAS8. TERMINOLOGIA RELACIONAL o
Tupla. Cada fila de la tabla (cada ejemplar que la tabla representa) o
Atributo. Cada columna de la tabla
·
Instantáneas
. Son vistas (creadas de la misma forma) que sí que almacenan los datos que
muestra, además de la consulta que dio lugar a esa vista. Sólo modifican su
resultado (actualizan los datos) siendo refrescadas por el sistema cada cierto
tiempo. o Temporales . Son tablas que se eliminan automáticamente por el
sistema. Pueden ser de cualquiera de los tipos anterior.10. DOMINIOS o Los
dominios suponen una gran mejora en este modelo ya que permiten especificar los
posibles valores válidos para un atributo. Cada§ Vistas . Son tablas
que sólo almacenan una definición de consulta, resultado de la cual se produce
una tabla cuyos datos proceden de las bases o de otras vistas e instantáneas.
Si los datos de las tablas base cambian, los de la vista que utiliza esos datos
también cambia. § Base .
Independientes, se crean indicando su estructura y sus ejemplares. §13.
o Grado. Número de atributos de la tabla o Cardinalidad. Número de tuplas de
una tabla o Dominio . Conjunto válido de valores representables por un
atributo.9. TIPOS DE TABLAS o Persistentes. Sólo pueden ser borradas por los
usuarios: dominio incorpora su nombre y
una definición del mismo. o Ejemplos de dominio: o Dirección: 50 caracteres o
Nacionalidad: Español, Francés, Italiano,... o Los dominios pueden ser también
compuestos a partir de otros (año, mes y día = fecha)11. CLAVES o Clave
candidata o Conjunto de atributos de una tabla que identifican unívocamente
cada tupla de la tabla. o Clave primaria o Clave candidata que se escoge como
identificador de las tuplas. o Clave alternativa o Cualquier clave candidata
que no sea primaria o Clave externa o secundaria o Atributo de una tabla
relacionado con una clave de otra tabla.12. VALORES NULOS
·
14.
o Los valores nulos indican contenidos de atributos que no tienen ningún valor.
En claves secundarias indican que el registro actual no está relacionado con
ninguno. En otros atributos indica que no se puede rellenar ese valor por la
razón que sea. o Las bases de datos relacionales admiten utilizar ese valor en
todo tipo de operaciones. Eso significa definir un tercer valor en la lógica.
Además de el valor verdadero o falso, existe el valor para los nulos.13. LOGICA
DEL VALOR NULO o verdadero Y (AND) nulo da como resultado, nulo o falso Y (AND)
nulo da como resultado, falso o verdadero O (OR) nulo da como resultado,
verdadero o falso O nulo da como resultado nulo o la negación de nulo, da como
resultado nulo14. RESTRICCIONES o Se trata de unas condiciones de obligado
cumplimiento por los datos de la base de datos. o Las hay de varios tipos. o
Inherentes o Semánticas15. RESTRICCIONES INHERENTES o Son aquellas que no son
determinadas por los usuarios, sino que son definidas por el hecho de que la
base de datos sea relacional. o Por ejemplo: o No puede haber dos tuplas
iguales o El orden de las tuplas no importa o El orden de los atributos no
importa o Cada atributo sólo puede tomar un valor en el dominio en el que está
inscrito16. RESTRICCIONES SEMANTICAS o El modelo relacional permite a los
usuario incorporar restricciones personales a los datos. Las principales son: o
Clave primaria . Hace que los atributos marcados como clave primaria no puedan
repetir valores. o Unicidad . Impide que los valores de los atributos marcados
de esa forma, puedan repetirse. o Obligatoriedad . Prohíbe que el atributo
marcado de esta forma no tenga ningún valor o Integridad referencial . Prohíbe
colocar valores en una clave externa que no estén reflejados en la tabla donde
ese atributo es clave primaria.
·
15.
o Regla de validación. Condición que debe de cumplir un dato concreto para que
sea actualizado.17. LAS 12 REGLAS DE CODD o Preocupado por los productos que
decían ser sistemas gestores de bases de datos relacionales (RDBMS) sin serlo,
Codd publica las 12 reglas que debe cumplir todo DBMS para ser considerado
relacional. Estas reglas en la práctica las cumplen pocos sistemas
relacionales.18. LAS 12 REGLAS DE CODD o 1. Información . Toda la información
de la base de datos debe estar representada explícitamente en el esquema
lógico. Es decir, todos los datos están en las tablas. o 2. Acceso garantizado
. Todo dato es accesible sabiendo el valor de su clave y el nombre de la
columna o atributo que contiene el dato. o 3. Tratamiento sistemático de los
valores nulos . El DBMS debe permitir el tratamiento adecuado de estos valores.
o 4. Catálogo en línea basado en el modelo relacional. Los metadatos deben de
ser accesibles usando un esquema relacional.19. LAS 12 REGLAS DE CODD o 5.
Sublenguaje de datos completo . Al menos debe de existir un lenguaje que
permita el manejo completo de la base de datos. Este lenguaje, por lo tanto,
debe permitir realizar cualquier operación. o 6. Actualización de vistas. El
DBMS debe encargarse de que las vistas muestren la última información o 7.
Inserciones, modificaciones y eliminaciones de dato nivel. Cualquier operación
de modificación debe actuar sobre conjuntos de filas, nunca deben actuar
registro a registro. o 8. Independencia física. Los datos deben de ser
accesibles desde la lógica de la base de datos aún cuando se modifique el
almacenamiento.20. LAS 12 REGLAS DE CODD o 9. Independencia lógica. Los
programas no deben verse afectados por cambios en las tablas o 10.Independencia
de integridad. Las reglas de integridad deben almacenarse en la base de datos
(en el diccionario de datos), no en los programas de aplicación. o
11.Independencia de la distribución. El sublenguaje de datos debe permitir que
sus instrucciones funciones igualmente en una base de datos distribuida que en
una que no lo es. o 12.No subversión . Si el DBMS posee un lenguaje que permite
el recorrido registro a registro, éste no puede utilizarse para incumplir las
reglas relacionales.21. PASO DEL ESQUEMA E/R AL MODELO RELACIONAL o
TRANSFORMACION DE ENTIDADES FUERTES o En principio las entidades fuertes del
modelo. Entidad Relación son transformados al modelo relacional siguiendo estas
instrucciones: o Entidades. Las entidades pasan a ser tablas
·
16.
o Atributos . Los atributos pasan a ser columnas. o Identificadores principales
. Pasan a ser claves primarias o Identificadores candidatos . Pasan a ser
claves candidatas.22. PASO DEL ESQUEMA E/R AL MODELO RELACIONAL23. TRANSFORMACION
DE RELACIONES o RELACION VARIOS A VARIOS o En las relaciones varios a varios,
la relación se transforma en una tabla cuyos atributos son: los atributos de la
relación y las claves de las entidades relacionadas (que pasarán a ser claves
externas). La clave de la tabla la forman todas las claves externas:24.
TRANSFORMACION DE RELACIONES o RELACION VARIOS A VARIOS25. TRANSFORMACION DE
RELACIONES o RELACIONES DE ORDEN N o Las relaciones ternarias, cuaternarias y
n-arias que unen más de dos relaciones se transforman en una tabla que contiene
los atributos de la relación más los identificadores de las entidades
relacionadas. La clave la forman todas las claves externas:26. TRANSFORMACION
DE RELACIONES o RELACIONES DE ORDEN N27. TRANSFORMACION DE RELACIONES o
RELACIONES DE UNO A VARIOS Y DE UNO A UNO o Las relaciones binarios de tipo uno
a varios no requieren ser transformadas en una tabla en el modelo relacional.
En su lugar la tabla del lado varios ( tabla relacionada) incluye como clave
externa1 el identificador de la entidad del lado uno ( tabla principal ):28.
TRANSFORMACION DE RELACIONES o RELACIONES DE UNO A VARIOS Y DE UNO A UNO29.
TRANSFORMACION DE RELACIONES o Así en el dibujo, el identificador2 en la tabla
E ntidad1 pasa a ser una clave externa. En el caso de que el número mínimo de
la relación sea de cero (puede haber ejemplares de la entidad uno sin
relacionar), se deberá permitir valores nulos en la clave externa. Así en el
dibujo, el identificador2 en la tabla E ntidad1 pasa a ser una clave externa.
En el caso de que el número mínimo de la relación sea de cero (puede haber
ejemplares de la entidad uno sin relacionar), se deberá permitir valores nulos
en la clave externa30. TRANSFORMACION DE RELACIONES o RELACIONES RECURSIVAS
·
17.
o Las relaciones recursivas se tratan de la misma forma que las otras, sólo que
un mismo atributo puede figurar dos veces en una tabla como resultado de la
transformación:31. TRANSFORMACION DE RELACIONES o RELACIONES RECURSIVAS32.
TRANSFORMACION DE RELACIONES o RELACIONES RECURSIVAS33. TRANSFORMACION DE
RELACIONES o ENTIDADES DEBILES o Toda entidad débil incorpora una relación
implícita con una entidad fuerte. Esta relación no necesita incorporarse como
tabla en el modelo relacional. Sí se necesita incorporar la clave de la entidad
fuerte como clave externa en la entidad débil. Es más, normalmente esa clave
externa forma parte de la clave principal de la tabla que representa a la
entidad débil.34. TRANSFORMACION DE RELACIONES o ENTIDADES DEBILES35.
TRANSFORMACION DE RELACIONES o ENTIDADES DEBILES o En ocasiones el
identificador de la entidad débil es suficiente para identificar los ejemplares
de dicha entidad, entonces ese identificador quedaría como clave principal,
pero el identificador de la entidad fuerte seguiría figurando como clave
externa en la entidad débil.
Herramienta de Gestión de Base de Datos y Valores
Históricos
|
Los datos generados por las
estaciones de control son registrados de forma periódica en la base de datos
del sistema.
Esta información está accesible
desde el primer día de la instalación, además la generación de informes
a partir de los datos se puede preconfigurar y enviar a los responsables de
forma automática.
|
Facilidades
para la visualización de los datos históricos
- Configuración personalizada de la información y
los períodos.
- Envío automático de informes según la periodicidad
programada (diario, semanal, a una hora concreta, etc) y a través de los
medios definidos por el cliente.
- Múltiples formatos de visualización y
descarga (MS
Excel, MS Word, PDF, así como en formatos de estándares abiertos)
- Personalización de los informes con la identidad
corporativa del cliente (logotipo, formatos, etc.)
- Presentación de los datos en tablas y gráficos.
Herramientas De Programacion
·
Herramientas
De Programación
Las herramientas de programación, son aquellas que permiten realizar aplicativos, programas, rutinas, utilitarios y sistemas para que la parte física del computador u ordenador, funcione y pueda producir resultados.Hoy día existen múltiples herramientas de programación en el mercado, tanto para analistas expertos como para analistas inexpertos.Las herramientas de programación más comunes del mercado, cuentan hoy día con programas de depuración o de bugger, que son utilitarios que nos permiten detectar los posibles errores en tiempo de ejecución o corrida de rutinas y programas. |
Entre otras herramientas de programación encontramos librerías y componentes, dados por algunos lenguajes de programación como son el C++ y delphi.
Otras herramientas de programación son los lenguajes de programación, que nos permiten crear rutinas, programas y utilitarios.
Entre algunas de estas herramientas de programación tenemos:
* Basic y Pascal que son herramientas de programación, idóneas para la inicialización de los programadores.
* C y C++ que sirven para la programación de sistemas.
* Cobol, que es una herramienta de programación orientada hacia sistemas de gestión empresarial como nominas y contabilidad.
* Fortran, que son lenguajes específicos para cálculos matemáticos y o numéricos.
* Herramientas de programación para ambientes gráficos como son Visual Basic, Delphi y Visual C.
* HTML y Java, que permiten la creación de páginas WEB para internet.
Interrupciones del PIC16F84
Las interrupciones constituyen quizá el mecanismo más importante para la conexión del micro controlador con el mundo exterior, sincronizando la ejecución de programas con acontecimientos externos.
El funcionamiento de las interrupciones es similar al de las subrutinas de las cuales se diferencian principalmente en los procedimientos que las ponen en marcha. Así como las subrutinas se ejecutan cada vez que en el programa aparece una instrucción.
Las herramientas de programación, son aquellas que permiten realizar aplicativos, programas, rutinas, utilitarios y sistemas para que la parte física del computador u ordenador, funcione y pueda producir resultados.Hoy día existen múltiples herramientas de programación en el mercado, tanto para analistas expertos como para analistas inexpertos.Las herramientas de programación más comunes del mercado, cuentan hoy día con programas de depuración o de bugger, que son utilitarios que nos permiten detectar los posibles errores en tiempo de ejecución o corrida de rutinas y programas. |
Entre otras herramientas de programación encontramos librerías y componentes, dados por algunos lenguajes de programación como son el C++ y delphi.
Otras herramientas de programación son los lenguajes de programación, que nos permiten crear rutinas, programas y utilitarios.
Entre algunas de estas herramientas de programación tenemos:
* Basic y Pascal que son herramientas de programación, idóneas para la inicialización de los programadores.
* C y C++ que sirven para la programación de sistemas.
* Cobol, que es una herramienta de programación orientada hacia sistemas de gestión empresarial como nominas y contabilidad.
* Fortran, que son lenguajes específicos para cálculos matemáticos y o numéricos.
* Herramientas de programación para ambientes gráficos como son Visual Basic, Delphi y Visual C.
* HTML y Java, que permiten la creación de páginas WEB para internet.
Interrupciones del PIC16F84
Las interrupciones constituyen quizá el mecanismo más importante para la conexión del micro controlador con el mundo exterior, sincronizando la ejecución de programas con acontecimientos externos.
El funcionamiento de las interrupciones es similar al de las subrutinas de las cuales se diferencian principalmente en los procedimientos que las ponen en marcha. Así como las subrutinas se ejecutan cada vez que en el programa aparece una instrucción.
Lenguaje de un Sistema Gestor de Bases de Datos
Una vez finalizado el diseño de una base de datos y escogido un SGBD para su implementación, el primer paso consiste en especificar el esquema conceptual y el esquema interno de la base de datos, y la correspondencia entre ambos. En muchos SGBD no se mantiene una separación estricta de niveles, por lo que el administrador de la base de datos y los diseñadores utilizan el mismo lenguaje para definir ambos esquemas, es el lenguaje de definición de datos (LDD). El SGBD posee un compilador de LDD cuya función consiste en procesar las sentencias del lenguaje para identificar las descripciones de los distintos elementos de los esquemas y almacenar la descripción del esquema en el catálogo o diccionario de datos. Se dice que el diccionario contiene metadatos: describe los objetos de la base de datos.
Cuando en un SGBD hay una clara separación entre los niveles conceptual e interno, el LDD sólo sirve para especificar el esquema conceptual. Para especificar el esquema interno se utiliza un lenguaje de definición de almacenamiento (LDA).
Las correspondencias entre ambos esquemas se pueden especificar en cualquiera de los dos lenguajes. Para tener una verdadera arquitectura de tres niveles sería necesario disponer de un tercer lenguaje, el lenguaje de definición de vistas(LDV), que se utilizaría para especificar las vistas de los usuarios y su correspondencia con el esquema conceptual.
Lenguaje de manejo de datos
Una vez creados los esquemas de la base de datos, los usuarios necesitan un lenguaje que les permita manipular los datos de la base de datos: realizar consultas, inserciones, eliminaciones y modificaciones. Este lenguaje es el que se denominalenguaje de manejo de datos (LMD).
Hay dos tipos de LMD: los procedurales y los no procedurales. Con un LMD procedural el usuario (normalmente será un programador) especifica qué datos se necesitan y cómo hay que obtenerlos. Esto quiere decir que el usuario debe especificar todas las operaciones de acceso a datos llamando a los procedimientos necesarios para obtener la información requerida. Estos lenguajes acceden a un registro, lo procesan y basándose en los resultados obtenidos, acceden a otro registro, que también deben procesar. Así se va accediendo a registros y se van procesando hasta que se obtienen los datos deseados. Las sentencias de un LMD procedural deben estar embebidas en un lenguaje de alto nivel, ya que se necesitan sus estructuras (bucles, condicionales, etc.) para obtener y procesar cada registro individual. A este lenguaje se le denomina lenguaje anfitrión. Las bases de datos jerárquicas y de red utilizan LMD procedurales.
Un LMD no procedural se puede utilizar de manera independiente para especificar operaciones complejas sobre la base de datos de forma concisa. En muchos SGBD se pueden introducir interactivamente instrucciones del LMD desde un terminal o bien embeberlas en un lenguaje de programación de alto nivel. Los LMD no procedurales permiten especificar los datos a obtener en una consulta o los datos que se deben actualizar, mediante una sola y sencilla sentencia. El usuario o programador especifica qué datos quiere obtener sin decir cómo se debe acceder a ellos. El SGBD traduce las sentencias del LMD en uno o varios procedimientos que manipulan los conjuntos de registros necesarios. Esto libera al usuario de tener que conocer cuál es la estructura física de los datos y qué algoritmos se deben utilizar para acceder a ellos. A los LMD no procedurales también se les denomina declarativos. Las bases de datos relacionales utilizan LMD no procedurales, como SQL (Structured Query Language) o QBE (Query-By-Example). Los lenguajes no procedurales son más fáciles de aprender y de usar que los procedurales, y el usuario debe realizar menos trabajo, siendo el SGBD quien hace la mayor parte.
La parte de los LMD no procedurales que realiza la obtención de datos es lo que se denomina un lenguaje de consultas. En general, las órdenes tanto de obtención como de actualización de datos de un LMD no procedural se pueden utilizar interactivamente, por lo que al conjunto completo de sentencias del LMD se le denomina lenguaje de consultas, aunque es técnicamente incorrecto.
Lenguajes de cuarta generación
No existe consenso sobre lo que es un lenguaje de cuarta generación (4GL). Lo que en un lenguaje de tercera generación (3GL) como COBOL requiere cientos de líneas de código, tan solo necesita diez o veinte líneas en un 4GL. Comparado con un 3GL, que es procedural, un 4GL es un lenguaje no procedural: el usuario define qué se debe hacer, no cómo debe hacerse. Los 4GL se apoyan en unas herramientas de mucho más alto nivel denominadas herramientas de cuarta generación. El usuario no debe definir los pasos a seguir en un programa para realizar una determinada tarea, tan sólo debe definir una serie de parámetros que estas herramientas utilizarán para generar un programa de aplicación. Se dice que los 4GL pueden mejorar la productividad de los programadores en un factor de 10, aunque se limita el tipo de problemas que pueden resolver. Los 4GL abarcan:
·
Lenguajes
de presentación, como lenguajes de consultas y generadores de informes.
·
Lenguajes
especializados, como hojas de cálculo y lenguajes de bases de datos.
·
Generadores
de aplicaciones que definen, insertan, actualizan y obtienen datos de la base
de datos.
·
Lenguajes
de muy alto nivel que se utilizan para generar el código de la aplicación.
Los lenguajes SQL y QBE son ejemplos de 4GL. Hay otros tipos de 4GL:
·
Un generador
de formularios es una herramienta interactiva que permite crear
rápidamente formularios de pantalla para introducir o visualizar datos. Los
generadores de formularios permiten que el usuario defina el aspecto de la
pantalla, qué información se debe visualizar y en qué lugar de la pantalla debe
visualizarse. Algunos generadores de formularios permiten la creación de
atributos derivados utilizando operadores aritméticos y también permiten
especificar controles para la validación de los datos de entrada.
·
Un generador
de informes es una herramienta para crear informes a partir de los
datos almacenados en la base de datos. Se parece a un lenguaje de consultas en
que permite al usuario hacer preguntas sobre la base de datos y obtener
información de ella para un informe. Sin embargo, en el generador de informes
se tiene un mayor control sobre el aspecto de la salida. Se puede dejar que el
generador determine automáticamente el aspecto de la salida o se puede diseñar
ésta para que tenga el aspecto que desee el usuario final.
·
Un generador
de gráficos es una herramienta para obtener datos de la base de datos
y visualizarlos en un gráfico mostrando tendencias y relaciones entre datos.
Normalmente se pueden diseñar distintos tipos de gráficos: barras, líneas, etc.
·
Un generador
de aplicaciones es una herramienta para crear programas que hagan de
interface entre el usuario y la base de datos. El uso de un generador de
aplicaciones puede reducir el tiempo que se necesita para diseñar un programa
de aplicación. Los generadores de aplicaciones constan de procedimientos que
realizan las funciones fundamentales que se utilizan en la mayoría de los
programas. Estos procedimientos están escritos en un lenguaje de programación
de alto nivel y forman una librería de funciones entre las que escoger. El
usuario especifica qué debe hacer el programa y el generador de aplicaciones es
quien determina cómo realizar la tarea.
Arquitectura cliente servidor
·
2.
En el mundo de TCP/IP las comunicaciones entre computadoras se rigen
básicamente por lo que se llama modelo Cliente-Servidor, éste es un modelo que
intenta proveer usabilidad, flexibilidad, interoperabilidad y escalabilidad en
las comunicaciones. El término Cliente/Servidor fue usado por primera
vez en 1980 para referirse a PC’s en red. Este modelo Cliente/Servidor empezó a
ser aceptado a finales de los 80’s. Su funcionamiento es sencillo: se tiene una
máquina cliente, que requiere un servicio de una máquina servidor, y éste
realiza la función para la que está programado (nótese que no tienen que
tratarse de máquinas diferentes; es decir, una computadora por sí sola puede
ser ambos cliente y servidor dependiendo del software de configuración).
·
3.
Sistema distribuido entre múltiples procesadores donde hay clientes que
solicitan servicios y servidores que los proporcionan. Separa los servicios
situando cada uno en su plataforma más adecuada. Desde el punto de vista
funcional, se puede definir la computación Cliente/Servidor como una
arquitectura distribuida que permite a los usuarios finales obtener acceso a la
información en forma transparente aún en entornos multiplataforma. En el
modelo cliente servidor, el cliente envía un mensaje solicitando un determinado
servicio a un servidor (hace una petición), y este envía uno o varios mensajes
con la respuesta (provee el servicio).
·
4.
En un sistema distribuido cada máquina puede cumplir el rol de servidor para
algunas tareas y el rol de cliente para otras. La idea es tratar a una
computadora como un instrumento, que por sí sola pueda realizar muchas tareas,
pero con la consideración de que realice aquellas que son mas adecuadas a sus
características. Si esto se aplica tanto a clientes como servidores se entiende
que la forma más estándar de aplicación y uso de sistemas Cliente/Servidor es
mediante la explotación de las PC’s a través de interfaces gráficas de usuario;
mientras que la administración de datos y su seguridad e integridad se deja a
cargo de computadoras centrales tipo mainframe. Usualmente la mayoría del
trabajo pesado se hace en el proceso llamado servidor y el o los procesos
cliente sólo se ocupan de la interacción con el usuario (aunque esto puede
variar).
·
5.
En otras palabras la arquitectura Cliente/Servidor es una extensión de
programación modular en la que la base fundamental es separar una gran pieza de
software en módulos con el fin de hacer más fácil el desarrollo y mejorar su
mantenimiento. Esta arquitectura permite distribuir físicamente los
procesos y los datos en forma más eficiente lo que en computación distribuida
afecta directamente el tráfico de la red, reduciéndolo grandemente. Esta
arquitectura consiste básicamente en un cliente que realiza peticiones a otro
programa (el servidor) que le da respuesta. Aunque esta idea se puede aplicar a
programas que se ejecutan sobre una sola computadora es más ventajosa en un
sistema operativo multiusuario distribuido a través de una red de computadoras.
·
6.
En esta arquitectura la capacidad de proceso está repartida entre los clientes
y los servidores, aunque son más importantes las ventajas de tipo organizativo
debidas a la centralización de la gestión de la información y la separación de
responsabilidades, lo que facilita y clarifica el diseño del sistema. La
separación entre cliente y servidor es una separación de tipo lógico, donde el
servidor no se ejecuta necesariamente sobre una sola máquina ni es
necesariamente un sólo programa. Los tipos específicos de servidores incluyen
los servidores web, los servidores de archivo, los servidores del correo, etc.
Mientras que sus propósitos varían de unos servicios a otros, la arquitectura
básica seguirá siendo la misma. Una disposición muy común son los sistemas
multicapa en los que el servidor se descompone en diferentes programas que
pueden ser ejecutados por diferentes computadoras aumentando así el grado de
distribución del sistema.
·
7.
La arquitectura cliente-servidor sustituye a la arquitectura monolítica en la
que no hay distribución, tanto a nivel físico como a nivel lógico. La red
Cliente/Servidor es aquella red de comunicaciones en la que todos los clientes
están conectados a un servidor, en el que se centralizan los diversos recursos
y aplicaciones con que se cuenta; y que los pone a disposición de los clientes
cada vez que estos son solicitados. Esto significa que todas las gestiones que
se realizan se concentran en el servidor, de manera que en él se disponen los
requerimientos provenientes de los clientes que tienen prioridad, los archivos
que son de uso público y los que son de uso restringido, los archivos que son
de sólo lectura y los que, por el contrario, pueden ser modificados, etc. Este
tipo de red puede utilizarse conjuntamente en caso de que se esté utilizando en
una red mixta.
·
8.
1. Cambios estructurales y organizativos. 2. Cambios en organigramas. 3.
Respuesta dinámica de mercado. 4. Cambio en procesos de negocio. 1. La demanda
de sistemas fáciles. 2. Precio/rendimiento de estaciones y servidores. 3.
Creciente acceso a la información para decisiones: Separación datos-programas.
Programas flexibles. 4. Nuevas tecnologías de alta productividad.
·
9.
Un sistema cliente/servidor funciona tal como se detalla en el siguiente
diagrama: El cliente envía una solicitud al servidor mediante su dirección IP y
el puerto, que está reservado para un servicio en particular que se ejecuta en
el servidor. El servidor recibe la solicitud y responde con la dirección IP del
equipo cliente y su puerto.
·
10.
Es el que inicia un requerimiento de servicio. El requerimiento inicial puede
convertirse en múltiples requerimientos de trabajo a través de redes LAN o WAN.
La ubicación de los datos o de las aplicaciones es totalmente transparente para
el cliente. En la arquitectura C/S el remitente de una solicitud es conocido
como cliente. Es quien inicia solicitudes o peticiones, tienen por tanto un
papel activo en la comunicación (dispositivo maestro o amo). Espera y recibe
las respuestas del servidor. Por lo general, puede conectarse a varios
servidores a la vez. Normalmente interactúa directamente con los usuarios
finales mediante una interfaz gráfica de usuario.
·
11.
5. Al contratar un servicio de redes , se tiene que tener en la velocidad de
conexión que le otorga al cliente y el tipo de cable que utiliza , por
ejemplo : cable de cobre ronda entre 1 ms y 50 ms. Es cualquier recurso de
cómputo dedicado a responder a los requerimientos del cliente. Los servidores
pueden estar conectados a los clientes a través de redes, para proveer de
múltiples servicios a los clientes y ciudadanos tales como impresión, acceso a
bases de datos, fax, procesamiento de imágenes, etc. Al receptor de la solicitud
enviada por cliente se conoce como servidor.
·
12.
1. Al iniciarse esperan a que lleguen las solicitudes de los clientes,
desempeñan entonces un papel pasivo en la comunicación (dispositivo esclavo).
2. Tras la recepción de una solicitud, la procesan y luego envían la respuesta
al cliente. 3. Por lo general, aceptan conexiones desde un gran número de
clientes (en ciertos casos el número máximo de peticiones puede estar
limitado). 4. No es frecuente que interactúen directamente con los usuarios
finales. El cliente es el proceso que permite al usuario formular los
requerimientos y pasarlos al servidor, se le conoce con el término front-end.
·
13.
El Cliente normalmente maneja todas las funciones relacionadas con la
manipulación y despliegue de datos, por lo que están desarrollados sobre
plataformas que permiten construir interfaces gráficas de usuario (GUI), además
de acceder a los servicios distribuidos en cualquier parte de una red. Las
funciones que lleva a cabo el proceso cliente se resumen en los siguientes
puntos: • Administrar la interfaz de usuario. • Interactuar con el usuario. •
Procesar la lógica de la aplicación y hacer validaciones locales. • Generar
requerimientos de bases de datos. • Recibir resultados del servidor. •
Formatear resultados.
·
14.
Es el proceso encargado de atender a múltiples clientes que hacen peticiones de
algún recurso administrado por él. Al proceso servidor se le conoce con el
término back-end. El servidor normalmente maneja todas las funciones
relacionadas con la mayoría de las reglas del negocio y los recursos de datos.
Las funciones que lleva a cabo el proceso servidor se resumen en los
siguientes puntos: • Aceptar los requerimientos de bases de datos que hacen los
clientes. • Procesar requerimientos de bases de datos. • Formatear datos para
trasmitirlos a los clientes. • Procesar la lógica de la aplicación y realizar
validaciones a nivel de bases de datos.
·
15.
Cualquier combinación de sistemas que pueden colaborar entre sí para dar a los
usuarios toda la información que ellos necesiten sin que tengan que saber donde
está ubicada. Es una arquitectura de procesamientos cooperativo donde uno de
los componentes pide servicios a otro. Es un procesamiento de datos de índole
colaborativo entre dos o más computadoras conectadas a una red. El término
cliente/servidor es originalmente aplicado a la arquitectura de software que
describe el procesamiento entre dos o más programas: una aplicación y un
servicio soportante.
·
16.
IBM define al modelo Cliente/Servidor. "Es la tecnología que
proporciona al usuario final el acceso transparente a las aplicaciones, datos,
servicios de cómputo o cualquier otro recurso del grupo de trabajo y/o, a
través de la organización, en múltiples plataformas. El modelo soporta un medio
ambiente distribuido en el cual los requerimientos de servicio hechos por
estaciones de trabajo inteligentes o "clientes'', resultan en un
trabajo realizado por otros computadores llamados servidores".
"Es un modelo para construir sistemas de información, que se sustenta
en la idea de repartir el tratamiento de la información y los datos por todo el
sistema informático, permitiendo mejorar el rendimiento del sistema global de
información"
·
17.
Combinación de un cliente que interactúa con el usuario, y un servidor que
interactúa con los recursos compartidos. El proceso del cliente proporciona la
interfaz entre el usuario y el resto del sistema. El proceso del servidor actúa
como un motor de software que maneja recursos compartidos tales como bases de
datos, impresoras, módems, etc. Las tareas del cliente y del servidor tienen
diferentes requerimientos en cuanto a recursos de cómputo como velocidad del
procesador, memoria, velocidad y capacidades del disco y input-output devices.
Se establece una relación entre procesos distintos, los cuales pueden ser
ejecutados en la misma máquina o en máquinas diferentes distribuidas a lo largo
de la red.
·
18.
Existe una clara distinción de funciones basada en el concepto de
"servicio", que se establece entre clientes y servidores.
La relación establecida puede ser de muchos a uno, en la que un servidor
puede dar servicio a muchos clientes, regulando su acceso a recursos
compartidos. Los clientes corresponden a procesos activos en cuanto a
que son éstos los que hacen peticiones de servicios a los servidores. Estos
últimos tienen un carácter pasivo ya que esperan las peticiones de los
clientes. No existe otra relación entre clientes y servidores que no sea la que
se establece a través del intercambio de mensajes entre ambos. El mensaje es el
mecanismo para la petición y entrega de solicitudes de servicio.
·
19.
El ambiente es heterogéneo. La plataforma de hardware y el sistema operativo
del cliente y del servidor no son siempre la misma. Precisamente una de las
principales ventajas de esta arquitectura es la posibilidad de conectar
clientes y servidores independientemente de sus plataformas. El concepto
de escalabilidad tanto horizontal como vertical es aplicable a cualquier
sistema Cliente/Servidor. La escalabilidad horizontal permite agregar más
estaciones de trabajo activas sin afectar significativamente el rendimiento. La
escalabilidad vertical permite mejorar las características del servidor o
agregar múltiples servidores.
·
20.
Front/end : Es la parte de la aplicación que interactúa con el usuario. Basados
en una interfaz gráfica con el usuario (GUI). El Cliente corre la aplicación
que ofrece la interfaz con el usuario. Back/end: Es la parte no-interactiva de
la aplicación. La mayor parte reside en las Bases de Datos (relacionales o no).
No requieren una gran Base de Datos compartida, pueden ser elaboradas solamente
en el Cliente. Exigen dos capas, una para la aplicación del usuario (Cliente) y
otra para la base de datos (Servidor).
·
21.
1. Generalmente usa los modelos de función distribuida o datos distribuidos. 2.
Muy productivo. 3. Distribución no flexible. 4. Dependiente del suministrador.
Nivel Responsabilidad Funciones Herramientas Aplicativo del Usuario Interfaz
Incomprensible y Eficiente Presentación, Navegación, Manejo y Análisis
Herramientas Graficas y Lenguaje de Programación Reglas de Negocio Políticas,
Reglas y Heurística Toma de Decisiones, Políticas y Administración de Recursos
Lenguaje de Programación Base de Datos Datos Consistentes y Seguros Mantenimiento,
Actualización, Integridad y Seguridad Base de Datos, Lenguaje de Base de Datos
·
22.
La Arquitectura de tres niveles es lógica y no física. Se preocupa con las
funciones y no con la implantación. La Arquitectura puede ser utilizada
para desarrollar sistemas Centralizados o Distribuidos. La Arquitectura
facilitará la distribución de los componentes del sistema. 1. Modelo
presentación-negocio-datos 2. Distribución flexible. 3. Sistema abierto. No
dependiente.
·
23.
Estructura para la elaboración de aplicativos flexibles y fáciles de modificar,
según las necesidades del negocio(cambio). Alto nivel de reutilización del
software y datos. Fácil y rápido desarrollo de aplicativos grandes y complejos,
para las transacciones y los SSD. Fácil y rápido desarrollo de sistemas
distribuidos que dan soporte a la administración central y a equipos
auto-gestionados.
·
24.
Esconde de cada nivel los detalles contenidos en los niveles inferiores:
Desarrollo simplificado del aplicativo: A l desarrollar un nivel no precisa preocuparse
por el otro. Mayor seguridad y protección: El desarrollador de un nivel no
puede controlar físicamente otra camada en ningún nivel de detalle. Es la
superficie entre los componentes adyacentes de un aplicativo y el dispositivo
por medio del cual ellos interactúan a través de las siguientes funciones:
Informa lo que el otro componente debe hacer, pregunta el estado actual del
otro componente, recibe el resultado de las operaciones solicitadas.
·
25.
·
26.
Nivel Interfaz Foco del Proyecto Aplicativo del Usuario GUI Objetos del
Aplicativo Independiente del Proyecto Proceso de Reglas del Negocio Proceso
Solicitud de Decisiones Independientes de la Interfaz, Usuario y Datos
Administración de Base de Datos Transacción y Consultas Datos Independiente de
la Decisión
·
27.
El desarrollo de un buen sistema Cliente / Servidor exige especialización de:
1. Interfaz gráfica 2. Redes de computadora 3. Programación de Negocios 4. Base
de Datos 5. Programación de Base de Datos 6. Distribución de sistemas
·
28.
·
29.
En la arquitectura Cliente/Servidor se como los tres niveles de aplicación se
relacionan. Focaliza sobre la estructura y la adaptación. Y determina qué entra
en cada nivel y cómo la aplicación se relaciona con otras aplicaciones.
*Distribución de Datos * Distribución de Procesamiento *Interfaz gráfica con el
usuario
·
30.
·
31.
Históricamente el área de informática elabora los sistemas de aplicación de
forma completa, estando los usuarios obligados a “tomarlos o dejarlos”. En el
futuro, el área informática elaborará la infraestructura, o sea: La base de
Datos, los módulos de los procesos de negocio, y kits de herramientas; para que
el usuario pueda elaborar sus propias aplicaciones. 1. Proveer los procesos de
las reglas del negocio. 2. Proveer las estructuras fundamentales de las Bases
de Datos 3. Proveer los elementos de la interfaz . 4. Proveer la
infraestructura general de los sistemas, sobre la cual los equipos de trabajo
puedan montar sus aplicaciones.
·
32.
·
33.
·
34.
1. Uno de los aspectos que más ha promovido el uso de sistemas
Cliente/Servidor, es la existencia de plataformas de hardware cada vez más
baratas. 2. El esquema Cliente/Servidor facilita la integración entre
sistemas diferentes y comparte información permitiendo, por ejemplo que las
máquinas ya existentes puedan ser utilizadas pero utilizando interfaces mas
amigables al usuario. 3. Al favorecer el uso de interfaces gráficas
interactivas, los sistemas construidos bajo este esquema tienen mayor
interacción más intuitiva con el usuario. 4. Es más rápido el mantenimiento y
el desarrollo de aplicaciones, pues se pueden emplear las herramientas
existentes (por ejemplo los servidores de SQL o las herramientas de más bajo
nivel como los sockets o el RPC ).
·
35.
La estructura inherentemente modular facilita además la integración de nuevas
tecnologías y el crecimiento de la infraestructura computacional, favoreciendo
así la escalabilidad de las soluciones. El esquema Cliente/Servidor
contribuye además, a proporcionar, a los diferentes departamentos de una organización,
soluciones locales, pero permitiendo la integración de la información relevante
a nivel global.
·
36.
es.wikipedia.org/wiki/Cliente-servidor
www.monografias.com/trabajos24/arquitectura-cliente-servidor/arquitectura-cliente-servidor.shtml
www.desarrolloweb.com/articulos/arquitectura-cliente-servidor.html
www.csae.map.es/csi/silice/Global71.html
temariotic.wikidot.com/la-arquitectura-cliente-servidor
Bases
de datos distribuidas
Una base de datos distribuida (BDD)
es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales
se encuentran distribuidas en diferentes espacios lógicos (pej. un servidor
corriendo 2 máquinas virtuales) e interconectados por una red de
comunicaciones. Dichas BDD tienen la capacidad de realizar procesamiento
autónomo, esto permite realizar operaciones locales o distribuidas. Un sistema
de Bases de Datos Distribuida (SBDD) es un sistema en el cual múltiples sitios
de bases de datos están ligados por un sistema de comunicaciones de tal forma
que, un usuario en cualquier sitio puede acceder los datos en cualquier parte
de la red exactamente como si estos fueran accedidos de forma local.
Un sistema
distribuido de bases de datos se almacenan en varias computadoras. Los
principales factores que distinguen un SBDD de un sistema centralizado son los
siguientes:
·
Hay múltiples computadores,
llamados sitios o nodos.
·
Estos sitios deben de estar
comunicados por medio de algún tipo de red de comunicaciones para transmitir
datos y órdenes entre los sitios.
Historia
La necesidad de almacenar datos de
forma masiva dio paso a la creación de los sistemas de bases de datos. En 1970
Edgar Frank Codd escribió un artículo con nombre: "A Relational Model of
Data for Large Shared Data Banks" ("Un modelo relacional para grandes
bancos de datos compartidos"). Con este artículo y otras publicaciones,
definió el modelo de bases de datos relacionales y reglas para poder evaluar un
administrador de bases de datos relacionales. El cuadrado.
Inicio de las
bases de datos distribuidas
Originalmente se almacenaba la
información de manera centralizada, pero con el paso del tiempo las necesidades
aumentaron y esto produjo ciertos inconvenientes que no era posible
solucionarlos o volverlos eficientes de la forma centralizada. Estos problemas
impulsaron la creación de almacenamiento distribuido, los cuales hoy en día
proveen características indispensables en el manejo de información; es decir,
la combinación de las redes de comunicación y las bases de datos.
Evolución
Hay varios factores que han hecho que
las bases de datos evolucionen a bases de datos distribuidas. En el mundo de
los negocios se ha dado una globalización y a la vez las operaciones de las
empresas son cada vez más descentralizadas geográficamente. También el poder de
las computadoras personales aumentó y el costo de los Mainframes ya no tenía
sentido. Además la necesidad de compartir datos ha hecho que crezca el mercado
de las bases de datos distribuidas.
Componentes
Hardware
involucrado
El hardware utilizado no difiere mucho
del hardware utilizado en un servidor normal. Al principio se creía que si los
componentes de una base de datos eran especializados serían más eficientes y
rápidos, pero se comprobó que el decentralizar todo y adoptar un enfoque
"nada compartido" (shared-nothing) resultaba más barato y
eficaz. Por lo que el hardware que compone una base de datos distribuida se
reduce a servidores y la red.
Software
Sistema
manejador de base de datos distribuida (DDBMS)
Este sistema está formado por las
transacciones y los administradores de la base de datos distribuidos. Un DDBMS
implica un conjunto de programas que operan en diversas computadoras, estos
programas pueden ser subsistemas de un único DDBMS de un fabricante o podría
consistir de una colección de programas de diferentes fuentes.
Administrador de
transacciones distribuidas (DTM)
Este es un programa que recibe las
solicitudes de procesamiento de los programas de consulta o transacciones y las
traduce en acciones para los administradores de la base de datos. Los DTM se
encargan de coordinar y controlar estas acciones. Este DTM puede ser
propietario o desarrollado en casa.
Sistema
manejador de base de datos (DBMS)
Es un programa que procesa cierta
porción de la base de datos distribuida. Se encarga de recuperar y actualizar
datos del usuario y generales de acuerdo con los comandos recibidos de los DTM.
Nodo
Un nodo es una computadora que ejecuta
un DTM o un DBM o ambos. Un nodo de transacción ejecuta un DTM y un nodo de
base de datos ejecuta un DBM.
Consideraciones
importantes
Calendarizador
distribuido
El calendarizador está encargado de
ordenar un conjunto de transacciones u operaciones que se deseen realizar sobre
una base de datos. Cualquier orden en el que se decidan hacer este conjunto de
operaciones se denomina calendarización. Parte del trabajo del calendarizador
es realizar estas operaciones de forma que sean serializables y recuperables.
Dos calendarizaciones son
serializables (o equivalentes) si
·
Cada
operación de lectura lee valores de los datos que son producidos por la misma
operación de escritura en ambas calendarizaciones (es decir son iguales)
·
La
operación final de escritura en cada elemento de la data es la misma en ambas
calendarizaciones
Detección de
bloqueos y concurrencia
Bloqueos
Un bloqueo en general es cuando una
acción que debe ser realizada está esperando a un evento. Para manejar los
bloqueos hay distintos acercamientos: prevención, detección, y recuperación.
También es necesario considerar factores como que hay sistemas en los que
permitir un bloqueo es inaceptable y catastrófico, y sistemas en los que la
detección del bloqueo es demasiado costosa.
En el caso específico de las bases de datos distribuidas usar bloqueo de recursos, peticiones para probar, establecer o liberar bloqueos requiere mensajes entre los manejadores de transacciones y el calendarizador. Para esto existen dos formas básicas:
En el caso específico de las bases de datos distribuidas usar bloqueo de recursos, peticiones para probar, establecer o liberar bloqueos requiere mensajes entre los manejadores de transacciones y el calendarizador. Para esto existen dos formas básicas:
·
Autónoma:
cada nodo es responsable por sus propios bloqueos de recursos.
·
Una
transacción sobre un elemento con n replicas requiere 5n mensajes
·
Petición
del recurso
·
Aprobación
de la petición
·
Mensaje
de la transacción
·
Reconocimientos
de transacción exitosa
·
Peticiones
de liberación de recursos
·
Copia
Primaria: un nodo primario es responsable para todos los bloqueos de recursos
·
Una
transacción sobre un elemento con n copias requiere 2n+3 mensajes
·
Una
petición del recurso
·
Una
aprobación de la petición
·
n
mensajes de la transacción
·
n
reconocimientos de transacción exitosa
·
Una
petición de liberación de recurso
Podemos definir que dos operaciones
entran en conflicto que debe ser resuelto si ambas acceden a la misma data, y
una de ellas es de escritura y si fueron realizadas por transacciones
distintas.
Concurrencia
El ejemplo más común de un bloqueo
mutuo es cuando un recurso A está siendo utilizado por una transacción A que a
su vez solicita un recurso B que está siendo utilizado por una transacción B
que solicita el recurso A. Entre los ejemplos específicos para las bases de
datos distribuidas podemos destacar::
Control de
concurrencia
·
El
problema de las actualizaciones perdidas: cuando dos transacciones concurrentes
borran el efecto una de la otra
·
Recuperaciones
inconsistentes: acceder a información modificada parcialmente por una
transacción de Ian.
Soluciones
El control de concurrencia y detección
y manejo de bloqueos es un área de mucho estudio en las bases de datos
distribuidas, a pesar de esto no hay ningún algoritmo aceptado para solucionar
el problema. Esto se debe a varios factores de los cuales se consideran a los
siguientes tres los más determinantes:
1.
La
data puede estar duplicada en un BDD, por tanto, el manejador de la BDD es
responsable de localizar y actualizar la data duplicada.
2.
Si
un nodo falla o la comunicación con un nodo falla mientras se realiza una
actualización, el manejador debe asegurarse de que los efectos se reflejen una
vez el nodo se recupere del fallo.
3.
La
sincronización de transacciones en sitios o nodos múltiples es difícil ya que
los nodos no pueden obtener información inmediata de las acciones realizadas en
otros nodos concurrentemente.
Para el control de bloqueos mutuos no
se ha desarrollado ninguna solución viable y la forma más simple y que la
mayoría de productos utilizan es la implementación de un tiempo máximo de
espera en las peticiones de bloqueos.
Causa de estas dificultades más de 20
algoritmos de control de concurrencia se han propuesto en el pasado, y aun así
siguen apareciendo nuevos. Una revisión bibliográfica muestra que la mayoría de los
algoritmos son variantes del 2PL (2-phase locking o bloqueo de dos fases) o el
algoritmo de time-stamp. A continuación se explican estos dos algoritmos
básicos.
Bloqueo de dos fases (2PL)
El algoritmo 2PL utiliza bloqueos de
lectura y escritura para prevenir conflictos entre operaciones. Consiste en los
siguientes pasos para una transacción T:
1.
Obtiene
bloqueo de lectura para un elemento L (bloqueo compartido)
2.
Obtiene
bloqueo de escritura para un elemento E (bloqueo exclusivo)
3.
Lee
el elemento L
4.
Escribe
en el elemento E
5.
Libera
el bloqueo de L
6.
Libera
el bloqueo de E
Las reglas básicas para manejar los
bloqueos son: transacciones distintas no pueden tener acceso simultáneamente a
un elemento (lectura-escritura o escritura-escritura), y una vez se libere un
bloqueo no se puede pedir otro, es decir, los bloqueos de la transacción
crecerán mientras no libere ninguno y luego de liberar alguno solo puede
liberar los demás.
Ejemplos del algoritmo 2PL son
·
La
básica en la que se sigue el esquema previamente explicado con la variante que
el bloqueo de escritura se pide para todas las copias del elemento.
·
2PL
de copia primaria: en vez de pedir bloqueo para cada copia del elemento de
escritura se le pide a una copia primaria o principal.
·
2PL
de voto: se pide a todos los nodos que voten para ver si se concede el bloqueo.
·
2PL
centralizado: el manejador de bloqueos está centralizado y todas las peticiones
de bloqueo las maneja el.
Antes de implementar un algoritmo de
control de concurrencia 2PL es necesario considerar distintos factores como
cual es la unidad atómica más pequeña que el sistema permite bloquear, cual es
el intervalo de sincronización para todas las copias de un elemento, donde se
deben colocar las tablas con la información de los bloqueos y por último que
tan probable es que ocurra por los factores anteriores un bloqueo mutuo.
Time-stamp
Cada transacción realizada se le
asigna un timestamp (literalmente: sello de tiempo) único en el nodo que se
originó. Este sello se adjunta a cada petición de lectura y escritura. En el
caso de que se dé un conflicto de que dos operaciones de escritura traten de
acceder al mismo elemento, este se resuelve serializandolo respecto a los
sellos que tengan. A pesar de que existen varios algoritmos de control de
concurrencia basados en timestamps, muy pocos son utilizados en aplicaciones
comerciales. Esto es en gran parte porque se requiere que el sistema
distribuido cuente con un reloj sincronizado que es raro que se tenga
implementado.
Manejador de
transacciones distribuido (DTM)
Definición de
transacciones
Una transacción es una secuencia de
una o más operaciones agrupadas como una unidad. El inicio y el final de la
transacción definen los puntos de consistencia de la base de datos. Si una
acción de la transacción no se puede ejecutar, entonces ninguna acción dentro
de la secuencia que conforma la transacción tendrá efecto.
Propiedades de las transacciones
·
Atomicidad:
Una transacción es una unidad atómica de procesamiento, esta se realiza o no se
realiza.
·
Consistencia:
Si se ejecuta una transacción sobre un estado consistente, el resultado será un
nuevo estado consistente.
·
Aislamiento:
Una transacción no hara visibles sus modificaciones a otras transacciones hasta
que termine de ejecutarse completamente. Es decir, una transacción desconoce si
otras transacciones se estén ejecutando en el sistema.
·
Durabilidad:
Una vez una transacción se ejecuta exitosamente y realiza cambios sobre el sistema,
estos cambios nunca se deben perder a causa de fallas en el sistema.
Tipos de transacciones
Una transacción puede clasificarse de
diferentes maneras dependiendo básicamente de tres criterios:
1.
Áreas de aplicación. En primer lugar, 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. Finalmente, en ambientes heterogéneos se
presentan transacciones heterogéneas sobre los datos.
2.
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 acceder un porción relativamente pequeña de la base de datos. Por otro
lado, las transacciones de tipo batch toman tiempos relativamente largos y
accedan grandes porciones de la base de datos.
3.
Estructura. Considerando la estructura que puede tener
una transacción se examinan dos aspectos: si una transacción puede contener a
su vez subtransacciones o el orden de las acciones de lectura y escritura
dentro de una transacción.
Función del
manejador
El manejador de transacciones es el
encargado de definir la estructura de las transacciones, mantener la
consistencia en la base de datos cuando se ejecuta una transacción o se cancela
la ejecución de una, mantener protocolos de fiabilidad, implementar algoritmos
para el control de la concurrencia y sincronizar las transacciones que se
ejecutan simultáneamente.
El manejador recibe solicitudes de procesamiento
de transacciones y las traduce en acciones para el calendarizador.
La operación COMMIT señala el término
exitoso de la transacción: le dice al manejador de transacciones que se ha
finalizado con éxito una unidad lógica de trabajo, que la base de datos esta (o
debería estar) de nuevo en un estado consistente, y que se pueden hacer
permanentes todas las modificaciones efectuadas por esa unidad de trabajo.
La operación ROLLBACK, en cambio,
señala el término no exitoso de la transacción: le dice al manejador de
transacciones que algo salió mal, que la base de datos podría estar en un
estado inconsistente y que todas las modificaciones efectuadas hasta el momento
por la unidad lógica de trabajo deben retroceder o anularse.
Distribución de
los datos
Una de las decisiones más importantes
que el diseñador de bases de datos distribuidas debe tomar es el
posicionamiento de la data en el sistema y el esquema bajo el cuál lo desea
hacer. Para esto existen cuatro alternativas principales: centralizada,
replicada, fragmentada, e híbrida.
Centralizada
Es muy similar al modelo de
Cliente/Servidor en el sentido que la BDD está centralizada en un lugar y los
usuarios están distribuidos. Este modelo solo brinda la ventaja de tener el
procesamiento distribuido ya que en sentido de disponibilidad y fiabilidad de
los datos no se gana nada.
Replicadas
El esquema de BDD de replicación
consiste en que cada nodo debe tener su copia completa de la base de datos. Es
fácil ver que este esquema tiene un alto costo en el almacenamiento de la
información. Debido a que la actualización de los datos debe ser realizada en
todas las copias, también tiene un alto costo de escritura, pero todo esto vale
la pena si tenemos un sistema en el que se va a escribir pocas veces y leer
muchas, y dónde la disponibilidad y fiabilidad de los datos sea de máxima
importancia.
Particionadas
Este modelo consiste en que solo hay
una copia de cada elemento, pero la información está distribuida a través de
los nodos. En cada nodo se aloja uno o más fragmentos disjuntos de la base de
datos. Como los fragmentos no se replican esto disminuye el costo de
almacenamiento, pero también sacrifica la disponibilidad y fiabilidad de los
datos. Algo que se debe tomar en cuenta cuando se desea implementar este modelo
es la granularidad de la fragmentación. La fragmentación se puede realizar
también de tres formas:
·
Horizontal:
Los fragmentos son subconjuntos de una tabla (análogo a un restringir)
·
Vertical:
Los fragmentos son subconjuntos de los atributos con sus valores (análogo a un
proyectar)
·
Mixto:
Se almacenan fragmentos producto de restringir y proyectar una tabla.
Una ventaja significativa de este
esquema es que las consultas (SQL) también se fragmentan por lo que su
procesamiento es en paralelo y más eficiente, pero también se sacrifica con
casos especiales como usar JUNTAR o PRODUCTO, en general casos que involucren
varios fragmentos de la BDD.
Para que una fragmentación sea
correcta esta debe cumplir con las siguientes reglas:
·
Debe
ser Completa: Si una relación R se fragmenta en R1,R2,
... , Rn, cada elemento de la data de R debe estar en algún Ri.
·
Debe
ser Reconstruible: Debe ser posible definir una operación relacional
que a partir de los fragmentos obtenga la relación.
·
Los
fragmentos deben ser Disjuntos: Si la fragmentación es
horizontal entonces si un elemento e está en Ri este elemento no puede estar en ningún
Rk (para k distinto a
i). En el caso de fragmentación vertical es necesario que se repitan las llaves
primarias y esta condición solo se debe cumplir para el conjunto de atributos
que no son llave primaria.
Híbrida
Este esquema simplemente representa la
combinación del esquema de partición y replicación. Se particiona la relación y
a la vez los fragmentos están selectivamente replicados a través del sistema de
BDD.
Criterios para
escoger la distribución
·
Localidad
de la data: la data debería ser colocada donde ésta se accede más seguido. El
diseñador debe analizar las aplicaciones y determinar como colocar la data de
tal forma que se optimicen los accesos a la data locales.
·
Fiabilidad
de la data: Almacenando varias copias de la data en lugares geográficamente
apartados se logra maximizar la probabilidad de que la data va a ser
recuperable en caso de que ocurra daño físico en cualquier sitio.
·
Disponibilidad
de la data: como en la fiabilidad, almacenar varias copias asegura que los
usuarios tengan a su disponibilidad los elementos de la data, aún si el nodo al
que usualmente acceden no está disponible o falla.
·
Capacidades
y costos de almacenamiento: a pesar de que los costos de almacenamiento no son
tan grandes como los de transmisión, los nodos pueden tener diferentes
capacidades de almacenamiento y procesamiento. Esto se debe analizar
cuidadosamente para determinar donde poner la data. El costo de almacenamiento
se disminuye significativamente minimizando la cantidad de copias de la data.
·
Distribución
de la carga de procesamiento: una de las razones por la cual se escoge un
sistema de BDD es porque se desea poder distribuir la carga de procesamiento
para hacer este más eficiente.
·
Costo
de comunicación: el diseñador debe considerar también el costo de usar las
comunicaciones de la red para obtener data. Los costos de comunicación se
minimizan cuando cada sitio tiene su propia copia de la data, por otro lado
cuando la data es actualizada se debe actualizar en todos los nodos.
·
Uso
del sistema: debe tomarse en consideración cual será el tipo principal de uso
del sistema de BDD. Factores como la importancia en la disponibilidad de la
data, la velocidad de escritura y la capacidad de recuperación de daños físicos
deben tomarse en cuenta para escoger el esquema correcto.
Seguridad
Desde hace ya varios años las bases de
datos son ampliamente utilizadas en departamentos de gobiernos, empresas
comerciales, bancos, hospitales, etc. Actualmente se está cambiando el esquema
bajo el cuál se utilizan las bases de datos, ya no son utilizadas únicamente de
forma interna, sino que se tiene muchos accesos externos de tipos distintos.
Estos cambios que se han introducido en el uso de las bases de datos ha creado
la necesidad mejorar las prácticas de seguridad ya que el ambiente ya no es tan
controlado como el esquema antiguo.
Conceptos
Los problemas de mayor importancia en
seguridad son autenticación, identificación, y refuerzo de los
controles de acceso apropiados.
El sistema de seguridad de niveles múltiples. Éste consiste en muchos usuarios
con distintos niveles de permisos para una misma base de datos con información
de distintos niveles. En las bases de datos distribuidas se han investigado dos
acercamientos a este modelo: data distribuida y control centralizado, y data y
control distribuidos.
En el acercamiento de data distribuida
y control centralizado se divide en dos soluciones: particionado
y replicado. En el
primero de estos lo que se tiene es un conjunto de nodos y cada uno de ellos
opera a cierto nivel de seguridad, así el usuario con nivel de permisos X
accede al servidor que maneja la data para X. El replicado surgió debido a que si alguien con
altos derechos de seguridad deseaba consultar data con de bajo nivel de seguridad
debía enviar su petición a un servidor de bajo nivel de seguridad por lo cual
se podría divulgar información sensible. En el esquema replicado entonces la
data se repite en cascada de tal forma que el nivel más alto tiene una copia
entera de la base de datos, y el más bajo solamente la información de más bajo
nivel. El otro acercamiento de data y control distribuido cada nodo contiene
información de distintos niveles y está diseñado para aceptar peticiones de
cualquier nivel de usuario.
El problema de
inferencia
El problema de inferencia consiste en
usuarios tratando de ejecutar consultas sobre la BD y estos infiriendo
información sobre la respuesta legítima que la base de datos debe responder.
Las herramientas para minería de datos hacen este problema aún más peligroso ya
que hacen que sea más fácil para cualquier novato poder deducir patrones e
información importantes de simplemente probar consultas.
Tipos de arquitecturas/implementaciones
En un sistema de bases de datos
distribuidas, existen varios factores que deben tomar en consideración que
definen la arquitectura del sistema:
·
Distribución: Los componentes del sistema están
localizados en la misma computadora o no.
·
Heterogeneidad: Un sistema es heterogéneo cuando existen en
él componentes que se ejecutan en diversos sistemas operativos, de diferentes
fuentes, etc.
·
Autonomía: Se puede presentar en diferentes niveles,
los cuales se describen a continuación:
1.
Autonomía de diseño: Habilidad de un componente del
sistema para decidir cuestiones relacionadas a su propio diseño.
2.
Autonomía de comunicación: Habilidad de un
componente del sistema para decidir como y cuando comunicarse con otros SGBD
(Sistema Gestor de Bases de Datos).
3.
Autonomía de ejecución: Habilidad de un componente del
sistema para ejecutar operaciones locales como quiera.
Multi base de
datos distribuida
Cuando una base de datos distribuida
es muy heterogenea se dice que es multi base de datos distribuida.
Base de datos
Federada
Cuando una base de datos distribuida
tiene mucha autonomía local se dice que es federada.
Objetivos de
implementación
Al implementar una base de datos
distribuida se tienen ciertos objetivos comunes:
·
Transparencia de ubicación. Permite a los usuarios
tener acceso a los datos sin que tenga conocimiento de la ubicación de éstos.
Se puede conseguir este nivel de transparencia al utilizar los administradores
de transacciones distribuidas, los cuales son capaces de determinar la
localización de los datos y de emitir acciones a los calendarizadores
apropiados, lo cual puede ejecutarse cuando los administradores de
transacciones distribuidas poseen acceso a los directorios de localizaciones de
los datos.
·
Transparencia de duplicación. Para que la
transparencia de duplicación sea posible, los administradores de transacciones
deben traducir las solicitudes de procesamiento de transacción en acciones para
el administrador de datos. Para las lecturas el administrador de transacciones
selecciona uno de los nodos que almacena los datos y ejecuta la lectura. Para
optimizar el proceso, el administrador de transacciones necesita información
sobre el rendimiento de varios nodos respecto al sitio de consulta, así podrá
seleccionar el nodo de mejor rendimiento. La actualización y escritura de datos
duplicados suelen ser más complicadas, ya que el manejador de transacciones
debe emitir una acción de escritura para cada uno de los calendarizadores que
almacena una copia de los datos.
·
Transparencia de concurrencia. Cuando varias
transacciones se ejecuten al mismo tiempo, los resultados de las transacciones
no deberán afectarse. La transparencia de concurrencia se logra si los
resultados de todas las transacciones concurrentes son consistentes de manera
lógica con los resultados que se habrían obtenido si las transacciones se
hubieran ejecutado una por una, en cualquier orden secuencial.
·
Transparencia de fallas. Significa que a pesar
de fallas las transacciones sean procesadas de un modo correcto. Frente a una
falla, las transacciones deben ser atómicas, significa que se procesen todas o
ninguna de ellas. Para este tipo de problemas es importante tener resguardo de
la base de datos, y así poder restaurarla cuando sea conveniente. El sistema
debe detectar cuándo falla una localidad y tomar las medidas necesarias para
recuperarse del fallo. El sistema no debe seguir utilizando la localidad que
falló. Por último, cuando se recupere o repare esta localidad, debe contarse
con mecanismos para reintegrarla al sistema con el mínimo de complicaciones.
·
Localidad del procesamiento. Los datos se deben
distribuir lo más cerca posible de las aplicaciones que los usan para maximizar
la localidad del procesamiento, este principio responde a minimizar el acceso
remoto a los datos. Diseñar una distribución que maximice localidad del
procesamiento puede hacerse añadiendo la cantidad de referencias locales y
remotas correspondientes a cada fragmentación candidata y asignar la
fragmentación eligiendo la mejor solución. Independencia de configuración. La independencia
de configuración permite añadir o reemplazar hardware sin tener que cambiar
componentes de software existentes en el sistema de base de datos distribuida.
·
Particionado de la Base de Datos. La base de datos se
distribuye de modo que no haya solapamiento o duplicación de los datos
mantenidos en las diferentes localidades, como no hay duplicaciones de los
datos, se evitan los costos asociados con el almacenamiento y mantenimiento de
datos redundantes. Si un mismo segmento de datos se usa en más de una localidad
se ve limitada la disponibilidad de los datos. La fiabilidad también puede
verse limitada cuando se produce un fallo en el sistema de cálculo de una
localidad se afecta la disponibilidad de los datos de esa localidad no estén
disponible para los usuarios en cualquier parte del sistema.
·
Fragmentación de datos. Consiste en
subdividir las relaciones y distribuirlas entre los sitios de la red, tiene
como objetivo buscar formas alternativas de dividir una las instancias (tablas)
de relaciones en otras más pequeñas. La fragmentación se puede realizar por
tuplas individuales (fragmentación horizontal), por atributos individuales
fragmentación vertical) o una combinación de ambas (fragmentación híbrida). El
principal problema de la fragmentación radica en encontrar la unidad apropiada
de distribución. Una relación no es una buena unidad por muchas razones.
Normalmente las vistas de una relación están formadas por subconjuntos de
relaciones. Además, las aplicaciones acceden localmente a subconjuntos de
relaciones. Por ello, es necesario considerar a los subconjuntos de relaciones
como unidad de distribución. Al descomponer de una relación en fragmentos,
tratados cada uno de ellos como una unidad de distribución, permite el proceso
concurrente de las transacciones. El conjunto de estas relaciones, provocará la
ejecución paralela de una consulta al ser dividida en una serie de subconsultas
que operará sobre los fragmentos. Cuando las vistas definidas sobre una
relación son consideradas como unidad de distribución que se ubican en
diferentes sitios de la red, podemos optar por dos alternativas diferentes: La
relación no estará replicada y se almacena en un único sitio, o existe réplica
en todos o algunos de los sitios en los cuales reside la aplicación. Las consecuencias
de esta estrategia son la generación de un volumen de accesos remotos que
pueden ser innecesarios con un mal manejo de estas replicas. Además, las
réplicas innecesarias pueden causar problemas en la ejecución de las
actualizaciones y puede no ser deseable si el espacio de almacenamiento está
limitado. Los inconvenientes de la fragmentación están dados en que si las
pueden estar definidas por fragmentos mutuamente exclusivos y al recuperar los
datos de dos fragmentos situados en sitios diferentes es necesario trasmitir
los datos de un sitio a otro y realizar sobre ellos la operación de unión
(Join), lo cual puede ser costoso. El control semántico cuando los atributos
implicados en una dependencia una relación se descompone en diferentes fragmentos
y estos se ubican en sitios diferentes puede ser muy costos porque es necesario
hacer búsquedas en un gran número de sitios.

No hay comentarios:
Publicar un comentario