¿Base de Datos? Las definiciones de Base de Datos son numerosas. Todas coinciden en que es un Conjunto de Datos Almacenados en un Soporte de Acceso Directo. Los Datos están Interrelacionados y Estructurados de acuerdo a un Modelo que sea capaz de Recoger el Máximo Contenido Semántico. Definición 1: "Colección de Datos Interrelacionados Almacenados en Conjunto sin Redundancias Perjudiciales o Innecesarias; su finalidad es servir a una o más aplicaciones de la mejor forma posible; los datos se almacenan de modo que resulten independientes de los programas que los usan; se emplean métodos bien determinados para incluir nuevos datos y para modificar o extraer los datos almacenados". Martin, 1975. Definición 2: "Colección integrada y generalizada de datos, estructurada atendiendo a las relaciones naturales de modo que suministre todos los caminos de acceso necesarios a cada unidad de datos con objeto de poder atender todas las necesidades de los diferentes usuarios". Deen, 1985. Definición 3: "Colección de datos integrados, con redundancia controlada y con una estructura que refleje las interrelaciones y restricciones existentes en el mundo real; los datos, que han de ser compartidos por diferentes usuarios y aplicaciones, deben mantenerse independientes de éstas, y su definición y descripción, únicas para cada tipo de datos, han de estar almacenadas junto con los mismos. Los procedimientos de actualización y recuperación, comunes y bien determinados, habrán de ser capaces de conservar la integridad, seguridad y confidencialidad del conjunto de los datos". A.de Miguel, 1993. Definición 4: "Una Base de Datos consiste en alguna Colección de Datos Persistentes e Independientes Usados por una Organización Determinada." (Date, 1995) 0.1.- Características del Dato: No efímero, en el sentido que permanece en el tiempo Estructurado, para que facilite el compartirlos por aquellos que lo necesiten. Operacional, Transaccional, manipularlos aplicando operadores para obtener resultados Sentido Semántico Integro, en el sentido que refleja una Realidad Existente De hecho los datos que contiene una Base de Datos tiene una característica especial, se les reconoce como Datos de Operación. Datos de Operación: los datos de una Base de Datos se consideran DATOS de OPERACION, distinguiéndose de los Datos de Entrada y de Salida. Una Base de Datos, es un Conjunto de Datos de Operación Almacenados y Utilizados por los Sistemas de Aplicación de una Organización Específica. Cualquier organización necesita disponer de una gran cantidad de datos acerca de su funcionamiento. Estos constituyen sus datos de operación. Los datos de Operación no incluyen datos de entrada o de salida, colas de espera de trabajo o cualquier otro dato de índole transitoria. 0.1.1 Conceptos Erróneos de Base de Datos Para entender esto, presentemos algunos conceptos erróneos que se asumen en relación a Base de Datos, Estos son: - ... la BD es un sinónimo de Sistema de Información Gerencial (SIG) o Sistema de Información para Ejecutivos (SIE). - ... una BD significa el desarrollo de sistemas complejos. - ... aplicar BD es realizar el desarrollo de aplicaciones con un Sistema de Gestión de Base de Datos (SGBD). - ... todos los items (elementos) de datos de la organización están contenidos en la BD, como una combinación simple de los mismos. - ... hay únicamente una BD y cada elemento de los datos es almacenado una sola vez. - ... cada aplicación debe contar con su propia BD. - ... convertir a BD es redefinir los archivos de un sistema desarrollado en forma tradicional a un Sistema de Gestión de Base de Datos (SGBD). - ... un Sistema de Gestión de Base de Datos (SGBD) es un Sistema de Gestión de Archivos (SGA). 0.1.2 Mas…. Conceptos de Base de Datos Veamos el concepto de BD a partir de una serie de definiciones u opiniones de diferentes personalidades: - "... BD es una colección de información que ha sido creada para satisfacer uno o más objetivos precisos" de Michel Adiba & Claude Delobel en "Les Modeles Relationnels de Base de Donnes", 1976. - "... BD es la colección de ocurrencias de múltiples tipos de registros, conteniendo relaciones entre los registros, datos agregados y elementos de datos" de James Martin en "Computer Data-Base Organization", 1977. - "... BD es la colección de datos operacionales almacenados que son usados por el sistema de aplicaciones de una determinada empresa" de C.J. Date, 1981. - "... BD es una colección no redundante de datos compatible entre diferentes aplicaciones" de Howe, 1983. - "... BD es una colección de información organizada que a través de mecanismos, facilita el uso de la información" de Paul Jones &Robert Curtice, 1988. Una Síntesis de Cada Una de Estas Definiciones nos lleva a Consolidar el Concepto diciendo que: "Base de Datos es la representación de la realidad (entiendase como organización) en forma de datos; los que estan entrelazados de la manera mas coherente posible, almacenados con una redundancia calculada y estructurados de tal manera que facilite su explotación, y que se pueda satisfacer las necesidades de información de los diferentes usuarios". CONCEPTOS: Base de Datos: conjunto de datos relacionados, con una determinada estructura lógica, almacenados físicamente en forma de ficheros informáticos. Redundancia: un mismo dato almacenado varias veces. Problemas: 1) Gasto de capacidad de almacenamiento 2) Posibilidad de información inconsistente. Ejemplo: edad de una persona. Las bases de datos pretenden reducir en lo posible la existencia de redundancia en los datos almacenados. Integridad: ¿son veraces y consistentes los datos? ¿verifican las restricciones que pudieran haberse definido sobre ellos? ¿son correctos los datos después de un fallo de hardware o software? Ejemplos: Apellido de una persona (comprobación de la letra). Fecha de nacimiento de una persona (no todos los valores de días, meses y años ..........son correctos). Edad de una persona (valor no negativo). "No puede existir en la base de datos ninguna persona cuyos ingresos medios en ..........los últimos 5 años no excedan una determinada cantidad", etc. Independencia de los datos: inmunidad de las aplicaciones a los cambios de la estructura de almacenamiento de los datos y su estrategia de acceso. Características que son propias de las bases de datos : Una base de datos no solo debe almacenar entidades y atributos (recordar los sistemas tradicionales de archivos), sino que también debe almacenar interrelaciones entre datos. La redundancia de datos debe ser controlada, de forma que no existan duplicidades perjudiciales ni innecesarias. Las redundancias físicas, convenientes muchas veces a fin de responder a objetivos de eficiencia, deben ser tratadas por el mismo sistema, de modo que no puedan producirse incoherencias. Esto significa que en las bases de datos NO está permitida la redundancia lógica, pero si se admite cierta redundancia física por motivos de eficiencia. Las bases de datos pretenden servir a toda la organización, es decir a múltiples usuarios y a diferentes aplicaciones (recordando los sistemas tradicionales de archivos). La independencia, tanto lógica como física, de los tratamientos sobre los datos y estos mismos, ha tenido una enorme influencia en la arquitectura de los SGBD (recordar los sistemas tradicionales de archivos). La definición y descripción del conjunto de datos contenido en la base debe ser única e integrada con los mismos datos. (recordar los sistemas tradicionales de archivos). En las bases de datos, la descripción, y en algunos casos, también una definición y documentación completas (metadatos) se almacenan junto con los datos, de modo que éstos están documentados, y cualquier cambio que se produzca en la documentación debe quedar recogido en el sistema. La actualización y recuperación de las bases de datos debe realizarse mediante procesos bien determinados, incluidos en el SGBD; procedimientos que han de estar diseñados de modo que se mantenga la integridad, seguridad y confidencialidad de la base. Aunque usualmente se utilizan indistintamente los términos "datos" e "información", en rigor existe una importancia distinción entre ellos: "Datos" se refiere a los valores registrados físicamente en la base de datos, e "Información" alude al significado de esos valores según el sentido que les otorgue un humano. El contenido de la base de datos puede estructurarse en tres niveles: 1. Campo: unidad de datos individual de menor tamaño y con significado pleno. Los campos pueden agruparse para constituir otros más complejos (ej. fecha de nacimiento). Pueden ser de naturaleza numérica o alfabética, en general. Tienen un tamaño asociado, medido físicamente en bytes. 2. Registro: conjunto de campos intrínsecamente relacionados mediante una significación común a una entidad. Suele constituir la unidad básica de acceso a la base de datos (contenido que se puede almacenar o recuperar en un solo acceso). 3. Fichero (FILE): conjunto de ocurrencias de un mismo tipo de registro. El objetivo de disminuir la redundancia de un conjunto de datos determina dos características fundamentales que poseerá cualquier sistema de Bases de Datos: Integrada: se entiende que una base de datos puede considerarse como una unificación de varios archivos de datos independientes, donde se elimina parcial o totalmente cualquier redundancia entre los mismos. P.e. una base de datos específica puede contener registros de TRABAJADOR, que incluyen el nombre, dirección, departamento, salario, etc. y, existir registros de CAPACITACION que representan inscripciones de empleados en cursos de capacitación. Supongamos que para llevar a cabo el proceso de administración de los cursos se necesita conocer el departamento de cada estudiante inscrito. Desde luego, no hay necesidad de incluir este dato (redundante) en los registro de CAPACITACION, siempre se puede obtener recurriendo a los registros de TRABAJADOR correspondiente. Compartida: Se entiende que partes individuales de la Base de Datos pueden compartirse entre varios usuarios distintos, en el sentido que cada uno de ellos puede tener acceso a la misma parte de la Base de Datos y utilizarla con propósitos diferentes. Tal comportamiento es en verdad consecuencia del hecho de que la Base de Datos es integrada. Independencia Dato-Proceso Una de las principales ventajas que provee una base de Datos es la independencia entre los datos y los tratamientos que se hacen de ellos. A diferencia de los sistemas orientados a procesos, en los cuales los datos eran sumamente dependientes de los programas al extremo que lenguajes como COBOL definían en su código la estructura de los archivos, esto lo podemos ver actualmente en C y Pascal. Lo anterior es asimilable a los cambios que organizaciones, generalmente aquellos son de banco que cambia su imagen corporativa, que se eliminen funciones de atención a público o de reducción de personal, etc. sufren las Forma, un agreguen o producción, Los cambios de Fondo no son habituales en las organizaciones, ellos tiene que ver con cambios en la Misión de la Organización, en los Objetivos. Si un banco cambia de imagen corporativa –logo, forma de atención, etc., son cambios de Forma y tienen básicamente que ver con variaciones en los procesos y eventualmente con algunos datos. Ahora si el banco quiere transformarse en una Sociedad Financiera, entonces la situación es más compleja y profunda, la misión organizacional cambia, el objetivo cambia y, por lo mismo, el cambio es radical afectando todos los elementos que componen la organización, todos aquellos elementos donde se refleja el sentido organizacional, es decir afecta directamente a los datos y sus relaciones cambio que indirectamente afectaría a los procesos que manejan estos datos. El concepto de Base de Datos rescata aquella dependencia que tienen los procesos de los datos y la radicaliza priorizando la independencia de estos últimos, determinando mecanismos de definición y de descripción que no requieren de procesos. 1.3.-Ventajas de las bases de datos Cuadro resumen de las ventajas de las bases de datos Referidas a Los datos Ventajas Independencia de estos respecto de los Los resultados Los usuarios tratamientos y viceversa Mejor disponibilidad de los mismos Mayor eficiencia en la recogida, codificación y entrada Mayor coherencia Mayor valor informativo Mejor y más normalizada documentación de la información Acceso más rápido y sencillo de los usuarios finales Más facilidades para compartir los datos por el conjunto de los usuarios Mayor flexibilidad para atender a demandas cambiantes. 1.4.-Desventajas de las bases de datos Cuadro resumen de las desventajas de las bases de datos Relativas a Desventajas La implantación Los usuarios Costosa en equipos (lógico y físico) Ausencia de estándares Larga y difícil puesta en marcha Rentabilidad a mediano plazo Personal especializado Desfase entre teoría y práctica Análisis del cuadro anterior Instalación costosa: Referido a equipos, nuevas instalaciones o ampliaciones, sistemas operativos, compiladores, SGBD comerciales, computadores más poderosos, etc. Personal especializado: es clave la administración de la base de datos, se requiere de conocimientos específicos. Desfase entre teoría y práctica: muchos ejecutivos asumen que ciertas funcionalidades son ya un hecho, cuando en realidad son estudios teóricos. Existe también una resistencia al cambio, sobre todo que este involucra a toda la organización. En el éxito de esto el papel mediador de los profesionales de informática es fundamental, sobre todo en organizaciones grandes donde una base de datos se puede ver como la centralización del poder en manos de unos pocos, generalmente los encargados de su administración. Un sistema de bases de datos contempla los siguientes componentes: La base de datos El Sistema de Gestión de Bases de Datos, Manejador de la Base de Datos(SGBD, DBMS) o motor, tal como Oracle, Sybase, etc. Programas de aplicación Un conjunto de usuarios (finales, DBA(programas de acceso a la base de datos), programadores de aplicaciones, etc.) Máquinas Programas utilitarios( generadores de informes, de interfaces, herramientas de desarrollo, de administración, etc.) Clasificación de las bases de datos Desde el punto de vista de la consulta, una base de datos puede ser: Online, si su soporte físico es la memoria de un ordenador de servicios y es consultada a distancia, mediante comunicación telemática, desde un equipo informático terminal. De esta forma, el usuario se conecta al ordenador que contiene la información y realiza las operaciones que desee, desconectándose al final. Sólo utiliza el ordenador de la base de datos el tiempo que tarda en hacer la consulta, compartiendo tiempo y ordenador con otros múltiples usuarios que también pueden estar accediendo. Autónoma, si se encuentra en un soporte independiente, fácilmente manejable e intercambiable, y puede ser consultada en el ordenador del propio usuario. Éste es el caso, por ejemplo, de las bases de datos que actualmente se están ofreciendo en soporte CD-ROM. Es interesante observar que el usuario no tiene la "propiedad", en el sentido jurídico, de la base de datos. Desde el punto de vista de la Comercialización, una base de datos puede ser: Abierta si se ofrece comercial o gratuitamente al mercado o público en general que pueda estar interesado. Por ejemplo, una base de datos de legislación, estadísticas varias, productos comerciales, etc. Cerrada si la base de datos es desarrollada por una persona física o jurídica, ya sea privada o pública, para su uso interno. Por ejemplo, una base de datos de clientes de un gran almacén, de contribuyentes, etc. Desde el punto de vista de la Localización Geográfica, una base de datos puede ser: Centralizada: todos los datos están físicamente almacenados en el mismo sistema informático y bajo un control unitario. Los datos pueden estar aplicaciones y usuarios. compartidos por múltiples Distribuida: los datos están almacenados en varios sistemas informáticos geográficamente conectados mediante una red telemática. repartidos y Problema de la localización de los datos. La administración de la base de datos puede realizarse en varios lugares distintos y por personas distintas. Toda esta problemática debe ser transparente a los usuarios, el cual no necesita saber dónde están realmentte almacenados los datos a los que accede. Modelo de datos: estructura general de los datos y técnicas de acceso proporcionadas por un SGBD. Un SGBD usa siempre un único modelo de datos. Hay tres modelos de datos posibles: Relacional. Es el más empleado. Todos los datos visibles al usuario están organizados estrictamente como tablas de valores. Todas las operaciones sobre la base de datos operan sobre esas tablas. Cada fila de una tabla es una instancia de los datos. Cada columna de una tabla es un atributo (valor indivisible que tiene significado por sí solo). Es el modelo de datos más sencillo y cercano a la forma humana de organizar la información. SGBD relacionales La implementación en un SGBD del modelo relacional no es sencilla dada la potencia teórica del modelo. Requiere un relativamente elevado espacio en disco y memoria de ordenador para su funcionamiento. Las características que debe tener un SGBD relacional son las siguientes: 1. Poder manejar la base de datos como un todo. 2. A nivel lógico, todos los datos se representan mediante valores contenidos en tablas. 3. Un dato debe ser accesible especificando un valor de clave primaria, un nombre de tabla y un nombre de atributo. 4. Puede haber valores nulos. 5. La descripción del diseño de la base de datos (catalog) se considera también a nivel lógico como valores tabulares y debe ser manipulable de la misma manera que la propia información de la base de datos. 6. Los datos deben ser físicamente independientes de los programas de aplicación que trabajen sobre la base de datos. 7. En lo posible, las aplicaciones deben ser independientes de los cambios realizados en las tablas. 8. La definición de reglas y restricciones de integridad debe ser inherente al sistema y debe poder realizarse mediante el DDL. No se debe dejar a las aplicaciones el mantenimiento de la integridad. 9. Se debe lograr, en o posible, independencia respecto a la distribución física de los datos. 10.Un SGBD relacional puede tener asociado un DML con procedimientos que permita tratamientos tupla a tupla por separado (registro a registro), pero debe impedirse que mediante un tratamiento de este tipo puedan soslayarse o ignorarse las restricciones de integridad. Red. También denominado modelo CODASYL. Fue el primero en aparecer comercialmente, a principios de los años 70. Se caracteriza por almacenar direcciones de otros datos junto a la misma información. Es un modelo cercano al modo de almacenamiento interno del ordenador. Los datos se expresan como registros y las relaciones entre datos como sets. Dos datos están unidos por una dirección de memoria almacenada al lado de uno de ellos. Esa dirección es la del otro dato. Las direcciones son propias del ordenador, y no tienen sentido lógico para las personas. El tipo de registro es el equivalente a una tabla en el modelo relacional, y se implementa físicamente mediante un fichero. Jerárquico. Es muy similar al modelo de datos en red, pero con la salvedad de que los registros se organizan con estructura de árbol. En resumen, podemos deducir características de Base de Datos son: que las principales 1. Conjunto (colección) de datos. 2. Datos interrelacionados y estructurados. 3. Redundancia controlada. 4. Independencia de datos y de procesos. 5. Soporta múltiples usuarios y múltiples aplicaciones. 6. La actualizacion y recuperacion de datos debe asegurar Integridad, Seguridad y Confidencialidad de los datos. 0.1.3 Conceptos Asociados a Base de Datos Cuando nos referimos a Base de Datos, estamos haciendo referencia a un conjunto de conceptos que manejamos cotidianamente y que están fuertemente ligados al concepto mismo de Base de Datos. Así tenemos que: Base de Datos involucra un conocimiento profundo y detallado de la realidad referida a la organización. La Base de Datos debe ser la representación más fidedigna de la organización. - Los datos que representan la organización deberán ser utilizados de manera coordinada e integral que facilite la "difusión" de los mismos. El proceso de difusión de los datos obliga a definir y establecer objetivos que protejan la organización. En consecuencia, existen cuatro conceptos éstos son: involucrados; 1) Coherencia, asociado a la validez de los datos. 2) Integridad, sobre el total de la información a representar. 3) Seguridad, como garantía de los datos en su representación. 4) Confidencialidad, otorgando acceso de acuerdo a los niveles de la organización. 0.1.4 ¿Porqué Base de Datos? Según C.J. DATE en "An Introduction to Database Systems" 3th. Edition de 1982, dice : a) La redundancia puede ser reducida. No es posible asegurar que toda la redundancia sea eliminada; pero es posible que por diversas razones se requiera mantener múltiples copias de la misma data. b) La inconsistencia puede ser evitada. Este es un corolario de "a". Es claro que si cada factor es representado por una entrada simple (es decir, si la redundancia es eliminada) no pueden ocurrir inconsistencias. Alternativamente, si la redundancia no es eliminada pero es controlada, entonces el sistema podría garantizar que la base de datos no sea nunca inconsistente a la vista del usuario, asegurando que cualquier cambio debe realizarse automáticamente en todas las entradas posibles. Este proceso es conocido como "Actualización Simultánea" (propagating updates). c) La data puede ser compartida. d) Los estándares pueden ser reformados. Con un control central de la base de datos, el Administrador de Base de Datos (DBA = Data Base Administrator) puede asegurar que todos los estándares aplicables serán seguidos en la representación de la data. La estandarización de los formatos de data almacenados es particularmente deseable como una ayuda para el intercambio de data (data interchange) o migración entre sistemas. e) Las restricciones de seguridad pueden ser aplicables. Teniendo completa jurisdicción sobre la data operativa, el DBA: - Puede asegurar que los accesos a la base de datos serán a través de los propios canales (accesos/caminos que se definan). - Puede definir chequeos de autorización para el acceso a la data. f) La integridad puede ser mantenida. El problema de integridad es el problema de asegurar que la data en la base de datos es Exacta y Precisa. La redundancia puede ser Eliminada, pero la base de datos puede contener data Incorrecta. g) Los Requerimientos Balanceados. en Conflicto Pueden ser Conociendo la totalidad de los requerimientos de la empresa, el DBA puede estructurar el sistema de base de datos para proveer un servicio total que sea "el mejor para la empresa". 0.1.5 Motivaciones de Base de Datos Las personas encuentran una serie de razones para decidir la necesidad de Transformar (convertir) un Sistema Orientado a Archivos en un sistema apoyado en una Base de Datos. Estas razones pueden ser: 1. Relaciones complejas en el modelo de información. 2. Alta volatilidad en los requerimientos de las aplicaciones y, como consecuencia, una excesiva carga de reprogramación. 3. Necesidad de integración de nuevas aplicaciones junto con las ya existentes. 4. Exceso de redundancias no controladas con resultados incoherentes. 5. Requerimientos de diferentes tipos de registros en los archivos. 6. Conveniencia de modos múltiples de acceso (secuencial, directo, indexado, etc.). 7. Exigencia de modos múltiples de tratamiento (batch u online) para los mismos conjuntos de datos. 8. Requerimientos en cuanto Confidencialidad y Rendimiento. a Seguridad, Paralelamente, existen una serie de motivaciones que llevan a los responsables en el uso de la tecnología de Base de Datos, estas pueden ser: - Motivaciones de orden tecnológico La informática provee en la actualidad un sin número de herramientas, entre las que podemos incluir a los Sistemas de Gestión de Base de Datos (SGBD = Data Base Management System) llamados también hoy en día "Motor de Base de Datos". Estas herramientas vienen desarrollándose en una diversidad de formas (técnicas) que están asociadas directamente al aumento de capacidad del hardware (velocidad de procesamiento y almacenamiento) y la baja de precio de estos; y que tienen como objetivo la mejora de la Productividad y Calidad en el desarrollo y uso del software de aplicación. - Motivaciones de Orden Organizacional El estudio de la organización de la empresa es de vital importancia en BD, en donde se debe determinar el funcionamiento de la misma y clasificar los diversos procesos en los tres niveles de la empresa (estratégico, táctico y operacional). Es decir, que la ejecución de un Planeamiento Estratégico de Información pasa necesariamente por el uso de técnicas y herramientas asociadas a BD. - Motivaciones de orden económico Si bien es cierto, el esfuerzo inicial en BD puede ser costoso, este es, con el tiempo, de gran rentabilidad por las ventajas intrínsecas que redundarán en beneficio de la empresa; claro está que una mala aplicación de la misma, puede traer consecuencias imprevisibles y altos costos. 0.1.6 Enfoque Tradicional versus Base de Datos Podemos analizar rápidamente los enfoques por lo que ha evolucionado. 1. Enfoque Tradicional, usando archivos tradicionales y cuyas Características son: - Las aplicaciones son propietarias de sus archivos - Programas dependientes de la estructura y contenido de los archivos - Dificultad para compartir datos. y, sus principales problemas son: - Alto nivel de redundancia Genera sistemas rígidos (inflexibles) Alto costo de mantenimiento Falta de control sobre los datos 2. Enfoque de Base características son: de Datos, cuyas principales - Un archivo puede llegar a ser usado por diversas Aplicaciones - Control centralizado sobre los datos : - Reduce redundancia - Evita inconsistencias - Facilita el control de estándares - Mayor seguridad - Reduce los efectos producidos por cambios - Reduce costos de mantenimiento de programas Esta basado en la independencia de datos, que es ventajosa por diversas razones: 1. Las modificaciones de las estructuras de almacenamiento físico no involucran modificaciones en los programas de aplicación. 2. La introducción de nuevas tecnologías en las memorias auxiliares no afectan los programas de aplicación. 3. Los datos son compartidos puesto que vistas diferentes pueden ser extraídas de la misma estructura de almacenamiento, por lo tanto la duplicación de datos se reduce. 4. La programación de las aplicaciones es facilitada dado que ella es realizada sobre vistas determinadas y que ella no está involucrada por las estructuras de almacenamiento físico ni por los problemas de acceso. 5. La ejecución de operaciones ilícitas tales como la actualización o eliminación de datos que no pertenecen a una vista es fácilmente prohibida. 0.1.7 ¿Qué es un Ambiente de Base de Datos? Veámoslo gráficamente, a través de sus componentes mas importantes: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ REPOSITORIO/ ³ ³ INTERFAZ ³ ³ DICCIONARIO/ ³ ³ DEL SISTEMA ³ <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ³ DIRECTORIO/ ³ ³ CON EL USUARIO ³ ³ ENCICLOPEDIA ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÂÄÄÄÄÂÄÄÄÄÄÄÄÄÙ ³ ³ ³ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ³ ³ ³ ³ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ ³ ³ ³ ³ ³ ³ BASE ³ ³ ³ ³ ³ DE ÃÄÄÄÄÄÄÄÄ¿ ³ ³ ³ ³ DATOS ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÙ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ÚÄÄÄÄÄÄÄÄÁÄÄÄÄÁÄÄÄÄ¿ ³ ÚÄÄÄÄÁÄÄÄÄÁÄÄÄÄÄÄÄÄ¿ ³ SGBD ÃÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ³ ³ SISTEMA DE ³ ³ ADMINISTRACION ³ ³ GESTION ³ <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ³ DE ³ ³ DE BASE DE ³ ³ BASE DE DATOS ³ ³ DATOS ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ El Diseño Conceptual en el Proceso de Desarrollo de Software. Consideremos el Ciclo de Vida Clásico de un producto Software. Dentro del desarrollo, las primeras etapas son las que cobran mayor importancia, ya que en ellas se debe centrar la mayor cantidad de esfuerzo, para asegurar una mayor calidad del producto. Ciclo de Vida Clásico. Dentro de estas etapas, se encuentra el Diseño. El Diseño como actividad se puede entender en distintos niveles de abstracción, separándolo en: Diseño Conceptual, Diseño Lógico y Diseño Físico. El Diseño Conceptual es de un alto nivel de abstracción, y puede confundirse su inicio con el término de la etapa de análisis, ya que permite visualizar de mejor manera un problema. Además este diseño no está necesariamente asociado a priori con una plataforma de implementación, sino que más cercano a la realidad, al problema a solucionar. El Diseño Lógico se acerca más a la Implementación del producto en una Plataforma Computacional, integrando consideraciones para la plataforma específica en cuestión. Finalmente el Diseño Físico es una especificación tal que representa Exactamente la Implementación del Producto. En el siguiente diagrama se puede apreciar el proceso de diseño de bases de datos. Los requisitos de datos constituyen un componente de los requisitos de un producto y son una entrada al diseño conceptual. Proceso de Diseño de Bases de Datos Diseño Conceptual. Recibe como entrada la especificación de requerimientos y su resultado es el Esquema Conceptual de la Base de Datos, que es una Descripción de Alto Nivel de la Estructura de la Base de Datos, independiente del software que se use para manipularla. Modelos Conceptuales: Individual. MER, Modelos OO, Formalismo Diseño Lógico. Recibe como entrada el Esquema Conceptual y da como resultado un Esquema Lógico, que es una Descripción de la Estructura de la Base de Datos que puede procesar el Software DBMS. Modelos Lógicos: Relacional, de Redes, Jerárquico. Diseño Físico. Recibe como entrada el Esquema Lógico y da como Resultado un Esquema Físico, que es una Descripción de la Implementación de una Base de Datos en la Memoria Secundaria, describe las estructuras de almacenamiento y los métodos usados para tener un acceso efectivo a los datos. Modelos Físicos: Modelo Unificador, Memoria de Elementos. En la Figura 1.3.- se puede observar un esquema general del la arquitectura de una base de datos, en la cual se detallan los principales componentes de ella además de las relaciones entre ellos y la base de datos lógica. Veamos una descripción simple del aquellos elementos: Una Vista Externa es una visión particular de un usuario o un grupo de usuarios de la Base de Datos. El Esquema Externo representa una forma de definición o formalización de esta vista externa. La Vista Conceptual pretende ser la representación total y abstracta de los datos que componen la Base; la formalización de esta se logra mediante el Esquema Conceptual. Por último, la Vista Interna es de un nivel muy bajo y corresponde al almacenamiento físico de los datos de la Base, sobre un Esquema Interno que es la formalización de esto, e.d. tipos de registros almacenados, índices, etc. Las correspondencias se pueden definir como una asociación de distintas representaciones para un mismo dato. Un DSL es un sublenguaje de datos, es una combinación de dos lenguajes: un lenguaje de definición de datos (DDL) y un lenguaje de manipulación de Datos (DML). Este lenguaje representa un nexo entre el Sistema de Base de Datos y algún lenguaje anfitrión (p.e. COBOL, FORTRAN, C, etc.); e.d., el DSL provee herramientas a los lenguajes tradicionales para que se integren al Sistema de Base de Datos. Puede haber distintos tipos de DSL para un mismo sistema. DBMS es la sigla en inglés de Sistema de Administración de Bases de Datos (SABD), que corresponde al Software que maneja todos los accesos a la Base de Datos, e.d. cada solicitud de acceso de un usuario al SABD es interpretada e inspeccionadas las correspondencias, generando, a continuación, una respuesta coherente a las necesidades de la pregunta. La interfaz con el Usuario es el límite de acceso que tiene un Usuario común a la Base, todo lo que está bajo este límite es transparente (desconocido) para él. Por último, el Administrador de Bases de Datos (DBA) corresponde a la persona o grupo de personas encargada del control general del sistema. Sus responsabilidades o funciones incluyen: Decidir el contenido de la Base de Datos: comprende la identificación de entidades de interés para la organización y los datos a registrar de éstas entidades. Luego se define el contenido de la Base de Datos generando un Modelo Conceptual. Decidir la estructura de almacenamiento y la estrategia de acceso: esto es decidir como deben representarse los datos en forma interna y hacer la correspondencia entre estos y el modelo conceptual ya definido. Vincularse con los usuarios: comprende toda una labor de prestación de servicios que busca garantizar la existencia, en la Base, de los datos necesarios y la formalización de los distintos esquemas externos. Definir los controles de autorización y procedimientos de validación: involucra la definición de restricciones de seguridad y protección para la conservación de la integridad de los Datos. Definir una estrategia de respaldo y recuperación: esto corresponde a un esquema de seguridad más amplio que lo anterior y, básicamente, su objetivo es la operación exitosa del sistema. Controles de desempeño y responder a los cambios de requerimiento: la idea aquí es lograr un desempeño aceptable, según expectativas, del Sistema mediante mecanismos de control. 1.6.- El sistema de Gestión de Bases de Datos (SGBD o DBMS) Un sistema de gestión de bases de datos consiste de una colección de datos interrelacionados y un conjunto de programas para acceder a esos datos. La colección de datos es la base de datos, y es la que contiene información por ejemplo acerca de una empresa determinada. El objetivo principal de un SGBD es proporcionar un entorno que sea a la vez conveniente y eficiente para ser utilizado al extraer y almacenar información en la base de datos. Toda organización puede verse en tres niveles de gestión: operacional, táctico y estratégico. Muchas veces se produce una desconexión de los sistemas que caracterizan a estos niveles, pues constituyen sistemas aislados, sin relación entre ellos. Esto produce un aumento del costo global de creación y mantenimiento del sistema de información, produce redundancias e incoherencias. Esto impide una gestión racional de los datos. La base de datos es un depósito único de datos para toda la organización, por lo que debe ser capaz de integrar los distintos sistemas y aplicaciones, atendiendo a las necesidades de los usuarios en los tres niveles. Otra definición de Manejadores de Base de Datos: Programas (software de ordenador) que posibilitan la existencia y utilización de las bases de datos. En inglés: DBMS (Data Base Management System). Funciones típicas: Definición de los datos, de su estructura lógica, sus relaciones y restricciones. Modificación (ídem). Consulta de la información almacenada. Inserción de nueva información. Modificación de la información almacenada. Borrado de la información almacenada. Mantenimiento de la integridad. Asegurar la privacidad de los datos (accesos no autorizados, intrusos, curiosos, etc). Asegurar la seguridad de los datos (borrados accidentales, fallos diversos, catástrofes, etc) mediante técnicas de respaldo y recuperación. Control de concurrencia o de los accesos simultáneos a la base de datos. Muy importante si varios usuarios comparten la utilización de una misma base de datos. El objetivo del SGBD es suministrar la interfaz entre el conjunto de los datos y dichos usuarios. El SGBD también debe proporcionar a los otros usuarios (analistas, programadores, administradores) las correspondientes herramientas que les permitan un adecuado desarrollo de sus funciones. Definición del SGBD El SGBD es un conjunto coordinado de programas, procedimient os, lenguajes, etc. que suministra, tanto a usuarios no informáticos como a los analistas, programadores o al administrador, los medios necesarios para describir, recuperar y manipular los datos almacenados en la base, manteniendo su integridad, confidencialidad y seguridad. Funciones del SGBD De Descripción o Definición Debe permitir al administrador de la base especificar los datos que la integran, su estructura y las relaciones que existen entre ellos, las reglas de integridad semántica, los controles a efectuar antes de autorizar el acceso a la base, etc., así como las características de tipo físico y las vistas lógicas de los usuarios. Esta función la realiza el lenguaje de definición de datos (LDD), propio del SGBD, y debe ser capaz de definir las estructuras de datos a los tres niveles (nivel externo, nivel lógico global o conceptual y nivel interno). A nivel interno se define: Espacio reservado para la base(volúmenes, cilindros y pistas) Longitud de los campos Modo de representación de los datos (binario, decimal, alfanúmerico, etc.) Caminos de acceso como punteros e índices. A nivel externo y conceptual, la función de descripción proporciona los instrumentos para la definición de entidades, su identificación, atributos, interrelaciones entre ellas, autorizaciones de acceso, restricciones de integridad, etc. El SGBD, además de describir, debe permitir la correspondencia o mapping entre estos niveles. De Manipulación Permite a los usuarios de la base (todos) buscar, eliminar o modificar los datos de la base, de acuerdo a las especificaciones y normas de seguridad dadas por el administrador. Esto se realiza mediante el lenguaje de manipulación de datos (LMD), mediante un conjunto de instrucciones (lenguaje huésped) que son admitidas por un lenguaje de programación (lenguaje anfitrión), o bien, mediante un lenguaje autocontenido, que posee todas las instrucciones necesarias para llevar a cabo estas tareas. De Utilización Reúne todas las interfaces que necesitan los diferentes tipos de usuarios para comunicarse con la base y proporciona un conjunto de procedimientos para el administrador. Algunas de estas funciones de servicio son: cambiar capacidades de los archivos obtener estadísticas de utilización respaldos cargar y descarga de la base seguridad, etc. Componentes de un SGBD 1. Lenguaje de definición de datos (DDL: Data Definition Language). Sencillo lenguaje artificial para definir y describir los objetos de la base de datos, su estructura, relaciones y restricciones. En la práctica puede consistir en un subconjunto de instrucciones de otro lenguaje informático. Aparte suele poseer dos subconjuntos de instrucciones: o o Lenguaje de definición del almacenamiento de los datos (DSDL: Data Storage Definition Language): permite especificar características físicas de la base de datos (volúmenes y archivos donde van a ser almacenados los datos, etc). Lenguaje de control de datos (DCL: Data Control Language): encargado del control y seguridad de los datos (privilegios y modos de acceso, etc). 2. Lenguaje de manipulación de datos (DML: Data Manipulation Language). Lenguaje artificial de cierta complejidad que permite el manejo y procesamiento del contenido de la base de datos. En la práctica puede consistir en un subconjunto de instrucciones de otro lenguaje informático. Las aplicaciones que trabajan sobre la base de datos se programan en un lenguaje de programación (C, Cobol, ...) insertando en el código fuente sentencias del DML. Al utilizar un DML se deben especificar los datos que serán afectados por las sentencias del lenguaje. Un DML puede tener o no procedimientos, según sea necesario especificar ademáns cónmo deben obtenerse esos datos. Los DML con procedimientos tienen sentencias de control de flujo como bucles o condicionales. Los DML sin procedimientos son conocidos también como declarativos. 3. Diccionario de datos. Conjunto de archivos que almacenan convenientemente las definiciones realizadas utilizando el DML. 4. Gestor: componente software (programa) encargado de la interface entre las peticiones de los usuarios de la base de datos y los propios datos en sí. Interacción con el sistema operativo. El uso real un SGBD puede realizarse de forma única o combinada utilizando directamente el DDL y el DML o bien a través de una interfaz gráfica o basada en menús. Aunque usualmente se utilizan indistintamente los términos "datos" e "información", en rigor existe una importancia distinción entre ellos: "datos" se refiere a los valores registrados físicamente en la base de datos, e "información" alude al significado de esos valores según el sentido que les otorgue un humano. El contenido de la base de datos puede estructurarse en tres niveles: 4. Campo: unidad de datos individual de menor tamaño y con significado pleno. Los campos pueden agruparse para constituir otros más complejos (ej. fecha de nacimiento). Pueden ser de naturaleza numérica o alfabética, en general. Tienen un tamaño asociado, medido físicamente en bytes. 5. Registro: conjunto de campos intrínsecamente relacionados mediante una significación común a una entidad. Suele constituir la unidad básica de acceso a la base de datos (contenido que se puede almacenar o recuperar en un solo acceso). 6. Fichero: conjunto de ocurrencias de un mismo tipo de registro. Lenguajes de los SGBD (continuación...) Las distintas funciones que cumple un SGBD, hace necesario contar con diferentes lenguajes y procedimientos que permitan la comunicación con la base de datos. Por tipo de función, tendremos lenguajes de definición y lenguajes de manipulación. Por tipo de usuarios tendremos lenguajes para informáticos y lenguajes para no informáticos o usuarios finales. Estos últimos, pueden tener aplicaciones formalizables tal como la gestión de personal o no formalizables como cualquier proceso de toma de decisiones. Cuando se trata de procesos formalizables, usualmente los programadores de aplicaciones escriben los procedimientos en programas. Si el proceso no es formalizable, escribir un programa no es aconsejable. Es conveniente que el mismo usuario final resuelva directamente sus requerimientos mediante los instrumentos que el SGBD pone a su alcance. Por otro lado, los usuarios informáticos, como el DBA, analistas y programadores requerirán medios poderosos por los cuales podrán definir, extraer y manipular los datos en algún lenguaje de programación. A este lenguaje se le llama lenguaje anfitrión (por ejemplo, C). Casi la totalidad de los SGBD disponen de lenguajes de 4ta generación, que se caracterizan por ser poco procedimentales y el acceso a la base de datos se realiza mediante sentencias embebidas en el lenguaje de 4ta generación y escritas en SQL (SGBD relacionales). Los lenguajes que por si mismos pueden actuar con la base de datos, sin necesidad de apoyarse en otro lenguaje se llaman autocontenidos. Lenguajes de manipulación de datos Para cumplir los objetivos asignados a la función de manipulación, se ha de contar con lenguajes que den a los usuarios la posibilidad de referirse a determinados conjuntos de datos que cumplan ciertas condiciones (criterio de selección). El SQL como lenguaje de manipulación de datos tiene la propiedad dual, es decir, puede actuar como huésped o autocontenido. Los LMD pueden ser procedimentales o no procedimentales, es decir, si necesitamos especificar con detalle el acceso a la base tendremos un lenguaje procedimental. Los lenguajes orientados al usuario final deben ser lo menos procedurales posible. Aquí basta con decir qué se quiere, sin explicar cómo obtenerlo. Por otro lado, los LMD pueden ser navegacionales, que recuperan o actualizan datos registro a registro. Otros lenguajes actúan sobre un conjunto de registros, de forma que una única sentencia puede dar lugar a la recuperación o actualización del conjunto de registros que cumpla el criterio de selección especificado, tal como el SQL. Modelo de Datos. Dentro de la problemática del diseño de bases de datos, los modelos de datos cumplen un importante rol, pues son las herramientas que nos permiten generar los esquemas de bases de datos, los que regirán su estructura. Un modelo de datos define las reglas por las cuales los datos son estructurados. Esta estructuración, sin embargo, no da una interpretación completa acerca del significado de los datos y de la forma en que serán usados. Las operaciones permitidas sobre datos deben ser definidas. Muchos modelos conceptuales, como el MER, no incluían operaciones en sus definiciones preliminares, por lo que fueron propuestas en estudios posteriores. Se define el modelo de datos M consistente de dos partes: G: un conjunto de reglas generadoras de esquemas. O: un conjunto de operaciones. El conjunto de reglas G expresa las propiedades estáticas de un modelo de datos y corresponden a lo que se denomina generalmente Data Definition Language (DDL). Este define las estructuras permitidas para el modelo de datos M, es decir, generan esquemas. El conjunto G se puede dividir en dos: Gs: reglas generadoras de las estructuras permitidas. Gc: reglas generadoras de las restricciones del modelo. Así, Gs genera las categorías y estructuras para un modelo, y Gc las restricciones. Utilizando esta última notación, un esquema S consiste de dos partes: una estructura Ss y restricciones Sc, donde Sc es una lista explícita de restricciones que deben ser satisfechas en todo momento. Un modelo de datos también puede tener restricciones que son inherentes a él, las que generalmente se incorporan en Ss (la estructura). Las reglas de generación G son generadoras de un conjunto de esquemas S, en el que cada uno de ellos define estructuras y restricciones particulares para los datos. Hay muchas bases de datos D en términos de la ocurrencia del esquema S, pero todos tienen la misma estructura genérica y obedecen a las mismas restricciones definidas en S. En resumen: Figura 2.3.- Modelo de Datos Las propiedades dinámicas de un modelo de datos son expresadas por un conjunto de operaciones O, las que generalmente son llamadas Data Manipulation Language (DML). Estas propiedades definen las acciones permitidas para una base de datos, tal que transforme la ocurrencia Di en la ocurrencia Dj. SQL SQL (Structured Query Language) es un potente lenguaje informático que cumple las funciones de DDL y DML en los SGBD relacionales. Su origen está en el lenguaje SEQUEL (Structured English QUEry Language) desarrollado en IBM en los años 1974-75. Oracle fue el primer fabricante de sistemas de bases de datos en comercializar una implementación de SQL en 1979. IBM lanzó el producto SQL/DS en 1981 y dos años más tarde el conocido DB2. Se trata de un lenguaje fuertemente basado en el inglés, que puede ser utilizado en modo conversacional mediante un intérprete o bien formando parte de un programa desarrollado en un lenguaje de programación anfitrión como C, Cobol, etc. (SQL embebido). La característica relacional más importante de SQL es que permite acceder a los datos sin necesidad de especificar cómo se ha de realizar dicho acceso permitiendo así la "navegación automática" por los datos. El lenguaje ha sido normalizado por varios organismos, si bien los muchos aspectos que tradicionalmente han quedado indefinidos en tales normalizaciones y qu e por lo tanto en la práctica quedan como responsabilidad de los fabricantes han ocasionado variaciones de diversa importancia entre las diferentes implementaciones comerciales. La versión actual más común del lenguaje es la denominado SQL2 que respecto al estándar anterior presenta las ventajas de un mayor incremento de la capacidad expresiva, nuevos operadores añadidos y mejor tratamiento de errores, entre otras. SQL3 incorpora al lenguaje características propias del paradigma de orientación a objeto. Componentes de los Sistemas de Bases de Datos Un sistema de bases de datos contempla los siguientes componentes: La base de datos El Sistema de Gestión de Bases de Datos(SGBD, DBMS) o motor, tal como Oracle, Sybase, etc. Programas de aplicación Un conjunto de usuarios (finales, DBA, programadores de aplicaciones, etc.) Máquinas Programas utilitarios( generadores de informes, de interfaces, herramientas de desarrollo, de administración, etc.) En la Figura 1.3.- se puede observar un esquema general del la arquitectura de una base de datos, en la cual se detallan los principales componentes de ella además de las relaciones entre ellos y la base de datos lógica. Veamos una descripción simple del aquellos elementos: Una Vista Externa es una visión particular de un usuario o un grupo de usuarios de la Base de Datos. El Esquema Externo representa una forma de definición o formalización de esta vista externa. La Vista Conceptual pretende ser la representación total y abstracta de los datos que componen la Base. La formalización de esta se logra mediante El Esquema Conceptual. Por último, la Vista Interna es de un nivel muy bajo y corresponde al almacenamiento físico de los datos de la Base, sobre un Esquema Interno que es la formalización de esto, e.d. tipos de registros almacenados, índices, etc. Las correspondencias se pueden definir como una asociación de distintas representaciones para un mismo dato. Un DSL es un sublenguaje de datos, es una combinación de dos lenguajes: un lenguaje de definición de datos (DDL) y un lenguaje de manipulación de Datos (DML). Este lenguaje representa un nexo entre el Sistema de Base de Datos y algún lenguaje anfitrión (p.e. COBOL, FORTRAN, C, etc.); e.d., el DSL provee herramientas a los lenguajes tradicionales para que se integren al Sistema de Base de Datos. Puede haber distintos tipos de DSL para un mismo sistema. DBMS es la sigla en inglés de Sistema de Administración de Bases de Datos, que corresponde al Software que maneja todos los accesos a la Base de Datos, e.d. cada solicitud de acceso de un usuario al SABD es interpretada e inspeccionadas las correspondencias, generando, a continuación, una respuesta coherente a las necesidades de la pregunta. La interfaz con el Usuario es el límite de acceso que tiene un Usuario común a la Base, todo lo que está bajo este límite es transparente (desconocido) para él. Por último, el Administrador de Bases de Datos (DBA) corresponde a la persona o grupo de personas encargada del control general del sistema. Sus responsabilidades o funciones incluyen: Decidir el contenido de la Base de Datos Decidir la estructura de almacenamiento y la estrategia de acceso Vincularse con los usuarios Definir los controles de autorización y procedimientos de validación Definir una estrategia de respaldo y recuperación Controles de desempeño y responder a los cambios de requerimiento Lenguajes de los SGBD Las distintas funciones que cumple un SGBD, hace necesario contar con diferentes lenguajes y procedimientos que permitan la comunicación con la base de datos. Por tipo de función, tendremos lenguajes de definición y lenguajes de manipulación. Por tipo de usuarios tendremos lenguajes para informáticos y lenguajes para no informáticos o usuarios finales. Estos últimos, pueden tener aplicaciones formalizables tal como la gestión de personal o no formalizables como cualquier proceso de toma de decisiones. Cuando se trata de procesos formalizables, usualmente los programadores de aplicaciones escriben los procedimientos en programas. Si el proceso no es formalizable, escribir un programa no es aconsejable. Es conveniente que el mismo usuario final resuelva directamente sus requerimientos mediante los instrumentos que el SGBD pone a su alcance. Por otro lado, los usuarios informáticos, como el DBA, analistas y programadores requerirán medios poderosos por los cuales podrán definir, extraer y manipular los datos en algún lenguaje de programación. A este lenguaje se le llama lenguaje anfitrión (por ejemplo, C). Casi la totalidad de los SGBD disponen de lenguajes de 4ta generación, que se caracterizan por ser poco procedimentales y el acceso a la base de datos se realiza mediante sentencias embebidas en el lenguaje de 4ta generación y escritas en SQL (SGBD relacionales). Los lenguajes que por si mismos pueden actuar con la base de datos, sin necesidad de apoyarse en otro lenguaje se llaman autocontenidos. Lenguajes de manipulación de datos (DML o LMD) Para cumplir los objetivos asignados a la función de manipulación, se ha de contar con lenguajes que den a los usuarios la posibilidad de referirse a determinados conjuntos de datos que cumplan ciertas condiciones (criterio de selección). El SQL como lenguaje de manipulación de datos tiene la propiedad dual, es decir, puede actuar como huésped o autocontenido. Los LMD o DML pueden ser procedimentales o no procedimentales, es decir, si necesitamos especificar con detalle el acceso a la base tendremos un lenguaje procedimental. Los lenguajes orientados al usuario final deben ser lo menos procedurales posible. Aquí basta con decir qué se quiere, sin explicar cómo obtenerlo. Por otro lado, los LMD pueden ser navegacionales, que recuperan o actualizan datos registro a registro. Otros lenguajes actúan sobre un conjunto de registros, de forma que una única sentencia puede dar lugar a la recuperación o actualización del conjunto de registros que cumpla el criterio de selección especificado, tal como el SQL. 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 datos y aplicaciones. Así, los cambios en la estructura de los datos tengan una repercusión mínima en los programas de aplicación y viceversa. Este concepto de independencia implica la separación entre el almacenamiento y la organización lógica de los datos, con lo que se consigue: Los datos se presentarán de formas distintas, según las necesidades de los usuarios. El almacenamiento de los datos, su estructura lógica y los programas de aplicación serán independientes unos de otros. Este objetivo, ha tenido gran influencia en la arquitectura de los SGBD. En los SI existen 2 estructuras: La lógica (vista del usuario) y La física (forma en que se encuentran los datos en el almacenamiento). En las bases de datos aparece un nuevo nivel de abstracción llamado nivel conceptual, estructura lógica global, esquema. Esta estructura intermedia es una representación global de los datos independiente de equipos y los usuarios (visión de la empresa). Los otros dos niveles corresponden al nivel de máquina o interno y al nivel de usuario o externo. La estructura lógica de usuario o esquema externo(nivel usuario) es la visión que tiene de la base de datos cada usuario en particular. La estructura lógica global o esquema responde al enfoque del conjunto de la empresa (visión del administrador). La estructura física o esquema interno es la forma como se organizan los datos en el medio de almacenamiento físico. Esquema Externo / Nivel Externo En el deberán encontrarse reflejados solo aquellos datos e interrelaciones que necesite un usuario en particular. También deben especificarse las restricciones de uso, como por ejemplo, derecho a borrar o insertar determinados datos. Habrá tantos esquemas externos como exijan las diferentes aplicaciones y un mismo esquema externo puede ser utilizado por varias aplicaciones. Este nivel se ocupa de las vistas individuales de los usuarios. Los usuarios pueden ser programadores de aplicaciones o usuarios finales. Estos usuarios disponen de un lenguaje, que para los usuarios finales será un lenguaje de consulta o algún lenguaje de aplicación especial, manejado por ejemplo por menús o forms. Los usuarios programadores de aplicaciones tendrán lenguajes de programación convencionales o algún lenguaje propio de 4ta generación. El SQL(Structured Query Language) es usado en casi todos los sistemas relacionales actuales. En casi todos los sistemas el SQL puede utilizarse como lenguaje interactivo o de consulta o bien embebido en otros lenguajes, tal como COBOL por ejemplo. Recordar lo visto anteriormente en los lenguajes de un SGBD. Esquema o Estructura Lógico Global / Nivel conceptual Tiene por objetivo describir en términos abstractos pero con absoluta fidelidad una cierta realidad de una organización y de su proceso de gestión. Por ser la visión general de los datos, deberá incluir la descripción de todos los datos e interrelaciones entre éstos, restricciones de integridad y confidencialidad. Este nivel se define mediante un esquema conceptual. Para escribirlo se utiliza un DDL conceptual. Es importante señalar que para que exista independencia de los datos, las definiciones en DDL conceptual no deberán implicar consideraciones de estructura de almacenamiento, deben ser definiciones de contenidos de información. Por lo tanto, en el esquema conceptual no debe haber representaciones de campos almacenados, secuencia de registros, indexación, etc. El paso del mundo real al esquema conceptual corresponde a un proceso de modelización. En este punto es donde se utilizan los modelos conceptuales. Esquema interno/ Nivel Interno Este esquema es dependiente del DBMS. Sin embargo, existen elementos comunes que son: Estrategia de almacenamiento: almacenamiento de datos Asignar espacios de Camino de acceso: Se incluye la especificación de claves primarias, secundarias, índices, claves de ordenación. Técnicas de compresión de datos Técnicas de criptografía Correspondencia conceptual/interna: especifica como se representan los registros y campos conceptuales en el nivel interno. Si se altera la definición de la estructura de almacenamiento, la correspondencia conceptual/interna deberá modificarse también. Técnicas de Tuning y optimización Dispositivos de memoria: tamaño de la página, nro. de páginas asignadas a cada área de almacenamiento, tamaño de los buffers de E/S. Organizaciones físicas: para mejorar la recuperación y los tiempos de acceso, el sistema debe dar facilidades al DBA para definir hashing, agrupamientos, etc. Control de acceso: reglas para proteger la confidencialidad y seguridad de la base de datos. Técnica de Organización de archivos Lenguajes de Alto Nivel ' FMS Técnica de Organización de archivos DBMS Ventajas Desventajas - Permite al programador utilizar proposiciones independientes al dispositivo empleado para la creación y d procesamiento de los archivos. - La técnica de direccionamiento, creación y mantenimiento de la trayectoria de los datos son transparentes al usuario. - Aumatta la productividad del programador ya que represeanta un ¡~9 ,eficaz de marta geaera.cióa pa la realibción-de accesos'; : mediante C18v.e3.múltipl0f. - Se pueden desarrollar aplicaciones sus necesidad de escribir largos programas en lenguajes de alto nivel. - Suministra al programador sin experiencia herramientas para llevar a cabo consultas con lenguajes especiales y sencillos. Por ejemplo: El RPG - Report Pro~ Ganerator. - Representa altos costos del "software" porque se requieren muchas horashombre para poder desarrollar un sistema convencional de información. - Representa poca eficiencia de consultas, en especial si se intentan usar técnicas de claves múltiples, Ventajas Dowentajas - Se pueden recuperar sitnultáneanaente distintos archivos usasrdo claves de búa~ múltiple. - Se puede tener acceso a datos de diferatnes m~os con una sóla consulta. - La recuperación de datos se realiza san necesidad de demasiada programación. - Depatde totalmente de los métodos de acceso en los que se basa el sistema operativo para la creación y el procesamiento de sus archivos de datos. - El manejo de matrices y operaciones aritméticas complejas no pueden manejarse fácilmente con el FMS. - El manejo de los datos queda restringido a los métodos básicos de acceso, lo que dificulta las consultas de claves múltiples en archivos múltiples. - No puede efectuar recuperaciones complejas de información. BIBLIOGRAFIA Date, C.J. "An Introduction to Database System", vol 1 5th edition, Addison-Wesley Publishing Co (1986) Codd, E.F. "The Relational Model for Databse Management", Addison-Wesley Co. 1990 Batini, Ceri, Navathe,"Diseño Conceptual de bases de datos", Addison-Wesley, 1994 Adoracion de Miguel y Piattini, "Concepcion y Diseño de Bases de Datos". Addison-Wesley, 1993 Korth and Silberschatz, " Fundamentos de Bases de Datos". 2 da.edición.Mac Graw Hill. Irene Luque Ruiz y Miguel Angel Gómez-Nieto. Diseño y uso de Bases de Datos Relacionales. Editorial RA-MA, 1997. Abraham Silberschatz, Henry F. Korth y S. Sudarshan. Fundamentos de bases de datos (3a edición). McGrawHill, 1998. Adoración de Miguel y Mario Piattini. Fundamentos y modelos de bases de datos. Editorial RA-MA, 1997. George Koch. ORACLE 7. Manual de referencia McGrawHill, 1994.