BAE_UT1_Introducción a las Bases de Datos.pdf

Full Transcript

BASES DE DATOS CFGS DESARROLLO DE APLICACIONES WEB UNIDAD 1… INTRODUCCIÓN A LAS BASES DE DATOS BASES DE DATOS 1. INTRODUCCIÓN Actualmente, en los diversos ámbitos sociales, laborales y culturales, se manejan grandes cantidades de datos de ahí que haya si...

BASES DE DATOS CFGS DESARROLLO DE APLICACIONES WEB UNIDAD 1… INTRODUCCIÓN A LAS BASES DE DATOS BASES DE DATOS 1. INTRODUCCIÓN Actualmente, en los diversos ámbitos sociales, laborales y culturales, se manejan grandes cantidades de datos de ahí que haya sido necesario establecer y disponer de unos medios físicos (hardware) y lógicos (software) que permitan el acceso y la manipulación de la información de una manera rápida, sencilla y fiable. Pero echemos la vista atrás unas décadas y veamos la evolución que se ha llevado a cabo. Si nos remontamos aproximadamente 50 años atrás (sobre finales de los años sesenta), la información se almacenaba en un conjunto de archivos, los cuáles no tenían ninguna relación entre sí. Mediante esa organización, los datos que se incluían en un fichero, se podían repetir en otro fichero, lo cual provocaba una alta existencia o posibilidad de existencia de que la información se repitiera (duplicara, triplicara…) A eso se le denomina Información redundante o redundancia. Supongamos una farmacia o botica de aquella época. Había un fichero de medicamentos que se utilizaba tanto para la venta como para los inventarios. Pero en la farmacia trabajaban, a parte del farmacéutico, dos tipos de personas: vendedores y administrativos. Y para que ambos tipos de personas pudiesen desarrollar su labor, el fichero se duplicaba. Imaginemos que en un momento dado abriesen ambos trabajadores la ficha de un mismo medicamento. Un vendedor porque está atendiendo a un cliente y un administrativo realizando gestiones del inventario respecto a ese medicamento. Vamos a suponer más e indicar que de dicho medicamente solo quedaba 1 existencia, y en ese instante el vendedor dispensa esa única unidad que queda al cliente, por lo que el fichero del vendedor se modifica, poniendo que dicho medicamento tendrá como número de existencias el cero. ¿Pero qué está viendo el administrativo en su fichero? Contemplará que todavía queda una unidad de dicho medicamento, lo cual ya no es cierto. A este tipo de problemas se le conoce con el nombre de inconsistencia de la información. Y viene originada por la duplicidad de ficheros sin ningún control sobre ellos en un momento dado. En definitivo, por una redundancia de información, la cual es uno de los principales factores que originan inconsistencias. 2 BASES DE DATOS Otro detalle vital era el hecho de poder modificar la estructura de un registro que guardaba información en un fichero. Es decir, si se quería cambiar las características de la información a almacenar, añadir algún campo nuevo o eliminar alguno, implicaba que las aplicaciones que utilizaban dichos archivos tenían que modificarse. Esto conllevaba evidentemente gastos adicionales de recursos como el tiempo y el dinero. Volvamos nuevamente a la farmacia. Tenemos un fichero de clientes de la época en el que cada persona tenía un DNI que estaba formado solo por números y, con los años, entró la composición del DNI formada por números y letra. Si utilizáramos el mismo fichero, no podríamos almacenar la información pues el fichero no estaría preparado para la almacenar la información con su nueva disposición. Originaría que habría que cambiar la estructura del archivo para que almacenara los números más la letra. Pero, ¿la aplicación que usa esa información entendería el nuevo cambio del DNI con la letra? Tampoco lo entendería y habría que modificar la o las aplicaciones que usaran ese fichero. Eso llevaba a que existía una dependencia entre los archivos que almacenaban la información y las aplicaciones que utilizaban dichos archivos. Había dependencia física y lógica de datos. Pero a finales de los años sesenta surgieron las bases de datos. Con ellas se solucionaron todos los inconvenientes mencionados sobre dependencia de datos. Cualquier modificación en la estructura de la información a almacenar o en la ubicación de los ficheros no implicaba el hecho de tener que modificar las aplicaciones que usaban dichos datos. Se consiguió la independencia física y lógica de los datos. Denominamos independencia física de los datos al hecho de realizar cambios en la estructura física de los datos (ubicación, repartir la información en varios lugares o ficheros, etc…) sin que haya que modificar las aplicaciones que manejan dichos datos. Hablamos de independencia lógica de los datos al hecho de poder realizar cambios en la estructura de la información que se almacena (añadir campos, borrar, modificar características de tipos de almacenaje, …) sin que haya que cambiar las aplicaciones que tratan con dicha información. 3 BASES DE DATOS Retomemos el anterior fichero de medicamentos de la farmacia. Una posible estructura sería la siguiente (A este conjunto de información lo llamaremos provisionalmente registro): Código Nombre Existencias El código está formado por 12 números y el Nombre por 60 caracteres alfanuméricos. Las existencias serán 3 dígitos numéricos. La aplicación que utiliza este fichero lee un registro los 12 primeros caracteres que serán números. Entenderá que ellos son el código. Y el siguiente carácter que lea entenderá que es el primero de los caracteres que compone el nombre. Pero, si cambio la estructura y ahora digo que el código es de 14 caracteres numérico, ¿qué ocurre? Que cuando lea el decimotercer carácter, la aplicación creerá que estamos en el campo nombre pero realmente quedan 2 caracteres del campo código. Este problema es al que nos referimos anteriormente como dependencia lógica de los datos. ¿Y si el fichero lo cambiamos de unidad de almacenamiento? Tenemos la dependencia física. Estos dos conceptos se resuelven mediante las bases de datos. EJERCICIO 1. Dibuja cuál sería la estructura de un fichero si fuésemos a almacenar la siguiente información relacionada con una ferretería: □ 4 dígitos numéricos para el código del producto. □ 50 caracteres alfanuméricos del nombre del producto. □ 3 dígitos numéricos de la cantidad que hay del producto. □ 8 dígitos numéricos que servirán para guardar el precio. 2. ¿Qué ocurriría si, con el tiempo, se va incrementando la oferta de productos y, porque hay más de 9999 productos, hace falta pasar el código de estos de 4 a 8 dígitos numéricos? Dibuja la nueva estructura. 4 BASES DE DATOS Resumiendo: ▪ Problemáticas con el manejo de información -> REDUNDANCIA E INCONSISTENCIA. ▪ Antes de los sesenta -> Utilización de ficheros y los problemas originados eran la DEPENDENCIA FÍSICA y LÓGICA DE DATOS. ▪ A finales de los sesenta -> BASES DE DATOS y se obtiene INDEPENDENCIA LÓGICA Y FÍSICA DE DATOS. ▪ Las BASES DE DATOS -> No resuelven la REDUNDANCIA y estas pueden provocar INCONSISTENCIA. 2. FICHEROS En un ordenador se almacenan muchos tipos de informaciones, las cuales son de distintos tipos y características, pudiéndose almacenar en dentro de los distintos tipos de dispositivos de almacenamiento existentes para un ordenador, como discos duros, CD’s, DVD’s, Memorias USB, etc… Los ficheros o archivos son los instrumentos utilizados para organizar la información dentro de estos dispositivos. ¿Y qué es un fichero o archivo? Un fichero o archivo es una estructura de información creada por los sistemas operativos utilizados para poder almacenar los datos que conforman la información. Estos archivos tienen un nombre y una extensión que determina el formato de la información que va a contener el archivo o fichero. 2.1 Ficheros El formato y el tipo de un fichero determinan la forma en qué se va a interpretar la información que contienen, pues lo único que se va a almacenar realmente es un conjunto de 0’s y 1’s. El modo en cómo se interprete dicho conjunto de datos determinará la información final a obtener. Vamos a tratar de aclarar un poco cómo se trata un fichero. Un fichero binario con extensión JPG almacena un conjunto de datos que representan la información y color sobre cada pixel que compone la imagen que mostrará ese fichero al ser tratado. Dicha imagen tendrá unos colores concretos y unas dimensiones, información a su vez que también se encontrará en el fichero. 5 BASES DE DATOS Esta información se ordena de una determinada manera de tal forma que, al leerla, la aplicación que lee esta información, si es la aplicación correcta, interpretará adecuadamente que se trata de una imagen JPG y mostrará esa imagen. Por el contrario, si no se almacena correctamente en el orden establecido o la aplicación que se utiliza no es la adecuada para su tratamiento, el resultado será un error o que la imagen es ilegible o incomprensible. Los ficheros o archivos tradicionalmente se han clasificado según 3 aspectos o criterios: o Según su contenido. Texto o binario. o Según su organización. Secuencial, directo o indexado. o Según su utilidad. Maestros, históricos, detalles… Según su contenido, los ficheros pueden ser binarios o de texto. Según cómo sea la información que contienen los ficheros será su clasificación. Si la información se corresponde con datos binarios tendremos un archivo binario. En caso de almacenar caracteres de tipo texto tendremos que es de texto. Mediante su organización, los ficheros vienen dirigidos por la forma o manera en cómo se accede a su información y cómo se manipulan sus datos. Si los datos se encuentran almacenados en un orden racional en el que un dato se encuentra detrás de otro, diremos que tenemos un fichero de acceso secuencial. Tendremos en este caso el gran hándicap que para llegar al último dato habremos de haber pasado por todos los datos que se encuentren almacenados. Si, por el contrario, podemos acceder a un dato en concreto sin tener que pasar por los demás datos, nos encontraremos ante un fichero de acceso u organización directo. Para manejar este tipo de ficheros se necesita un elemento en los datos que sea exclusivo, que no redunde o que no se repita. Y concluimos con los ficheros indexados, los cuales que simulan un libro con un índice en su inicio. Mediante ese índice se podrá acceder a un punto concreto del fichero y, desde ese punto, empezará a recorrer su contenido de manera secuencial, es decir, un dato detrás de otro. Este tipo de ficheros es una combinación de los dos anteriores. Dada la utilidad del fichero, su finalidad, podremos obtener una clasificación, que hoy en día es la menos usada, de hecho, está casi extinguida, aunque mediante su nomenclatura sabemos qué tipo de información y cómo se maneja. 6 BASES DE DATOS Como ejemplos de este tipo tenemos ficheros para configuración, ficheros para copias de seguridad, ficheros maestros, ficheros de detalles o ficheros históricos. Unos de los más usados eran los ficheros maestros, ficheros detalles y ficheros históricos. ¿Quién no ha oído hablar de un fichero en donde se almacenan los accesos a una determinada web? Estamos ante un fichero histórico. Y un fichero para almacenar los datos personales de los alumnos, o datos concretos de productos, o datos sobre películas de manera general, etc. Tendríamos un fichero maestro. Y datos de esos alumnos, más detallados, como información sobre estudios, asignaturas, titulaciones, etc…, es un fichero de detalles. EJERCICIO 1. Entra e investiga en la web https://fileinfo.com, la cual es de gran utilidad a la hora de obtener y mostrar información sobre la extensión de cualquier tipo de archivo. Busca tipos de archivos en 4 categorías existentes, a tu gusto, y dentro de estas, selecciona 4 extensiones y enuncia en qué aplicaciones se utilizan. 2.2 Ficheros de texto A los ficheros de texto también se les conoce con el nombre de ficheros planos o ficheros ASCII (American Standard Code for Information Interchange). Es un estándar que asigna a cada carácter un valor numérico. De esta forma se pueden representar los documentos que son directamente legibles por los seres humanos. La asignación de los valores numéricos a los caracteres viene dada por una tabla de asignación. Con un byte se representa un carácter, por lo que habrá 28 caracteres, es decir, 256 numerados del 0 al 255. Los ficheros de texto, aunque no necesitan un formato para ser interpretados, suelen llevar una extensión que identifique qué tipo de texto son, habiendo los siguientes tipos: ○ Ficheros de configuración: Ficheros cuyo contenido es texto que guardan configuraciones pertenecientes al sistema operativo o una aplicación en concreto:.ini,.inf,.conf 7 BASES DE DATOS o Ficheros de código fuente: Su contenido es texto para ser interpretado por lenguajes de programación y generar aplicaciones informáticas:.c,.java,.sql o Fichero de páginas web: Ficheros de texto con hipertexto que interpreta unas aplicaciones denominadas navegadores:.html,.php,.css o Formatos enriquecidos: Son ficheros de texto cuyo contenido son textos que contienen códigos de control para ofrecer una visión más elegante del texto:.rtf,.ps,.tex 2.3 Ficheros binarios Los ficheros binarios son todos aquellos que no se catalogan como ficheros de texto y requieren de un determinado formato para ser interpretado. Algunos formatos son: o De imagen: jpg, gif, bmp, pcx, tiff, … o De vídeo: mpg, mov, avi, … o Comprimidos o empaquetados: zip, gz, tar, rar, … o Ejecutables o compilados: exe, com, cgi, … o Procesadores de texto: doc, odt, … Generalmente, los ficheros que componen una base de datos son de tipo binario pues la información que se maneja se encuentra almacenada mediante una estructura determinada, lógica y organizada para que las aplicaciones puedan acceder de manera universal. Las siguientes bases de datos guardan la información en… o El software de gestión de Oracle guarda la información en múltiples tipos de ficheros, llamados datafiles, tempfiles, logfiles, etc… o Un tipo de tablas del gestor MySQL guarda la información en 3 ficheros de datos binario con extensión frm, myd y myi. o El Access guarda toda la información de la base de datos en un único archivo con extensión mdb. 8 BASES DE DATOS 3. BASES DE DATOS Veamos varias definiciones para este concepto. En la primera de ellas definimos una base de datos como un conjunto de datos interrelacionados y almacenados sin redundancias perjudiciales o innecesarias, las cuáles se caracterizan por: o Servir a una o varias aplicaciones de la mejor manera posible. o Existir independencia entre los datos y los programas que los manejan. La segunda definición viene a decir que una base de datos es una colección de información perteneciente a un mismo contexto, que está almacenada de forma organizada en ficheros. La información almacenada en una base de datos puede ser utilizada a la vez por diferentes aplicaciones y usuarios y las bases de datos han de permitir métodos para consultar, añadir, modificar y eliminar datos. Toda base de datos guarda información de dos tipos: o Datos del usuario. Son los datos de las aplicaciones de usuario. o Datos del sistema. Son los datos que la base de datos necesita para gestionarse a sí misma. Una base de datos está organizada mediante ficheros o tablas que almacenan información concerniente a algún objeto o suceso. Estos ficheros o tablas se relacionan formando relaciones entre ellas. 3.1. Varios conceptos Empezamos aclarando algunos conceptos necesarios para afrontar el aprendizaje que hay por delante. Tratando, a modo de resumen, de aclarar algunos de los componentes que se pueden encontrar en una base de datos, y que se verán en próximos capítulos, se definen los siguientes conceptos: o Dato: El dato es un trozo de información concreto sobre algún concepto o suceso. Los datos pertenecen a un tipo. o Tipo de Dato: El tipo de dato indica la naturaleza del campo. Por ejemplo, datos numéricos, datos alfanuméricos, datos caracteres, etc… o Campo: Un campo es un identificador para toda una familia de datos. Cada campo pertenece a un tipo de datos. Por ejemplo, nombre de alumnos, edad de los profesores, … 9 BASES DE DATOS o Registro: Es una recolección de datos referentes a un mismo concepto o suceso. Estará formado por un conjunto de campos. o Campo clave: Es un campo especial pues tiene la característica de identificar de forma única o exclusiva a cada registro. o Tabla: Es un conjunto de registros bajo un mismo nombre que va a representar al conjunto de todos esos registros. o Consulta: Es una instrucción para hacer peticiones a una base de datos. Puede ser una búsqueda simple de un registro específico o una solicitud para seleccionar todos los registros que cumplan unos determinados criterios. o Índice: Es una estructura que almacena el o los campos claves de una tabla, organizándolos para que sea más fácil para encontrar un valor deseado dentro de una tabla o simplemente ordenar los registros de esa tabla. o Vista: Es una transformación que se hace a una o más tablas con el objetivo de obtener una nueva tabla formada por registros que cumplan unos determinados criterios que se desean. o Informe: Es un listado ordenado de los campos y registros seleccionados en un formato fácil de leer. o Scripts o Guiones: Son un conjunto de instrucciones que, ejecutadas de forma ordenada, realizan operaciones avanzadas de mantenimiento de los datos almacenados en la base de datos. o Procedimientos: Son un tipo especial de script que está almacenado en la base de datos y que forma parte de su esquema con la finalidad de realizar determinadas acciones sobre la base de datos. Este script tendrá un nombre y podrá ser ejecutado varias veces de través de su llamamiento mediante su nombre. 3.2. Estructura de una base de datos Una base de datos almacena los datos a través de un esquema. El esquema es la definición de la estructura donde se almacenan los datos, contiene todo lo necesario para organizar la información mediante tablas, registros(filas) y campos(columnas). También contiene otros objetos necesarios para el tratamiento de los datos (procedimientos, vistas, índices, etc.) 10 BASES DE DATOS Al esquema también se le suele llamar metainformación, es decir, información sobre la información o metadatos. Los gestores modernos de bases de datos, como Oracle y MySQL entre otros, almacenan el esquema de la base de datos en tablas de la propia base de datos, haciendo el esquema totalmente accesible. Consulta de un esquema de una base de datos en MySQL 3.3. Usos de las bases de datos Las bases de datos son ubicuas o lo que es lo mismo, pueden estar en cualquier tipo de sistema informático. Se exponen a continuación se exponen solo algunos ejemplos de sus usos más frecuentes: o Bases de datos Administrativas: Cualquier empresa necesita registrar y relacionar sus clientes, pedidos, facturas, productos, etc… o Bases de datos Contables: También es necesario gestionar los pagos, balances de pérdidas y ganancias, patrimonio, declaraciones de hacienda... o Bases de datos para motores de búsquedas: Por ejemplo Google o Altavista, tienen una base de datos gigantesca donde almacenan información sobre todos los documentos de Internet. Posteriormente millones de usuarios buscan en la base de datos de estos motores. o Científicas: Recolección de datos climáticos y medioambientales, químicos, genómicos, geológicos... o Configuraciones: Almacenan datos de configuración de un sistema informático como, por ejemplo, el registro de Windows. o Bibliotecas: Almacenan información bibliográfica, por ejemplo, la famosa tienda virtual Amazon o la biblioteca de un instituto. o Censos: Guardan información demográfica de pueblos, ciudades y paises. 11 BASES DE DATOS o Virus: Los antivirus guardan información sobre todos los potenciales softwares maliciosos. o Otros muchos usos: Militares, videojuegos, deportes, etc. 3.4.Historia, evolución y tipos de bases de datos La clasificación de las bases de datos está ligada a su evolución histórica. A través de los años han ido cambiando la forma de representar y extraer la información. En la década de 1950 se inventan las cintas magnéticas que solo podían ser leídas secuencial y ordenadamente. Estas cintas almacenaban ficheros con registros que se procesaban secuencialmente junto con ficheros de movimientos para generar nuevos ficheros actualizados. Este sistema se conoce como aplicaciones basadas en sistemas de ficheros. Son la generación 0 de las bases de datos. En la década de 1960 se generaliza el uso de discos magnéticos cuya característica principal es que se podía acceder de forma directa a cualquier parte de los ficheros sin tener que acceder a todos los datos anteriores. Con esta tecnología aparecen las bases de datos jerárquicas y en red. La información se estructura en listas enlazadas y árboles de información y la filosofía de las bases de datos se basa en el concepto de elemento principal o padre y elementos secundarios o hijos. Las bases de datos jerárquicas evolucionan hasta el punto de conseguir finalmente admitir varios elementos padres para un elemento hijo. En 1970, IBM publica un artículo donde se define las características del modelo relacional basado en la lógica de predicados y la teoría de conjuntos. Nacen así las bases de datos relacionales y con él la famosa base de datos denominada Oracle. Dicho modelo se estandariza y se extiende hasta el día de hoy. El modelo relacional de Codd ha sido y es el más utilizado hasta el momento. En 1980, nuevamente IBM, lanza su motor de bases de datos DB2. Años después, IBM creará SQL (Structured Query Language), un potente lenguaje de consultas para manipular la información de las bases de datos. 12 BASES DE DATOS A mediados de 1990, IBM lanza una nueva versión de DB2 que es capaz de dividir una base de datos enorme colocándola en varios servidores comunicados por líneas de gran velocidad, creándose de esta forma las bases de datos paralelas. Se le llamó DB2 Parallel Edition, que ha evolucionado hasta la DB2 Data Partition Feature, único SGBD (Sistema Gestor de Bases de Datos) de este tipo en sistemas distribuidos. A finales de 1990 IBM y Oracle incorporan a sus bases de datos la capacidad de manipular objetos creando de esta manera las bases de datos orientadas a objetos. Estas bases de datos se basan en la existencia de objetos persistentes que se almacenan para su procesamiento mediante programas orientados a objetos. Se pasa de la filosofía de almacenar tablas, vistas, etc… a almacenar colecciones de objetos que, aparte de información, tienen comportamientos. La aparición e irrupción posterior de Internet ha hecho crear nuevos requerimientos para las bases de datos. La cantidad de información ha alcanzado niveles desconocidos. De esta forma, nacen las bases de datos distribuidas, que consiste en multiplicar el número de ordenadores que controlan una misma base de datos, llamándose a cada ordenador nodo, los cuáles se intercambian información y actualizaciones a través de la red. También, a lo largo de la corta historia de la informática, han surgido otros tipos de bases de datos que se enumeran a continuación: o Bases de datos espaciales o geográficas: Son bases de datos que almacenan mapas y símbolos que representan superficies geográficas. Google Earth es una aplicación que lanza consultas a bases de datos de este tipo. o Bases de datos documentales: Permiten la indexación de texto para poder realizar búsquedas complejas en textos de gran longitud. o Bases de datos deductivas: Es un sistema de bases de datos que almacena hechos y que permite, a través de procedimientos de inferencia, extraer nuevos hechos. Se basan en la lógica, por ello también se suelen llamar bases de datos lógicas. 13 BASES DE DATOS Resumen de los tipos de bases de datos 3.5. Objetivos de organización de una base de datos Una base de datos, independientemente del modo en que se encuentre organizada, debe cumplir con los siguientes objetivos: o Versatilidad para representar la información: Los usuarios que acceden a la base de datos usarán la información de diferentes maneras. Algunos solicitarán múltiples registros hasta los que necesitarán un dato a través de una simple consulta. o Desempeño: Las bases de datos han de responder rápida y adecuadamente a las peticiones de datos que se realicen, dado el gran número de usuarios que acceden y la gran cantidad de información que pueden almacenar. o Redundancia mínima: En los sistemas tradicionales el número de redundancias era elevado lo que provocaban inconsistencias y grandes costos de almacenamiento al tener la misma información almacenada varias veces. Uno de los objetivos de las bases de datos es eliminar dichas repeticiones de información. o Capacidad de acceso: Ya que los usuarios de la base de datos están constantemente accediendo a ella y solicitando información de distintas formas, la base de datos debe estar preparada para permitir el acceso a todos los usuarios capacitados. o Integridad: Dada que la información puede ser utilizada por muchos usuarios y de diferentes formas, la base de datos ha de asegurar que la información en todo momento sea la adecuada y la que tiene que almacenar. Se ha de asegurar que se cumple las restricciones que estén definidas y que cualquier fallo en el sistema no destruya la información. 14 BASES DE DATOS o Seguridad y Privacidad: En cuanto a la Seguridad, la información almacenada es vital, de gran importancia para su propietario. Esto explica la necesidad de disponer de procedimientos para proteger los datos ante eventuales fallos del sistema, evitando su pérdida y facilitando su recuperación o previniéndolos de usos indebidos o intencionados de personas no autorizadas. Respecto a la Privacidad, los datos son accesibles para unos usuarios, pero no para aquellos no autorizados. Debe haber mecanismos para controlar los accesos. La base de datos ha de cumplir los siguientes requisitos para la Seguridad: La base de datos ha de estar protegida contra el fuego, robo, etc… Los usuarios deben identificarse antes de acceder a la base de datos y solo tendrán acceso a la información a la que se le haya dado permiso. Los datos han de poder reconstruirse total o parcialmente cuando se produzca un fallo de sistema hardware o software. Los accesos indebidos o erróneos por parte de los usuarios serán controlados. o Afinación: Con el paso del tiempo, mediante el uso de la base datos se llega a que la cantidad de datos que pueden haber sido introducidos llegar a ser elevados. Eso conlleva a que el volumen de la base de datos cada vez sea mayor y eso implica que la esta tenga que tener una buena organización física para mantener dicha cantidad de datos. o Interfaz con el pasado y con el futuro: Con el paso del tiempo, las necesidades en cuanto a capacidades, formas y características de almacenamiento de las personas que guardan la información van cambiando. La base de datos ha de adaptarse y estar preparada para esas nuevas necesidades. Pero todos esos objetivos van enfocados a conseguir el objetivo prioritario de cualquier base de datos que no es otro que conseguir la independencia física y lógica entre datos y aplicaciones. 3.6.Arquitectura de una base de datos La composición interna de la base de datos es un aspecto que los usuarios de la misma no tienen por qué ver ni conocer. De hecho, ha de ser lo más abstracta posible. Los usuarios no tienen necesidad de saber cómo están organizados ni almacenados los datos. 15 BASES DE DATOS Al usuario se le debe dar una representación de los datos que sea capaz de interpretar y manejar. No debe ni necesita tener la información que puede manejar un experto informático. Según la visión de los datos que se tenga, podemos hablar de 3 niveles que componen una base de datos y definen la arquitectura de la misma. Dichos 3 niveles los describimos a continuación: o Nivel Interno: Es la representación más cercana al almacenamiento físico de los datos. Se representa mediante el esquema interno. Permite describir tal y como están almacenados los datos. Se describen los archivos que contienen la información, su organización y ubicación, tipos y longitud de los registros, campos, índices, etc… Descripción de la ubicación o ruta en el ordenador en que se encuentra (unidad, directorio, tamaño, fecha de creación, fecha de modificación, …), Composición de los diferentes archivos existentes (sus campos), indicación de la composición de los archivos de INDICES que hayan (sus campos) o Nivel Conceptual: Es la representación de los datos que intervienen en el problema. Se representa mediante el esquema conceptual. Este se representa a partir de los requerimientos de los usuarios, dando una visión global de los datos. No importa ningún detalle de organización física. Descripción de los campos que componen las tablas e índices. Contenido de las tablas o información. 16 BASES DE DATOS o Nivel Externo: Es el nivel más cercano a los usuarios. Representa la visión individual de cada usuario o grupo de usuarios. Los programas de aplicación solo manejan una parte de la información, trabajan con un nivel externo. Para una base de datos específica, hay un único esquema interno y conceptual, pero pueden existir varios esquemas externos, definidos por uno o varios usuarios. Niveles de abstracción de una base de datos 17 BASES DE DATOS 4. SISTEMAS GESTORES DE BASES DE DATOS Un Sistema de Gestión de Bases de Datos (SGBD) es un conjunto de programas que permiten administrar y gestionar la información de una base de datos. Proporcionan a sus usuarios las facilidades para realizar las siguientes tareas: o Definición de los datos. o Manipulación de los datos. o Mantenimiento de la integridad de la base de datos. o Control de la privacidad y seguridad de los datos. 4.1. Funciones de un SGBD Los SGBD del mercado cumplen con casi todas las funciones que a continuación se enumeran: 1. Permitir a los usuarios almacenar los datos, acceder a ellos y actualizarlos de forma sencilla y con un gran rendimiento, ocultando la complejidad y las características físicas de los dispositivos de almacenamiento. 2. Garantizan la integridad de los datos, respetando las reglas y restricciones que dicte el programador de la base de datos. Es decir, no permiten operaciones que dejen cierto conjunto de datos incompletos o incorrectos. 3. Integran, junto con el sistema operativo, un sistema de seguridad que garantiza el acceso la información exclusivamente a aquellos usuarios que dispongan de autorización. 4. Proporcionan un diccionario de metadatos, que contiene el esquema de la base de datos, es decir, cómo están estructurados los datos en las tablas, registros y campos, las relaciones entre los datos, usuarios, permisos, etc. 5. Permiten el uso de transacciones, garantizan que todas las operaciones de la transacción se realicen correctamente, y en caso de alguna incidencia, deshacen los cambios sin ningún tipo de complicación adicional. 6. Ofrecen, mediante completas herramientas, estadísticas sobre el uso del gestor, registrando operaciones efectuadas, consultas solicitadas, operaciones fallidas y cualquier tipo de incidencia. 7. Permite la concurrencia, es decir, varios usuarios trabajando sobre un mismo conjunto de datos. Además, proporcionan mecanismos que permiten arbitrar operaciones conflictivas en el acceso o modificación de un dato al mismo tiempo por parte de varios usuarios. 18 BASES DE DATOS 8. Independizan los datos de la aplicación o usuario que esté utilizándolos, haciéndolo más fácil su migración a otras plataformas. 9. Ofrecen conectividad con el exterior. De esta manera, se puede replicar y distribuir bases de datos. Además, todos los SGBD incorporan herramientas estándar de conectividad. El protocolo ODBC está muy extendido como forma de comunicación entre bases de datos y aplicaciones externas. 10. Incorporan herramientas para la salvaguarda y restauración de la información en caso de desastre. Algunos gestores tienen sofisticados mecanismos para poder establecer el estado de una base de datos en cualquier punto anterior en el tiempo. 4.2. Componentes de un SGBD Para realizar las funciones que se acaban de describir y algunas más, el SGBD necesita, además de herramientas software, personal que gestione de manera adecuada la información almacenada en la base de datos. Los componentes de un SGBD son 4 y los enunciamos como: o Gestor de la base de datos. o Diccionario de datos. o Administrador de la base de datos. o Lenguajes. Gestor de la base de datos. Es un conjunto de programas transparentes al usuario que se encargan de garantizar la privacidad, seguridad, integridad de los datos, el acceso concurrente a ellos, así como de interaccionar con el sistema operativo. El gestor proporciona una interfaz entre los datos almacenados, los programas que manejan los datos y los usuarios. Cualquier operación que se realice es manejada por el gestor. Diccionario de datos. Es una base de datos donde se almacena toda la descripción de la base de datos, información referente a la estructura de los datos, relaciones entre ellos, gestión e implantación de la base de datos. Este diccionario debe contener todo lo que cualquier usuario quisiera saber: ▪ Las descripciones externa, conceptual e interna de la base de datos. 19 BASES DE DATOS ▪ Las transformaciones entre los tres niveles. ▪ Las restricciones sobre los datos. ▪ El acceso a los datos. ▪ Las descripciones de las cuentas de usuarios. ▪ Las autorizaciones de cada usuario. ▪ Los esquemas externos de cada programa, sus usuarios y qué autorizaciones tienen. Administrador de la base de datos. El Administrador de la base de datos (DBA) es una persona o grupo de personas responsables de la seguridad y el control de los datos, los cuales pueden ser utilizados por cualquiera que tenga autorización por ello. Las tareas del administrador son: ▪ La definición del esquema lógico de la base de datos mediante el uso de sentencias de definición de datos. ▪ La definición del esquema físico, es decir, las estructuras de almacenamiento de los datos y los métodos de acceso. ▪ La definición de los subesquemas o visiones de usuarios de la base de datos. ▪ La concesión de autorización para el acceso a los datos mediante la asignación de privilegios a los usuarios. ▪ El mantenimiento de la seguridad de los datos almacenados en la base de datos a través de la especificación de los procedimientos necesarios. ▪ El mantenimiento del esquema lógico y físico de la base de datos. Lenguajes. ▪ El SGBD ha de proporcionar lenguajes para definir y manipular los datos de la base de datos. ▪ Estos lenguajes podrán ser utilizados por administradores y usuarios. Son los siguientes: Lenguaje de Definición de Datos (Data Definition Language). Se utiliza para definir el esquema conceptual y los distintos subesquemas externos de la base de datos. Ejemplo. Instrucciones como CREATE TABLE, ALTER TABLE o DROP VIEW. 20 BASES DE DATOS Lenguaje de Manipulación de datos (Data Manipulation Language). Mediante este lenguaje podemos manipular los datos de la base de datos, es decir, insertar, modificar, eliminar y recuperar datos almacenados. Ejemplo. Instrucciones como INSERT, UPDATE o SELECT. Lenguaje de Control de Datos (Data Control Languague). Se utiliza para controlar el acceso a la información de la base de datos definiendo privilegios y tipos de acceso. De esta tarea se encarga el administrador. Ejemplo. Instrucciones como GRANT, REVOKE, COMMIT o ROLLBACK. Son lenguajes de gramática sencilla en la que cada SGBD ha puesto sus propias características en las sintaxis, fundamentalmente en los DML y DDL. 4.3.Tipos de SGBD Los SGBD se pueden clasificar de muchas formas. Según qué gestionan, según sean bases de datos relacionales o bases de datos orientadas a objetos. Las vamos a dividir en dos grupos según su tamaño: o Gestores de bases de datos Ofimáticas. Son aquellas que manipulan bases de datos pequeñas (ofimáticas) orientadas a almacenar datos domésticos o de pequeñas empresas. Incluso estas bases de datos permiten construir pequeñas aplicaciones apoyadas en dichas bases de datos para ayudar al usuario inexperto en el manejo de los datos. Como ejemplo podemos poner el Microsoft Access. o Gestores de bases de datos Corporativas. Son aquellas que tienen la capacidad de gestionar bases de datos enormes, de grandes o medianas empresas con una carga de datos y transacciones que requieren un servidor de grandes dimensiones. Son capaces de manipular grandes cantidades de información de una forma muy rápida y eficiente. 21 BASES DE DATOS Entre los ejemplos a nombrar tenemos el Oracle, DB2 y MySQL. La principal diferencia entre MySQL y los otros dos es el costo pues el último es totalmente gratuito y ofrece las características, no a nivel tan potente, pero sí bastante avanzado y eficaz como los dos primeros. 5. MODELOS DE BASES DE DATOS Una vez se tenga realizado el modelo conceptual de la base de datos, se debe traducir en un modelo lógico de datos. Los más difundidos en el mercado fueron el modelo de datos jerárquico y el modelo en red. Actualmente, el modelo relacional y muchos otros que están apareciendo, como el modelo objeto-relacional. Este último va a ser el objeto de estudio durante el transcurso de todo el curso por lo que no viene mal dedicarles un par de apuntes a los otros modelos. 5.1 Modelo de datos jerárquico Se sirve de árboles para la representación lógica de los datos. Un árbol está compuesto por una jerarquía de elementos llamados nodos. El nivel más alto de la jerarquía tiene un solo nodo denominado raíz. Cada nodo representa un tipo de registro, llamado segmento, con sus correspondientes campos. Alguna de las consideraciones que debemos tener en cuenta son que solo existen relaciones del tipo 1:M (Uno a Muchos) representadas por las ramas de un árbol. Es decir, un padre puede tener varios hijos, pero un hijo solo puede tener un padre. Debido a la existencia exclusiva de relaciones (1:N) como máximo, este modelo implica demasiadas complicaciones a la hora de representar relaciones N:M (Muchos a Muchos). Veamos algunos inconvenientes de este modelo: o No se permite más de una relación entre dos segmentos. o No se admiten relaciones del tipo N:M. o No se permite que un segmento hijo tenga más de un padre. o El árbol se recorre en un cierto orden. o Para acceder a cualquier segmento es necesario hacerlo por el segmento raíz. Ejemplos de bases de datos jerárquicas son el IMS de IBM y el SYSTEM 2000 de Intel. A continuación, mostramos un ejemplo/ejercicio práctico de este modelo. 22 BASES DE DATOS Base de datos jerárquica 5.2. Modelo de datos en red Este modelo utiliza estructura de datos en red, conocidas también como estructuras plex. Las entidades se representan como nodos y las relaciones como líneas que unen dichos nodos. En una estructura en red cualquier componente puede unirse con cualquier otro. Es posible describirla en términos de padres e hijos, pero a diferencia del modelo de datos jerárquico, un hijo puede tener muchos padres por lo que se pueden representar relaciones N:M (Muchos a Muchos). El modelo en red más importante es el CODASYL propuesto por Database Task Group, DBTG. Los conceptos básicos son: o Tipo de Registro: Representa un nodo. o Elemento: Es un campo de datos. o Agregado de datos: Conjunto de datos con nombre. 23 BASES DE DATOS Ejemplo. Fecha = Año+Mes+Dia o Conjunto: Un conjunto relaciona dos tipos de registro. Uno de ellos se llama propietario y el otro, miembro. El modelo permite representar relaciones 1:M (uno a muchos) ó 1 : 1 (uno a uno). Para representar una relación N:M (muchos a muchos) se necesita un registro de enlace o link que conecte los dos tipos de registro. Veamos a continuación un ejemplo de utilización. Dado el siguiente modelo lógico que representa una relación de tipo 1:N entre Proveedores y Artículos. Ejemplo. PROVEEDOR Cod_Pro Nombre ARTÍCULOS Cod_Art Nombre A continuación, podemos ver el desarrollo de cómo se representa la información en el modelo de datos en red. Representación de la información mediante un modelo de bases de datos en red El registro propietario en la Figura 1.5., Proveedor con código 10, apunta hacia el primer registro miembro, Artículo con código 101. Este al segundo registro miembro, Artículo con código 102, y así sucesivamente hasta el último registro miembro que apuntará al registro propietario. 24 BASES DE DATOS Ejemplos de este tipo de bases de datos son el DMS 1100 de UNIVAC o el DBOMP de IBM. 6. ARQUITECTURA CLIENTE-SERVIDOR La arquitectura Cliente/Servidor ha ido evolucionando en conjunción con los avances hardware y software que se han ido dando en el mundo de la informática como son la aparición de las nuevas tecnologías de almacenamiento, la mejora de las comunicaciones por red y la mejora en las tecnologías de las bases de datos. En un sistema cliente/servidor podemos distinguir dos partes claras: un servidor y un conjunto de clientes. Normalmente, el Servidor es un potente ordenador que actúa como depósito de los datos y permite llevar a cabo todas las funciones de un SGBD. Los Clientes son estaciones de trabajo u ordenadores personales que solicitan servicios al Servidor. Para comunicarse deben estar comunicados a través de una red. El software adecuado para una arquitectura Cliente/Servidor posee varios componentes que se pueden asociar al Cliente o al Servidor. Son los siguientes: o Software de gestión de datos: Lleva a cabo la manipulación y gestión de datos requeridos por las aplicaciones. o Software de interacción con el usuario y presentación: Implementa las funciones que se asocian a una interfaz gráfica de usuario (GUI). Suele residir en el Cliente. 25 BASES DE DATOS o Software de desarrollo. Se usa para desarrollar aplicaciones. Igualmente suele residir en el Cliente. Aparte de estos componentes, existen otros que existen tanto en el Cliente como en el Servidor. Software de Sistemas Operativos en Red, de Aplicaciones de Bases de Datos, de Comunicaciones, etc… que facilitan la conexión entre Servidor y Cliente. 7. BBDD CENTRALIZAS vs DISTRIBUIDAS BBDD CENTRALIZADAS BBDD DISTRIBUIDAS Los sistemas de base de datos Una base de datos distribuida centralizados son aquellos que se (BDD) es un conjunto de ejecutan en un único sistema múltiples bases de datos informático sin interaccionar con lógicamente relacionadas, las ninguna otra computadora. cuales se encuentran distribuidas en diferentes espacios lógicos e interconectados por una red de comunicaciones. Un sistema de Bases de Datos Definición Distribuida (SBDD) es un sistema en el cual múltiples sitios de bases de datos están ligados por un sistema de comunicaciones de tal forma que un usuario, en cualquier sitio, puede acceder a los datos exactamente como si estos fueran accedidos de forma local. 26 BASES DE DATOS BBDD CENTRALIZADAS BBDD DISTRIBUIDAS o Se almacena completamente o Autonomía Local. Los sitios en una ubicación central, es distribuidos deben ser decir, todos los componentes autónomos, es decir, todas las del sistema residen en un solo operaciones que se efectúan ordenador. en un sitio dado se controlan en la ubicación principal. o No posee múltiples elementos de procesamiento ni o No hay dependencia de un mecanismos de sitio central. No debe de intercomunicación, como las haber dependencia de un sitio Bases de Datos Distribuidas. central para obtener un o Los componentes de la Bases servicio. de Datos Centralizadas son: Características Los datos, el software del o Operación Continua. No debe SGBD (Sistema de Gestión haber necesidad de apagarse de Base de Datos) y los a propósito para que se pueda dispositivos de realizar alguna función cómo, almacenamiento secundario por ejemplo, añadir un nuevo asociados. sitio o instalar una versión mejorada. o El problema de seguridad es o Independencia con respecto a inherentemente fácil en estos la localización. Los usuarios sistemas de bases de datos. no tienen que conocer los lugares de almacenamiento utilizados. 27 BASES DE DATOS BBDD CENTRALIZADAS BBDD DISTRIBUIDAS o Se evita la redundancia. o Refleja una estructura Debido a que cada organizacional. aplicación tiene sus Los fragmentos de la base propios archivos o se de datos se ubican en encuentran en diferentes departamentos con ubicaciones, puede determinadas relaciones. originarse redundancia en o Autonomía local. los datos y desperdicio del Un departamento puede espacio de controlar los datos que le almacenamiento. pertenecen. o Se evita la inconsistencia. o Disponibilidad. Si un hecho específico se Un fallo en una parte del representa por una sola sistema solo afectará a un entrada, la no fragmento en lugar de a concordancia de datos no toda la base de datos. puede ocurrir. o Rendimiento. Ventajas o Pueden hacerse cumplir las Los datos generalmente normas establecidas. se ubican en el Con un control central de departamento con mayor la base de datos se puede demanda y los sistemas garantizar que se cumplan trabajan en paralelo, lo todas las formas aplicables cual permite balancear la a la representación de los carga en los servidores. datos. o Economía. Es más barato crear una red de muchos ordenadores pequeños, que tener uno, solo, pero muy poderoso. 28 BASES DE DATOS o Pueden aplicarse restricciones o Modularidad. de seguridad. Se pueden modificar, El Administrador de Base de agregar o quitar sistemas Datos (DBA) puede: de la base de datos Asegurar que el único distribuida sin afectar a medio de acceder la base los demás. de datos sea a través de los canales establecidos. Definir controles de autorización para que se apliquen cada vez que se intente el acceso a datos sensibles o Puede conservarse la integridad. Que los datos se encuentren en una sola máquina ayuda a evitar la inconsistencia de los datos. o El procesamiento de los datos ofrece un mejor rendimiento y resulta más confiable que en los sistemas distribuidos. 29

Use Quizgecko on...
Browser
Browser