0% encontró este documento útil (0 votos)
171 vistas8 páginas

Bases de Datos Relacionales y Arquitectura Cliente/Servidor

Este documento describe las bases de datos relacionales. Una base de datos relacional almacena y da acceso a datos relacionados entre sí mediante tablas, registros y campos. Las bases de datos relacionales son el modelo más utilizado actualmente y se caracterizan por el uso de llaves primarias, foráneas e índices para establecer relaciones entre tablas.

Cargado por

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

Bases de Datos Relacionales y Arquitectura Cliente/Servidor

Este documento describe las bases de datos relacionales. Una base de datos relacional almacena y da acceso a datos relacionados entre sí mediante tablas, registros y campos. Las bases de datos relacionales son el modelo más utilizado actualmente y se caracterizan por el uso de llaves primarias, foráneas e índices para establecer relaciones entre tablas.

Cargado por

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

 Base de datos relacionales

Una base de datos relacional es un tipo de base de datos que cumple con el modelo relacional».
Así, según esta definición de base de datos relacional, se trata de una base de datos que almacena
y da acceso a puntos de datos relacionados entre sí. El modelo relacional es una forma intuitiva y
directa de representar datos sin necesidad de jerarquizarlos.

Las bases de datos relacionales son el modelo más utilizado actualmente, postulado por primera
vez en 1970 por Edgar Frank Codd.

Características comunes

 Una base de datos se compone de varias tablas, denominadas relaciones.


 No pueden existir dos tablas con el mismo nombre ni registro.
 Cada tabla es a su vez un conjunto de campos (columnas) y registros (filas).
 La relación entre una tabla padre y un hijo se lleva a cabo por medio de las llaves primarias
y llaves foráneas (o ajenas).
 Las llaves primarias son la clave principal de un registro dentro de una tabla y estas deben
cumplir con la integridad de datos.
 Las llaves ajenas se colocan en la tabla hija, contienen el mismo valor que la llave primaria
del registro padre; por medio de estas se hacen las formas relacionales.

Elementos de base de datos relacional

Relaciones

En una BDR, todos los datos se almacenan y se accede a ellos por medio de relaciones
previamente establecidas.

Relaciones base

Las relaciones que almacenan datos son llamadas relaciones base y su implementación es llamada
"tabla".

Relaciones derivadas

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 tabla.

Algunas no son determinadas por los usuarios, sino que son inherentemente definidas por el
simple hecho de que la BD 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 informal y 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 "cualquier valor de este atributo debe ser elemento del
conjunto especificado".

Distintos tipos de dominios son: enteros, cadenas de texto, fecha, no procedurales, etc.

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 estas suele llamársele candidata a clave
primaria.

Clasificación de Claves

Clave primaria

Una clave primaria es una clave única (puede estar conformada por uno o más campos de la tabla)
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 (relación entre tablas) es por medio de claves foráneas.

Clave externa o 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 solo un
departamento por cada clave distinta de departamento en la tabla de departamentos.

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.

 Arquitectura cliente/servidor

La arquitectura cliente-servidor es un modelo de diseño de software en el que las tareas se


reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes,
llamados clientes. Un cliente realiza peticiones a otro programa, el servidor, quien le da respuesta.
Esta idea también se puede aplicar a programas que se ejecutan sobre una sola computadora,
aunque es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de
computadoras.

Algunos ejemplos de aplicaciones que usen el modelo cliente-servidor son el Correo electrónico,
un Servidor de impresión y la World Wide Web.

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 solo 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.

La red cliente-servidor es una red de comunicaciones en la cual 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.

 Características

En la arquitectura Cliente/Servidor el remitente de una solicitud es conocido como cliente. Sus


características son:

 Es quien inicia solicitudes o peticiones, tiene 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.

Al receptor de la solicitud enviada por el cliente se le conoce como servidor. Sus características
son:

 Al iniciarse espera a que lleguen las solicitudes de los clientes, desempeña entonces un
papel pasivo en la comunicación (dispositivo esclavo).
 Tras la recepción de una solicitud, la procesa y luego envía la respuesta al cliente.
 Por lo general, acepta las conexiones de un gran número de clientes (en ciertos casos el
número máximo de peticiones puede estar limitado).

En la arquitectura C/S las características generales son:

 El Cliente y el Servidor pueden actuar como una sola entidad y también pueden actuar
como entidades separadas, realizando actividades o tareas independientes.
 Las funciones de Cliente y Servidor pueden estar en plataformas separadas, o en la misma
plataforma.
 Cada plataforma puede ser escalable independientemente. Los cambios realizados en las
plataformas de los Clientes o de los Servidores, ya sean por actualización o por reemplazo
tecnológico, se realizan de una manera transparente para el usuario final.
 La interrelación entre el hardware y el software está basada en una infraestructura
poderosa, de tal forma que el acceso a los recursos de la red no muestra la complejidad de
los diferentes tipos de formatos de datos y de los protocolos.
 Su representación típica es un centro de trabajo (PC), en donde el usuario dispone de sus
propias aplicaciones de oficina y sus propias bases de datos, sin dependencia directa del
sistema central de información de la organización.

Los servidores pueden ser apátridas o stateful. Un servidor apátrida no guarda ninguna
información entre las peticiones. Un servidor stateful puede recordar la información entre las
peticiones. El alcance de esta información puede ser global o sesión-específico. Un servidor de
HTTP para las páginas estáticas HTML es un ejemplo de un servidor apátrida, mientras que Apache
Tomcat es un ejemplo de servidor stateful.

La interacción entre el cliente y el servidor se describe a menudo usando diagramas de secuencia.


Los diagramas de secuencia se estandarizan en el UML. Es importante que los clientes no
interactúen entre sí ni que lo hagan clientes de capas bajas hacia otros de capas más altas, por eso
todo tiene que pasar por el servidor.

Otro tipo de arquitectura de red se conoce como arquitectura de par-a-par porque cada nodo o
caso del programa es un “cliente” y un “servidor” y cada uno tiene responsabilidades equivalentes.
Ambas arquitecturas están en uso amplio.

 Arquitectura multicapa

Una arquitectura multicapas es un conjunto ordenado de subsistemas, cada uno de cuales está
constituido en términos de los que tiene por debajo y proporciona la base de la implementación
de aquellos que están por encima de él.

Los objetos de cada capa suelen ser independientes, aunque suelen haber dependencias entre
objetos de distintas capas. Existe una relación cliente /servidor entre las capas inferiores, que son
las que proporcionan los servicios, y las capas superiores, los usuarios de estos servicios.

Una arquitectura multicapa particiona todo el sistema en distintas unidades funcionales: cliente,
presentación, lógica-de-negocio, integración, y sistema de información empresarial (EIS). Esto
asegura una división clara de responsabilidades y hace que el sistema sea más mantenible y
extensible. Los sistemas con tres o más capas se han probado como más escalables y flexibles que
un sistema cliente-servidor, en el que no existe la capa central de lógica de negocios. La capa de
presentación expone los servicios de la capa de lógica de negocio a los usuarios. Sabe cómo
procesar una petición de cliente, cómo interactuar con la capa de lógica de negocio, y cómo
seleccionar la siguiente vista a mostrar. La capa de la lógica de negocio contiene los objetos y
servicios de negocio de la aplicación. Recibe peticiones de la capa de presentación, procesa la
lógica de negocio basada en las peticiones, y media en los accesos a los recursos de la capa EIS. Los
componentes de la capa de lógica de negocio se benefician de la mayoría de los servicios a nivel de
sistema como el control de seguridad, de transacciones y de recursos. La capa del cliente es donde
se consumen y presentan los modelos de datos. Para una aplicación Web, la capa cliente
normalmente es un navegador web. Los clientes pequeños basados en navegador no contienen
lógica de presentación; se trata en la capa de presentación.

 Componentes de un DBMS

Administrador de base de datos

Este componente puede proporcionar una interfaz entre los datos de bajo nivel que existen en
cada base de datos con un programa de aplicación y también en las consultas que se darán a un
sistema.
En pocas palabras, este administrador de base de datos tiene la tarea de poder probar
externamente y aceptar consultas y esquemas conceptuales para poder determinar si el registro
de datos es necesario para cumplir con la solicitud.

Administrador de archivos

File Manager es un componente que puede administrar el espacio en el disco y también en una
estructura de datos que se puede usar para representar la información que se ha almacenado en
un disco.

O también podría decirse que el administrador de archivos puede utilizar para manipular el
almacenamiento en archivos y administrar la asignación de espacio de almacenamiento en un
disco. El administrador de archivos también juega un papel importante y tiene la responsabilidad
de almacenar datos.

Procesador de consultas

En este componente DBMS, puede funcionar como traducir un comando al lenguaje de consulta
en una instrucción de bajo nivel y puede ser entendido por el administrador de la base de datos.

Compilador DDL

DDL Este compilador es un componente puede convertir varios comandos DDL en una colección de
tablas que ya contienen metadatos. En pocas palabras, este compilador DDL tiene la tarea de
poder cambiar un comando de alto nivel que luego se convierte en un lenguaje de bajo nivel, que
finalmente obtendrá una colección de etiquetas que ya contienen metadatos.

Compilador DML

DML Compiler es un componente que puede convierte un comando de DML, que luego se
agregará a un programa de aplicación al reproductor de procedimientos no nativo en el idioma
principal. Y también se puede llamar DML Compiler es un componente del DBMS que puede
convertir comandos de DML incrustado en un programa de aplicación en forma de funciones que
se llamarán al idioma del host.

Administrador de diccionario

Este administrador de diccionarios es un componente del DBMS que puede administrar el acceso y
mantener los datos del diccionario.

 Funciones de un DBMS

Determinado que una base de datos es una colección de archivos interrelacionados creados con
un DBMS. El contenido de una base de datos esta almacenada de tal manera que los datos estén
disponibles para los usuarios, una finalidad de la base de datos es eliminar la redundancia o al
menos minimizarla.
La DB (data base) es solo un “almacén” de datos, lo que ha hecho indispensable el desarrollo de
sistemas que los administren y procesen, siendo estos los DBMS.

El propósito general de los DBMS es el de manejar de manera clara, sencilla y ordenada, los datos
de una Base de Datos (DB) que posteriormente se convertirán en información relevante, para un
buen manejo de los datos.

Existen distintas funciones que deben cumplir los DBMS:

Abstracción de los datos.

Los DBMS ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo
mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al
usuario. Así, se definen varios niveles de abstracción.

Independencia.

Consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener
que realizar cambios en las aplicaciones que se sirven de ella.

Consistencia.

En aquellos casos en los que no se ha logrado eliminar la redundancia, será necesario vigilar que
aquellos datos que aparecen repetidos se actualice de forma coherente, es decir, que todos los
datos repetidos se actualicen de forma simultánea.

Seguridad.

Los datos almacenados en una base de datos pueden llegar a tener un gran valor. Los DBMS deben
garantizar que estos datos se encuentren seguros frente a usuarios malintencionados, que
intenten leer datos privilegiados; frente a ataques que deseen manipular o destruir los datos; o
simplemente ante las torpezas de algún usuario autorizado pero despistado. Normalmente, los
DBMS disponen de un complejo sistema de permisos a usuarios y grupos de usuarios, que
permiten otorgar diversas categorías de permisos.

Integridad.

Adoptar las medidas necesarias para garantizar la validez de los datos almacenados. Es decir, se
trata de proteger los datos ante fallos de hardware, datos introducidos por usuarios descuidados,
o cualquier otra circunstancia capaz de corromper los datos almacenados. Los DBMS proveen
mecanismos para garantizar la recuperación de la base de datos hasta un estado consistente
conocido en forma automática.

Respaldo.

Los DBMS deben proporcionar una forma eficiente de realizar copias de respaldo de los datos
almacenados y de restaurar a partir de estas copias los datos que se hayan podido perder.

Control de la concurrencia.
En la mayoría de entornos lo más habitual es que sean muchas las personas que acceden a una
base de datos, y es también frecuente que Elaboro: LIA. Blanca García Sánchez 3 dichos accesos se
realicen de forma simultánea. Así pues, un DBMS debe controlar este acceso concurrente a la DB,
que podría derivar en inconsistencias.

Manejo de Transacciones.

Una Transacción es un programa que se ejecuta como una sola operación. Esto quiere decir que el
estado luego de una ejecución en la que se produce una falla es el mismo que se obtendría si el
programa no se hubiera ejecutado. Los DBMS proveen mecanismos para programar las
modificaciones de los datos de una forma mucho más simple que si no se dispusiera de ellos.

Tiempo de respuesta.

Lógicamente, es deseable minimizar el tiempo que el DBMS tarda en darnos la información


solicitada y en almacenar los cambios realizados.

También podría gustarte