Universidad Nacional del Nordeste Facultad de Humanidades Especialización en Tecnologías de la Información Geográficas Teoría Base de Datos Espaciales Teoría Bases de Datos Espaciales Contenidos Conceptuales Unidad 1. Conceptos Básicos Introducción a los Sistemas de Bases de Datos. Definición. Ventajas de su utilización. Elementos y clasificación de las Bases de Datos. El sistema de Gestión de Bases de datos (SGBD) Concepto y funciones. Características. Elementos. Objetivos. Componentes. Desarrollo de una Base de Datos. Bases de datos Geográficas. Diferencias entre SIG y CAD. Unidad 2. Modelos de Datos Los modelos de datos en el proceso de diseño de una base de datos. Clasificación de los modelos de datos. El modelo entidad-relación. Conceptos básicos del modelo Entidad-Relación (ER). Claves. Diagrama entidad-relación. Introducción a la Teoría de la Normalización. La primera Forma Normal. La Segunda Forma Normal. La Tercera Forma Normal. La Cuarta y Quinta Forma Normal. Unidad 3. El modelo relacional. Estructura del Modelo Relacional: dominios y atributos, relaciones, claves primarias y externas. Restricciones de integridad: integridad de entidades, integridad referencial. Restricciones de dominio. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales Unidad 1. Conceptos Básicos Definición Una base de datos es una colección de información organizada de forma que un Gestor de Base de Datos, por ejemplo Microsoft Access, pueda seleccionar rápidamente los fragmentos de datos que necesite. Una base de datos es un almacén de información conformada por datos de diferentes clases (Numéricos, Texto, Fecha, Moneda). La información de la base de datos está estructurada en tablas relacionadas entre sí, de tal manera que al consultarla, realizar informes o formularios, la información que se obtiene es útil al usuario permitiendo una mejor operatividad en sus diversas actividades. De forma sencilla podemos indicar que una base de datos no es más que un conjunto de información relacionada que se encuentra agrupada o estructurada. El archivo por sí mismo, no constituye una base de datos, sino más bien la forma en que está organizada la información es la que da origen a la base de datos. Las bases de datos manuales, pueden ser difíciles de gestionar y modificar, por ejemplo, en una guía de teléfonos no es posible encontrar el número de teléfono de un individuo si no sabemos su apellido, aunque conozcamos su domicilio. Del mismo modo, en un archivo de pacientes en el que la información esté ordenada por el nombre de los mismos, será una tarea bastante engorrosa encontrar todos los pacientes que viven por una determinada calle o determinado barrio. Los problemas expuestos anteriormente se pueden resolver creando una base de datos informatizada. Desde el punto de vista informático, una base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulan ese conjunto de datos. Desde el punto de vista más formal, podríamos definir una base de datos como un conjunto de datos estructurados, fiables y homogéneos, organizados independientemente en máquina, accesibles en tiempo real, compartibles por usuarios concurrentes que tienen necesidades de información diferente y no predecibles en el tiempo. Según Engles una Base de Datos es un conjunto de datos de operación almacenados y utilizados por los sistemas de aplicación de una empresa, y al mencionar Empresa, se lo hace en sentido genérico y amplio, pero lo importante es que necesita de DATOS DE OPERACION referente a su funcionamiento, por ejemplo un Banco requiere datos de sus Clientes, una Mutual de sus Afiliados, un Hospital de sus Pacientes, una Facultad de sus Alumnos y Profesores. La idea general es que estamos tratando con una colección de datos que cumplen las siguientes propiedades: - Están estructurados independientemente de las aplicaciones y del soporte de almacenamiento que los contiene. Presentan la menor redundancia posible. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales - Son compartidos por varios usuarios y/o aplicaciones. Ventajas de su utilización Facilidad de manejo de grandes volúmenes de información: la facilidad de poder manejar una gran cantidad de información, a gran velocidad y en muy poca cantidad de tiempo, que de otro modo sería muy dificultoso, por no decir casi imposible. Los gestores de Bases de datos permiten el acceso, consulta y recuperación de la información que se almacena en la base de datos a, prácticamente, cualquier usuario con un mínimo de tiempo de aprendizaje. Independencia en el tratamiento de la información: Un factor fundamental, que se deriva de la facilidad de manejo de la información, es la posibilidad de utilizar independientemente subconjuntos, del volumen total de la información almacenada. En efecto, una base de datos, correctamente diseñada y desarrollada, permite el acceso no solamente al conjunto total de los datos de la organización, sino a partes del mismo. Esto facilita el manejo de los datos, ya que siempre es menos complejo manejar una pequeña parte de un conjunto que la totalidad de ese conjunto. Seguridad de la información: Uno de los objetivos fundamentales de las bases de datos es mantener accesible, a todos los usuarios autorizados, la información que almacenan. Esto se logra a través de los sistemas gestores de bases de datos (SGBD). Sin embargo, estos sistemas también poseen otra serie de facilidades, como son las de proteger la información que manejan frente a una serie de peligros como puede ser su perdida, modificación no deseada, así como el acceso a ella de personas no autorizadas. No duplicidad de la información: La existencia de información duplicada en cualquier tipo de archivo origina graves problemas por el aumento de información almacenada y la escasez de espacio existente. En un sistema informático la duplicidad de la información existente en la base de datos debe evitarse puesto que el espacio y la velocidad de proceso son recursos preciosos dentro de la configuración del sistema. Mejora la metodología de trabajo en una organización: En algunos casos, la introducción de una base de datos en las tareas cotidianas de una organización supone que el análisis de los requisitos a cumplir por el nuevo sistema da lugar a que se descubran problemas en la metodología interna de una empresa. Facilidad en la toma de decisiones: La ventaja más importante de la utilización de una base de datos es que permite realizar consultas de la información que contiene de forma rápida, sencilla y útil. Esta facilidad en el manejo y recuperación de la información almacenada permitirá, a su vez, poseer una serie de datos actualizados sobre los que poder tomar una decisión correcta en un momento en que sea necesario tener más información de la que se disponga. Elementos de una base de dato s Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales Tablas se representan gráficamente como una estructura rectangular formada por filas y columnas. Cada columna o atributo almacena información sobre una propiedad determinada de la tabla (se le llama también atributo), nombre, dni, apellidos, edad,.... Es una pieza única de información, cada una de las características que definen de los objetos que componen la tabla Cada fila o tupla posee una ocurrencia, registro o ejemplar de la instancia o relación representada por la Tabla. Es un sistema completo de campos, sería un objeto de la tabla. Archivo es una colección de registros. Claves o clave candidata: Conjunto de atributos de una tabla que identifican unívocamente cada tupla de la tabla. o clave primaria: Clave candidata que se escoge como identificador de las tuplas. o clave alternativa: Cualquier clave candidata que no sea primaria o clave externa o secundaria: Atributo de una tabla relacionado con una clave de otra tabla. Figura 1. Elementos de una Base de Datos Clasificación de las Bases de Datos Bases de datos Jerárquicas En esta estructura los datos completos de un determinado registro se almacenan en diferentes niveles. Al diseñar esta estructura deben tenerse en cuenta los diferentes accesos que van a necesitar los usuarios para consultar la información que contiene almacenada. Ventaja que presenta este tipo de base de datos es la rapidez en las consultas de información ya que la propia estructura piramidal de los datos permite un rápido acceso a ella. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales Desventajas: Son muy complicadas las posteriores modificaciones, así como las labores de mantenimiento de la base de datos. El acceso a la información también presentan problemas, ya que sólo se ven los registros situados en los niveles superiores, con lo cual se restringen las posibilidades de acceder a la información por una gran cantidad de elementos. Figura 3. Ejemplo de Base de Datos Jerárquica Base de datos en Red Las bases de datos en red surgieron como un intento de solucionar las rigideces que ocasionaban las bases de datos jerárquicas. En este tipo de base de datos, la información se almacena también en diferentes niveles pero tiene la ventaja que si se puede acceder a datos situados en el mismo nivel. Ventaja de este modelo es que los accesos a la información son más flexibles en comparación con las bases de datos jerárquicas. Desventajas la velocidad de acceso a la información es más lenta y que aumenta la complejidad de diseño de la estructura de información almacenada en la base de datos. Figura 4. Ejemplo de Base de Datos en Red Bases de datos Relacionales Los datos se estructuran en una o varias tablas donde relacionan uno o varios conjuntos de datos. Las tablas se pueden modificar fácilmente siguiendo un diseño preestablecido, buscando la mejor manera posible de obtener una integridad total de la información. Las ventajas frente a las anteriores son la rapidez y facilidad con la que permite transformar el modelo de datos, la sencillez de la propia estructura física de este tipo de bases de datos y la posibilidad de adaptación a una serie de entornos de datos más amplia que los tipos vistos anteriormente. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales Bases de datos Documentales Las bases de datos documentales son unos tipos especiales de bases de datos que almacenan información en forma de texto. La estructura lógica de ese tipo de información es muy complicada de diseñar, puesto que los diferentes documentos contenidos en la base de datos están almacenados en registros de longitud variable. Los accesos a la información también presentan problemas de diseño, puesto que los documentos han de tratarse como cadenas de caracteres, debiendo buscarse el término deseado a través de todo el texto almacenado. Para agilizar y mejorar el proceso de búsqueda a lo largo de los diferentes textos que componen la base de datos se deben seguir diversas estrategias (índices, búsquedas complejas, etc.) que hacen más lenta la recuperación de la información deseada por los usuarios. Textos enciclopédicos o de carácter jurídico son, fundamentalmente, los que se almacenas en este tipo de base de datos. Bases de datos Semánticas y Orientadas a Objetos No existe una caracterización universal aceptada del término “orientación a objetos”, por lo que cualquier intento de definir el concepto es necesariamente una visión particular. Se va a considerar que son tres las características esenciales que identifican este concepto. Tipo Abstracto de Dato (TAD). Herencia. Identidad de objetos. SGBD: Concepto, Evolución y Características Los Sistemas de gestión de base de datos (SGBD, en inglés DBMS: DataBase Management System) es un software que permite la definición de bases de datos; así como la elección de las estructuras de datos necesarios para el almacenamiento y búsqueda de los mismos ya sea de forma interactiva o a través de un lenguaje de programación. Se compone de un lenguaje de definición de datos, un lenguaje de manipulación de datos y un lenguaje de consulta. Los sistemas de base de datos se diseñan para manejar grandes cantidades de información, la manipulación de los datos involucra tanto la definición de estructuras para el almacenamiento de la información como la provisión de mecanismos para la manipulación de la información, además un sistema de base de datos debe de tener implementados mecanismos de seguridad que garanticen la integridad de la información, a pesar de caídas del sistema o intentos de accesos no autorizados. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales Un objetivo principal de un sistema de base de datos es proporcionar a los usuarios finales una visión abstracta de los datos, esto se logra escondiendo ciertos detalles de cómo se almacenan y mantienen los datos. El caso de lo SIG es un poco diferente ya que en principio las bases de datos espaciales no son adecuadas para su manejo con SGBD tradicionales. A lo largo del desarrollo de las tecnologías ligadas a los SIG desde los setenta hasta la actualidad, una de las tendencias más claras es el papel, cada vez más importante, que tiene el uso de SGBD para la gestión de datos temáticos como apoyo al SIG. En principio se utilizaron para almacenar los atributos temáticos asociados a un conjunto de entidades espaciales almacenadas en formato vectorial, hoy en día se están empezando a utilizar además para el almacenamiento de la información geométrica (conjunto de coordenadas) de las entidades espaciales. Aunque se han hecho algunos intentos para almacenar información en formato raster en un SGBD, esta opción no resulta eficiente. Figura 5. Esquema cliente-servidor en una base de datos Características de los SGBD Permite crear y gestionar base de datos de forma fácil, cómoda y rápida. Ofrece una gran flexibilidad para el trabajo con base de datos relacionales. Ofrece un ambiente agradable dado por su interfaz gráfica. Consiste, de cara al usuario, en un conjunto de tablas entre las que se establecen relaciones. Permite el almacenamiento, manipulación y consulta de datos pertenecientes a una base de datos organizada en uno o varios archivos. En lugar de primarse la visualización de toda la información, el objetivo fundamental es permitir consultas complejas, cuya resolución está optimizada, expresadas mediante un lenguaje formal. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales El almacenamiento de los datos se hace de forma eficiente aunque oculta para el usuario y normalmente tiene, poco que ver con la estructura con la que los datos se presentan al usuario. El acceso concurrente de múltiples usuarios autorizados a los datos, realizando operaciones de actualización y consulta de los mismos garantizando la ausencia de problemas de seguridad (debidos a accesos no autorizados) o integridad (pérdida de datos por el intento de varios usuarios de acceder al mismo archivo al mismo tiempo. El diseño de una base de datos implica codificar en formato digital ciertos aspectos del mundo real. Esta codificación implica: o Nivel conceptual o Nivel lógico o Nivel físico Figura 6. Esquema y niveles en el diseño de una base de datos Elementos de un Entorno DBMS Campo almacenado: es la unidad de datos más pequeña en una Base de Datos. Registro almacenado: es un conjunto de campos de iguales o de diferentes tipos, asociados de una Base de Datos. Ocurrencia o Instancia: es la unidad de acceso a la Base de Datos, o la unidad que el DBMS puede recuperar o almacenar en una Base de Datos. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales Archivo almacenado: es el conjunto de ocurrencia de una Base de Datos o colección de instancias almacenadas siguiendo una estructura homogénea. Objetivos de un DBMS: Los objetivos principales de un sistema gestor de base de datos es la de cumplir con el máximo de eficacia con los siguientes aspectos: 1) Evitar la redundancia: al no tener la misma información en diferentes archivos, a pesar de que a veces por estrategia comercial es conveniente, pero acarrea otros problemas en la parte de actualización. 2) Evitar la inconsistencia: como consecuencia de lo anterior, la información de un artículo actualizado y el otro no, es una base de datos inconsistente, acarrea información incorrecta o contradictoria (Descripción, cantidad, precio). Salvo la existencia de PROPAGACION DE ACTUALIZACIONES. 3) Datos Compartidos: la información de la base de datos, es utilizada por las distintas aplicaciones de la empresa, y al crear nuevas aplicaciones solo se agregan datos o se ocupa la que hay en la base, sin crear nuevos archivos. 4) Normas para los datos: siempre es conveniente unificar formatos de datos almacenados, para el intercambio o migración de datos entre sistemas de Bases de Datos. a- La definición de campos en toda Base de Datos debe ser única para todos los posibles valores del atributo. No se puede asignar el campo Saldo de un cliente de Banco, para cierta situación 7 enteros y 2 decimales, y para otra 11 enteros y 3 decimales. b- El DBA debe tener la libertad de modificar estructuras y accesos, sin que esto signifique cambios en la aplicación. c- La provisión de independencia de datos, es uno de los objetivos esenciales de un sistema de bases de datos. 5) Seguridad de datos: con respecto al acceso, que sean por los canales definidos oportunamente, estableciendo con esto niveles, y así tener el control total de acceso a los datos. En los DBMS no centralizado es más difícil todavía. La información de toda empresa es importante, aunque unos datos lo son más que otros, por tal motivo se debe considerar el control de acceso a los mismos, no todos los usuarios pueden visualizar alguna información, por tal motivo para que un sistema de base de datos sea confiable debe mantener un grado de seguridad que garantice la autentificación y protección de los datos. En un banco por ejemplo, el personal de seguridad sólo necesita ver si la persona que ingresa es cliente o no, no así si este tiene saldo acreedor o deudor, o si tiene caja de ahorro y cuenta corriente. 6) Conservar la Integridad: con esto se garantiza que los datos de la base de datos sean exactos. La inconsistencia entre dos entradas del mismo hecho. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales a- Es la inmunidad de las aplicaciones a los cambios de la estructura de almacenamiento y la estrategia de acceso. La existencia de independencia de datos es lo que hace que una base de datos crezca sin afectar a las aplicaciones. 7) Evitar el aislamiento de los datos: Puesto que los datos pueden estar repartidos en varias tablas o bases de datos, hay que proporcionar aplicativos que tengan acceso a todos y cada uno de ellos. Un sistema de base de datos debe contemplar un entorno de datos que le facilite al usuario el manejo de los mismos. Supóngase un banco, y que uno de los gerentes necesita averiguar los nombres de todos los clientes que viven dentro del código postal 3400 de la ciudad. El gerente pide al departamento de procesamiento de datos que genere la lista correspondiente. Puesto que esta situación no fue prevista en el diseño del sistema, no existe ninguna aplicación de consulta que permita este tipo de solicitud, esto ocasiona una deficiencia del sistema. 8) Anomalías del acceso concurrente: Para mejorar el funcionamiento global del sistema y obtener un tiempo de respuesta más rápido, muchos sistemas permiten que múltiples usuarios actualicen los datos simultáneamente. En un entorno así la interacción de actualizaciones concurrentes puede dar por resultado datos inconsistentes. Para prevenir esta posibilidad debe mantenerse alguna forma de supervisión en el sistema. 9) Equilibrio de Requerimientos: el DBA deberá determinar, acordes a normas de la empresa, las técnicas de acceso, manteniendo uniformidad y equilibrio para cada uno de ellos. No debe modificar estructuras para facilitar el acceso. Componentes de un DBMS A. Lenguajes de los SGBD Todos los SGBD ofrecen lenguajes e interfaces apropiadas para cada tipo de usuario: administradores, diseñadores, programadores de aplicaciones y usuarios finales. Los lenguajes van a permitir al administrador de la BD especificar los datos que componen la BD, su estructura, las relaciones que existen entre ellos, las reglas de integridad, los controles de acceso, las características de tipo físico y las vistas externas de los usuarios. Los lenguajes del SGBD se clasifican en: • Lenguaje de definición de datos (LDD o DDL): se utiliza para especificar el esquema de la BD, las vistas de los usuarios y las estructuras de almacenamiento. Es el que define el esquema conceptual y el esquema interno. Lo utilizan los diseñadores y los administradores de la BD. • Lenguaje de manipulación de datos (LMD o DML): se utilizan para leer y actualizar los datos de la BD. Es el utilizado por los usuarios para realizar consultas, inserciones, Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales eliminaciones y modificaciones. Los hay procedurales, en los que el usuario será normalmente un programador y especifica las operaciones de acceso a los datos llamando a los procedimientos necesarios. Estos lenguajes acceden a un registro y lo procesan. Las sentencias de un LMD procedural están embebidas en un lenguaje de alto nivel llamado anfitrión. Las BD jerárquicas y en red utilizan estos LMD procedurales. No procedurales son los lenguajes declarativos. En muchos SGBD se pueden introducir interactivamente instrucciones del LMD desde un terminal, también pueden ir embebidas en un lenguaje de programación de alto nivel. Estos lenguajes permiten especificar los datos a obtener en una consulta, o los datos a modificar, mediante sentencias sencillas. Las BD relacionales utilizan lenguajes no procedurales como SQL (Structured Quero Language) o QBE (Query By Example). Figura 7. Integración de los lenguajes de SGBD La mayoría de los SGBD comerciales incluyen lenguajes de cuarta generación (4GL) que permiten al usuario desarrollar aplicaciones de forma fácil y rápida, también se les llama herramientas de desarrollo. Ejemplos de esto son las herramientas del SGBD ORACLE: SQL Forms para la generación de formularios de pantalla y para interactuar con los datos; SQL Reports para generar informes de los datos contenidos en la BD; PL/SQL lenguaje para crear procedimientos que interactúen con los datos de la BD. B. El diccionario de datos El diccionario de datos es el lugar donde se deposita información acerca de todos los datos que forman la BD. Es una guía en la que se describe la BD y los objetos que la forman. El diccionario contiene las características lógicas de los sitios donde se almacenan los datos del sistema, incluyendo nombre, descripción, alias, contenido y organización. Identifica los procesos donde se emplean los datos y los sitios donde se necesita el acceso inmediato a la información. En una BD relacional, el diccionario de datos proporciona información acerca de: • La estructura lógica y física de la BD. • Las definiciones de todos los objetos de la BD: tablas, vistas, índices, disparadores, procedimientos, funciones, etcétera. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales • El espacio asignado y utilizado por los objetos. • Los valores por defecto de las columnas de las tablas. • Información acerca de las restricciones de integridad. • Los privilegios y roles otorgados a los usuarios. • Auditoría de información, como los accesos a los objetos. Un diccionario de datos debe cumplir las siguientes características: • Debe soportar las descripciones de los modelos conceptual, lógico, interno y externo de la BD. • Debe estar integrado dentro del SGBD. • Debe apoyar la transferencia eficiente de información al SGDB. La conexión entre los modelos interno y externo debe ser realizada en tiempo de ejecución. • Debe comenzar con la reorganización de versiones de producción de la BD. Además debe reflejar los cambios en la descripción de la BD. Cualquier cambio a la descripción de programas ha de ser reflejado automáticamente en la librería de descripción de programas con la ayuda del diccionario de datos. • Debe estar almacenado en un medio de almacenamiento con acceso directo para la fácil recuperación de información. C. Seguridad e integridad de datos • Debe garantizar la protección de los datos contra accesos no autorizados, tanto intencionados como accidentales. Debe controlar que sólo los usuarios autorizados accedan a la BD. • Los SGBD ofrecen mecanismos para implantar restricciones de integridad en la BD. Estas restricciones van a proteger la BD contra daños accidentales. Los valores de los datos que se almacenan deben satisfacer ciertos tipos de restricciones de consistencia y reglas de integridad, que especificará el administrador de la BD. El SGBD puede determinar si se produce una violación de la restricción. • Proporciona herramientas y mecanismos para la planificación y realización de copias de seguridad y restauración. • Debe ser capaz de recuperar la BD llevándola a un estado consistente en caso de ocurrir algún suceso que la dañe. • Debe asegurar el acceso concurrente y ofrecer mecanismos para conservar la consistencia de los datos en el caso de que varios usuarios actualicen la BD de forma concurrente. D. El administrador de la BD En los sistemas de gestión de BBDD existen diferentes categorías de usuarios. Estas categorías se caracterizan porque cada una de ellas tiene una serie de privilegios o permisos sobre los objetos que forman la BD. En los sistemas Oracle las categorías más importantes son: 1-Programador de Aplicaciones: es el encargado de escribir programas en lenguajes de manejadores de bases de datos, tiene por función recuperar, crear, suprimir y modificar información existente.2-Usuario Final: es aquel que accede únicamente a la información, en lenguajes de consultas (SQL) proporcionado como parte del sistema o aplicativos.3-Administrador de Bases de Datos (DBA): es el que decide con respecto a las bases, en que dispositivo físico, cuando reorganizar, cuando realizar un backup, cuida la integridad de los datos, hace cumplir las normas de seguridad con respecto al acceso de la información. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales El DBA tiene una gran responsabilidad ya que posee el máximo nivel de privilegios. Será el encargado de crear los usuarios que se conectarán a la BD. El objetivo principal de un DBA es garantizar que la BD cumple los fines previstos por la organización, lo que incluye una serie de tareas como: • Instalar SGBD en el sistema informático. • Crear las BBDD que se vayan a gestionar. • Crear y mantener el esquema de la BD. • Crear y mantener las cuentas de usuario de la BD. • Arrancar y parar SGBD, y cargar las BBDD con las que se ha de trabajar. • Colaborar con el administrador del S.O. en las tareas de ubicación, dimensionado y control de los archivos y espacios de disco ocupados por el SGBD. • Colaborar en las tareas de formación de usuarios. • Establecer estándares de uso, políticas de acceso y protocolos de trabajo diario para los usuarios de la BD. • Suministrar la información necesaria sobre la BD a los equipos de análisis y programación de aplicaciones. • Efectuar tareas de explotación como: – Vigilar el trabajo diario colaborando en la información y resolución de las dudas de los usuarios de la BD. – Controlar en tiempo real los accesos, tasas de uso, cargas en los servidores, anomalías, etcétera. – Llegado el caso, reorganizar la BD. – Efectuar las copias de seguridad periódicas de la BD. – Restaurar la BD después de un incidente material a partir de las copias de seguridad. – Estudiar las auditorías del sistema para detectar anomalías, intentos de violación de la seguridad, etcétera. – Ajustar y optimizar la BD mediante el ajuste de sus parámetros, y con ayuda de las herramientas de monitorización y de las estadísticas del sistema. Desarrollo de una Base de datos El primer paso para el desarrollo de una base de datos es el Análisis de requisitos, es decir, el estudio del sistema que se pretende modelar de la forma más precisa posible. Se debe especificar qué información es la que interesa y la que no, y que tipo de problemas se va a querer resolver, es decir, de qué forma se va a utilizar esta información. El segundo paso es la presentación formal, a la que se llama Modelo Conceptual para su elaboración se utiliza, mayoritariamente, el modelo Entidad Relación. El tercer paso es la traducción del modelo conceptual, a un Esquema Conceptual que cumpla las restricciones propias del sistema gestor de base de datos (SGBD), e incluso del modelo de datos que se vaya a utilizar. Los SGBD más utilizados son: MySQL Microsoft Access Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales Oracle DB2 Paradox PostgreSQL Visual FoxPro Microsoft SQL Server PostgreSQL PostgreSQL es un Sistema Gestor de Bases de Datos Relacionales Orientadas a Objetos, derivado de Postgres, desarrollado en la Universidad de California, en el Departamento de Ciencias de la Computación de Berkeley. Es un gestor de bases de datos de código abierto, brinda un control de concurrencia multi-versión (MVCC por sus siglas en inglés) que permite trabajar con grandes volúmenes de datos; soporta gran parte de la sintaxis SQL y cuenta con un extenso grupo de enlaces con lenguajes de programación. Posee una integridad referencial e interfaces nativas para lenguajes como ODBC, JDBC, C, C++, PHP, PERL, TCL, ECPG; PYTHON y RUBY. Funciona en todos los sistemas operativos Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), y Windows. Debido a la liberación de la licencia, PostgreSQL se puede usar, modificar y distribuir de forma gratuita para cualquier fin, ya sea privado, comercial o académico. La migración de bases de datos alojadas en productos comerciales hacia PostgreSQL se facilita, gracias a que soporta ampliamente el estándar SQL. PostgreSQL cuenta con una serie de características atractivas, como son la herencia de tablas (clases) y, un conjunto amplio de tipos de datos que incluyen arreglos, Binary Large Object Block (BLOB), tipos geométricos y direcciones de red. PostgreSQL incluye también, el procesamiento de transacciones, integridad referencial y procedimientos almacenados. POSTGIS. Una extensión geoespacial para POSTGRESQL POSTGIS es una extensión del sistema de base de datos PostgreSQL, que permite el almacenamiento y la manipulación de objetos geométricos vectoriales en bases de datos; incluyendo además, el Sistema de Referencia Espacial; lo que la convierte en una base de datos espacial para su utilización en Sistema de Información Geográfica. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales PostGIS ha sido desarrollado por la empresa canadiense Refraction Research Inc, especializada en productos "Open Source", como un proyecto de investigación de tecnologías de bases de datos espaciales. Está publicado bajo licencia GNU/GPL y ha sido certificado, en 2006 por el Open Geospatial Consortium (OGC), lo que garantiza la interoperabilidad con otros sistemas. La especificación OpenGis define dos formas estándares de expresar los objetos espaciales; estos son los formatos en Modo Texto (Well-Known Text -WKT) y en Modo Binario(Well-Known Binary-WKB). Ambos incluyen la información sobre el tipo de objeto y las coordenadas que conforman el objeto. Bases de datos geográficas Un sistema de información geográfica (SIG) es un “conjunto de programas, equipamientos, metodologías, datos y personas (usuarios), perfectamente integrado, de manera que hace posible la recolección de datos, almacenamiento, procesamiento y análisis de datos georreferenciados, así como la producción de información derivada de su aplicación”. Cuando se habla de datos georreferenciados, se trata de datos referidos a una posición con respecto a un sistema de coordenadas terrestres. La tecnología de los SIG busca articular las bases de datos gráficas con las bases de datos alfanuméricas que representan los diferentes rasgos del territorio, tales como caminos, cursos de agua, asentamientos poblacionales, actividades económicas, etc. Los ámbitos en que pueden ser aplicados los SIG son muy diversos, y generalmente son implementados en entornos de trabajo interdisciplinarios. Hay ejemplos de utilización de SIG en cartografía, investigaciones científicas, planificación de políticas públicas, gestión ambiental del territorio, marketing, logística, demografía, sólo por citar algunos casos. Los SIG modelan la realidad territorial para convertirla en datos geográficos que son manipulados en un entorno informatizado. Para ello utilizan los modelos de representación raster y vectorial. El modelo raster se utiliza habitualmente para representar fenómenos de la realidad que se presentan de manera continua en el espacio. En este caso el espacio se suele dividir en celdas regulares, donde cada una de estas celdas presenta un valor. Los rasgos del territorio se reconocer al analizar en conjunto dichos elementos, como sucede al visualizar una fotografía aérea compuesta de una infinidad de píxeles, o una grilla que representa las precipitaciones caídas a lo largo de un año. Este modelo fue el primero en ser utilizado, y está representado principalmente por el uso de imágenes proveniente de satélites o fotografías aéreas digitales, aunque cada vez es mayor la utilización de esta información matricial para realizar diversos procedimientos de análisis espacial. Por su parte, el modelo de representación vectorial, modeliza las datos valiéndose de primitivas geométricas, tales como puntos, líneas y polígonos. Adosados a dichas geometrías, se encuentran los atributos temáticos de los fenómenos que representan. Por ejemplo, en el caso de los cursos de agua, modelizados a través de polilíneas, se Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales pueden encontrar atributos como el nombre y categoría de los cursos de agua, el régimen hídrico, el caudal anual, etc. Figura 8. Componentes de un GIS Diferencias entre SIG y CAD La tecnología CAD (Computer-Aided Design) se basa en el uso de programas informáticos para crear representaciones gráficas de los objetos físicos en 2D o 3D, consisten básicamente en aplicaciones para generar archivos de dibujo. La potencialidad de las aplicaciones SIG frente a los CAD se basa en su capacidad de realizar operaciones espaciales integradas con una base de datos alfanumérica. En los SIG los elementos gráficos llevan asociados datos alfanuméricos (identificadores y atributos) almacenados en una tabla. Para un programa de CAD, un polígono representa una longitud de perímetro y un área encerrada, pero si este polígono representa el contorno de un edificio, en el SIG, además llevará asociado cierta información temática (el número de policía, el número de plantas, etc.) en la correspondiente base de datos. Aunque el CAD resulta mucho más cómodo para la edición gráfica y presenta mejores resultados en el renderizado, la gran cantidad de funciones que presenta la tecnología SIG no los hace comparables. En muchos de los casos, los datos obtenidos en formatos CAD son más tarde transformados a formatos SIG. Aunque es posible visualizar los formatos CAD (dwg, dgn, dxf, etc.) en programas SIG, estos formatos, sin una transformación previa, solo sirven para dar un contexto espacial ya que no permiten el análisis. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales Unidad 2. Modelos de Datos Modelos de Datos Antes de entrar a la descripción del modelo relacional, es necesario definir lo que es un modelo de dato en general. La calidad del análisis y diseño de un sistema de información que se pretende mecanizar dependerá de los modelos de datos que se utilizan para cada una de las fases de desarrollo. Además, disponer de herramientas software basadas en modelos de datos adecuados a la tarea hará más sencillo el diseño y mantenimiento. Uno de los objetivos más importantes de un SGBD es proporcionar a los usuarios una visión abstracta de los datos, es decir, el usuario va a utilizar esos datos pero no tendrá idea de cómo están almacenados físicamente. Los modelos de datos son el instrumento principal para ofrecer esa abstracción. Son utilizados para la representación y el tratamiento de los problemas. El diseño de un sistema de información, en lo que atañe a las bases de datos, tiene tres fases: Diseño conceptual: en la que se formalizan las estructuras que se observan en el mundo real. Produciendo lo que se denomina Esquema Conceptual. Diseño Lógico: en la que se estructura el conjunto de información de la fase anterior teniendo en cuenta el SGBD que se vaya a utilizar. En esta fase se obtiene el Esquema Lógico. Diseño Físico: en la que se estructuran los datos en términos de almacenamiento en los dispositivos de la computadora. Es lo que se conoce como Esquema Interno. Nivel externo o de vistas: describe la parte de la BD a la que los usuarios pueden acceder. Es la visión de estos datos que tiene un usuario cuando ejecuta aplicaciones que operan con ellos, el usuario no sabe el detalle de los datos, unas veces operará con unos y otras con otros, dependiendo de la aplicación. Si trasladamos el ejemplo a una BD relacional específica habrá, un único nivel interno y un único nivel lógico o conceptual, pero puede haber varios niveles externos, cada uno definido para uno o para varios usuarios. Podría ser el siguiente: Tabla 1. Vista de la Base de datos para el usuario. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales • Nivel externo: Visión parcial de las tablas de la BD según el usuario. Por ejemplo, la vista que se muestra en la Tabla 1 obtiene el listado de notas de alumnos con los siguientes datos: Curso, Nombre, Nombre de asignatura y Nota. • Nivel lógico y conceptual: Definición de todas las tablas, columnas, restricciones, claves y relaciones. En este ejemplo, disponemos de tres tablas que están relacionadas: – Tabla ALUMNOS. Columnas: NMatrícula, Nombre, Curso, Dirección, Población. Clave: NMatrícula. Además tiene una relación con NOTAS, pues un alumno puede tener notas en varias asignaturas. – Tabla ASIGNATURAS. Columnas: Código, Nombre de asignatura. Clave: Código. Está relacionada con NOTAS, pues para una asignatura hay varias notas, tantas como alumnos la cursen. – Tabla NOTAS. Columnas: NMatrícula, Código, Nota. Está relacionada con ALUMNOS y ASIGNATURAS, pues un alumno tiene notas en varias asignaturas, y de una asignatura existen varias notas, tantas como alumnos. • Nivel interno: En una BD las tablas se almacenan en archivos de datos de la BD. Si hay claves, se crean índices para acceder a los datos, todo esto contenido en el disco duro, en una pista y en un sector, que sólo el SGBD conoce. Ante una petición, sabe a qué pista, a qué sector, a qué archivo de datos y a qué índices acceder. Los Modelos de Datos se utilizan como: Herramienta de especificación, para definir tipos de datos y la organización de los datos de una BD específica. Soporte para el desarrollo de una metodología de diseño de BD. Formalismo para el desarrollo de familias de lenguaje de muy alto nivel, para la resolución de requerimientos y manipulación de datos. Modelo soporte de la arquitectura de los SGBD. Vehículo para investigar el comportamiento de diversas alternativas en la organización de los datos. En una primera aproximación, un modelo de datos es un conjunto de conceptos y reglas de composición de esos conceptos que, combinados de alguna forma, son capaces de representar un sistema de información, tanto en su parte estática como dinámica. Características de los modelos de datos • Expresividad: cuantos más mecanismos o conceptos de representación tenga un modelo, mayor será la cantidad de propiedades del sistema de información que pueda captar, y menor el uso de aserciones en forma de restricciones de integridad que no se pueden reflejar directamente sobre el esquema. • Simplicidad: también es deseable que el modelo sea simple para que los esquemas sean fáciles de entender por terceras personas. Debe llegarse, pues, a un equilibrio entre la potencia del modelo mencionado en el punto anterior y esa simplicidad deseable. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales • Minimalidad: cada concepto tiene un significado distinto de los demás conceptos utilizados en el modelo de datos; no se puede expresar concepto en función de otros. • Formalidad: todos los conceptos del modelo tienen una interpretación única, precisa y bien definida. Puesto que el esquema pretende ser una especificación formal del sistema de información a representar, esta cualidad permitiría el tratamiento matemático de sus conceptos. Si el modelo utiliza un lenguaje de definición gráfico, también se tendrá en cuenta: • Compleción gráfica: un modelo es gráficamente completo si todos sus conceptos poseen representación gráfica. • Facilidad de lectura: que los símbolos gráficos sean fácilmente distinguibles unos de otros. Clasificación de los modelos de datos A medida que han ido evolucionando el software y el hardware las posibilidades y las demandas de los usuarios han ido creciendo paralelamente, los modelos de datos fueron enriqueciéndose y salvando carencias de sus predecesores. Cronológicamente, es posible clasificarlos de la siguiente forma: - Primitivos: basados en sistemas de ficheros convencionales Clásicos - Jerárquico (el más conocido, IMS: IBM) - Red (CODASYL) - Relacional (desarrollado por E. Codd) - Semánticos o EER (Entidad-Relación Extendido: Chen) o RM/T (Relational Model/Tasmania: Codd) o Semántico General o Orientado a Objetos o Modelo Funcional Se dice que tanto primitivos como clásicos están basados en registros, mientras que los semánticos se apoyan en la filosofía Orientada a Objetos. Los modelos de datos primitivos se usaron durante la década de los 70, cuando aun no se utilizaban las técnicas de bases de datos. Los objetos se representaban como registros organizados en ficheros, y las relaciones mediante referencias explícitas a otros registros en algún campo del mismo. Los lenguajes de manipulación dependen por entero de la organización física de los datos, y las operaciones básicas son la lectura y la escritura. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales Para garantizar, o al menos mejorar, la independencia de las aplicaciones frente a los datos aparecen los primeros SGBD, basados en los modelos de datos clásicos. Los primeros en aparecer fueron el jerárquico y el red de CODASYL, cuyos nombres muestran cual es la estructura de datos subyacente en los modelos. Los objetos siguen siendo representados por registros pero las relaciones entre objetos se expresan, con ciertas limitaciones implícitas del modelo, mediante la estructura en que se basan. Sin embargo, la aparición del Modelo Relacional provocó la representación de los objetos como relaciones (tablas en su denominación informal), cuyas tuplas (filas en su denominación informal) identifican a ocurrencias del objeto patrón, y la vuelta a las referencias explícitas (unos atributos que relacionan un objeto con un segundo por comparación de valores iguales en uno y otro) para expresar las interrelaciones. La estructura de datos más simple y la aparición de lenguajes de especificación totalmente declarativos han hecho de este modelo el más ampliamente utilizado en los SGBD comerciales actuales. Uno de los grandes problemas que plantean los SGBD comerciales actuales, en general, es que no soportan modelos con la suficiente expresividad como para dejar libre al diseñador de sistemas de información de tediosas tareas de administración de datos a bajo nivel. Es práctica habitual utilizar en la confección del esquema conceptual (EC) modelos de datos con un fuerte potencial semántico para traducirlo después a modelos que si tienen un software comercial disponible, pero muy probablemente más pobres semánticamente. Por eso, la aparición de los modelos de datos semánticos está justificada por la pretensión de aumentar la capacidad expresiva de los modelos clásicos incorporando conceptos y mecanismos de abstracción no contemplados en los anteriores. Se utilizan preferentemente para la confección del Esquema Conceptual, y como modelo subyacente de algunos SGBD aun en experimentación. Son los más potentes pero no tienen un reflejo comercial en algún producto de amplia difusión; la representación del EC ha de traducirse a un Esquema Lógico, en general a un modelo clásico, para poder ser explotado eficientemente en algún SGBD. Así y todo, parece que el EER está teniendo alguna penetración sobre todo en herramientas de análisis y diseño de Sistemas de Información, en forma de módulo de ciertas herramientas CASE que se puede traducir de forma automática al Modelo Relacional. Otros modelos de datos, de propósito particular, se desarrollaron sobre aplicaciones concretas: cartografía, CAD/CAM, hipertexto, etc. Modelo ENTIDAD - RELACION El modelo entidad-relación es el modelo conceptual más utilizado para el diseño conceptual de bases de datos. Fue introducido por Peter Chen en 1976. Está formado por un conjunto de conceptos que permiten describir la realidad mediante un conjunto de representaciones gráficas y lingüísticas. Originalmente, el modelo entidad-relación sólo incluía los conceptos de entidad, relación y atributo. Más tarde, se añadieron otros conceptos, como los atributos compuestos y las jerarquías de generalización, en lo que se ha denominado modelo entidad-relación extendido. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales Elementos del Modelo Entidad: Es la representación de un objeto acerca del cual se desea guardar información. Por ejemplo, una base de datos para una biblioteca tendrá una entidad libro. Pero una entidad es una categoría abstracta, es decir, no representa objetos concretos, sino clases de objetos. De cada libro en concreto se va a decir que es una ocurrencia de la entidad libro. Así Don Quijote de la Mancha es una ocurrencia de la entidad libro. Atributo: Cada entidad está caracterizada por un conjunto de atributos o propiedades. El atributo es una unidad elemental de información que no se puede descomponer en unidades más pequeñas. Los atributos solo van a tomar valores en las ocurrencias concretas de las entidades. Tipos de datos más habituales Texto, Numérico, Moneda, Fecha/Hora Tabla 2. Algunos tipos de datos del estándar SQL3 en PostgreSQL Tipo en Postgres Correspondiente en SQL3 Descripción bool boolean valor lógico o booleano (true/false) char(n) character(n) cadena de caracteres de tamaño fijo date date fecha (sin hora) float4/8 float(86#86) número de punto flotante con precisión 86#86 float8 real, double precision número de punto flotante de doble precisión int2 smallint entero de dos bytes con signo int4 int, integer entero de cuatro bytes con signo money decimal(9,2) cantidad monetaria time time hora en horas, minutos, segundos y centésimas timespan interval intervalo de tiempo timestamp timestamp with time zone fecha y hora con zonificación varchar(n) character varying(n) cadena de caracteres de tamaño variable Tabla 3. Algunos tipos de datos extendidos por PostgreSQL Tipo Descripción box caja rectangular en el plano circle círculo en el plano line línea infinita en el plano Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales lseg segmento de línea en el plano path trayectoria geométrica, abierta o cerrada, en el plano point punto geométrico en el plano polygon trayectoria geométrica cerrada en el plano Tabla 4. Tipos de datos de PostgreSQL Tipo Descripción SET conjunto de tuplas aclitem lista de control de acceso bpchar caracteres rellenos con espacios, longitud especificada al momento de creación bytea arreglo de bytes de longitud variable cid identificador de secuencia en transacciones cidr dirección de red date fecha ANSI SQL 'aaaa-mm-dd' datetime fecha y hora 'aaaa-mm-dd hh:mm:ss' filename nombre de archivo usado en tablas del sistema inet dirección de red line línea geométrica '(pt1, pt2)' lseg segmento de línea geométrica '(pt1, pt2)' macaddr dirección MAC money unidad monetaria '$d,ddd.cc' name tipo de 31 caracteres para guardar identificadores del sistema numeric número de precisión múltiple oid tipo de identificación de objetos text cadena de caracteres nativa de longitud variable tid tipo de identificador de tupla, localización física de tupla time hora ANSI SQL 'hh:mm:ss' timestamp fecha y hora en formato ISO de rango limitado tinterval intervalo de tiempo '(abstime, abstime)' unknown tipo desconocido varchar cadena de caracteres sin espacios al final, longitud especificada al momento de creación xid identificador de transacción Por ejemplo, para describir una entidad libro se pueden tener atributos como título, autor, fecha de adquisición, etc. En la ocurrencia Don Quijote de la Mancha los valores de estos atributos serán: Titulo = Don Quijote de la Mancha, Autor = Miguel de Cervantes, Fecha de Adquisición = 1982. Relación (Cardinalidad): Una relación es una conexión entre dos entidades. También se admiten relaciones reflexivas, es decir, relaciones de una entidad consigo misma. Las relaciones pueden también ser atributos. En este caso, dicha relación podría también representarse mediante una entidad. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales Cardinalidad La correspondencia de cardinalidades, o razón de Cardinalidad, expresa el número de entidades a las que otra entidad puede estar asociada vía un conjunto de relaciones. La correspondencia de cardinalidades es la más útil describiendo conjuntos de relaciones binarias, aunque ocasionalmente contribuye a la descripción de conjuntos de relaciones que implican más de dos conjuntos de entidades. Para un conjunto de relaciones binarias R entre los conjuntos de entidades A y B, la correspondencia de cardinalidades debe ser una de las siguientes: o Relación 1:1 (uno a uno): se va representar mediante una línea que une las dos entidades relacionadas. En este caso, a cada ocurrencia de la entidad A le corresponde una ocurrencia de la entidad B, y viceversa. o Relación 1:N (uno a muchos): se va representar mediante una flecha que une las dos entidades relacionadas. En este caso, a cada ocurrencia de la entidad A le corresponden varias ocurrencias de la entidad B, pero a cada ocurrencia de la entidad B sólo le corresponde una ocurrencia de la entidad A. o Relación N:M (muchos a muchos): se va representar mediante una línea con flechas en sus dos extremos que une las dos entidades relacionadas. En este caso a cada ocurrencia de la entidad A le corresponden varias ocurrencias de la entidad B, y a cada ocurrencia de la entidad B le corresponden varias ocurrencias de la entidad A. Figura 9. (a) Relación 1 a 1. (b) Relación 1 a N Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales Figura 10. Relación N a M Diagrama Entidad- Relación La estructura lógica general de una base de datos se puede expresar gráficamente mediante un diagrama ER, que consta de los siguientes componentes: • Rectángulos, que representan conjuntos de entidades. • Elipses, que representan atributos. • Rombos, que representan relaciones entre conjuntos de entidades. • Líneas, que unen los atributos con los conjuntos de entidades y los conjuntos de entidades con las relaciones. Cada componente se etiqueta con la entidad o relación que representa. Además de entidades y relaciones, el modelo E-R representa ciertas restricciones que los contenidos de la base de datos deben cumplir. Una restricción importante es la correspondencia de cardinalidades, que expresa el número de entidades con las que otra entidad se puede asociar a través de un conjunto de relaciones. Por ejemplo, si cada cuenta puede pertenecer sólo a un cliente, el modelo puede expresar esta restricción. Símbolos utilizados en la notación E-R Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales Notaciones E-R alternativas Considere el diagrama entidad-relación de la Figura 11, que consta de dos conjuntos de entidades, cliente y préstamo, relacionadas a través de un conjunto de relaciones binarias prestatario. Los atributos asociados con cliente son id-cliente, nombre-cliente, calle-cliente, y ciudad-cliente. Los atributos asociados con préstamo son número-préstamo e importe. Como se muestra en la Figura 11, los atributos de un conjunto de entidades que son miembros de la clave primaria están subrayados. Figura 11. Diagrama E-R. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales El conjunto de relaciones prestatario puede ser varios a varios, uno a varios, varios a uno o uno a uno. Para distinguir entre estos tipos, se dibuja o una línea dirigida (→) o una línea no dirigida (—) entre el conjunto de relaciones y el conjunto de entidades en cuestión. • Una línea dirigida desde el conjunto de relaciones prestatario al conjunto de entidades préstamo especifica que prestatario es un conjunto de relaciones uno a uno, o bien varios a uno, desde cliente a préstamo; prestatario no puede ser un conjunto de relaciones varios a varios ni uno a varios, desde cliente a préstamo. • Una línea no dirigida desde el conjunto de relaciones prestatario al conjunto de relaciones préstamo especifica que prestatario es o bien un conjunto de relaciones varios a varios, o bien uno a varios, desde cliente a préstamo. Volviendo al diagrama E-R de la Figura 11, se ve que el conjunto de relaciones prestatario es varios a varios. Si el conjunto de relaciones prestatario fuera uno a varios, desde cliente a préstamo, entonces la línea desde prestatario a cliente sería dirigida, con una flecha apuntando al conjunto de entidades cliente (Figura 12). Figura 12. Relación 1 a N. Análogamente, si el conjunto de relaciones prestatario fuera varios a uno desde cliente a préstamo, entonces la línea desde prestatario a préstamo tendría una flecha apuntando al conjunto de entidades préstamo (Figura 13). Figura 13. Relación N a 1. Finalmente, si el conjunto de relaciones prestatario fuera uno a uno, entonces ambas líneas desde prestatario tendrían flechas: una apuntando al conjunto de entidades préstamo y otra apuntando al conjunto de entidades cliente (Figura 14). Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales Figura 14. Relación 1 a 1. Si un conjunto de relaciones tiene también algunos atributos asociados a él, entonces se unen esos atributos a ese conjunto de relaciones. Por ejemplo, en la Figura 15, se tiene el atributo descriptivo fecha-acceso unida al conjunto de relaciones impositor para especificar la fecha más reciente en la que un cliente accedió a esa cuenta. Figura 15. Atributo unido a un conjunto de relaciones. Normalización de bases de datos Las formas normales definidas en la Teoría de Base de Datos Relacionales representan una guía y una orientación para el diseño de registros. Las reglas de normalización están destinadas a prevenir anomalías en las actualizaciones e inconsistencia en los datos. Las directrices que se ofrecerán parten del supuesto de que aquellos campos que no constituyen una clave serán actualizados frecuentemente. El propósito de la normalización es mejorar la integridad de los datos a través de la minimización de la redundancia y la inconsistencia, pero con algún posible costo en ciertas aplicaciones. La normalización es el proceso de organizar los datos de una base de datos. Se incluye la creación de tablas y el establecimiento de relaciones entre ellas según reglas diseñadas tanto para proteger los datos como para hacer que la base de datos sea más flexible al eliminar la redundancia y las dependencias incoherentes. Las dependencias incoherentes pueden dificultar el acceso porque la ruta para encontrar los datos puede no estar o estar interrumpida. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales Los datos redundantes desperdician el espacio de disco y crean problemas de mantenimiento. Si hay que cambiar datos que existen en más de un lugar, se deben cambiar de la misma forma exactamente en todas sus ubicaciones. Un cambio en la dirección de un cliente es mucho más fácil de implementar si los datos sólo se almacenan en la tabla Clientes y no en algún otro lugar de la base de datos. El término normalización se usa algunas veces en relación a una forma normal particular. Esto es, un conjunto de registros puede ser normalizado con respecto a la segunda forma normal pero no con respecto a la tercera. PRIMERA FORMA NORMAL Elimine los grupos repetidos de las tablas individuales. Cree una tabla independiente para cada conjunto de datos relacionados. Identifique cada conjunto de datos relacionados con una clave principal. No debe usarse varios campos en una sola tabla para almacenar datos similares. Por ejemplo, para realizar el seguimiento de un elemento del inventario que proviene de dos orígenes posibles, un registro del inventario puede contener campos para el Código de proveedor 1 y para el Código de proveedor 2. ¿Qué ocurre cuando se agrega un tercer proveedor? Agregar un campo no es la respuesta, se requiere modificaciones en las tablas y el programa, y no admite fácilmente un número variable de proveedores. En su lugar, colocar toda la información de los proveedores en una tabla independiente denominada Proveedores y después vincular el inventario a los proveedores con el número de elemento como clave, o los proveedores al inventario con el código de proveedor como clave. La Primera Forma Normal (1FN) trata con el modelo de un registro, es decir, la forma básica o registro tipo. “Cuando se manipulan las relaciones de un modelo de visión se les trata como conjuntos matemáticos de eneadas (tuplas). Esto requiere entre otras cosas, que los atributos dentro de cada eneada sean ordenados y completos, y que los dominios permitan sólo valores simples. Los valores simples no pueden descomponerse en múltiples valores y no pueden por sí mismos ser conjuntos o relaciones." Según esto, una repetición anidada de un elemento (o de un grupo de elementos) no puede ser representada en un modelo como una sola relación. Ahora bien, si un grupo anidado tiene tamaño acotado y es pequeño, es posible representarlo usando un número fijo de atributos asignados a diferentes papeles sobre el mismo dominio. Debido a que los grupos pueden ser más pequeños que el número máximo fijo, el dominio debe incluir el valor nulo o indefinido. Con mayor frecuencia se traslada el grupo anidado a otra relación. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales Al proceso de eliminar grupos anidados se le denomina NORMALIZACION, y a las relaciones resultantes se les considera expresadas en la PRIMERA FORMA NORMAL. SEGUNDA Y TERCERA FORMAS NORMALES Estas tratan con la relación entre un campo clave y uno o más campos dependientes. Bajo la Segunda y Tercera Formas Normales un campo dependiente debe proporcionar un dato acerca de la clave (relacionado con la clave), con toda la clave y con ningún otro campo. Además, debe satisfacer la primera forma normal. Trataremos ahora solamente con datos de un solo valor. Un dato de un solo valor sería una relación uno a muchos, tal como el Departamento de un empleado o una relación uno a uno tal como la esposa de un empleado. Por lo tanto, la frase “provee un dato acerca de X” significa relación uno a uno o uno a muchos entre X e Y. SEGUNDA FORMA NORMAL Crea tablas independientes para conjuntos de valores que se apliquen a varios registros. Relaciona estas tablas con una clave externa. Los registros no deben depender de nada que no sea una clave principal de una tabla, una clave compuesta si es necesario. Por ejemplo, considerar la dirección de un cliente en un sistema de contabilidad. La dirección se necesita en la tabla Clientes, pero también en las tablas Pedidos, Envíos, Facturas, Cuentas por cobrar y Colecciones. En lugar de almacenar la dirección de un cliente como una entrada independiente en cada una de estas tablas, almacenarla en un lugar, ya sea en la tabla Clientes o en una tabla Direcciones independiente. La Segunda Forma Normal (2FN) es violada cuando un campo dependiente es un dato acerca de un subconjunto de la clave. Par supuesto, esto es relevante sólo si la clave es compuesta. TERCERA FORMA NORMAL Elimina los campos que no dependan de la clave. Los valores de un registro que no sean parte de la clave de ese registro no pertenecen a la tabla. En general, siempre que el contenido de un grupo de campos pueda aplicarse a más de un único registro de la tabla, hay que considerar colocar estos campos en una tabla independiente. Por ejemplo, en una tabla Contratación de empleados, puede incluirse el nombre de la universidad y la dirección de un candidato. Pero necesita una lista completa de universidades para enviar mensajes de correo electrónico en grupo. Si la información de las universidades se almacena en la tabla Candidatos, no hay forma de enumerar las universidades que no tengan candidatos en ese momento. Crear una tabla Universidades independiente y vincularla Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales a la tabla Candidatos con el código de universidad como clave solucionará el inconveniente. EXCEPCIÓN: Cumplir la tercera forma normal, aunque en teoría es deseable, no siempre es práctico. Si se tiene una tabla Clientes y se desea eliminar todas las dependencias posibles entre los campos, se debe crear tablas independientes para las ciudades, códigos postales, representantes de venta, clases de clientes y cualquier otro factor que pueda estar duplicado en varios registros. En teoría, la normalización merece el trabajo que supone. Sin embargo, muchas tablas pequeñas pueden degradar el rendimiento o superar la capacidad de memoria o de archivos abiertos. Puede ser más factible aplicar la tercera forma normal sólo a los datos que cambian con frecuencia. Si quedan algunos campos dependientes, diseñar la aplicación para que pida al usuario que compruebe todos los campos relacionados cuando cambie alguno. La Tercera Forma Normal (1FN) es violada cuando un campo dependiente es un dato acerca de otro campo dependiente. CUARTA Y QUINTA FORMAS NORMALES La cuarta forma normal, también llamada Forma normal de Boyce Codd (BCNF, Boyce Codd Normal Form), y la quinta forma normal existen, pero rara vez se consideran en un diseño real. Si no se aplican estas reglas, el diseño de la base de datos puede ser menos perfecto, pero no debería afectar a la funcionalidad. La Cuarta y Quinta Formas Normales tratan con datos multivaluados (múltiples valores). Un dato multivaluado puede corresponder a una relación muchos a muchos, como con EMPLEADOS y HABILIDADES, o a una relación muchos a uno, como con los HIJOS de un EMPLEADO (asumiendo que sólo un pariente es empleado). Por muchos a muchos entendemos que un empleado puede tener diversas habilidades y que una habilidad puede residir en diversos empleados. Note que vemos la relación muchos a uno entre hijos y padres como un dato de un solo valor acerca de un hijo pero como un dato multivaluado acerca de un padre. En un sentido, la Cuarta y Quinta Formas Normales están alrededor de claves compuestas. Estas formas normales procuran minimizar el número de campos involucrados en una clave compuesta. CUARTA FORMA NORMAL Bajo la Cuarta Forma Normal (4FN) un registro tipo no deberá contener dos o más datos multivaluados independientes acerca de una entidad. Además, el registro debe satisfacer la Tercera Forma Normal. QUINTA FORMA NORMAL La Quinta Forma Normal (5FN) trata con casos donde la información puede ser reconstruida de muchas piezas de información las cuales pueden ser mantenidas con poca redundancia. La Segunda, Tercera y Cuarta Formas Normales también sirven a este propósito pero la Quinta Forma Normal generaliza los casos no cubiertos por ellas. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales Unidad 3. El modelo relacional. En el modelo relacional se utiliza un grupo de tablas para representar los datos y las relaciones entre ellos. Cada tabla está compuesta por varias columnas, y cada columna tiene un nombre único. El modelo relacional es un ejemplo de un modelo basado en registros. Los modelos basados en registros se denominan así porque la base de datos se estructura en registros de formato fijo de varios tipos. Cada tabla contiene registros de un tipo particular. Cada tipo de registro define un número fijo de campos, o atributos. Las columnas de la tabla corresponden a los atributos del tipo de registro. El modelo de datos relacional es el modelo de datos más ampliamente usado, y una amplia mayoría de sistemas de bases de datos actuales se basan en el modelo relacional. El modelo relacional se encuentra a un nivel de abstracción inferior al modelo de datos E-R. Los diseños de bases de datos a menudo se realizan en el modelo E-R, y después se traducen al modelo relacional. Base de datos relacionales Es el modelo más utilizado hoy en día. Una base de datos relacional es básicamente un conjunto de tablas, similares a las tablas de una hoja de cálculo, formadas por filas (registros) y columnas (campos). Los registros representan cada uno de los objetos descritos en la tabla y los campos los atributos (variables de cualquier tipo) de los objetos. Las tablas comparten algún campo entre ellas. Estos campos compartidos van a servir para establecer relaciones entre las tablas que permitan consultas complejas. La idea básica de las bases de datos relacionales es la existencia de entidades (filas en una tabla) caracterizadas por atributos (columnas en la tabla). Cada tabla almacena entidades del mismo tipo y entre entidades de distinto tipo se establecen relaciones. Las tablas comparten algún campo entre ellas, estos campos compartidos van a servir para establecer relaciones entre las tablas. Los atributos pueden ser: Números enteros Números reales Cadena de caracteres de longitud variable Estos tipos simples se denominan tipos atómicos y permiten una mayor eficacia en el manejo de la base de datos pero a costa de reducir la flexibilidad a la hora de manejar los elementos complejos del mundo real y dificultar la gestión de datos espaciales, en general suponen un problema para cualquier tipo de datos geométricos. Las relaciones que se establecen entre los diferentes elementos de dos tablas en una base de datos relacional pueden ser de tres tipos distintos: Relaciones uno a uno, se establecen entre una entidad de una tabla y otra entidad de otra tabla. Relaciones uno a varios, se establecen entre varias entidades de una tabla y una entidad de otra tabla. Relaciones varios a varios, se establecen entre varias entidades de cada una de las tablas. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales Estructura de las Bases de Datos Relacionales Dada una serie de conjuntos D(1),D(2),...,D(n), R es una relación sobre estos n conjuntos, si es un conjunto de n-tuplas ordenadas d(1),d(2),..,d(n), tales que d(1) pertenece a D(1),d(2) pertenece a D(2),..,d(n) pertenece de D(n). Los conjuntos D(1),D(2),..,D(n) son los dominios de R, y n el grado de la RELACION. TABLA 5. "ARTICULOS" Nro_Art. Descripción Un_Medida A001 Arroz Tn. A002 Maíz Tn. A003 Sorgo Kg. A004 Soja Tn. A005 Mandioca Kg. A006 Batata Kg. Existencia 1230 852 12580 872 9825 18228 El grado de esta relación es de 4. El conjunto D(1) es el dominio de los códigos de artículo, el D(2) es el dominio de las descripciones, el D(3) es el dominio de las Unidades de Medidas, etc. Puede ser que la descripción <Pimiento> pertenezca al dominio de las descripciones pero no había ningún código de artículo (A007), con esa descripción, en el instante específico en que se generó la tabla (temporalidad de datos). Cada renglón o fila de la tabla representa una TUPLA de la relación, el número de tuplas de la relación se llama CARDINALIDAD de la relación, en el ejemplo anterior de la tabla, la CARDINALIDAD de la relación ARTÍCULO es SEIS (6). LEYES BÁSICAS del entorno relacional Las leyes, surgen de la teoría matemática equivalente, la cual esta provista de una sólida fundamentación teórica, que permiten mayor integración de datos y mejores mecanismos para su recuperación, siendo estas: 1 2 3 4 5 6 7 8 1. En un sistema relacional, la tabla puede contener un solo tipo de registro. 2. Cada registro un número fijo de campos (columnas) con nombres específicos. 3. La base de datos generalmente contendrá muchas tablas, o sea que los diferentes tipos de registros, estarán en diferentes tablas, uno por tabla. 4. En la tabla el nombre de cada campo debe ser distinto, y para cada campo solo se permite un solo valor y no un conjunto de valores (atomicidad de datos). 5. Cada registro (instancia) de una tabla es único, no hay duplicados. 6. El orden de los registros no está determinado, son incorporados uno a continuación del otro. 7. Para cada campo definido existe un conjunto de valores posibles que forman el DOMINIO (de definición de ese campo). 8. Se pueden crear nuevas tablas, relacionando valores de campos Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales procedentes de tablas ya existentes, mientras que en la nueva tabla se haya definido el mismo dominio para los valores que puedan tomar el o los campos que queremos RELACIONAR. La formación de nuevas tabla a partir de las existentes es la esencia del PROCESO RELACIONAL. DOMINIOS y ATRIBUTOS Es importante diferenciar entre un dominio y atributo (columna). Un atributo representa el uso de un dominio dentro de una RELACION. Para ver mejor esta diferencia de la tabla 2, al atributo UNIDADES de MEDIDA lo llamaremos FORMAS de MEDIR, entonces podemos decir que el atributo. FORMAS de MEDIR usa los posibles valores del dominio UNIDADES de MEDIDA (Tn., Kg.). En una Base de Datos Relacional se requiere que todas las relaciones satisfagan la condición de que cada valor de atributo en cada tupla sea ATOMICO, esto es que en la intersección de una fila con una columna exista un solo valor y no un conjunto de valores. Se permite es esa intersección hasta un valor NULO, representando algo <<desconocido>>. De una RELACION que satisface lo anterior, se dice que está NORMALIZADA. Relación Grado 2 Tabla 6. Partimos de una tabla de PEDIDOS No Normalizada Proveedor Art.- Cantidad P001 A001 - 350 A002 - 200 A004 - 100 P002 A002 A003 - 150 - 240 P003 A001 A003 A005 - 550 - 400 - 600 Relación Grado 3 Tabla 7. N O R M A L I Z A D A PROVEEDOR ARTICULO CANTIDAD P001 A001 350 P001 A002 200 P001 A004 100 P002 A002 150 P002 A003 240 P003 A001 500 P003 A003 400 Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales P003 A005 600 El enfoque relacional solo admite relaciones normalizadas: La selección no impone restricción real sobre lo que se puede representar. La simplificación de la estructura de los datos, conduce a simplificaciones en muchas otras Áreas (Programador de Aplicación, Usuarios Finales, etc.). LLAVES o CLAVES Dentro de una relación especifica, hay un atributo cuyos valores son únicos, dentro de esta y por lo tanto se puede usar para identificar las tuplas de la relación. También se denomina a esta Clave Primaria Simple o Llave Primaria Simple. No toda relación posee llave primaria de un solo atributo, pero la relación tendrá alguna combinación de atributos que tomados en conjunto, tienen la propiedad de la identificación única, a esta llave se la denomina Compuesta. Toda relación tiene una llave primaria (tal vez compuesta). Se presenta también la situación de que una relación tenga más de un atributo/s que posea/n la propiedad de identificación única, a los cuales se ha denominado claramente como llave-clave CANDIDATA. Entonces una de ellas pasara a ser la llave primaria y el/las llaves restantes pasaran a ser llaves ALTERNAS. Por lo general las tuplas representan a la ENTIDAD del mundo real y la llave primaria, es el identificador único para esas entidades. REGLA DE INTEGRIDAD 1 (Integridad de la Entidad) El/Los atributos (campos) que componen la llave (clave) primaria no deben ser NULOS. Esto es porque las entidades deben ser distinguibles, o tener una identificación única. La clave primaria realiza la función de identificación única en una base de datos relacional. Es común que una relación (PEDIDOS) incluya otras relaciones, como son la de Proveedores y Artículos, de no cumplirse lo anterior una tupla de la relación pedidos puede apuntar a un proveedor que no exista. DOMINIO PRIMARIO: un dominio es primario si y solo si, existe alguna clave primaria de un solo atributo definida sobre ese dominio. Cualquier relación que incluya un atributo que se defina sobre un dominio primario, debe cumplir con la siguiente regla: REGLA DE INTEGRIDAD 2 (Integridad de Referencia) Dada un dominio primario D, y sea R(1) una relación con atributo A (llave alterna) que se define sobre D, entonces en un instante dado cada valor de A en R(1) Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales debe ser no nulo e igual a V, donde V es el valor de la llave primaria de alguna tupla de alguna relación R(2) con clave primaria definida en D. R(2) debe existir, y si A fuere primaria es más fácil cumplir. No se debe limitar a un solo acceso por clave primaria, se puede ocupar muchas claves alternativas. EXTENSIONES Y COMPRENSIONES Una base de datos relacional tiene dos componentes, extensión y comprensión. La extensión de una relación es el conjunto de tuplas que aparecen en esa relación en un instante dado, esta puede cambiar en el tiempo, cuando se crea, borra o modifica una tupla, es equivalente a una VISTA. La comprensión de una relación es independiente del tiempo, es la parte permanente de la relación, es lo que se especifica en el esquema relacional, es la que define todas las extensiones admisibles. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales Anexo Actividades para poner en práctica los modelos conceptuales y lógicos. 1. Crear un esquema entidad-relación que permita almacenar datos geográficos referidos a Argentina, teniendo en cuenta los datos censales 2010, según la imagen precedente. Se almacenará el nombre y cantidad de hogares encuestados de cada localidad, además se tendrá en cuenta la disponibilidad de electrodomésticos. Necesitamos también identificar inequívocamente las provincias que conforman el territorio argentino y las localidades de la provincia de Corrientes mediante un identificar único. Organizar la información en forma de tabla o cuadro. Tener en cuenta los tipos de datos necesarios. Crear las relaciones que considere necesarias entre las tablas para el correcto funcionamiento de la base de datos. 2. Realizar un esquema entidad/relación que sirva para almacenar información geográfica. Para ello hay que tener en cuenta: Se almacenan los siguientes accidentes geográficos: ríos, lagos, mesetas, desiertos, llanuras y montañas. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales De cada accidente se almacenan su posición horizontal y vertical según el eje de la tierra, además de su nombre. De los ríos se almacena su longitud, de las montañas su altura y de los lagos su extensión (características). Se almacena también información sobre cada país dónde se encuentra dicho accidente geográfico: nombre, extensión, densidad y su población. Se almacena también los nombres de cada región/localidad por dónde pasa el accidente. Organizar la información en forma de tabla o cuadro. Tener en cuenta los tipos de datos necesarios. Crear las relaciones que considere necesarias entre las tablas para el correcto funcionamiento de la base de datos. 3. Realizar una Base de Datos para controlar el movimiento de una biblioteca. La misma estará compuesta por tres tablas: socios, libros y préstamos. Organizar la información en forma de tabla o cuadro. Según las tablas precedentes tener en cuenta los tipos de datos necesarios, analizar qué datos faltan, cambiarían, y/o utilizarían como clave: Nro_socio 1 2 3 4 Nombre Pedro Oil José M. Foro Elba Lazo Marta Cana Nro_Libro 1 2 3 4 Titulo El meteorólogo La fiesta El golpe La furia Dirección Los Tehuelches Montevideo Las piedras Montevideo Nro_tel 3794244858 379154352714 382154342007 3614635921 Autor Aitor Menta Encarna Vales Marcos Corro Elbio Lento Fecha_Inscrip 12/12/84 02/03/97 02/06/00 15/08/08 Fecha_Edición 12/12/54 02/03/87 02/06/90 25/12/94 IDPretamo Nro_Socio Nro_Libro Fecha_retiro Fecha_Entrega 1 1 1 12/12/03 22/12/03 2 2 1 02/02/03 12/02/03 3 5 2 02/02/03 12/02/03 4 2 4 03/08/03 13/08/03 Crear las relaciones que considere necesarias entre las tablas para el correcto funcionamiento de la base de datos. Lic. Jaquelina E. Escalante Teoría Bases de Datos Espaciales 4. Teniendo en cuenta la imagen del diagrama E-R de una entidad bancaria generar el enunciado, y las tablas indicando los tipos de datos necesarios. 5- Una compañía de seguros de autos de nivel nacional, nos pide que realicemos el esquema conceptual y lógico necesario a fin de implementar una Base de Datos que cumpla con los siguientes aspectos: Organizar la información en forma de tabla o cuadro con al menos cuatro registros en cada tabla. Tener en cuenta los tipos de datos necesarios. Crear las relaciones que considere necesarias entre las tablas para el correcto funcionamiento de la base de datos. Información a tener en cuenta: Ciudades= idCiudad + nombreCiudad Autos= patente + idMarca + modelo + año Marcas= idMarca + descripción Propietarios= dni + nombre + apellido + idCiudad Pólizas= nroPoliza + dniPropietario + patente + tipoCobertura Participantes = nroInforme + nroPoliza + estado ActasSiniestros = nroinforme + fecha + hora + tipoSiniestro + cobertura Lic. Jaquelina E. Escalante