Sei sulla pagina 1di 67

Base de Datos

UNIDAD 1: El mundo de las bases de


datos y los sistemas manejadores de
base de datos.
Clase 2: SMBD - DBMS.

Ing. Ricardo Tillero


SMBD
Los Sistemas Manejadores de Bases de
Datos, son aplicaciones que permiten a los
usuarios definir, crear y mantener la base de
datos y proporciona un acceso controlado a
la misma. Los SMBD es la aplicación que
interactúa con los usuarios de los programas
de aplicación y la base de datos.
SMBD
SMBD Open Source
Objetivos del SMBD
• Definir la Base de Datos mediante el
Lenguaje de Definición de Datos, el cual
permite especificar la estructura, tipo de
datos y las restricciones sobre los datos,
almacenándolo todo en la base de datos.

• Separar la descripción y manipulación de la


data, permitiendo un mayor entendimiento de
los objetos, además de flexibilidad de
consulta y actualización de los datos.
Objetivos del SMBD
• Permitir la inserción, eliminación,
actualización, consulta de los datos mediante
el Lenguaje de Manejo de Datos.

 Lenguajes procedurales: manipulan la base de datos


registro a registro y se deben especificar las operaciones a
realizar para obtener los datos resultado.

 Lenguajes no procedurales: manipulan la base de datos


en conjuntos de registros y se especifican qué datos deben
obtenerse como resultado sin plantear las forma de hacerlo.
(SQL)
Objetivos del SMBD
• Proporcionar acceso controlado a la base de
datos:
 Seguridad
 Integridad
 Control de Recurrencia (Acceso Compartido)
 Control de Recuperación
 Diccionario de datos o Catálogo

• Gestionar la estructura física de los datos y


su almacenamiento.

• Proporcionar mecanismos de vistas de datos.


Objetivos del SMBD
• Eliminar la redundancia de datos, establecer
una mínima duplicidad en los datos y
minimizar el espacio en disco utilizado.

• Proveer interfaces procedimentales y no


procedimentales, permitiendo la
manipulación por usuarios interactivos y
programadores.

• Independizar la estructura de la organización


lógica de los datos (Independencia física).
Objetivos del SMBD
• Independizar la descripción lógica de la Base
de datos y las descripciones particulares de
los diferentes puntos de vistas de los
usuarios.

• Permitir una fácil administración de los datos.


Objetivos del SMBD
Objetivos del SMBD
Operaciones de un SMBD
• Las operaciones típicas que debe garantizar
un SMDB pueden resumirse en aquellas que
afectan a la totalidad de los datos (o a todos
los necesarios de un determinado tipo) y a
las que tienen lugar sobre registros
concretos.
Funciones de un SMBD
Función de Definición o Descripción:
• Debe permitir al diseñador de la Base de Datos
especificar los elementos de datos que la integran,
su estructura y las relaciones que existen entre ellos,
las reglas de integridad semántica, etc., así como las
características de tipo físico y las vistas lógicas de
los usuarios.
• Cada SMBD cuenta con un Lenguaje de Descripción
o definición de Datos (LDD).
Funciones de un SMBD
Función de Manipulación:
• Se utiliza para que los usuarios recuperen o
actualicen los datos dentro de la Base de Datos, esto
se lleva a cabo por medio de un Lenguaje de
Manipulación de Datos (LMD) que facilita los
instrumentos necesarios para la realización de estas
tareas.
Funciones de un SMBD
Función de Control:
• Esta función recibe todas las interfaces que
necesitan los diferentes usuarios para comunicarse
con la base y proporcionar un conjunto de
procedimientos para el administrador. (respaldo,
recuperación, seguridad, etc.).
Componentes de un SMBD
Modelo de Componentes SMBD
Componente y Función SMBD
Componentes de Procedimiento de Consultas
Compilador del LMD Traduce las instrucciones del LMD en lenguaje
de consulta a instrucciones a bajo nivel que
entiende el motor de evaluación de consultas.

Precompilador del Convierte las instrucciones de LMD


LMD incorporado incorporadas en un programa de aplicación en
llamadas a procedimientos normales en el
lenguaje anfitrión

Interprete del LDD Interpreta las instrucciones del LDD y las


registra en un conjunto de tablas que
contienen metadatos

Motor de Evaluación Ejecuta las instrucciones a bajo nivel


de Consultas generadas por el precompilador del LMD
Componente y Función SMBD
Componentes de Administración de Almacenamiento
Administrador de Comprueba que se satisfagan las ligaduras de integridad y la
autorizaciones e autorización de los usuarios para acceder a los datos
integridad
Administrador de Asegura que la base de datos quede en estado consistente
Archivos (correcto) a pesar de los fallos del sistema, y que las ejecuciones de
transacciones concurrentes ocurran sin Conflictos
Administrador de Es responsable de traer los datos del disco de almacenamiento a
Memoria memoria principal y decidir que datos tratar en memoria cache
Intermedia
Archivos de Datos Almacenan las Bases de Datos en sí

Diccionario de Almacena metadatos acerca de la estructura de la Base deDatos


Datos
Índices Proporcionan acceso rápido a elementos de datos que tienen
valores particulares

Datos Estadísticos Almacenan información estadística sobre los datos en la base de


datos el procesador de consultas usa esta información para
seleccionar las formas eficientes para ejecutar una consulta
Arquitectura de los SMBD
Organismos de estandarización:

 ANSI (American National Standards


Institute) es un organismo científico de
Estados Unidos que ha definido diversos
estándares en el campo de las bases de
datos.
 X3 es la parte de ANSI encargada de los
estándares en el mundo de la electrónica.
 SPARC, System Planning and Repairments
Committee, comité de planificación de
sistemas y reparaciones es una subsección
de X3 encargada de los estándares en
Sistemas Informáticos en especial del campo
de las bases de datos. Su logro fundamental
ha sido definir un modelo de referencia para
las bases de datos (que se estudiará
posteriormente).
Arquitectura ANSI/SPARC
• La arquitectura o modelo ANSI-SPARC, donde ANSI-SPARC
significa American National Standards Institute/Standards
Planning And Requirements Committee, es un estándar de
diseño abstracto para un sistema de gestión de bases de
datos (DBMS), propuesto por primera vez en 1975.

• También es conocida como ANSI-X3-SPARC pero por


simplicidad se le denomina ANSI-SPARC o ANSI/SPARC.

• La mayoría de los DBMS comerciales modernos se basan


en este sistema. El modelo ANSI/SPARC, sin embargo,
nunca se convirtió en un estándar formal.
Arquitectura ANSI/SPARC
El objetivo de la arquitectura de tres niveles es
separar la vista de los usuarios:
 Permite vistas de usuario independientes y personalizadas: Cada
usuario debe ser capaz de acceder a los datos, pero tiene una
vista personalizada diferente de los datos. Estos deben ser
independientes: los cambios en una vista no deben afectar a las
demás.
 Oculta los detalles físicos de almacenamiento a los usuarios: Los
usuarios no deberían tener que lidiar con los detalles de
almacenamiento de la base de datos.
 El administrador de la base de datos debe ser capaz de cambiar
las estructuras de almacenamiento de esta sin afectar la vista de
los usuarios.
 La estructura interna de la base de datos no debería verse
afectada por cambios en los aspectos físicos del almacenamiento:
por ejemplo, un cambio a un nuevo disco.
Niveles del Modelo ANSI/SPARC
El modelo ANSI/X3/SPARC se divide en tres niveles,
conocidos como interno, conceptual y externo,
respectivamente:

 El nivel externo: es el nivel de mayor abstracción. A este


nivel corresponden las diferentes vistas parciales que tienen de
la base de datos los diferentes usuarios.
 El nivel conceptual: es el nivel medio de abstracción. Se
trata de la representación de los datos realizada por la
organización, que recoge las vistas parciales de los
requerimientos de los diferentes usuarios y las aplicaciones
posibles. Se configura como visión organizativa total, e incluye
la definición de datos y las relaciones entre ellos.
 El nivel interno: es el nivel más bajo de abstracción, y
define cómo se almacenan los datos en el soporte físico, así
como los métodos de acceso.
Niveles del Modelo ANSI/SPARC
Esquemas de Base de Datos
 El esquema externo describe las diferentes vistas externas de los
datos; puede haber muchos esquemas externos para una base de
datos dada.

 El esquema conceptual describe todos los datos y las relaciones


entre ellos, junto con las restricciones de integridad. Solo hay un
esquema conceptual por cada base de datos.

 El esquema interno es el nivel más bajo que contiene los registros


almacenados, los métodos de representación, los campos de
datos e índices. Solo hay un esquema interno por cada base de
datos.

 La descripción general de una base de datos se llama esquema de


base de datos.
Esquemas del Modelo
ANSI/SPARC
Arquitecturas de SMBD
1. SMBD monolítico.
2. SMBD Cliente/Servidor.
3. SMBD multicapas.

La arquitectura 3 se basa en la arquitectura


Cliente/Servidor.
SMBD Monocapa
Conocido también como Monolítico.
Es la más sencilla, pero la que tiene menos
escalabilidad (posibilidad de crecer).
El SMBD se instala en una máquina y los
usuarios acceden directamente a esa
máquina y al SMBD.
Implementada en computadores centrales o
sistemas multiusuarios.
En estos sistemas no se accede de forma
remota a la base de datos.
SMBD Monocapa
Arquitectura Cliente–Servidor
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.
Arquitectura Cliente–Servidor
Características generales:

 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án basados 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.
Arquitectura Cliente–Servidor
Características del 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.

Características del Servidor:

 Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempeñan


entonces un papel pasivo en la comunicación (dispositivo esclavo).
 Tras la recepción de una solicitud, la procesan y luego envían 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).
Arquitectura Cliente–Servidor
Procesos cliente y servidor en máquinas
distintas

Servidor Servidor Servidor


Cliente
Aplicaciones Correo BD
Puerto Web

SO SO SO SO

RED de paso de mensajes

Comunicación por puertos vía


paso de mensajes
Arquitectura Cliente–Servidor
Tipos de procesos servidores

Servidor Secuencial Servidor Paralelo


Arquitectura Cliente–Servidor
Servidor Secuencial
 El proceso está bloqueado esperando peticiones
 Al recibir una petición ejecuta el servicio y responde con el
resultado al cliente solicitante
 Las peticiones que recibe mientras ejecuta un servicio son
encolas.
Arquitectura Cliente–Servidor
Servidor Paralelo
 El proceso está bloqueado esperando peticiones
 Al recibir una petición crea un proceso servidor hijo con nuevo puerto para atender la
nueva petición
 Redirecciona al puerto del servidor hijo la petición del cliente
 El servidor hijo ejecuta el servicio y responde con el resultado al cliente solicitante
 Cuando el servidor no puede crear mas servidores hijos encola las nuevas peticiones
que recibe
SMBD Cliente/Servidor
• También conocido como Bicapa
• El Servidor es precisamente el propio SMBD y soporta todas sus
funciones básicas: definición de datos, manipulación de datos,
seguridad e integridad de los datos, etcétera. En particular,
proporciona todo el soporte de los niveles externo, conceptual e
interno. Por lo tanto, en este contexto, “Servidor" es sólo el nombre
del SMBD.
• Los Clientes son las diversas aplicaciones que se ejecutan sobre el
SMBD, tanto aplicaciones escritas por el usuario como aplicaciones
integradas (es decir, aplicaciones proporcionadas por el fabricante del
SMBD o por alguna otra compañía).
• El software cliente y el servidor deben utilizar software de
comunicaciones de red para el intercambio de ordenes y datos.
SMBD Cliente/Servidor
SMBD Cliente/Servidor
SMBD Cliente/Servidor
SMBD Cliente/Multi-Servidor
• En este caso los clientes acceden a un conjunto de servidores
que distribuyen la base de datos. El cliente no sabe si los
datos están en uno o más servidores, ya que el resultado es
el mismo independientemente de dónde se almacenan los
datos. Se usa cuando el número de clientes ha crecido mucho
y un solo servidor no podría atender sus peticiones.
• Se puede implementar como servidores independientes o bajo
la modalidad de Clustter.
SMBD Multi-capas
SMBD de tres o más capas:
 Es una estructura de tipo cliente/servidor, pero en la que hay
al menos una capa intermedia entre las dos. Esa capa se suele
encargar de procesar las peticiones y enviarlas al SMBD con el
que se comunica.
 Un ejemplo habitual es que la tercer capa sea un Servidor Web
que evita que el cliente se conecte directamente al SMBD. Ese
Servidor Web se encarga de traducir lo que el cliente realiza a
una forma entendible por la base de datos.
 Esta forma de trabajar permite además que para usar una base
de datos, baste un simple navegador al cliente.
 Puede haber más capas con otros fines. Estas capas siempre
están entre el Cliente y el Servidor.
SMBD Multi-capas
SMBD Multi-capas
SMBD Multi-capas
SMBD Multi-capas
Categorías de instrucciones
SQL
Categorías de instrucciones
SQL
DDL (Data Definition Languaje):

El Lenguaje de Definición de Datos (Data


Definition Language – DDL), sirve para
modificar la estructura de los objetos en una
base de datos.
Instrucciones: CREATE, ALTER, DROP,
RENAME, y TRUNCATE, AUDIT, ANALYZE,
RENAME, PURGE, GRANT, REVOKE
Categorías de instrucciones
SQL
DML (Data Manipulation Languaje):

El lenguaje de Manipulación de Datos (Data


Manipulation Language – DML) sirve para
llevar a cabo las transacciones en las base
de datos, entiéndase por transacciones los
procesos de inserción, actualización,
eliminación, selección.
Instrucciones: SELECT, INSERT, UPDATE y
DELETE
Categorías de instrucciones
SQL
TCL (Transaction Control Languaje):

Procesamiento de transacciones.
Instrucciones:
 BEGIN, COMMIT, SAVEPOINT, ROLLBACK
(ABORT), SET TRANSACTION
Categorías de instrucciones
SQL
SCL (Session Control Languaje):

Modificación sesión.
Privilegios o roles de usuario (activación y
desactivación).
Instrucciones:
 ALTER SESSION, SET ROLE
Consultas SQL
Consultas SQL
Consultas SQL
Consultas SQL
Transacciones SQL
• El Procesamiento de Transacciones tiene como objetivo las
cuestiones referentes a la integridad de la Base de Datos,
recuperación y control de la concurrencia.

• Una transacción es un programa de aplicación, generalmente


de duración breve, que accede y actualiza una parte también
generalmente pequeña de la base de datos pudiendo controlar
múltiples transacciones ejecutando el paralelo sobre una misma
base de datos corriendo en un sistema que puede fallar.

• Los objetivos del Gestor de Transacciones del SMBD son:


evitar que las transacciones interfieran unas con otras al
ejecutar en paralelo, y garantizar que la base de datos no sea
dañada en forma irreparable por caídas, ya sea del sistema en
sí o de alguna de las transacciones.
Transacciones SQL
• Una transacción es una unidad lógica de trabajo en
la cual una serie de operaciones ocurren entre las
sentencias BEGIN TRANSACTION (COMIENZO DE
TRANSACCIÓN) y ENDTRANSACTION (FIN DE
TRANSACCIÓN) de una aplicación. Una transacción
es atómica; es decir, se hace todo el trabajo o no se
hace nada.
• La administración de transacciones implica algunas
características importantes llamadas características
ACID (Atomicity, Consistency, Isolation and
Durability), éste esun mnemotécnico para:
Atomicidad, Consistencia, Aislamiento y Durabilidad.
Transacciones SQL - ACID
Atomicidad:
 Las operaciones asociadas a una transacción
comparten generalmente un objetivo común y son
interdependientes.
 Si se ejecuta solamente un subconjunto de estas
operaciones, el sistema podría comprometer el
objetivo global de la transacción.
 La atomicidad elimina la posibilidad de procesar un
subconjunto de operaciones.
Transacciones SQL - ACID
Consistencia:
 Una transacción es una unidad de integridad porque
preserva la consistencia de datos, transformando un
estado consistente de datos en otro estado
consistente.
 La consistencia requiere que los datos
comprometidos en una transacción se preserven
semánticamente.
 Algunas de las responsabilidades de mantener
consistencia caen sobre el desarrollador de
aplicaciones, que debe asegurarse de que todas las
restricciones de integridad se cumplan en la
aplicación.
Transacciones SQL - ACID
Aislamiento:
 Una transacción es también una unidad aislada.
 La administración de transacciones permite que las
transacciones concurrentes se comporten como si
cada una fuera la única transacción ejecutándose en
el sistema.
 El aislamiento requiere que cada transacción
parezca ser la única transacción que manipula la
base de datos, aunque otras transacciones pueden
estar ejecutándose concurrentemente.
 Una transacción nunca puede ver las etapas
intermedias de otra transacción.
Transacciones SQL - ACID
Durabilidad:
 Una transacción es también una unidad de
recuperación.
 Si una transacción tiene éxito, el sistema garantiza
que persistirán sus actualizaciones, incluso si la
computadora falla inmediatamente después de una
ejecución exitosa.
 Este requisito de la persistencia se llama durabilidad.
Manejo del Almacenamiento
SQL
• El manejo de almacenamiento lo realizan los
Administradores de la Base de Datos quienes crean
las estructuras de almacenamiento apropiadas y los
métodos de acceso escribiendo un conjunto de
definiciones, que son traducidas por el compilador
del Lenguaje de Definición y Almacenamiento de
datos.
• Los componentes de gestión de almacenamiento
proporcionan la interfaz entre los datos de bajo nivel
almacenados en la base de datos y los programas de
aplicación y envío de consultas al sistema.
Manejo del Almacenamiento
SQL
Manejo del Almacenamiento
SQL
Ventajas de los SMBD
• Control sobre la redundancia de datos.
• Consistencia de datos.
• Más información sobre la misma cantidad de datos.
• Compartición de datos.
• Mantenimiento de estándares.
• Mejora en la integridad de datos.
• Mejora en la seguridad.
• Mejora en la accesibilidad a los datos.
• Mejora en la productividad.
• Mejora en el mantenimiento gracias a la independencia de
datos.
• Aumento de la concurrencia.
• Mejora en los servicios de copias de seguridad y de
recuperación ante fallos.
Desventajas de los SMBD
• Complejidad.
• Tamaño.
• Coste económico del SGBD.
• Costo del equipamiento adicional.
• Costo de la conversión.
• Prestaciones.
• Vulnerable a los fallos.
• Soporte para los SMBD Open Source

Potrebbero piacerti anche