1. Base de Datos
UNIDAD 1: El mundo de las bases de
datos y los sistemas manejadores de
base de datos.
Clase 2: Sistema Manejador de Base
de Datos.
Ing. Ricardo Tillero
2. SMBD - DBMS - SGBD
• SMBD – Sistema Manejador de Base de Datos.
• DBMS – Data Base Manager System.
• SGBD - Sistema de Gestión de Bases de Datos.
3. SMBD
• Un sistema manejador de bases de datos (SMBD) o
DataBase Management System (DBMS) es una
colección de software muy específico, cuya función
es servir de interfaz entre la base de datos, el
usuario y las distintas aplicaciones utilizadas.
• Los Sistemas Manejadores de Bases de Datos, son
aplicaciones que permiten a los usuarios definir,
crear y mantener la base de datos y proporcionan un
acceso controlado a la misma.
4. Objetivo del SMBD
• El objetivo del SMBD es precisamente el de manejar
un conjunto de datos para convertirlos en
información relevante para la organización, ya sea a
nivel operativo o estratégico.
• Lo hace mediante una serie de rutinas de software
para permitir su uso de una manera segura, sencilla
y ordenada.
• Su uso permite realizar un mejor control a los
administradores de sistemas y, por otro lado,
también obtener mejores resultados a la hora de
realizar consultas que ayuden a la gestión
empresarial.
7. Características del SMBD
• Un sistema SMBD es sinónimo de independencia, una
redundancia mínima, consistencia de la información (control
de la concurrencia), abstracción de la información sobre su
almacenamiento físico, así como un acceso seguro y la
adopción de las medidas necesarias para garantizar la
integridad de los datos.
• Estas particularidades son algunos de los rasgos definitorios
de un SMBD, cuyos procesos esenciales son la manipulación
y construcción de la bases de datos, así como la definición de
los mismos.
8. Características del SMBD
• Los usuarios pueden acceder a la información usando
herramientas específicas de consulta y de generación de
informes, o bien mediante aplicaciones al efecto.
• Proporcionan métodos para mantener la integridad de los datos,
para administrar el acceso de usuarios a los datos y para
recuperar la información si el sistema se corrompe.
• Permiten presentar la información de la base de datos en
variados formatos.
• La mayoría incluyen un generador de informes.
• También pueden incluir un módulo gráfico que permita
presentar la información con gráficos y tablas.
• Generalmente se accede a los datos mediante lenguajes de
consulta, lenguajes de alto nivel que simplifican la tarea de
construir las aplicaciones.
9. Características del SMBD
• También simplifican las consultas y la presentación de la
información.
• Permiten 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.
10. Funcionalidades del SMBD
• Definir la Base de Datos mediante el Lenguaje de Definición de
Datos.
• Permitir la inserción, eliminación, actualización, consulta de los
datos mediante el Lenguaje de Manejo 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.
• Gestionar la estructura física de los datos y su almacenamiento.
• Proporcionar mecanismos de vistas de datos.
11. Funcionalidades 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
• 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.
12. Funcionalidades del SMBD
• Independizar la estructura de la organización lógica de los datos
(Independencia física).
• 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.
13. 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).
14. Arquitectura ANSI/SPARC
• La arquitectura o modelo ANSI-SPARC, 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.
16. 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.
17. 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.
19. Esquemas de Base de Datos
• Esquema externo: describe las diferentes vistas externas de
los datos; puede haber muchos esquemas externos para una
base de datos dada.
• 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.
• 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.
21. Arquitecturas de SMBD
1. SMBD monolítico.
2. SMBD Cliente/Servidor.
3. SMBD multicapas.
La arquitectura 3 se basa en la arquitectura
Cliente/Servidor.
22. 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.
24. 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.
28. 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 capa intermedia sea un
Servidor Web que evita que el cliente se conecte
directamente al SMBD, el Servidor Web se encarga de
traducir lo que el cliente realiza a una forma entendible por la
base de datos.
• El cliente para acceder a la base de datos, lo hace a través de
un aplicación Web, desde un navegador Web vía intranet o
Internet.
• Puede haber más capas con otros fines. Estas capas siempre
están entre el Cliente y el Servidor.
33. Operaciones sobre 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.
• Operaciones de definición de la base de datos.
• Operaciones de manipulación de la base de datos.
• Operaciones de Administración de la base de
datos.
34. Definición o Descripción de un SMBD
• 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).
35. Manipulación de un SMBD
• 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.
36. Control y administración de un SMBD
• 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.).
37. Lenguajes de un SMBD
• En lo que respecta a los lenguajes utilizados en un DBMS, cabe
destacar el Lenguaje de Manipulación de datos o Data
Manipulation Language (DML) para la realización de consultas y
manipulación de datos. Especialmente, se utiliza el SQL
(Structured Query Language), el DML más utilizado para
gestionar datos relacionales, así como el Data Definition
Language (DDL), utilizado para definir estructuras y funciones
en la realización de consultas.
• El Data Control Language (DCL), por último, también es un
lenguaje utilizado en un DBMS por el administrador, en esta
ocasión con el fin de controlar el acceso a los datos de la base
de datos.
38. 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
39. 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
40. Categorías de instrucciones
SQL
DCL (Data Control Languaje):
• Un Lenguaje de Control de Datos (DCL por sus siglas en inglés:
Data Control Language) es un lenguaje proporcionado por el
Sistema de Gestión de Base de Datos que incluye una serie de
comandos SQL que permiten al administrador controlar el
acceso a los datos contenidos en la Base de Datos.
• Instrucciones:
GRANT: Permite dar permisos a uno o varios usuarios o
roles para realizar tareas determinadas.
REVOKE: Permite eliminar permisos que previamente se
han concedido con GRANT.
41. Categorías de instrucciones
SQL
TCL (Transaction Control Languaje):
• Procesamiento de transacciones.
• Instrucciones:
BEGIN, COMMIT, SAVEPOINT, ROLLBACK
(ABORT), SET TRANSACTION
42. Categorías de instrucciones
SQL
SCL (Session Control Languaje):
• Modificación de sesión.
• Privilegios o roles de usuario (activación y
desactivación).
• Instrucciones:
ALTER SESSION, SET ROLE
44. 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.
45. 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 es un mnemotécnico para:
Atomicidad, Consistencia, Aislamiento y
Durabilidad.
46. 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.
47. 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.
48. 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.
49. 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.
50. 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.
51. 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