Please enable JavaScript.
Coggle requires JavaScript to display documents.
TEMA 28 : SGBD. EL MODELO DE REFERENCIA ANSI. EL MODELO RELACIONAL. EL…
TEMA 28 : SGBD. EL MODELO DE REFERENCIA ANSI. EL MODELO RELACIONAL. EL LENGUAJE SQL. BBDD NO RELACIONALES. BBDD NO ESTRUCTURADAS. NoSQL
LOS SGBD
Introducción
Un
SGBD
proporciona el método de organización necesario para el almacenamiento y recuperación flexible de grandes cantidades de datos.
BBDD y SGBD
Definiciones
Base de datos :
conjunto, colección o depósito de datos almacenados en un soporte informático no volátil, de acceso directo.
La
redundancia
de los datos debe ser controlada, de forma que no existan duplicidades perjudiciales e innecesarias.
Han de atender a
múltiples usuarios
y diferentes
aplicaciones
Interdependencia
entre datos y tratamientos
La
definición y descripción
del conjunto de datos contenidos en la base deben ser únicas y estar integradas con los mismos datos
La
actualización y recuperación
en las bbdd se debe realizar mediante procesos bien determinados, de manera que se mantenga la
integridad, seguridad y confidencialidad
de la bd
Los datos deben estar
estructurados e interrelacionados
de acuerdo con un modelo capaz de recoger el máximo contenido semántico
Definición mas actual de
Base de Datos
:colección o depósito de datos integrados, con redundancia controlada y una estructura que refleje las interrelaciones y restricciones del mundo real, además de ser accesibles por varios usuarios y aplicaciones con una definición y descripción únicas, almacenadas junto a los datos
SGBD :
producto software que presta soporte al almacenamiento confiable de las bbdd, pone en marcha estructuras para mejorar relaciones y restricciones y ofrece servicios de almacenamiento y acceso.
Es una herramienta que permite interactuar los datos con los usuarios, de forma que se garanticen todas las propiedades de una bd.
El SGBD libera al usuario de conocer la organización física de los datos y la forma de almacenarlos, actualizarlos o consultarlos.
Características SGBD
Manejo de grandes volúmenes de datos :
mediante manejo de índices, partición de tables, uso de procesos distribuidos...
Manejo de accesos concurrentes :
debe permitir la simultaneidad de accesos mediante un manejo eficiente de los bloqueos de la bd para que no se produzca corrupción de los datos
Escalabilidad y elevada capacidad de proceso :
para hacer frente a los dos puntos anteriores
Alta disponibilidad :
la bd debe estar constantemente disponible para su acceso, sin ser alterado su funcionamiento por las tareas de mantenimiento y gestión
Seguridad y control de accesos :
solo los usuarios autorizados pueden acceder a la bd.
Integridad de los datos :
estado consistente de los datos con el esquema relacional en que se base. Requiere la validez y consistencia de los datos almacenados. Protección frente a caídas o transacciones no finalizadas...
Documentación :
de la bd, así como de su diseño y construcción
Flexibilidad :
dada por la independencia física y lógica
Seguridad e integridad de los datos
Debe garantizarse la protección de los datos contra accesos no autorizados
Debe implantar restricciones de integridad que protejan la BD contra daños accidentales, respetando las restricciones de consistencia y reglas de integridad
Debe proporcionar herramientas y mecanismos para la planificación y realización de copias de seguridad y su posible restauración ante un fallo que la dañe
Debe asegurar el acceso concurrente y ofrecer mecanismos para conservar la consistencia de los datos en caso de actualizaciones simultaneas de la BD
Usuarios de la BD
Administrador :
con nivel más alto de privilegios
Tareas
Instalar el SGBD
Crear las BBDD que se vayan a gestionar
Crear y mantener el esquema de la BD
Crear y mantener las cuentas de usuario de la BD
Arrancar y parar el SGBD y cargar las BBDD con las que se ha de trabajar
Colaborar con el Administrador del SO en las tareas de ubicación, dimensionado y control de los archivos y espacios de disco ocupados por el SGBD
Colaborar en la formación de los usuarios
Establecer estándares de uso, políticas de acceso y protocolos de trabajo para los usuarios de BD
Suministrar la información necesaria de las BBDD a los equipos de análisis y programación de aplicaciones
Efectuar tareas de explotación
Vigilar el trabajo diario colaborando en la resolución de dudas de los usuarios
Controlar en tiempo real los accesos, tasas de uso, cargas en los servidores..anomalías...
Reorganizar la BD
Efectuar las copias de seguridad periódicas de la BD
Restaurar la BD tras un incidente a partir de las copias de seguridad
Estudiar las auditorías del sistema
Ajustar y optimizar la BD
Resource
: pueden crear sus propios objetos y solo acceden a los objetos para los que se les ha dado permiso
Connect :
solo pueden tener acceso a los objetos para los que se les ha concedido permiso
Lenguajes SGBD
Lenguajes de Definición de Datos (LDD) :
orientados a la descripción de la BD dentro del SGBD, así como a modificaciones de la base y en su estructura física. (Definición de tablas, atributos, interrelaciones, reglas de integridad, índices.. (Abstract Syntax Notation definido por ISO)
Lenguajes de Manipulación de Datos (LMD) :
orientados al proceso y extracción de información almacenada en el SGBD. Para consultas, inserciones, eliminaciones y modificaciones. SQL Structured Query Language
Lenguaje de Control de Datos (LCD) :
permiten conceder o limitar privilegios a los usuarios. Control de acceso a los datos.
Lenguajes de control de transacciones :
controlan los cambios realizados en los datos de la BD mediante instrucciones de manipulación de datos (LMD), agrupándolas como si fuera una única instrucción lógica de manipulación.
Lenguajes de cuarta generación (4GL) :
incluidos en muchos SGBD, permiten al usuario crear aplicaciones de forma fácil y rápida para acceder y manipular los datos de la BD. (SQL Forms de Oracle , Informix 4GL)
EL Diccionario de Datos :
lugar donde se guarda información acerca de todos los datos que forman la BD; su descripción y la de los objetos que la forman.
Estructura lógica y física de la BD
Definiciones de todos los objetos de la BD : tablas, vistas, índices, procedimientos, funciones
Espacio asignado y usado por los objetos
Valores por defecto de las columnas de las tablas
Restricciones de integridad
Privilegios y roles de los usuarios
Estadísticas de utilización
Historial de cambios sobre la BD
Elementos de un SGBD
Procesador de consultas :
componente principal, transforma las consultas en un conjunto de instrucciones de bajo nivel que se dirigen al gestor de la BD
Gestor de la base de datos :
interface con los programas de aplicación y las consultas de los usuarios. Acepta consultas y examina los esquemas externo y conceptual para determinar qué registros satisfacen la petición. Hace una llamada al gestor de ficheros.
Control de autorización
Procesador de comandos
Control de la integridad
Optimizador de consultas
Gestor de transacciones
Planificador
Gestor de recuperación
Gestor de buffers
Gestor de ficheros :
maneja los ficheros en disco en donde se almacena la BD. Establece y mantiene la lista de estructuras e índices definidos en el esquema interno
Preprocesador del LMD :
convierte las sentencias del LMD embebidas en los programas de aplicación, en llamadas a funciones estándar escritas en lenguaje anfitrión.
Compilador de LDD :
convierte las sentencias de LDD en un conjunto de tablas que contienen metadatos, almacenadas en el diccionario de datos.
Gestor del diccionario :
controla los accesos al diccionario de datos y se encarga de mantenerlo.
Evolución hacia los SGBD
Los primeros sistemas de BBDD aparecieron a finales de los 50
En 1960 , se estableció COBOL como un lenguaje estándar para interrelacionar datos almacenados en ficheros
La separación en dos niveles en los esquemas de datos propuesta por CODASYL desembocó en el modelo jerárquico basado en árboles y el modelo en red o basado en grafos (SGBD de tercera generación)
Surge el la definición del concepto de transacción y sus propiedades asociadas (ACID test: Atomicidad, Consistencia, Aislamiento, y Durabilidad)
Nacen los sistemas de bbdd relacionales
Ventajas e inconvenientes. Sistemas de ficheros vs BBDD
Ventajas
Referidas a los datos
Independencia de los datos respecto a los tratamientos y viceversa
Mejor disponibilidad de los datos para el conjunto de usuarios
Mayor eficiencia en la recogida, validación e introducción de los datos en el sistema
Referidas a los resultados
Coherencia en los resultados
Mayor valor informativo
Mejor y más normalizada documentación de la información, integrada con los propios datos
Referidas a los usuarios
Acceso más rápido y sencillo de los usuarios finales
Más facilidades para compartir los datos por el conjunto de usuarios
Mayor flexibilidad para atender a demandas cambiantes
Inconvenientes
Instalación costosa
Necesidad de personal especializado
Implantación puede ser una tarea larga y difícil
Falta de rentabilidad a largo plazo
Escasa estandarización
Desfase entre la teoría y la práctica
DISEÑO DE BASES DE DATOS
Arquitectura ANSI/X3/SPARC
En 1972 (INEE) estableció un grupo de estudio para estudiar los aspectos de un SGBD que eran candidatos a estandarización y emitir una serie de recomendaciones de acción en esas áreas
Según la norma la arquitectura de una base de datos debe tener
tres niveles : externo, conceptual e interno
El SGBD es el que se encarga de la
transformación o correspondencia
entre unos niveles o esquemas y otros
Niveles
Nivel interno:
es el más cercano al almacenamiento físico. Se ocupa de cómo los datos se almacenan en el soporte
Objetivos
Disminuir al máximo el tiempo de respuesta del sistema
Minimizar el espacio de almacenamiento
Evitar en lo posible la redundancia de información
Optimización de los recursos de los que se dispone
Funciones
Estructura de almacenamiento físico de los datos
Organización de los ficheros
Modos de acceso
Índices y apuntadores
Bloqueo de registros
Rendimiento esperado
Aspectos clave
Cómo pasar del modelo lógico a unas estructuras y procedimientos informáticos comprensibles por el ordenador
Qué herramienta (SGBD) se va a usar para implementar dichas estructuras y procedimientos.
Nivel conceptual :
es el modelo de información de la empresa, la definición abstracta de la BD que contiene la visión de la empresa sin tener en cuenta la implementación física
El administrador trabaja a nivel conceptual
Objetivo
: proporcionar una descripción real de la organización independiente de la estructura física de los datos mediante un esquema o vista conceptual de la BD
Contenido
Entidades del mundo real
Atributos de las distintas entidades
Relaciones entre las distintas entidades
Verificaciones de seguridad e integridad
El Modelo Conceptual de Datos se corresponde con este nivel y se obtiene aplicando el Modelo E/R de Peter Chen
Nivel externo :
es el nivel superior que representa las vistas externas personalizadas que varían de acuerdo a la aplicación de diferentes usuarios
Visión desde el usuario individual del subconjunto de datos y relaciones entre ellos que él ve y necesita
Para cada tipo de usuario es necesario especificar un esquema externo, subesquema o vista externa , que describe un subconjunto de datos de la BD
Habrá usuarios que podrán acceder a más de un esquema externo y un esquema externo podrá ser compartido por varios usuarios
Existirán pues distintos esquemas lógicos para un mismo esquema conceptual. EL Modelo de Datos Lógico (normalmente relacional de Codd), se corresponde con este nivel y se representará mediante la técnica del DED
Transformación de datos
: se trata de la transferencia o mapeo de datos desde el nivel interno al externo
Niveles de correspondencia
Correspondencia conceptual/interna :
permite el paso de la vista conceptual a la vista interna y viceversa. Especifica cómo se representan los registros y campos conceptuales en el nivel interno
Correspondencia externa/conceptual :
permite el paso de una vista externa específica a la vista conceptual y viceversa
Son descritas por el administrador de la BD almacenándolas en el diccionario de datos
El paso de un esquema a otro se realiza utilizando un interfaz o función de traducción. EL modelo ANSI no indica cómo se debe realizar esta función, sólo que debe existir
El proceso de concepción, diseño y creación de una BD requiere establecer una serie de pasos que permitan pasar desde la visión conceptual del problema, representada mediante el Modelo Entidad-Relación (esquema conceptual) ,llegar a la implementación lógica de la misma y la concreción en un diseño físico en función de un SGBD concreto
EL MODELO RELACIONAL
Introducción
: propuesto originalmente por Codd en 1970, para sentar las bases para el diseño e implementación de Sistemas de BBDD en los que las aplicaciones fueran totalmente independientes de cómo se implementa el almacenamiento
Problemas que había que resolver con los modelos tradicionales existentes
Necesidad de un conocimiento detallado del modo en que los datos están almacenados para construir aplicaciones para su manipulación
Imposibilidad de independizar la tarea de los administradores del sistema de la de los desarrolladores de aplicaicones
Dificultad para implementar políticas de backup eficientes.
Es el más utilizado para las aplicaciones de proceso de datos y se corresponde con el nivel conceptual del modelo ANSI/SPARC
Características y conceptos básicos
Definiciones
Relación
: conjunto de tuplas; donde una
tupla
se define a su vez como un conjunto ordenado de valores atómicos. Cada relación vista como una
tabla
consta de un conjunto de columnas o
atributos
Dominio :
conjunto de valores válidos para un atributo
Universo
de una relación : conjunto de todos los dominios de una relación
Esquema
de una relación : descripción de su estructura interna (atributos que la componen)
Grado
de una relación : número de atributos de los que consta
Extensión
de una relación : conjunto de tuplas que conforman una relación
Cardinalidad
: número de tuplas de una relación
Valores nulos
: aquel usado cuando no se conozca el valor de un atributo para una determinada tupla. No pertenece a ningún dominio en particular. Representa la ausencia de valor
Restricciones
: reglas para garantizar la consistencia y facilidad de manipulación de la información
Inherentes
(son parte de la propia definición del modelo)
Restricción de clave
: en una relación no puede haber ninguna tupla repetida
Superclave :
cualquier conjunto de atributos de la relación que permite diferenciar a cualesquiera dos tuplas que formen parte de la misma
Clave primaria
;clave seleccionada por el diseñador para ser superclave de una relación de entre las claves candiatas
Restricción de dominio
: los valores de los atributos de una relación deben ser atómicos
Semánticas
(ayudan a definir con mayor precisión las características del universo a modelar)
Restricción de la integridad referencial
: si una tupla de una relación R1 hace referencia a una relación R2, debe referirse a una tupla que exista realmente en R2
Restricción de identidad de la entidad
: ninguna tupla de una relación puede tomar valores nulos en los atributos que forman parte de la clave primaria
Componentes de una BD relacional
Metadatos :
elementos de la BD que describen la propia estructura de la misma
Objetos :
tablas, relaciones entre ellas, índices, vistas..etc
Reglas de integridad :
ayudan a definir el dominio de conocimiento almacenado
Reglas de Codd
: definen las características esperadas de un sistema relacional, siendo necesario que el gestor cumpla al manos 6 de ellas
Regla 0 (regla fundamental) :
el sistema gestor debe emplear únicamente sus capacidades relacionales
Regla 1 (de la información) :
toda la información almacenada en la BD debe estar representada como valores en
tablas
, incluyendo la información del diccionario de datos
Regla 2 (del acceso garantizado) :
cualquier información almacenada en la BD debe poder ser accesible de forma unívoca, mediante un nombre de tabla, un nombre de columna y el valor de la clave primaria para la fila en cuestión
Regla 3 (del tratamiento sistemático de los valores nulos) :
los valores nulos representan la falta de información o información desconocida, independientemente del tipo de datos.
Regla 4 (catálogo en línea dinámico) :
los usuarios autorizados podrán consultar la descripción de la BD empleando el mismo lenguaje relacional que emplean para consultar los datos
Regla 5 (del sublenguaje completo de datos)
: el gestor debe soportar al menos un lenguaje cuyas sentencias sean expresables como cadenas de caracteres mediante una sintaxis bien definida
Regla 6 (de actualización de vistas) :
el sistema gestor debe ser capaz de actualizar todas las vistas que sean teóricamente actualizables
Regla 7 (inserción, actualización y borrado de alto nivel) :
el gestor debe proporcionar operadores para insertar, actualizar y borrar conjuntos de datos y no solo filas una a una.
Regla 8 (independencia física de datos) :
los cambios en la BD a nivel físico no debe implicar cambios en las aplicaciones que consultan o manipulan los datos
Regla 9 (independencia lógica de datos) :
los cambios a nivel lógico de la BD no deben implicar cambios en las aplicaciones que consultan o manipulan los datos
Regla 10 (independencia de integridad) :
las restricciones de integridad deben poder especificarse en un sublenguaje relacional y almacenarse en el catálogo
Regla 11 (independencia de distribución) :
la consulta o manipulación de los datos almacenados debe hacerse de la misma manera independientemente de si la BD está centralizada o distribuida
Regla 12 (de la no subversión) :
si el sistema gestor proporciona un lenguaje de bajo nivel para manipular los datos, este no puede permitir saltarse las reglas de integridad definidas sobre la BD
EL LENGUAJE SQL
Introducción y referencia histórica
Lenguaje de propósito específico diseñado para la gestión de datos almacenados en SGBD relacionales
Incluye sentencias para la definición de datos (LDD) y para la manipulación de los mismos (LMD).
Lenguaje más usado en el manejo de BBDD relacionales. Estándard ANSI en 1986 y estándar ISO en 1987
Evolución con nuevas funcionalidades, y no completamente portable ente BBDD de distintos proveedores
Elementos del lenguaje
Tipos de datos
Cadenas de caracteres : CHAR, VARCHAR
Cadenas de bits : BIT, BIT VARYING
Fecha y hora : DATE, TIME..
Números : INTEGER, SMALLINT, REAL; FLOAT, NUMERIC, DECIMAL
Operadores y expresiones condicionales
=, <>, >, <, >=, <=, BETWEEN AND, LIKE, IN, IS, IS NOT.
CASE.. WHEN ELSE
Consultas (queries)
: sentencia fundamental SELECT
Lenguaje de manipulación de datos (LMD)
: INSERT; UPDATE, DELETE, COMMIT, ROLLBACK
Lenguaje de definición de datos (LDD)
permite la creación , modificación y borrado de los objetos que configuran la BD (tablas, vistas, índices, reglas.)
Lenguaje de control de datos (LCD)
: empleado para asignar diferentes niveles de permisos de acceso y/o manipulación sobre los objetos de la BD (GRANT, REVOKE)
Extensiones procedurales
: son diferentes lenguajes de programación, que se integran con SQL y permiten construir programas completos, embebiendo el SQL del fabricante en los mismos.
SPL (IBM para Informix), T-SQL (Microsoft para Sybase) , PL/SQL de Oracle
BBDD NO RELACIONALES. BBDD NO ESTRUCTURADAS. NoSQL
Introducción
NoSQL :
clase de SGBD que difieren de los clásicos relacionales. No usan SQL como lenguaje de consultas. No requieren estructuras fijas como tablas ni garantizan completamente ACID
Tipo clave-valor
BigTable
BBDD documentales
BBDD orientadas a grafos
Crecimiento en las principales compañías de Internet : Google, Amazon, Facebook y Twitter.. Necesitan proporcionar información procesada a partir de grandes volúmenes de datos
Optimizadas para las operaciones de recuperar y agregar. Pierden flexibilidad, pero ganan en escalabilidad y rendimiento con ciertos modelos de datos.
Historia :
Carlo Strozzi usó el término NoSQL en 1998 para referirse a su BD open-source, ligera, sin interface SQL pero seguía el modelo relacional
Ejemplos :
Cassandra, Redis, mongoDB, CouchDB
Arquitectura
Ventajas
Responden a las necesidades de escalabilidad horizontal que tienen cada vez más empresas
Pueden manejar enormes cantidades de datos
No generan cuellos de botella
Escalamiento sencillo
Diferentes DBs NoSQL para diferentes proyectos
Se ejecutan en clusters de máquinas baratas
Inconvenientes
Peor soporte, al estar en código abierto.
No están lo suficientemente maduras para algunas empresas.
No tienen mucha atracción para el uso de herramientas de Business Intelligence (en el mercado está Toad para BBDD en la nube con capacidades de consulta ad-hoc)
Falta de experiencia
Problemas de compatibilidad. Tiene pocas normas estándares en común.