Gestión de Bases de Datos - 2021 PDF
Document Details
Uploaded by Deleted User
2021
Jordi Andúgar, Patricia Santos, Jordi Solà, José Manuel Artés
Tags
Summary
Este libro de texto cubre los fundamentos de la gestión de bases de datos desde conceptos básicos hasta el diseño, la implementación y la administración. Explica sistemáticamente los distintos pasos del proceso de creación y gestión de bases de datos, desde la organización de información hasta el lenguaje de consultas SQL y la gestión de la seguridad de la información. Se centra en la aplicación práctica y proporciona diversos ejemplos para comprender mejor los temas.
Full Transcript
GESTIÓN DE BASES DE DATOS Administración de sistemas informáticos en red Ilerna ILERNA, centro autor...
GESTIÓN DE BASES DE DATOS Administración de sistemas informáticos en red Ilerna ILERNA, centro autorizado con código 25002775 (Lleida), 28077294 (Madrid) y 41023090 (Sevilla) www.ilerna.es © Ilerna Online S.L., 2021 Diseño y dirección editorial: Ilerna Online S.L. Realización y coordinación editorial: 3.14 Servicios Editoriales S.L. Redacción: Jordi Andúgar (Caps. 1, 3, 5, 6, 7 y 9), Patricia Santos (Cap. 2), Jordi Solà (Cap. 4), José Manuel Artés (Caps. 8 y 10) © Imágenes: Shutterstock Impreso por Ilerna Online S.L. Impreso en España - Printed in Spain Reservados todos los derechos. No se permite la reproducción total o parcial de esta obra, ni su incorporación a un sistema informático, ni su transmisión en cualquier forma o por cualquier medio (electrónico, mecánico, fotoco- pia, grabación u otros) sin autorización previa y por escrito de los titulares del copyright. La infracción de dichos derechos puede constituir un delito contra la propiedad intelectual. Ilerna Online S.L. ha puesto todos los recursos necesarios para reconocer los derechos de terceros en esta obra y se excusa con antelación por posibles errores u omisiones y queda a disposición de corregirlos en posteriores ediciones. 1.a edición: septiembre 2021 ÍNDICE Gestión de bases de datos 1. S istemas de almacenamiento de la información.............................. 6 1.1. Almacenamiento de la información...............................................7 1.2. Evolución histórica de las bases de datos.................................. 10 1.3. Conceptos básicos de las bases de datos................................... 11 1.4. Modelos de base de datos.......................................................... 14 1.5. Sistemas gestores de bases de datos......................................... 15 1.6. Tipos de usuarios de bases de datos.......................................... 18 1.7. Diccionario de datos.................................................................... 20 1.8. Arquitectura ANSI/X3/SPARC....................................................... 21 1.9. Modelos de datos: jerárquico, de red y relacional..................... 25 1.10. Bases de datos centralizadas y bases de datos distribuidas..... 31 2. Diseño conceptual y lógico de bases de datos................................ 32 2.1. Modelos de bases de datos......................................................... 33 2.2. El proceso de diseño de una base de datos................................ 35 2.3. El modelo E-R............................................................................... 38 2.4. El modelo E-R ampliado............................................................. 55 2.5. El modelo relacional.................................................................... 64 2.6. Normalización.............................................................................. 82 2.7. El modelo orientado a objetos.................................................... 90 3. I nstalación de un sistema gestor de bases de datos...................... 94 3.1. Sistemas gestores de bases de datos......................................... 95 3.2. PostgreSQL en Windows............................................................. 96 3.3. PostgreSQL en GNU/Linux......................................................... 107 3.4. Ejecutando scripts de creación y carga de bases de datos...... 112 3.5. Órdenes de psql.......................................................................... 117 4. D iseño físico de bases de datos....................................................118 4.1. El proceso de diseño físico......................................................... 119 4.2. Herramientas gráficas proporcionadas por el sistema gestor de bases de datos........................................................... 123 4.3. Lenguaje estándar de consulta SQL.......................................... 128 4.4. Creación, modificación y eliminación de bases de datos........ 132 4.5. Creación, modificación y eliminación de tablas....................... 134 4.6. Tipos de datos............................................................................ 137 4.7. Implementación de restricciones sobre tablas........................ 143 4.8. Truncado de tablas..................................................................... 151 5. R ealización de consultas...............................................................152 5.1. SQL y DQL................................................................................... 153 5.2. Preparando el entorno de desarrollo........................................ 154 5.3. Selección de registros: consultas básicas y tratamiento de valores nulos......................................................................... 157 5.4. Vinculación de tablas: consultas multitabla............................. 174 5.5. Consultas de resumen............................................................... 183 5.6. Subconsultas.............................................................................. 191 5.7. Operaciones de conjuntos......................................................... 198 5.8. Cálculo relacional....................................................................... 199 6. E dición de los datos......................................................................200 6.1. El lenguaje DML......................................................................... 201 6.2. Control de transacciones: TCL................................................... 211 7. C reación de otros objetos de la base de datos..............................218 7.1. Índices........................................................................................ 219 7.2. Secuencias.................................................................................. 221 7.3. Vistas.......................................................................................... 223 8. O ptimización de consultas............................................................230 8.1. Planes de ejecución de sentencias........................................... 231 8.2. Optimización basada en reglas................................................. 236 8.3. Creación de índices.................................................................... 239 9. P rogramación con bases de datos.................................................246 9.1. Introducción al lenguaje de programación PL/pgSQL............. 247 9.2. Tipos de datos............................................................................ 248 9.3. Funciones de sistema................................................................. 251 9.4. Procedimientos y funciones de usuario.................................... 254 9.5. Funciones con acceso a base de datos..................................... 259 9.6. Excepciones................................................................................ 261 9.7. Estructuras de control................................................................ 266 9.8. Cursores...................................................................................... 271 10. Gestión de la seguridad de los datos............................................274 10.1. Seguridad de los datos.............................................................. 275 10.2. Copias de seguridad.................................................................. 285 10.3. Transferencia de datos entre sistemas gestores...................... 294 Bibliografía / webgrafía.....................................................................298 Solucionario.......................................................................................299 1 SISTEMAS DE ALMACENAMIENTO LA INFORMACIÓN DE Gestión de bases de datos 1.1. Almacenamiento de la información CONCEPTO El almacenamiento de datos es el registro de infor- mación (datos) en un medio físico (soporte primario, secundario o almacenamiento intermedio). La escritura a mano, la grabación fonográfica, la cinta magnética y los discos ópticos son ejemplos de medios de almacenamiento. La grabación se puede realizar prácticamente con cualquier forma de energía; en cambio, el almacenamiento de datos electrónicos requiere energía eléctrica para almacenar y recuperar datos. Existen tres niveles de almacenamiento: El almacenamiento primario. Es aquel que está conectado di- rectamente al procesador, con lo que es más rápido acceder a él. Ejemplos de ello son la memoria RAM (o principal) y las memo- rias caché de primer y segundo nivel. Estos soportes también se denominan volátiles, porque, una vez dejan de estar alimentados por la corriente eléctrica, pierden su contenido. Suelen ser los de menor capacidad y mayor precio/byte. El almacenamiento secundario (no volátil o masivo). Tiene mucha más capacidad y es más asequible económicamente, pero al mismo tiempo es más lento que los primeros. El almacenamiento terciario. Es un sistema en el que un robot industrial (brazo robótico), monta (conecta) un medio de almace- namiento masivo fuera de línea (discos ópticos, memorias flash, unidades USB entre otros). PARA + INFO Ejemplos de dispositivos de almacenamiento de la información en función de la tecnología utilizada: Magnéticos: cinta magnética, disco flexible (ambos obsoletos) y disco rígido duro. Ópticos: CD-ROM, CD-R/WR y Blu-ray. Magneto-ópticos: dispositivos Zip, Jaz y super- Disk, entre otros. Unidad de estado sólido: discos duros, memo- rias flash y tarjetas de memoria. 7 Tema 1: Sistemas de almacenamiento de la información El concepto de archivo o fichero proviene del latín archivum y se refiere al conjunto de documentos producidos por personas físicas o jurídicas, públicas o privadas, en el ejercicio de su actividad. Este concepto ha ido evolucionando a lo largo del tiempo. Durante los últimos cincuenta años, las empresas han evolucionado desde el papel hacia lo digital. En un entorno de oficina tradicional se utilizaban archivos en papel (expedientes, tarjetas, libretas o microfichas) en los que se anotaban los datos de los clientes en formas de fichas, libros de contabilidad, albaranes, pedidos, etc. En definitiva, todo aquello que tuviese que ver con un negocio. El fichero recogía el conjunto de fichas de los clientes. Con el tiempo, los sistemas antiguos de almacenamiento de in- formación se han ido transformando en sistemas informatizados, donde se ha pasado del papel al formato digital. CONCEPTO Una definición actual de archivo (fichero) es la de secuencia de bytes almacenados en un dispositivo. También podría definirse el archivo o fichero como una colección de datos homogéneos almacenados en un soporte físico del computador que puede ser permanente o volátil. Por “datos homogéneos” se entiende colecciones de datos del mismo tipo. Existen dos tipos de ficheros según la información almacenada: Ficheros de texto plano, también llamados texto simple o sin formato. Contienen caracteres codificados según la tabla de có- digos ASCII y se pueden leer con cualquier editor de texto como vi, atom, notepad++. Las extensiones más comunes son *.txt o *.java para los de Java, pero también otras como *.sql para los ficheros de SQL, *.c para los ficheros fuente de C, *.py para los de Python, *.sh para los bash scripts, etc. Ficheros binarios. Son ficheros que almacenan la información de los datos o programas tal como están en la memoria del or- denador. No son legibles directamente por el usuario. Tienen la ventaja de que ocupan menos espacio en disco y de que no se pierde tiempo cambiándolos a formato ASCII al escribirlos y al leerlos en el disco. Un fichero puede almacenar información sin orden ni concierto, por- que nada impide abrir un editor y empezar a aporrear el teclado de manera indiscriminada y guardar el resultado de esa acción en un soporte secundario. Pero aquí trataremos de los ficheros con una organización interna que nos permite acceder a ellos de manera ordenada y organizada, y en los que se puedan almacenar datos, borrarlos, actualizarlos y consultar siguiendo algún criterio estable- cido. A ello nos referiremos como sistema de ficheros. 8 Gestión de bases de datos A un fichero se puede acceder de tres formas principales: Acceso secuencial. Los datos se leen y escriben del mismo modo que en una antigua cinta de música. Si se quiere acceder a un dato que está hacia la mitad de un fichero, habrá que pasar pri- mero por todos los datos anteriores. Los ficheros de texto son de acceso secuencial. Acceso aleatorio (random). Se puede acceder directamente a un dato sin tener que pasar por todos los demás. De esta manera es posible acceder a la información en cualquier orden. Tiene la limitación de que los datos están almacenados en unas unidades o bloques que se llaman registros, y que todos los registros que se almacenan en un fichero deben ser del mismo tamaño. Los fiche- ros de acceso aleatorio son ficheros binarios. Acceso indexado. Es como el acceso aleatorio, pero se hace por número de registro. Se construye una estructura de tipo índice para cada campo que se quiera indexar. El típico ejemplo es la estructura de información de árbol binario o de árbol de índices. De esta manera se pueden realizar búsquedas por clave sin nece- sidad de recorrer todos los registros. ¿SABÍAS QUE...? El término fichero es un galicismo (fichier) al igual que ordenador (ordinateur). En informática se utilizan indis- tintamente ambos términos, aunque hay preferencias: los informáticos emplean el término fichero y los profesionales no informáticos usan archivo, popularizado por las traduc- ciones de Windows. 9 Tema 1: Sistemas de almacenamiento de la información 1.2. Evolución histórica de las bases de datos Inicialmente, el almacenamiento de datos en las empresas se ba- saba en un sistema de ficheros que guardaba la información de la actividad empresarial y que permitía consultarla, almacenarla, procesarla y actualizarla. En los sistemas de ficheros: Parte de la información solía estar replicada en varios archivos. El formato de almacenamiento de los datos podía ser diferente en cada fichero. Los programas eran dependientes de la estructura física de los ficheros. Se podían crear y modificar sin necesidad de realizar una planifi- cación global. A simple vista los sistemas de ficheros parecían simples de mane- jar, pero nada más lejos de la realidad. Sus inconvenientes eran muchos: La información almacenada de manera redundante llevaba a de- rrochar el espacio de disco. La integridad de los datos no estaba en los archivos, sino que residía en los programas. Eso generaba más dependencia hacia ellos y a su vez más problemas de integridad. La consistencia de los datos no se podía certificar, dado que no existía el concepto de relación, típico de un sistema de bases de datos. No existía una independencia lógica-física, de manera que los programas debían modificarse cuando se producía un cambio en la estructura física de un fichero. Cualquier consulta se debía utilizar un lenguaje anfitrión de pro- gramación, además de usar el SQL para acceder a los datos. Después de cualquier cambio en la estructura, se necesitaba re- organizar del sistema de almacenamiento físico. Todos estos inconvenientes propiciaron que los sistemas de fiche- ros desapareciesen de las empresas para dar paso a los sistemas de bases de datos. 10 Gestión de bases de datos 1.3. Conceptos básicos de las bases de datos CONCEPTO Una base de datos es un conjunto, colección o depósito de datos organizados y almacenados en un soporte informático no volátil. Entre las cualidades de una base de datos destacan: Integridad. Se asegura que los datos almacenados son veraces y fiables. Redundancia. Se replican/copian los mismos datos en diferentes sitios. Consistencia. Dos o más entradas que representan el mismo he- cho han de coincidir en su contenido. CONCEPTO Los datos consolidados son el resultado del proceso de reunir las entidades y los atributos en un almacén de datos, manteniendo cada uno su forma, el valor y las características técnicas que existen en la fuente. 1.3.1. Características de una base de datos Estas son las principales características que definen a una base de datos: Los datos están interrelacionados y estructurados de acuerdo con un modelo capaz de recoger el máximo contenido semántico (la base de datos debe almacenar estas interrelaciones). El mundo real impone restricciones semánticas, las cuales se han de almacenar también. Un ejemplo de restricción semántica es que el peso no puede ser inferior a cero. La redundancia de datos tiene que estar controlada: no debe existir redundancia lógica, aunque sí se admite redundancia físi- ca por motivos de eficiencia. Tiene que haber una independencia lógica y física entre los da- tos y los tratamientos. Las definiciones del conjunto de datos contenidos en la base (lo que se denomina estructura o esquema de la BD) deben ser únicas y estar integradas con los mismos datos. 11 Tema 1: Sistemas de almacenamiento de la información PARA + INFO En las bases de datos, la descripción y la documentación completas (metadatos) se almacenan junto con los datos, de modo que estos se encuentran autodocumentados y cualquier cambio que se produzca en dicha documen- tación se ha de reflejar y quedar recogido en el sistema, con todas las ventajas que ello conlleva. No ocurre así en los sistemas basados en ficheros, donde los datos se encuentran almacenados en ficheros separados de la descripción de los mismos. Esta descrip- ción (muy somera) forma parte de los programas. Suele haber una documentación adicional en soporte de papel insuficiente y desactualizada, lo que comporta infinidad de problemas: actualizaciones incorrectas, ficheros sin descripciones asociadas, etc. 1.3.2. Ventajas e inconvenientes de los sistemas de bases de datos Ventajas Las ventajas de utilizar los sistemas de bases de datos son: Desaparece la redundancia y se ahorra espacio en disco. El proceso de normalización (formas normales aplicables al esque- ma lógico) limpia toda la información redundante y no necesaria. Desaparece la inconsistencia. Al desaparecer la redundancia, deja de existir la inconsistencia. Con eso se consigue la integri- dad de los datos, es decir, se asegura la fiabilidad de los mismos. Independencia lógico-física. Proporciona una separación en- tre la definición de las estructuras de datos (parte lógica) y el almacenamiento (parte física). Este apartado se explicará más adelante en detalle. Se almacenan restricciones y reglas de validación en el diccio- nario de datos, de manera que se asegura una interfaz común a la información para todos los datos. No se requiere un lenguaje de programación para las consul- tas si se desea obtener la información, solo se necesita el lenguaje de acceso a los datos SQL. 12 Gestión de bases de datos ¡RECUERDA! En resumen, una base de datos sería una colección o depósito de datos integrados, almacenados en soporte secundario (no volátil) y con redundancia inexistente o controlada. Los datos, que se comparten por diferentes usuarios y aplicaciones deben mantenerse independientes de ellos, y su definición (estructura de las bases de datos), única y almacenada junto con los datos, se ha de apoyar en un modelo de datos que ha de permitir captar las interrela- ciones y restricciones existentes en el mundo real. Los procedimientos de actualización y recuperación, comunes y bien determinados, facilitarán la seguridad del conjunto de los datos. Inconvenientes Por su parte, respecto a los inconvenientes de las bases de datos podemos destacar: Son más caros, en términos de hardware, debido a que los equi- pos han de ser más potentes, y en términos de programas de aplicación. Son más complicados de diseñar, dado que su diseño requiere de una planificación realizada por especialistas. Hay que planificar procedimientos de copias de seguridad para su recuperación ante fallos del sistema. Su implantación puede ser larga y laboriosa debido a las dificul- tades que van apareciendo y a los plazos solicitados inicialmente. ponte a prueba La consistencia es una de las cualidades de una base de datos. ¿Cuál de estas frases define esa cualidad? a) Se asegura que los datos almacenados son veraces y fiables. b) Dos o más entradas que representan el mismo hecho han de coincidir en su contenido. c) Se replican/copian los mismos datos en diferentes sitios. 13 Tema 1: Sistemas de almacenamiento de la información 1.4. Modelos de base de datos CONCEPTO Un modelo de base de datos es un tipo de modelo de datos que determina la estructura lógica de una base de datos y el modo de almacenar, organizar y manipular los datos. Una base de datos nos permite guardar (en un soporte no volátil) grandes cantidades de datos de manera organizada, de forma que posteriormente podamos acceder a ella para luego utilizarla (explo- tación de datos a través de data warehouse y business intelligence) con fines comerciales o no. Una base de datos se suele basar en un modelo, aunque hay existen también bases de datos multimodelo. BUSCA EN LA WEB El tipo de modelos de bases de datos es muy variado: Esta página web ofrece un Jerárquico. ranking de los sistemas gestores de bases de datos. De red. https://bit.ly/3q1cBVn Relacional. Lógico (deductivo). Orientado a objetos. Documental. De clave-valor. Multivalor. Tabular. De grafo. De arrays. Actualmente, los modelos que predominan son el relacional y los modelos denominados No-SQL (not only SQL), entre los que se incluyen los de tipo documental, de clave-valor, multivalor, tabular, de grafo y de arrays. 14 Gestión de bases de datos 1.5. Sistemas gestores de bases de datos CONCEPTO Un sistema gestor de bases de datos (SGBD) es una herramienta informática que incluye un conjunto de programas, utilidades, procedimientos y lenguajes, que proporcionan a los diferentes tipos de usuario los medios necesarios para describir y manipular los datos almacenados en la base de datos, garantizando su seguridad. La finalidad del SGBD es establecer las adecuadas interfaces entre los diferentes tipos de usuarios y la base de datos. Es imprescindi- ble dotar al sistema de la adecuada flexibilidad para que pueda atender las exigencias de todos los usuarios y para que sea capaz de responder a los posibles cambios a un coste no excesivo. Programas de Programas de Programas de aplicación aplicación aplicación SGBD Usuarios BD BD 15 Tema 1: Sistemas de almacenamiento de la información 1.5.1. Funciones generales de un SGBD Las funciones que ha de realizar un SGBD son: definición de datos (Data Definition Language, DDL), manipulación de datos (Data Manipulation Language, DML), consulta de datos (Data Query Lan- guage, DQL), control de transacciones de datos (Transaction Control Language, TCL) y control de datos (Data Control Language, DCL). PARA + INFO El lenguaje SQL (Structured Query Language) se utiliza para diferentes propósitos y según la tarea tiene un sublenguaje asociado. Cada denominación agrupa las órdenes correspon- dientes. Por ejemplo, la denominación DML se está refiriendo a las órdenes de SQL: INSERT, UPDATE y DELETE. El SQL es un lenguaje informático, pero no de programación. Para programar usaremos el PLpgSQL. Función de definición de datos (DDL) Debe permitir al diseñador de la base de datos especificar: La estructura, es decir, los elementos/características de datos que la integran. Las relaciones existentes entre las estructuras. Las reglas de integridad semántica. Las características de tipo físico. Las vistas lógicas de los usuarios. La función de definición es realizada por el DDL (lenguaje de de- finición de datos) propio de cada SGBD y suministra los medios para definir las tres estructuras de datos (externa, lógica global e interna), especificando las características de los datos en cada uno de estos niveles. Estructura externa y lógica global. La función de definición proporcionará los instrumentos para la definición de los obje- tos (entidades, tablas, etc.) así como su identificación, atributos, interrelaciones entre ellos, restricciones de integridad, autoriza- ciones de acceso. Estructura interna. Se indicará: – El espacio reservado para la base de datos. – La longitud de los campos. – El modo de representación (binario, alfanumérico, etc.). – Los caminos de acceso: punteros e índices. El SGBD también se ocupará de la función de correspondencia entre la estructura lógica global y las estructuras externas, y entre aquella y la estructura física. Las órdenes SQL asociadas al sublenguaje DDL son: CREATE, ALTER, DROP, TRUNCATE y RENAME. 16 Gestión de bases de datos Función de manipulación de datos (DML) El paso siguiente es cargar los datos en las estructuras previamente creadas (tablas). ponte a prueba La función de manipulación de datos permite a los usuarios modi- ficar el contenido de la base de datos, con las operaciones de añadir ¿Cuál de estos no es un modelo (INSERT), borrar (DELETE) y modificar (UPDATE) los datos de esta. de bases de datos? Algunos autores consideran la operación de consulta (DQL) y el a) De red control de transacciones (TCL) como parte del sublenguaje DML. b) Orientado a objetos En nuestro caso, vamos a considerar el sublenguaje DQL como in- c) Inclusivo dependiente del DML y el TCL como parte del DML. d) Tabular Cuál de estas órdenes permite Función de control de transacciones de datos (TCL) hacer la explotación de los datos que, en función de la Las operaciones TCL (COMMIT, ROLLBACK, SAVEPOINT) se utilizan información obtenida, nos para revertir operaciones DML o para dejarlas como definitivas. permitirá tomar decisiones: a) CREATE b) SELECT Función de consulta de datos (DQL) c) TRUNCATE d) INSERT La operación reina de todo el SQL es la orden SELECT, que va a per- mitir, a partir de los datos de las estructuras de tipo tabla y vista, hacer la explotación de los datos y obtener información relevante para el desarrollo del negocio y la toma de decisiones. Cuando los datos se procesan y se transforman, adquieren valor, pasan a ser información. Función de control de datos (DCL) Permite gestionar el acceso de los usuarios a los objetos de la base de datos, concediendo o revocando permisos (privilegios). En definitiva, podremos decidir quién puede hacer qué operación sobre qué objeto. Además, tendrá las siguientes funciones: Reúne todas las interfaces que necesitan los diferentes usuarios para comunicarse con la base de datos. Proporciona un conjunto de procedimientos para el administra- dor (DBA). Gestiona copias de seguridad, reinicio, etc. Proporciona protección frente accesos no deseados. Realiza otras funciones de servicio: – Obtener estadísticas de utilización. – Cargar ficheros. – Cambiar parámetros, como capacidad de los ficheros de la BD. 17 Tema 1: Sistemas de almacenamiento de la información 1.6. Tipos de usuarios de bases de datos 1.6.1. Usuarios informáticos Se incluyen en esta categoría a los diseñadores, los administrado- res y los analistas y programadores. Tienen a su cargo las tareas de: Crear y mantener la base de datos. Realizar los procedimientos y programas para los usuarios finales. Diseñadores Los diseñadores son los encargados de identificar qué datos han de aparecer en la base de datos (siempre en función de las necesida- des que los usuarios hayan expresado) y determinar qué estructura desarrollar para dar satisfacción a esas demandas. Diseñadores lógicos. Su objetivo es conseguir que la base de datos ofrezca los más altos niveles de eficacia. Para lograrlo, se tienen que encargar de: – Establecer los datos que han de estar contenidos en la base de datos. – Ofrecer, en su diseño de las estructuras lógicas, un resultado del agrado de los usuarios. El diseñador debe mantener entrevistas periódicas con los usuarios para conseguir que el diseño de la base de datos represente fielmente lo que estos buscan. Diseñadores físicos. Son los encargados de transformar las es- tructuras lógicas en estructuras físicas. En este proceso tienen que lograr la máxima eficiencia de cara a la máquina, reduciendo al máximo el tiempo de respuesta y el consumo de recursos y op- timizando la relación coste/beneficio. Administradores Se encargan de: La vigilancia y el mantenimiento de la confidencialidad, disponi- bilidad e integridad de los datos. Impedir consultas o actualizaciones no autorizadas y proteger la base de datos contra fallos del equipo lógico o físico. Establecer el sistema de autorizaciones de acceso y coordinar y controlar su uso. Gestionar otros recursos distintos de los datos: SGBD y otras he- rramientas relacionadas con el mismo. El buen funcionamiento de todo el sistema, sin que se produzcan paradas, y de que los tiempos de respuesta sean adecuados. 18 Gestión de bases de datos Analistas y programadores Tienen a su cargo: El análisis y la programación de las tareas que no pueden ser lle- vadas a cabo por los usuarios finales. Desarrollar distintos procedimientos y programas que ponen a disposición de los usuarios finales a fin de facilitarles su trabajo. Los analistas y los programadores deben ser capaces de prever los problemas que pueden plantear los usuarios finales y darles anticipadamente una respuesta. 1.6.2. Usuarios finales Necesitan acceder a los datos porque lo requiere su actividad. Su interés está centrado en el contenido de la base de datos; es decir, en los datos. Existen dos clases de usuarios finales: Habituales: Suelen hacer consultas o actualizaciones en la base de datos como parte habitual de su trabajo. Utilizan en general menús previamente preparados por analistas o programadores, para facilitar la interrelación con el ordenador. Usan a veces pa- quetes de programas y lenguajes sencillos de acceso a la BD. Esporádicos: No utilizan el ordenador habitualmente porque su trabajo no lo requiere. Se les tiene que suministrar herramientas sencillas y generalmente potentes. Las tareas que desempeñan no son formalizables por lo que no pueden ser atendidas median- te menús. ponte a prueba Entre los usuarios de una base PARA + INFO de datos, ¿quién se encarga de establecer el sistema de autori- Los operadores de entrada de datos tienen entre sus zaciones de acceso? principales funciones la de actualizar la base de datos a) Diseñadores a través de unos menús de actualización preparados b) Administradores ad hoc. No están interesados en la información c) Analistas contenida en la base de datos y tienen exigencias muy d) Programadores estrictas respecto a los tiempos de respuesta. 19 Tema 1: Sistemas de almacenamiento de la información 1.7. Diccionario de datos CONCEPTO El diccionario de datos es el repositorio centralizado de información sobre los datos, relaciones entre otros datos, origen, uso y formato. Dicho de otra manera, es el lugar donde un sistema gestor de bases de datos relacional almacena, para cada base de datos, la informa- ción de los objetos creados en ella. Es decir, el diccionario de datos almacena las definiciones de los objetos existentes en la base de datos. Un ejemplo de objetos que se almacenan son tablas, vistas, índices, secuencias, procedimientos/funciones, triggers y usuarios. En el diccionario se encuentra la lista de todos los elementos que forman parte del flujo de datos en todo el sistema. Los elementos más importantes son flujos de datos, almacenes de datos y procesos. El diccionario guarda los detalles y las descripciones de todos ellos. El tipo de elemento más importante son los almacenes de datos (tablas), que grosso modo constituyen un contenedor estructurado PARA + INFO de datos, de los cuales se almacena la información de su estructu- ra: de cada campo, su nombre, tipo de datos y restricciones. A esta Un sinónimo de información se le conoce como “metadatos” de la base de datos. diccionario de datos es catálogo. En el caso del Es muy importante conocer cómo acceder al diccionario de datos, sistema gestor de base porque proporciona la visión global del sistema. Ayuda a los ad- de datos PostgreSQL, está compuesto por ministradores, los analistas de sistema y los programadores de un conjunto de tablas aplicación en la planificación, control, evaluación de la recolección, y vistas que constituye almacenamiento y uso de los datos. Puede ser tan útil como que- el núcleo del SGBD. ramos pues, a través de las consultas adecuadas, se puede obtener Su función es alma- cualquier detalle de nuestro servidor. cenar los esquemas o descripciones de las En el sistema gestor PostgreSQL existen dos catálogos fundamen- bases de datos que el tales el pg_catalog y el information_schema. Cualquiera de los SGBD mantiene. dos puede ser utilizado. Las tablas del pg_catalog comienzan con el prefijo pg_, como, por ejemplo, las siguientes: pg_database pg_roles pg_tables pg_views Existen diferentes tipos de diccionarios: Off-line. No intervienen en el uso dinámico de los datos. On-line. Trabajan junto al compilador e impiden que el progra- mador defina los datos en el programa. In-line. No incorporan la definición de datos en el programa. 20 Gestión de bases de datos 1.8. Arquitectura ANSI/X3/SPARC 1.8.1. El estandar ANSI/X3/SPARC El SPARC (Standard Planning and Requirements Committee) es un grupo de estudio del comité X3 dedicado a los ordenadores e infor- mática dentro del ANSI (American National Standards Institute o Instituto Nacional Estadounidense de Estándares). Inició sus tareas en este campo en el año 1972, cuando la situación era confusa, y creó un grupo de trabajo para estudiar qué aspectos de los SGBD podían ser candidatos a la estandarización en aquellos momentos, así como para emitir una serie de recomendaciones de actuación en dichas áreas. La aportación más destacada de este grupo es que introdujo, entre sus propuestas de normalización, un tercer nivel (nivel conceptual) en la arquitectura de bases de datos que se interpone entre las dos estructuras, la externa y la lógico-física, ayudando a conseguir el objetivo de independencia. Este hecho marcaba una diferencia con el grupo CODASYL (Conference on Data Systems Languages, con- sorcio de industrias informáticas creado en 1959 con la finalidad de regular el desarrollo de un lenguaje de programación estándar), que solo había especificado dos. Posteriormente CODASYL siguió los pasos dados por el ANSI/X3/ SPARC, al igual que el Club de Banco de Datos del INRIA (Institut National de Recher che en Informatique et Automatique) y el grupo Guide/Share de IBM, aunque la terminología que utilizan para la descripción es diferente. 1.8.2. Niveles de la arquitectura: interno, conceptual y externo La arquitectura a tres niveles del grupo ANSI, con su esquema con- ceptual, ha marcado una clara línea de investigación en el campo de las bases de datos. Del esquema conceptual (descripción global de los datos) se deriva una colección de esquemas externos que son la visión que tienen de la base de datos las distintas aplicacio- nes. El esquema interno es la descripción de los datos de cara a la máquina. La transformación de unos esquemas en otros (funciones de correspondencia) la lleva a cabo el SGBD. La arquitectura ANSI/X3/SPARC está parcialmente basada en el concepto de máquinas anidadas; es decir, el flujo de datos pasa a través de las distintas capas que están separadas por interfaces y cuyas funciones se describen con detalle documentalmente. Las múltiples interfaces tienden a aislar los diversos componentes del sistema con vistas a conseguir el objetivo de independencia. La organización ANSI/X3/SPARC presentó un modelo de referen- cia (por sí solo no es un estándar, pero sienta las bases para futuras 21 Tema 1: Sistemas de almacenamiento de la información estandarizaciones), que se contempla desde tres puntos de vista distintos: Los componentes que integran un SGBD. Las funciones que se deben especificar. Los datos que se deben describir y utilizar. Nivel Esquema Esquema externo externo 1 externo n Esquema Correspodencia conceptual Externa/Conceptual Nivel conceptual Correspodencia Conceptual/Interna Esquema interno Nivel interno Datos almacenados Los tres niveles de abstracción de los datos y la arquitectura triesquemática de ANSI. 1.8.3. Independencia física y lógica de los datos Uno de los principales objetivos de las bases de datos es conseguir la independencia entre las estructuras lógica y física de los datos, que tiene como consecuencia la independencia entre los datos y las aplicaciones, de modo que los cambios en la estructura de los datos (siempre necesarios, pues las empresas son por esencia cambiantes) tengan una repercusión mínima en los programas de aplicación y viceversa. Según el ANSI, “la independencia de los datos es la capacidad de un sistema de gestión de base de datos para permitir que las referen- cias a los datos almacenados, especialmente en los programas y en 22 Gestión de bases de datos sus descripciones de los datos, estén aisladas de los cambios y de los diferentes usos en el entorno de los datos, como pueden ser la forma como se almacenan dichos datos, el modo de compartirlos con otros programas y cómo se reorganizan para mejorar el rendi- miento del SBD”. La flexibilidad y versatilidad que ha de alcanzar un sistema informáti- co (SI) es muy difícil conseguirla en un sistema de ficheros propia de los primitivos sistemas de gestión de datos. En estos, la dependencia de los sistemas informáticos de la estructura física de los datos en el almacenamiento, propia de un sistema rígido y difícilmente adaptable al proceso evolutivo de toda organización, provocaba una falta de entendimiento entre usuarios e informáticos, y exigía unas especificaciones permanentes sin permitir la más mínima alteración. CONCEPTO Se entiende por independencia de los datos la separación entre el almacenamiento y la organización lógica de los datos tal como estos se contemplan por los distintos programas de aplicación que hacen uso de la base de datos. Con la independencia de los datos se consigue una doble finalidad: Que los datos puedan presentarse acorde a las necesidades de cada uno de los usuarios que los consultan. El almacenamiento de los datos, su estructura lógica y los progra- mas de aplicación son independientes entre sí. En otras palabras, si hay que cambiar uno de ellos no hay que modificar el resto. Christopher J. Date, investigador británico especializado en la tecno- logía de bases de datos, señala que muchas aplicaciones actuales son dependientes de los datos, lo que significa que la estructura de almacenamiento y las técnicas de acceso son dictadas por la aplica- ción y están acopladas en el propio programa. Como consecuencia de ello, no es posible efectuar cambios en el modo de organización de los datos ni en la estrategia de acceso, ni siquiera en los soportes, sin que estos cambios afecten a los programas de aplicación. 23 Tema 1: Sistemas de almacenamiento de la información EJEMPLO Cuando se habla de independencia física/lógica en las bases de datos se hace referencia a aquella que permite alterar las características lógicas o físicas de los datos sin que dichos cambios incidan en los aspectos físicos o lógicos, respectivamente. Dicho de otra manera, cualquier cambio ha de ser transparente al usuario, es decir, este no lo ha de percibir. Algunos ejemplos de cambios serían: Cambios en aspectos lógicos: – A nivel de campo: cambios en el nombre, tamaño, tipo, modo de cálculo (campos derivados o calculados), etc. – A nivel externo: cambios en la presentación de los datos. – A nivel de fila: introducción de nuevos campos, borra- do de los mismos, alteración del orden en que aparecen los campos en un registro, etc. Cambios en aspectos físicos: – En el tamaño de los bloques, longitud de los registros almacenados, pasar de longitud fija a longitud variable – En la organización física, métodos de direccionamiento, ubicación de los conjuntos de datos en diferentes volú- menes, etc. – En el tipo de soporte, tamaño de los volúmenes, lon- gitud de las pistas, número de pistas/cilindro, tipo de dispositivo (disco extraíble o fijo), sistema operativo, distribución geográfica de los datos físicos, etc. – Introducir y borrar índices, reorganizar los volúmenes, cambiar o introducir técnicas de compactación, replicar conjuntos de datos por razones de seguridad o disponi- bilidad, cambiar o introducir técnicas criptográficas, etc. 24 Gestión de bases de datos 1.9. Modelos de datos: jerárquico, de red y relacional 1.9.1. Modelos de datos y esquemas Los modelos de datos (MD) son herramientas que permiten describir la realidad. Los programadores las utilizan para construir esquemas, que son representaciones de la realidad. La calidad de un esquema se relaciona con las propiedades del modelo de datos y la experien- cia de los programadores. 1.9.2. Representación de los modelos de datos Los modelos de datos tienen asociados una serie de conceptos que describen un conjunto de datos y operaciones para manipular ¿SABÍAS QUE...? esos datos. Árboles en modelo jerárquico. Los modelos de datos tienen asociadas una Grafos en modelo de red (CODASYL). construcción lingüística Tablas o interrelaciones en el modelo relacional. y una construcción gráfica. 1.9.3. Clases de modelos de datos Existen dos tipos de modelo de datos: Modelo conceptual: representa la realidad a un alto nivel de abstracción. Modelo lógico o modelo de base de datos: describe las relacio- nes lógicas entre los datos y la base de datos. 1.9.4. Características de los modelos de datos Los elementos de un modelo representan entidades genéricas. Los valores concretos se denominan instancias u ocurrencias de una entidad. Cada SGBD se asocia a un modelo de base de datos específico, es decir, soporta un único modelo de base de datos. Por ejemplo, Oracle a modelo relacional. 1.9.5. Contenidos de los modelos de datos Por lo que respecta a los datos: Datos o entidades. Propiedades de los datos. Relaciones de los datos. Restricciones de los datos. 25 Tema 1: Sistemas de almacenamiento de la información Este tipo de contenidos se representa mediante un lenguaje de definición de datos (LDD) del SGBD. Por lo que se refiere a las operaciones: Operaciones de los datos. Operaciones sobre relaciones de los datos. Relaciones entre operaciones. Este tipo de contenidos se representa mediante un lenguaje de manipulación de datos (DML) del SGBD. 1.9.6. Clasificación de los modelos de datos Sistemas pre-relacionales Sistemas relacionales Sistemas post-relacionales Modelo jerárquico Modelo relacional Modelo orientado a objetos Los datos se relacionan Se utilizan conceptos mate- Los datos se representan de modo jerárquico. Se máticos como las relaciones mediante objetos que con- representan mediante una para representar los datos y tienen variables y métodos estructura tipo árbol. las operaciones sobre estos. y su manipulación se realiza Se representan mediante mediante mensajes. relaciones. Modelo documental Subcategoría de los modelos NoSQL,está diseñado alrede- dor de una noción abstracta de documento. Modelo de red Modelo lógico Se entiende como una Es capaz de deducir hechos a generalización del modelo partir de las relaciones base y jerárquico, donde los nodos una serie de axiomas deduc- hijo pueden tener más de tivos o reglas de inferencia. un padre. Se representan (Lisp,Prolog) mediante grafos. Como se puede comprobar, existe un antes y un después del nacimiento del modelo relacional, que marcó un hito en el desarrollo de las bases de datos. PARA + INFO 1.9.6.1. Modelo jerárquico Un sistema basado en Algunas de las características de este modelo son: el modelo jerárquico es el IMS/VS (Information La estructura de datos es un árbol. Management System / Virtual Storage). Fue Cuando la cantidad de información almacenada en la base de da- el primer producto de tos es muy grande, se convierte en inmanejable. IBM y el primer sistema gestor de base de datos Se pueden representar relaciones jerárquicas 1:N, pero no las re- basado en este modelo. laciones M:N sin introducir redundancia. 26 Gestión de bases de datos EJEMPLO Imaginemos una base de datos de un banco, con sus diferentes sucursales (oficinas). Cada sucursal tiene sus propios clientes y sus propias cuentas, que son únicas entre diferentes sucursales. Cada cliente puede disponer de varias cuentas, cada una de ellas en una sucursal diferente, por lo que será cliente de diferentes sucursales. Una cuenta puede tener diferentes titulares. Y en cada cuenta se realizan diferentes transacciones del tipo ingreso o reintegro. Sucursal Sucursal Sucursal este oeste centro Cliente Cliente Cliente Cliente Cliente Cliente 0093 0239 0239 0103 0095 0093 Cuenta Cuenta Cuenta Cuenta Cuenta Cuenta Cuenta Cuenta Cuenta L3099 S1219 N5577 N4499 N5577 N3939 N2489 N2489 S1209 Transac. Transac. Transac. Transac. Transac. Transac. Transac. 005 884 886 885 395 114 115 Para que se pueda representar que un cliente pertenece a varias sucursales, hay que hacer redundante la información tantas veces como sea necesario. Pasa lo mismo en el caso de que una cuenta tenga varios titulares. Sucursal centro Cliente Cliente Tipo cuenta Tipo cuenta 0095 0093 Cta Corriente Cta Ahorro Cuenta Cuenta Cuenta Cuenta Cuenta Cuenta N3939 N2489 S1209 N2489 N3939 S1209 Transac Transac Transac 395 114 115 Como se puede comprobar, la representación de relaciones M:N se soluciona introduciendo redundancia. 27 Tema 1: Sistemas de almacenamiento de la información 1.9.6.2. Modelo de red PARA + INFO Algunas de las características de este modelo son: Un sistema de gestión de bases de datos Es una evolución natural del modelo jerárquico hacia la estructu- basado en el modelo ra grafo. de red es el IDMS (Integrated Database En él se pueden representar relaciones M:N. Management System), creado por Computer Plantea problemas con pérdida de herencia (información existen- Associates en 1971. te entre niveles del grafo). Hay redundancia, pero menos que el modelo jerárquico. CONCEPTO Herencia en bases de datos es la información de los nodos superiores que es transferida a los nodos inferiores. En el caso del modelo de red esta herencia se puede perder cuando hay más de un nivel entre nodos (nodos abuelo y nodos nieto). EJEMPLO Sucursal centro Sucursal este Sucursal oeste Cliente Cliente Cliente Cliente 0095 0093 0239 0103 Cuenta Cuenta Cuenta Cuenta Cuenta Cuenta Cuenta N3939 N2489 S1209 L3099 S1219 N5577 N4499 Tr 395 Tr 114 Tr 115 Tr 005 Tr 884 Tr 886 Tr 885 Es imposible saber a qué sucursal pertenece la cuenta L3099. Y lo mismo ocurre con la cuenta N4499. Para evitar la pérdida de herencia, se ha de introducir algo de redundancia. Sucursal Sucursal Sucursal centro este oeste Cliente Cliente Cliente Cliente Cliente Cliente 0095 0093 0093 0239 0239 0103 Cuenta Cuenta Cuenta Cuenta Cuenta Cuenta Cuenta N3939 N2489 S1209 L3099 S1219 N5577 N4499 Tr 395 Tr 114 Tr 115 Tr 005 Tr 884 Tr 886 Tr 885 Obsérvese que hemos tenido que añadir redundancia para el cliente 0093 y para el 0239. 28 Gestión de bases de datos 1.9.6.3. Modelo relacional Algunas de las características de este modelo son: La estructura de datos básicos es la relación. Una base de datos relacional se compone de una colección de relaciones sin orden. Cada relación se asocia a una entidad y se compone de una serie de atributos. Cada realización de una relación se llama tupla (ocurrencia en el modelo conceptual). No se permiten tuplas duplicadas en una relación. A cada atributo se le puede asociar un dominio que definirá el posible rango de valores. Los dominios definen una restricción sobre los atributos. La manipulación de los datos se realiza mediante lenguajes de especificación, de tal manera que el usuario indica qué datos desea sin especificar cómo obtenerlos. El modelo de datos relacional fue definido por el científico infor- mático británico Edgar Frank Codd en 1970. A partir de ese año, IBM llevó a cabo los primeros estudios teóricos basados en el mo- ponte a prueba delo relacional, de los cuales obtuvo un primer prototipo llamado System R del que nacerían dos productos: DB2 (IBM Database 2) y Indica si la siguiente afir- SQL/DS (Structured Query Language). En 1978 IBM desarrolló QBE mación es verdadera o falsa: (Query by Example), que no es un verdadero sistema de gestión gracias a la independencia de bases de datos relacionales sino un híbrido, pues proviene del de los datos se consigue que modelo jerárquico. estos se puedan presentar de distintas maneras en función de Por su parte, INGRES (Interactive Graphics and Retrieval System o las necesidades del usuario. Sistema Interactivo de Gráficos y Obtención de Datos) se desarrolló a) Verdadero en dos disciplinas: En la década de 1970 la Universidad de Berkeley b) Falso (California) desarrolló una versión académica que utilizaba el len- guaje QUEL. En 1980 Ingres Corporation desarrolló una versión En un modelo de datos, los comercial que usaba los lenguajes QUEL y SQL. valores concretos se conocen como: El primer sistema de gestión de bases de datos relacionales comer- a) Ocurrencias cial fue Oracle, desarrollado por Oracle Corporation en 1979 y que b) Entidades soporta el SQL como DDL y DML. Esta firma es líder a nivel mundial c) Operaciones de software propietario o privativo. En 1996 apareció PostgreSQL, d) Grafos líder mundial de sistemas open-source gestores de bases de datos. Fue creado por Michael Stonebraker como un proyecto post-Ingres, de ahí su nombre. 29 Tema 1: Sistemas de almacenamiento de la información EJEMPLO Ejemplo de relaciones Cliente CodCliente Nombre Direccion Telefono DNI 0093 J. Gil Cuenca, 6 678123456 12345678Z 0095 A. García París, 4 666111222 87654321X 0103 L. López Díaz, 10 315453322 11223344B Cuenta NumCuenta Tipo Saldo Cuenta S1209 221.000 corriente Cuenta L3099 3500 ahorro Cuenta N5577 6786 corriente Titular CodCliente NumCuenta 0093 N2489 0093 S1209 0093 L3099 0095 N3939 0103 N5577 0095 N2489 Transacción NumTrans NumCuenta Import 156 S1209 +100.000 023 L3099 +250.000 309 N5577 -10.000 310 N5577 -80.000 30 Gestión de bases de datos 1.10. Bases de datos centralizadas y bases de datos distribuidas Una base de datos centralizada o BDC es aquella que se localiza, se almacena y se mantiene en una única ubicación, que suele ser una computadora central o un sistema de base de datos, por ejem- plo, una CPU de escritorio, un servidor o una computadora central. Los usuarios acceden a la base de datos centralizada a través de una red informática. La alternativa es la base de datos distribuida o BDD, un conjunto de bases de datos relacionadas a nivel lógico que se encuentran distribuidas en diferentes espacios lógicos y geográficos e inter- conectadas por una red de comunicaciones. Las BDD tienen la capacidad de realizar procesamientos autónomos, que permiten realizar operaciones locales o distribuidas. Un sistema de bases de datos distribuidas (SBDD) es aquel en el que varios sitios de bases de datos están interrelacionados de tal forma que un usuario tiene la posibilidad de acceder a los datos en cualquier parte de la red exactamente como si estos fueran accedi- dos de forma local. Un SBDD se almacena en varias computadoras. Los principales factores que lo distinguen de un sistema centraliza- do son los siguientes: Hay múltiples computadores, llamados sitios o nodos. Estos nodos deben de estar comunicados por medio de algún tipo de red de comunicaciones para transmitir datos y órdenes entre los sitios. Los sistemas de bases de datos distribuidas representan de forma más natural la estructura geográficamente descentralizada de una organización, aumentan la disponibilidad de los datos, reducen el tráfico de comunicación y abaratan los costos en el equipamiento y la infraestructura de comunicaciones de las redes de computado- ras. El diseño de las bases de datos distribuidas incluye las fases del diseño centralizado y plantea, además, nuevos problemas que caracterizan el proceso de distribución de datos: Cómo dividir la base de datos en componentes para localizarlos en diferentes sitios. Qué cantidad de datos debe ser replicados. Cómo deben ser localizados los fragmentos replicados. Según las necesidades de la empresa, utilizaremos un sistema cen- tralizado o distribuido. 31 2 DISEÑO CONCEPTUAL Y LÓGICO DE BASES DATOS DE Gestión de bases de datos 2.1. Modelos de bases de datos Posiblemente, la primera forma que se nos ocurre para almacenar información digitalmente es utilizar archivos o ficheros. Sin em- bargo, este método no permite definir relaciones entre los datos guardados, requisito que sí cumplen las bases de datos y que es esencial para gestionar las necesidades de cualquier empresa. CONCEPTO Se denomina base de datos (BBDD) a un grupo de datos que tratan sobre un mismo asunto y que están relacionados entre sí. Las aplicaciones que, además de permitir almacenar la información de una BBDD, ofrecen servicios para administrarla se denominan sistemas gestores de bases de datos (SGBD) o Database Management System (DBS). Ventajas de los sistemas gestores de bases de datos Estas son las principales ventajas que ofrecen los sistemas gestores de bases de datos: Capacidad de manipular la información (insertar, modificar, eli- minar y consultar). Posibilidad de diseñar y actualizar la estructura en la que se al- macenan los datos. Capacidad de recuperar información y hacer copias de seguridad. Consistencia ya que cuando se actualiza un dato, este se actua- lizará en todos los lugares de la base de datos en que aparezca. ¿SABÍAS QUE...? Control de la concurrencia ya que cuando varias personas reali- zan cambios al mismo tiempo, estos deben ser coherentes entre sí. El lenguaje XML (Extensible Markup Language o Lenguaje de Marcas Extensible) no surgió como una tecnología de bases de datos, pero su capacidad para representar la información contenida en ellas resulta muy útil cuando aplicaciones de diferentes tipos necesitan comunicarse entre sí utilizando los servicios web. Ejemplos de sistemas gestores de bases de datos (SGBD). 33 Tema 2: Diseño conceptual y lógico de bases de datos 2.1.1. Bases de datos relacionales y bases de datos orientadas a objetos Las bases de datos relacionales, las más utilizadas, trabajan con tablas conectadas entre sí a través de alguno de sus campos de información. Sin embargo, existen otras posibilidades entre las que destacan las bases de datos orientadas a objetos, que surgen tras el auge de los lenguajes de programación de este mismo tipo (Pro- gramación Orientada a Objetos). Los sistemas gestores de bases de datos orientadas a objetos se conocen como ODBMS (Object Database Management System). ponte a prueba Identifica la afirmación falsa: a) Se denomina base de datos a un conjunto de información sobre un mismo contexto y sus relaciones. b) El almacenamiento de información en ficheros es un ejemplo básico de base de datos. c) Para poder introducir información en una BBDD, consultarla y modificarla, es preciso utilizar un sistema gestor de base de datos. d) Los ODBMS son un caso particular de sistemas gestores de bases de datos. ¿En qué se diferencia una base de datos de un sistema gestor de bases de datos? a) Son lo mismo. b) La base de datos es la información en sí misma, mientras el SGBD permite gestionar la información. c) El SGBD es la información en sí misma, mientras que la BBDD permite gestionar la información. d) No es necesaria utilizar un SGBD para trabajar con bases de datos. 34 Gestión de bases de datos 2.2. El proceso de diseño de una base de datos De la misma forma que para construir una casa se han de realizar unos pasos previos antes de poner el primer ladrillo, para desa- rrollar una base de datos coherente y funcional se sigue una serie de fases, en cada una de las cuales se obtienen unos resultados que serán la base para la correcta consecución de la fase o etapa posterior. De la misma forma que hay que hacer los planos antes de edificar, si se quiere construir una base de datos consistente, primero hay que hacer un buen diseño. Fases del diseño de una base de datos. 2.2.1. Recopilación de requisitos En esta etapa se necesita comprender totalmente el proyecto que vamos a llevar a cabo. Hay que aclarar qué información debe guar- darse en la base de datos que vamos a construir y cómo se relacionan los diferentes datos entre sí. EJEMPLO Objetivo La base de datos guardará información sobre los empleados de una empresa de autobuses, los vehículos que la empresa tiene en propiedad y los viajes que se realizan. Información a manejar De cada trabajador se conoce su nombre completo, DNI y número de la Seguridad Social. De cada autobús se conoce su matrícula, antigüedad y número de plazas. De cada viaje se conoce la fecha y la hora en la que se lleva a cabo, el origen y el destino final del trayecto. Relación de los datos Los viajes se realizan con un autobús. Cada autobús tiene asignado un conductor. Es preciso saber qué autobuses se han utilizado en cada viaje, qué viajes se han hecho y quién ha sido el trabajador responsable del vehículo en cada caso. 35 Tema 2: Diseño conceptual y lógico de bases de datos 2.2.2. Diseño conceptual Plasma de forma gráfica los requisitos de la fase anterior, obteniendo el modelo entidad-relación. A lo largo de este capítulo se estudiará cuáles son las reglas para construir este tipo de diagramas. Modelo E-R del ejemplo propuesto en la fase 1. 2.2.3. Diseño lógico Obtiene, a partir del modelo entidad-relación, las tablas que compondrán nuestra base de datos (modelo relacional). Una vez obtenidas las tablas, se lleva a cabo, sobre ellas, el proceso conoci- do como normalización, cuyo objetivo es corregir posibles errores de diseño. Todo este proceso sigue una serie de normas sobre las que también profundizaremos a lo largo del capítulo. EJEMPLO Ejemplo de modelo relacional TABLA COLUMNAS Conductor NI, NSS, NombreCompleto, AutobúsAsuCargo Autobus Matrícula, FechaCompra, NºPlazas Viaje IdViaje, Fecha, Hora, Origen, Destino, ConductorACargo 36 Gestión de bases de datos 2.2.4. Diseño físico Diseña las estructuras de almacenamiento que tendrá la base de datos física, a partir del diseño anterior y teniendo en cuenta las posibilidades que el SGBD elegido ofrece. Ejemplo de diseño físico de base de datos. ponte a prueba ¿En qué fase del proceso de diseño de una base ¿A qué hace referencia el concepto normaliza- de datos es necesario tener en cuenta el SGBD ción y en qué fase se lleva a cabo? con el que se va a trabajar? a) Se lleva a cabo en la fase de recopilación de a) Fase de recopilación de requisitos requisitos y hace referencia a las normas de la b) Fase de diseño conceptual empresa de la que se va a reunir la información que contendrá la BBDD. c) Fase de diseño lógico b) Se lleva a cabo en la fase de diseño lógico y sirve d) Fase de diseño físico para corregir posibles errores de diseño. c) S e lleva a cabo en la fase de diseño físico y hace alusión a las normas de implementación específicas del SGBD que se vaya a utilizar. 37 Tema 2: Diseño conceptual y lógico de bases de datos El concepto notación hace 2.3. El modelo E-R referencia a las normas de El modelo entidad-relación (E-R), introducido por Peter Chen en representación gráfica de 1976, pretende hacer una descripción gráfica de la información los diagramas E-R. que se almacenará en la base de datos y cómo dicha información está relacionada entre sí. Su sencillez facilita la colaboración entre los expertos, y el cliente para asegurar la correcta comprensión del dominio del problema. El dominio del problema se refiere al funcionamiento del negocio del cliente, cuya comprensión es imprescindible para entender sus necesidades y desarrollar una solución adecuada. 2.3.1. Entidad Las entidades son los elementos básicos del modelo entidad-rela- ción. Representan un elemento del mundo real que puede ser o no tangible (un coche, un animal, una persona, una factura, una ex- cursión, un curso...). El nombre de las entidades debe ser singular. CONCEPTO Según el ANSI (American National Standards Institute), una entidad es una persona, lugar, cosa, concepto o suceso, real o abstracto, de interés para la empresa. Una entidad se representa mediante un rectángulo con su nombre en el interior. 2.3.2. Atributo Una vez identificadas las entidades, es preciso detallar qué informa- ción necesitamos conocer de cada una de ellas. Cada uno de estos datos se denomina atributo. Por ejemplo, de la afirmación: “De cada