Una base de datos es un conjunto estructurado de datos
coherentes Coleccin disponible de informacin Definicin Una base de datos es un conjunto estructurado de datos coherentes Coleccin organizada en subconjuntos, en funcin de relaciones entre las diferentes informaciones (estructura lgica) Definicin Una base de datos es un conjunto estructurado de datos coherentes No hay contradiccin entre los datos ligados, no hay prdida de informacin, aun sabiendo que hay una utilizacin compartida de los datos entre varios usuarios Definicin Un Sistema de Gestin de Bases de Datos (SGBD) es un software que permite manipular las bases de datos Construir Utilizar Mantener Reorganizar Sistema de Gestin de Bases de Datos Propiedades fundamentales Independencia de los datos Acceso eficiente a los datos Integridad y seguridad de los datos Administracin de los datos Acceso concurrente y recuperacin en caso de crash Los SGBD deben cumplir con las propiedades ACID para las transacciones: Atomicity (Atomicidad: las transacciones son atmicas) Consistency (Consistencia: una transaccin transforma un estado consistente de la BD en otro) Isolation (Aislamiento: las transacciones estn aisladas entre si) Durability (Durabilidad: despus que una transaccin ha sido confirmada ella persiste) Definiciones Esquema de una Base de Datos: Cuando una base de Datos es diseada interesa definir una estructura para sta. Esta estructura permanece esttica durante un gran perodo de tiempo, aunque puede sufrir modificaciones ocasionales Instancia: Es la informacin que en un determinado instante del tiempo posee la base de datos y que cambia permanentemente (excepto en algunos tipos de bases de BD particulares) Definiciones Usuario final: El que interacta con la base de datos, por lo general a travs de aplicaciones e interfaces Usuario especialista: El que disea y programa aplicaciones para usuarios finales. DBA (Database Administrator): El que administra la base de datos. Qu hace? Componentes funcionales de un SGBD Metadatos o Diccionario de Datos (D.D): Contiene el esquema de la B.D, los usuarios, los permisos de acceso, etc. Son datos sobre los datos. Optimizador de consultas: Define el plan de ejecucin de operaciones solicitadas por los usuarios, de tal manera que se lleven a cabo de la manera ms eficiente posible Manejador de transacciones: Controla el acceso y la concurrencia de operaciones Componentes funcionales de un SGBD Manejador de almacenamiento tiene dos componentes: -Manejador de archivos recupera desde disco los bloques que contienen la informacin solicitada por una transaccin. -Manejador de buffer mantiene en memoria principal la informacin ms usada y decide cuando llevar a disco alguno de sus bloques. SGBD - Funciones Soporta DML: Lenguaje para actualizacin, almacenamiento y recuperacin de datos Ofrece optimizacin en la bsqueda de la informacin Soporta DDL : Lenguaje para definir los datos Metadatos (DD): Catlogo autodescriptivo, informacin sobre los objetos existentes en el sistema Datos sobre los datos Ventajas de un SGBD 1. Reutilizacin de datos y programas 2. Control de redundancia 3. Estandarizacin 4. Consistencia (No hay redundancia) 5. Es posible equilibrar las cargas de los requerimientos (establecer prioridades) Ventajas de un SGBD 6. Integridad (Se cumplen las reglas establecidas) 7. Seguridad 8. Rapidez de desarrollo 9. Mantenimiento y reingeniera: cambios en la estructura de datos sin cambiar los programas que los usan (hasta cierto punto) Desventajas de un SGBD 1. Tamao 2. Susceptibilidad a fallas 3. Complejidad en la recuperacin a fallas 4. Puede llegar a trabajar en forma lenta debido a la cantidad de verificaciones que debe hacer Nivel de Visin Externo El ms cercano a los usuarios finales Percepcin de la base de datos por parte de los usuarios finales Tantas visiones como tipos de usuarios Cada visin de usuario final se puede caracterizar como un subesquema Nivel de Visin Cada visin puede proporcionar diferentes representaciones de los mismos datos Visin Vendedor Fechas con formato: (dd-mm-yy) Visin Contador Fechas con formato: (yyyy-dd-mm) BD Nivel de Visin Algunas visiones de usuario pueden incluir: Datos Agrupados: Totales por Dpto. Datos Derivados: Sueldo total = bsico + comisin Datos Calculados: Edad de una persona (inferida a partir de su fecha de Nacimiento) Nivel de Visin Los conceptos de dato derivado y calculado podran usarse indistintamente para significar, en general, que un dato se genera a partir de otro(s) Pueden haber a su vez datos agregados derivados, datos agregados calculados etc. Nivel Conceptual Mediador entre los otros 2 niveles Interesante para el usuario especialista Se ocupa de los datos almacenados en la base de datos fsica y las relaciones entre ellos Descripcin semntica de los datos que conforman la base de datos Soporta a cada visin de usuario externa Nivel Conceptual Es una visin completa de todos los requerimientos y elementos de inters para la organizacin Debe incluir restricciones sobre los datos La descripcin del nivel conceptual no debe tener detalles dependientes del almacenamiento* Tiene asociado un lenguaje de alto nivel Nivel Fsico Interno Ms cercano a la mquina Interesa al Administrador y al usuario Especialista Esquema fsico: Descripcin y tipos de datos: tamao y precisin, tipos de ndices y de estructuras de almacenamiento concretas que se manejan, de acuerdo con un SGBD particular Nivel Fsico Describe cmo los datos son almacenados en trminos de estructuras de datos particulares Se encarga de: - Reservar espacio para datos e ndices - Compresin de datos - Tcnicas de encriptamiento de datos Independencia de los datos Es uno de los objetivos de la arquitectura ANSI/SPARC Permite modificar la definicin de un nivel sin afectar (en lo posible) el nivel inmediatamente superior Sin independencia de datos se requerira mucho esfuerzo para cambiar las aplicaciones de tal forma que se adaptasen a la nueva estructura de la base de datos. Hay dos tipos: fsica y lgica Independencia de los datos Fsica: inmunidad que tienen los usuarios y las aplicaciones ante los cambios en la forma de almacenar fsicamente los datos. Conceptual o lgica: inmunidad que poseen los usuarios y las aplicaciones ante los cambios en la estructura lgica de la base de datos Independencia Fsica Se presenta entre el nivel conceptual y el nivel fsico Un cambio en el esquema fsico (usar otras estructuras de almacenamiento) no conduce a cambios en el esquema conceptual Ej. Cambio en la forma de almacenar un ndice: B+ por Hashing, con qu propsito se hace un cambio de este tipo? Inmunidad del esquema conceptual ante cambios del esquema fsico Independencia Lgica Se presenta entre el nivel de visin y el nivel conceptual Significa que un cambio en el nivel conceptual no debe conllevar a un cambio en el nivel de visin Es ms difcil de lograr. Por qu? Independencia Lgica Algunos de los posibles cambios en el nivel conceptual: Adicin de nuevos elementos (atributos, entidades etc.) Eliminacin de elementos Puede afectar a los subesquemas externos Tendencias de los SGBD Sistemas para el soporte para toma de decisiones (Data Warehouse) y/o con capacidades deductivas y bases de datos temporales Manejar informacin multimedial: Imgenes, audio, videos Bases de datos orientadas a objetos y objeto-relacionales Manejar informacin georeferenciada: Sistemas de Informacin Geogrficos (SIG) Manejo de informacin documental: Motores de bsqueda, sistemas para el manejo de documentos. Bases de datos nativas para XML NORMALIZACIN La normalizacin es el proceso de organizar los datos en una base de datos. Esto incluye la creacin de tablas y que establece relaciones entre aquellas tablas segn reglas diseadas para proteger los datos y hacer la base de datos que es ms flexible al eliminar redundancia y dependencia incoherente. Los datos redundantes desperdician espacio en disco y crean problemas de mantenimiento. Si es necesario cambiar datos que aparecen en ms de un sitio, el cambio deber ser exactamente igual en todos estos sitios. Por ejemplo, un cambio de direccin de un cliente es mucho ms fcil de implementar si los datos slo se almacenan en la tabla Clientes y en ningn otro lugar de la base de datos. Primera forma normal Eliminar grupos repetidos en tablas individuales. Crear una tabla diferente para cada conjunto de datos relacionados. Identificar cada conjunto de datos relacionados mediante una clave principal. No utilizar varios campos en una nica tabla para almacenar datos similares. Segunda forma normal Crear tablas independientes para conjuntos de valores que se apliquen a varios registros. Relacionar dichas tablas mediante una clave externa. Los registros tan slo deben depender de la clave principal de una tabla (si es necesario, puede ser una clave compuesta). Tercera forma normal Eliminar los campos que no dependan de la clave. Los valores de un registro que no forman parte de la clave de dicho registro no pertenecen a esa tabla. En general, siempre que el contenido de un grupo de campos se puede aplicar a ms de un registro de la tabla, debe tener en cuenta la posibilidad de incluir dichos campos en una tabla independiente. EXCEPCIN: No es prctico siempre cumplir la forma tercera normal tericamente conveniente. Si tiene una tabla Clientes y desea eliminar todas las posibles dependencias entre campos, debe crear tablas independientes para ciudades, cdigos postales, representantes de ventas, clases de clientes y cualquier otro factor que pueda aparecer duplicado en varios registros. En teora, la normalizacin merece la pena. Sin embargo, la utilizacin de un gran nmero de tablas pequeas puede perjudicar el rendimiento o superar la capacidad de memoria y de archivos abiertos del sistema. Ver archivo que se adjunta: BD EJEMPLO DE NORMALIZACION.docx En el mundo actual, diversos tipos de personas, en varios lugares a nivel mundial, querrn compartir un gran base de datos, estas empresas que tienen la finalidad de garantizar el BASES DE DATOS DISTRIBUIDAS compartimiento de los archivos de los usuarios optan por dividir esta base de datos en unas ms pequeas denominados fragmentos, los cuales se pueden colocar en distintas ubicaciones. BASES DE DATOS DISTRIBUIDAS Entonces llamamos base de datos distribuidas a los fragmentos que se encuentran almacenados en lugares distintos. Estos sitios constan con una computadora y una DBMS (Sistema de gestin de base de datos), para administrar la base local situada conectndose entre s aquellos fragmentos de una base distribuida por medio de una red de comunicacin. Al momento de surgir una peticin de consulta de cualquier sitio, el administrador general de la base de datos, analiza esta peticin y determina qu tipo de base de datos distribuidas (fragmentos) se puede necesitar. Las bases de datos locales pueden conectarse fsicamente de diversas formas: BASES DE DATOS DISTRIBUIDAS Red totalmente conectada Red prcticamente conectada Red con estructura de rbol Red de estrella Red de anillo BASES DE DATOS DISTRIBUIDAS Las principales diferencias entre estos tipos de configuraciones podemos tener lo siguiente: Costo de la instalacin: El costo de conectar fsicamente las localidades del sistema Costo de la comunicacin: El costo del tiempo y el dinero que interviene en enviar un mensaje desde una localidad a otra. Fiabilidad: La frecuencia con que falla una lnea de comunicacin o una localidad. Disponibilidad: La posibilidad de acceder a la informacin a pesar que podran existir los fallos en algunas localidades o lneas de comunicacin. CONSTRUCCIN DE UNA BASE DE DATOS DISTRIBUIDA BASES DE DATOS DISTRIBUIDAS Base distribuida particionada: una base de datos global se divide en tres partes (A, B, C), donde cada una de las bases se almacena en lugares diferentes. CONSTRUCCIN DE UNA BASE DE DATOS DISTRIBUIDA Base de datos multiplicada y distribuida: las bases de datos se duplican en cada sitio, con el objetivo de reducir costos de comunicacin y aumentar el desempeo del sistema, eliminando la necesidad de la transmisin de datos en las diferentes ubicaciones. BASES DE DATOS DISTRIBUIDAS Este sistema es raro por su costo de las replicas de sus bases y el proceso de la actualizacin de los datos Distribucin de la base de datos combinando replicas y particiones: en la actualidad este tipo de distribucin se emplea con mayor frecuencia. El archivo se divide basndose en el patrn que usa, es decir los datos se guardan en los lugares donde puede ser accedido con ms frecuencia, pero si requiere un dato en ms de un sitio, este fragmento puede estar almacenado en cada uno de estos sitios. BASES DE DATOS DISTRIBUIDAS CONSTRUCCIN DE UNA BASE DE DATOS DISTRIBUIDA Ventajas de las bases de datos distribuidas. BASES DE DATOS DISTRIBUIDAS Compartimiento de datos: los usuarios de una base pueden tener acceso a los datos de otra base. Por ejemplo desde una oficina de una empresa matriz en el caso del gerente puede tener acceso a los datos de todos sus trabajadores y de otros tambin en una empresa sucursal de la misma. Autonoma: existe un administrador del sistema responsable del nivel de seguridad global cada base tiene un cierto grado de control, en cada base hay otro administrador local que puede tener a llegar un cierto nivel de autonoma diferente BASES DE DATOS DISTRIBUIDAS Ventajas de las bases de datos distribuidas. Disponibilidad: si en sistema de base de datos distribuidos llega a fallar un fragmento los otros fragmentos pueden seguir funcionando. Los datos tambin pueden llegar a duplicarse en los fragmento llegando a encontrar los datos con ms facilidad. BASES DE DATOS DISTRIBUIDAS El sistema debe detectar el fallo y tomar medidas necesarias para reparar el fallo, en este momento el sistema no debe utilizar la base daada, una vez arreglado el fallo debe necesitar un mecanismo para integrarla al sistema de nuevo, pero con menos complicaciones. Ventajas de las bases de datos distribuidas. BASES DE DATOS DISTRIBUIDAS Desventajas de las bases de datos distribuidas Costo del desarrollo del software: sistema complejo para mantener la coordinacin y estabilidad entre los fragmentos provoca que este desarrollo sea costoso Mayor probabilidad de errores: como las bases locales funcionan en paralelo, es ms difcil asegurar el funcionamiento correcto y los procedimientos de recuperacin de fallos del sistema. Mayor sobrecarga de procesamiento: el intercambio de archivos, mensajes y la ejecucin de algoritmos que constituyen el funcionamiento de las bases locales da como resultado una sobrecarga que no se da en los sistemas centralizados. BASES DE DATOS DISTRIBUIDAS Desventajas de las bases de datos distribuidas Actualizacin de los datos duplicados: algunos datos pueden estar duplicados en varios sitios, por lo tanto este tipo de actualizacin se debe llegar a cabo en todos los lugares que exista datos duplicados Transparencia de ubicacin: la mayora de este tipo de sistemas no alcanzan su completa transferencia de su ubicacin, por lo tanto requieren de la ayuda del usuario, transfiriendo archivos para su procesamiento local. Optimizacin de los procesos de consulta: cuando existe una consulta en un sistema distribuido, existe muchas manera de que esta consulta se divida en subpreguntas para recuperar los datos en las diferentes bases locales, este tiempo vara dependiendo de la ruta donde este el procedimiento Arquitectura Cliente-Servidor. Vistas Vistas Esquema conceptual Esquema Interno Nivel Externo Nivel Conceptual Nivel Interno Correspondencia Externo/Conceptual Correspondencia Conceptual/Interno Arquitectura de tres esquemas. BASES DE DATOS DISTRIBUIDAS Como trabaja? El cliente analiza una consulta de usuario y la descompone en varias consultas de sitio independientes. Cada consulta de sitio se enva al correspondiente sitio servidor. Cada usuario procesa las consultas locales y enva la relacin resultante al sitio cliente. El sitio cliente cambia los resultados de las subconsultas para producir el resultado de la consulta original realizada. BASES DE DATOS DISTRIBUIDAS Segmentaciones de aplicaciones entre Cliente y el Servidor. Segmentos Replicado de datos. Fragmentos de los datos Transparencia Disponibilidad. Paralelismo incrementado. Sobrecarga incrementada durante la actualizacin. Fragmentacin Horizontal. Fragmentacin Vertical. Transparencia de la fragmentacin. Transparencia de la replica. Transparencia de la ubicacin. BASES DE DATOS DISTRIBUIDAS Integracin de datos Vs Distribucin de datos. Desde el punto de vista funcional y de organizacin de datos, los sistemas de datos distribuidos estn divididos en dos clases separadas, basados en dos filosofas: SMBDD Homogneos. SMBDD Heterogneos. BASES DE DATOS DISTRIBUIDAS Homogneos: tienen mltiples conexiones de datos, integra mltiples recursos de datos, pero en lugar de almacenarlos todos en un solo lugar los datos son distribuidos en varios sitios comunicados por una red. Heterogneas: es aquel que se caracteriza por maneja diferentes sistemas manejadores de BD en nodos locales para el uso de mltiples BD existentes. Tambin se le conoce como sistema de manejo multibases de datos. BASES DE DATOS DISTRIBUIDAS Diagrama de Integracin, Distribucin. Usuario Global Usuario Global Sistema de BDD Usuario Locales Usuario Locales SW de manejo de datos SW de manejo de datos SW de manejo de datos BD BD BD BASES DE DATOS DISTRIBUIDAS Funciones del Cliente. Consultar. Modificar. Borrar. Agregar. Copiar. Genera la vista del usuario. Seguridad. BASES DE DATOS DISTRIBUIDAS Recibe peticiones. Procesa. Administra. Maneja diferentes nodos. Interpreta. Enva informacin. Seguridad. Administra la Concurrencia. Mantiene la Integridad. Manejo de BD. Funciones del Servidor. BASES DE DATOS DISTRIBUIDAS Tipos de servidores. Servidor de archivos: se almacenan archivos y aplicaciones. Servidor de BD: se almacenan las BD, tablas, ndices, etc. Servidor de transacciones: que cumple procesa todas las transacciones. Servidor de Groupware: Utilizado para el seguimiento de aplicaciones dentro de la red. Servidores de objetos: estos son videos, imgenes, objetos multimedia en general. Servidores WEB. Se usan como una forma inteligente para comunicacin entre empresas a travs de Internet. BASES DE DATOS DISTRIBUIDAS