Your SlideShare is downloading. ×
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Man Base Datos I
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Man Base Datos I

5,246

Published on

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,246
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
240
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. INACAP Dirección Área de Informática MANUAL Bases de Datos I MARZO DEL 2002 Programa de Estudios: INGENIERÍA EN GESTIÓN INFORMÁTICA ANALISTA PROGRAMADOR Versión 3.0 -0- Bases de Datos I
  • 2. INACAP Dirección Área Informática INDICE Tema Página 1. Enfoques de Bases de Datos 4 1.1 Enfoque tradicional de procesamientos de datos 4 Enfoque por agregación 7 Sistemas de procesamiento de archivos 7 Desventajas 7 Redundancia no controlada 7 Inconsistencia de Datos 7 Inflexibilidad 7 Escasa posibilidad de compartir datos 7 Pobre estandarización 7 Baja productividad del programador 7 Excesiva Mantencion 7 1.2 Enfoque de bases de datos 9 Elementos del enfoque de banco de datos 9 Implementación del enfoque de banco de datos 9 Beneficios y riesgos de usar banco de datos 15 1.3 Tipos de sistemas de información Operacionales Administrativos De apoyo a la toma de decisiones Concepto Data-Warehouse 15 1.4 Metodologías de Desarrollo 1.5 Administración del recurso información 2. Características y representación de datos 17 2.1 Tipos de bases de datos 17 Jerárquicas 18 De red 17 Relacional 19 Orientada al objeto 20 2.2 Naturaleza del dato 21 2.3 Representación del dato 22 2.4 Entidades 23 2.5 Atributos 23 2.6 Tipos de relaciones 23 Uno a uno 23 Uno a muchos 23 Muchos a muchos 23 Recursivas 23 3. Modelos de datos 24 3.1 Niveles de abstracción 24 Versión 3.0 1 Bases de Datos I
  • 3. INACAP Dirección Área Informática 3.2 Semántica de los datos 26 3.3 Cardinalidad 26 3.4 Grado 26 3.5 Dependencia 3.6 Tiempo 3.7 Unicidad 3.8 Clase 27 3.9 Agregación 27 3.10 Modelos de datos dependientes de la tecnología 27 Jerárquico 28 De red 31 Relacional 31 3.11 Modelos de datos independientes de la tecnología 32 Orientada a objeto 32 Entidad – Relación 33 3.12 Normalización de los modelos 35 Primera forma normal 38 Segunda forma normal 41 Tercera forma normal 43 4. Metodología de diseño de una base de datos 44 4.1 Enfoque metodológico 44 Planificación Top – Down 44 Diseño Bottom Up 44 4.2 Planificación de base de datos 44 Análisis Organizacional 45 Funciones 46 Procesos 47 Actividades Matrices que relacionan los componentes de una organización 4.3 Obtención del modelo corporativo 49 4.4 Obtención de las bases de datos requeridas por la organización 52 4.5 Proceso de diseño de bases de datos 53 Etapa 1: Formulación y análisis de Requerimientos 54 Paso1:Identificación del ámbito de la base de datos Paso2:Establecer estándares de recolección de datos Paso 3: Identificación de las vistas de usuarios Paso 4: Construcción del Diccionario de Datos Paso5:Establecer requerimientos de procesamiento Etapa 2: Diseño Conceptual 60 Paso 1: Normalización Paso 2: Integración de vistas Paso3: Generación del modelo conceptual de datos Versión 3.0 2 Bases de Datos I
  • 4. INACAP Dirección Área Informática Paso 4: Revisión del diseño Etapa 3: Diseño de la implementación 64 Paso 1: Distribución de datos Paso 2: Organización de archivos Paso 3: Indexación Paso 4: Restricciones de integridad Paso 5: Mapeo o modelo interno Paso 6: Diseño de programas 5. Lenguaje de consulta estándar (SQL) 66 5.1 Instrucciones de definición de los datos 66 Create 66 Alter 66 Drop 66 5.2 Instrucciones de manipulación de los datos 67 Select 67 Insert 67 Delete 67 Update 67 5.3 Funciones Especiales De número De cadena De fecha 5.4 Operadores de comparación 67 5.5 Operadores Lógicos 68 5.6 Consulta sobre múltiples tablas 69 5.7 Formato de salidas 69 Versión 3.0 3 Bases de Datos I
  • 5. INACAP Dirección Área Informática Unidad 1: Enfoques de Bases de Datos. 1.1 Enfoque tradicional de procesamiento de datos Las organizaciones al incorporar sistemas de información administrativa, lo hacen con el fin de resolver problemas puntuales que apoyen la toma de decisiones. La planificación de un SIA utiliza dos enfoques tradicionales denominados enfoque por agregación y enfoque de base de datos. Para iniciar el tema es necesario que demos una mirada introductoria a algunos conceptos elementales de análisis de sistemas tradicionales que son la base para una adecuada comprensión del enfoque por agregación y del enfoque de base de datos. Las Empresas e Instituciones, organizan su estructura interna en pos de la eficiencia tecnológica, económica y administrativa para alcanzar los objetivos y metas que justifican su existencia como tal. Esto determina la búsqueda de herramientas técnicas y metodológicas que faciliten el proceso de toma de decisiones. Los sistemas de información administrativos, SIA, son las herramientas que apoyan la toma de decisiones. ¿Qué es un Sistema de Información Administrativo? Se entiende por SIA, las personas, estructura organizacional, máquinas manuales y computarizadas, procedimientos administrativos, recursos logísticos, que en su conjunto tienen como finalidad la recolección, clasificación, preparación, almacenamiento, modificación, actualización, recuperación y transmisión de datos que apoyan la toma de decisiones en la organización. Recursos logísticos: Los recursos logísticos son los que permiten cumplir la transformación de los datos. En general estos recursos son de tipo humano, físicos, equipos computacionales, software, datos históricos, algoritmos y procedimientos, que posibilitan guiar la secuencia y la forma de diferentes acciones que determinan la forma en que se transforman los datos Procesos de transformación: Se nutren de datos de entrada y recursos logísticos que logren la transformación de los datos. Versión 3.0 4 Bases de Datos I
  • 6. INACAP Dirección Área Informática Datos de entrada: Los datos de entrada se obtienen de tres vertientes, datos primarios o los provenientes de procesos internos, de datos obtenidos de cómo se tomaron las decisiones pasadas y desde los resultados de las acciones llevadas a buen termino por la organización. Objetivos y Metas: Toda empresa debe cumplir sus metas y objetivos, de lo contrario no se justifica, por tanto debe cautelar que los resultados de la gestión de cada uno de los niveles administrativos de la organización sea lo más eficiente y efectiva posible. Las metas y objetivos son el resultado de acciones generadas por decisiones tomadas por los diferentes niveles de la estructura de toma de decisiones. Toma de decisiones: Las decisiones que se adoptan a través del proceso de toma de decisiones son apoyadas y los problemas que surgen son enfrentados con información ( relevante y oportuna). Procedimientos administrativos: Para llevar a buen fin las actividades administrativas mencionadas la organización implementa un conjunto de procedimientos administrativos. Toma de decisiones y Sias La toma de decisiones en un SIA se establece en tres niveles, las estructuradas o programables, las semi-estructuradas, las no estructuradas o no programables. En al marco de la toma de decisiones estructuradas se desarrollan modelos reglados que establecen la forma de tomar las decisiones. Respecto de la toma de decisiones no estructuradas, son aquellas que se toman por expertos y no es posible desarrollar un algoritmo que automatice tal proceso heurístico. Niveles de decisión: Los Sias proporcionan información para la toma de decisiones a tres niveles de decisión, nivel de planeamiento estratégico, niveles de control de gestión y operativo. Versión 3.0 5 Bases de Datos I
  • 7. INACAP Dirección Área Informática Nivel de planeamiento estratégico: Los informes que proporcionan los Sias a este nivel contienen en general: información actualizada de la base de datos, estimaciones a futuro, basada en la información actualizada de la base de datos e información que pone el énfasis en situaciones excepcionales. Nivel de control de gestión: Se relaciona con la información necesaria para el uso eficiente y efectivo de los recursos que permitan cumplir los objetivos y metas de la organización. Los informes emanados por los Sias para este nivel son aquellos que contengan información para: analizar y efectuar acciones correctivas sobre la operación y estado de las funciones correspondientes además de información que refleje estados de transacciones pasadas. Nivel de control operacional: Esta relacionado con la implementación de las diversas actividades que componen la operación de la organización para lograr los objetivos aplicando los recursos de acuerdo a las políticas establecidas. Los informes que apoyan la toma de decisiones a nivel de control operacional se caracterizan por incluir: transacciones rutinarias, datos utilizados en tareas simples y repetitivas cuyo origen esta establecido claramente. Tipos de SIAS en el enfoque tradicional de datos SIA puntual, se caracteriza por apoyar la toma de decisiones en una función especifica dentro de la organización. Por ejemplo: Sias para la gestión de existencias. SIA integral, se caracteriza por cubrir todas las actividades de la organización, pudiendo incluir los denominados SIAS puntuales. En general y a grosso modo un SIA debe contemplar los siguientes elementos: Explicitación de metas y objetivos de la organización o función administrativa. 1. Determinación de medidas de eficiencia y efectividad para evaluar el log objetivos y metas. 2. Estructuración del proceso de toma de decisiones que será utilizado. 3. Identificación y caracterización de la información relevante provista por el SIA. 4. Determinación de datos de salida, entrada, procesos de transformación, tipos y cantidad de recursos a emplear, talque satisfagan los requerimientos de información relevante. Versión 3.0 6 Bases de Datos I
  • 8. INACAP Dirección Área Informática 5. El SIA provee todos los procedimientos administrativos y documentación necesaria que hacen posible operar las diferentes actividades del SIA. Enfoque por agregación Cuando la organización implementa los SIAS por primera vez lo hacen para resolver problemas puntuales que apoyan la toma de decisiones y controlar el logro de sus metas y objetivos. Ahora la planificación para el desarrollo de un SIA que aplica el enfoque por agregación, se caracteriza por implementar SIAS puntuales independientes uno de otros con una interacción mínima entre ellos y que apenas comparten recursos. Estos SIAS puntuales se desarrollan uno sobre el otro a medida que se van necesitando, originando problemas como la conocida duplicidad de información. La expansión de las organizaciones produce naturalmente la evolución progresiva de los SIAS, implicando problemas puntuales de procesamiento de información ( cuellos de botella), al desarrollar estas soluciones bajo el enfoque por agregación se han producido los siguientes inconvenientes: 1. Los SIAS se desarrollan en forma independiente entre sí, sin compartir recursos ni interacción. 2. Se produce consecuentemente duplicidad de información, un dato se encuentra en varios archivos. 3. Se produce como corolario de lo anterior problemas con la consistencia de la información ya que los datos duplicados no serán actualizados al mismo tiempo. 4. Además la responsabilidad de la actualización de estos datos recae en muchas personas. Otras consecuencias relativas al contexto de los datos: 1. Los datos satisfacen SIAS que responden a necesidades especificas del área, departamento o función de la organización. 2. Pueden existir datos con la misma denominación pero con valores distintos por provenir de fuentes distintas, ser interpretados en forma distinta, poseer procesos de actualización que obedezcan a acontecimientos distintos. 3. Los mismos datos pueden derivar en resultados diferentes dependiendo del SIA y sus procesos. Respecto del diseño de los SIAS aplicando el enfoque por agregación, surgen las siguientes consecuencias: Versión 3.0 7 Bases de Datos I
  • 9. INACAP Dirección Área Informática Sobre el diseño lógico: 1. Al diseñar un SIA bajo este enfoque resulta compleja la delimitación del mismo, dado que las funciones administrativas están interrelacionadas entre sí. 2. Los datos se encuentran distribuidos en diversos SIAS, lo que implica dificultades al momento de establecer las fuentes de información u origen de datos para el sistema. 3. Aumenta la necesidad de relacionar los datos para satisfacer nuevos requerimientos. 4. La identificación y caracterización de datos se vuelve inorgánico. 5. Sé complejiza el diseño de procedimientos administrativos. Respecto del diseño físico: 1. Implica la creación de nuevos archivos con datos ya existentes en otros, así como nuevos datos. 2. El uso de diferentes lenguajes de programación produce incompatibilidad en los formatos de almacenaje. 3. Al modificar programas de aplicación generalmente es necesario modificar también sus archivos de datos influyendo a otros programas que usan los mismos archivos. Sistema de procesamiento de archivos En la década del 60 el tratamiento de la información se caracterizó por la aplicación de programas denominados BALANCE LINE, que se caracterizan por operar con dos tipos de archivos clásicos de la época, denominados archivos maestros y de transacciones. La lógica de operación de este tipo de programa conocidos hoy como pareo de archivos se basa en la actualización de uno o más archivos maestros a partir de uno o más archivo de transacciones. Es el caso de una cuenta corriente y sus movimientos respectivamente. Otro programa de esta era de los sistemas de procesamiento de archivos es el conocido corte de control, aplicado para producir informes de acuerdo a un criterio de agrupamiento de datos. Es el caso de la cartola mensual de una cuenta corriente, allí las transacciones u operaciones son ordenadas por fecha. Desventajas del enfoque tradicional de datos 1. Redundancia no controlada 2. Inconsistencia de datos 3. Inflexibilidad 4. Escasa posibilidad de compartir datos 5. Pobre estandarización 6. Baja productividad del programador 7. Excesiva Mantención Versión 3.0 8 Bases de Datos I
  • 10. INACAP Dirección Área Informática 1.2 Enfoque de bases de datos Elementos del enfoque de Banco de Datos: La administración, control y uso de los datos en la organización basado al enfoque de base de datos se rige de acuerdo a los siguientes consideraciones: Los datos de la organización son contemplados como un recurso fundamental de esta, del mismo modo que el capital, los recursos humanos y otros. Por lo tanto se le da un manejo, control y uso eficiente y efectivo. En consecuencia se requiere un nivel de decisiones dentro de la organización cuya responsabilidad sea administrar el recurso información. Todos los datos de la información se encuentran almacenados en archivos centralizados, que permiten el acceso de las aplicaciones que las necesitan. Los archivos centralizados son accesibles por las aplicaciones y los usuarios según sus necesidades. Contempla un sistema de identificación, descripción y definición de los datos de la organización. Incluye dispositivos de acceso directo y pantallas que facilitan la interrogación por parte del usuario. Permite establecer distintos tipos de usuarios con distintos tipos de accesos centralizados. Incluye software que facilita la interrogación de la base de datos para los distintos niveles de usuarios. Implementa condiciones de seguridad e integridad de los datos y procedimientos de recuperación de datos en caso de error. Comprende un almacén centralizado que incluye toda la información necesaria de los datos de la base de datos con el fin de evitar problemas en su administración a programadores, analistas de sistemas y otros especialistas. Implementación del enfoque de Banco de Datos: Antes de contemplar los elementos del enfoque de base de datos es necesario examinar las funciones que deben incluirse en la implementación de este enfoque. Para la implementación del enfoque de base de datos se debe distinguir las siguientes funciones: Versión 3.0 9 Bases de Datos I
  • 11. INACAP Dirección Área Informática 1. Administración de la información: Encargada de caracterizar, identificar y estandarizar los datos contemplados para la base de datos 2. Almacenamiento de datos: Centraliza los datos de la base de datos en archivos integrados, que genéricamente se denominan base de datos. 3. Supervisión del almacenamiento y recuperación de los datos: Proporciona las facilidades necesarias para definir, acceder, manejar, recuperar y controlar los datos que se encuentran en la base de datos. Esta función es apoyada por el denominado SABD sigla de sistema administrador de base de datos, este software interactúa fuertemente con el sistema operativo. 4. Administración de la implementación computacional de la base de datos: Identifica, caracteriza, estructura y estandariza computacionalmente aquellos datos que nutren la base de datos y que estarán bajo el control del SABD, por lo cual se llama ASABD, es decir administrador el SABD. Esta función además se encarga de administrar el hardware y software asociado que permite operar al SABD, así como aquellos archivos que este origina. 5. Demanda: Debe agrupar todos los usuarios de la base de datos, que aprovechan las facilidades provistas por el SABD. Se entiende por usuarios a los que toman decisiones, los sistemas de información administrativos, los programadores, analistas de sistemas y otros. Elementos del enfoque: A. Administrador de la Información (AI): El administrador de la información debe identificar, caracterizar y controlar los datos incluidos en la base de datos, tal que los usuarios finales encuentren en ella los datos necesarios para la toma de decisiones y los SIAS encuentren los datos para opera. El AI centraliza los datos evitando la duplicidad descontrolada, ambigüedad e inconsistencias de la información. Versión 3.0 10 Bases de Datos I
  • 12. INACAP Dirección Área Informática Las actividades del AI: 1. Determinar y estructurar los requerimientos de información de los usuarios. 2. Especificar los requerimientos de Información. 3. Diseñar los procedimientos administrativos para que los usuarios puedan utilizar los datos de la base de datos y del diccionario de datos. ( que contiene identificación, caracterización y estructura de los datos de la base de datos) En la determinación de requerimientos de información el AI tiene en cuenta que la creación y Mantención de la base de datos debe ser segura, confiable y fiable. Entre las actividades del AI para identificar la información a incluir en la base de datos están: 1. Determinación de las necesidades de información de cada usuario. 2. Establecimiento de estándares o medidas de los datos de la base de datos. 3. Determinación, análisis y filtrado de los datos a incluir en la base de datos. 4. Producir un inventario de los datos incluidos en la base de datos. En la especificación de requerimientos el AI, en conjunto con usuarios y el ASABD, identifica y caracteriza los datos que irán en la BD, documentándolos de manera unívoca mediante el diccionario de datos, el cual se transforma en la fuente de información que tiene la organización, en cuanto a la disponibilidad de datos. La especificación de requerimientos de información se realiza a través del diccionario de datos, cuya Mantención y uso es responsabilidad del AI. El diseño de procedimientos administrativos realizado por el AI esta dirigido a: 1. Definición y control de estándares para la identificación y caracterización de los datos a incluir en la base de datos 2. Modificación de la estructura de la base de datos. 3. Procedimientos para el manejo y acceso de los datos. 4. Determinación de responsabilidades sobre ciertos datos, de manera de asegurar la confiabilidad de los valores asignados a cada dato. 5. Determinación de procedimientos que regulen el acceso, lectura, inserción, modificación y eliminación de datos de la BD. 6. Determinación de procedimientos que permitan al AI conocer el uso dado a los datos de la base de datos. 7. Analizar las alternativas costo / beneficio para la organización acerca de tener una base de datos que satisfaga los requerimientos de todos los usuarios. 8. Analizar los errores encontrados por los usuarios, con el fin de colaborar en futuras reestructuraciones de la base de datos. Versión 3.0 11 Bases de Datos I
  • 13. INACAP Dirección Área Informática Elementos de una Base de Datos: Los elementos de una base de datos son los archivos integrados y él catálogo. • Se entiende por archivos integrados aquellos archivos que han sido modelados y estructurados de tal forma que se encuentran relacionados entre sí permitiendo su interrogación. Los SABD proporcionan las herramientas necesaria para la producción de este tipo de archivos, denominadas lenguajes de definición de datos ( LDD), además de lenguajes de manipulación de datos ( LMD) para interrogar la base de datos. • El catálogo es un archivo creado y mantenido por el SABD, en el que se mantienen las características físicas de los datos de la base de datos. Estas características son usadas por el SABD en la traducción y ejecución de aplicaciones computacionales. Él catálogo es producido por un conjunto de rutinas del SABD mediante las descripciones proporcionadas por el ASABD. Para ser accesado por otro conjunto de rutinas para efectos de su mantención y lectura. En general la descripción de los datos almacenados en él catálogo incluye: nombre del dato, tipo, largo, nivel de seguridad, fecha de origen, archivo de residencia, modo de acceso y almacenamiento. B. Administrador de SABD La persona encargada de esta función tiene la responsabilidad de la implementación y operación del SABD. El ASABD administra el producto de software denominado SABD, realiza la creación física y Mantención de la base de datos. 1. Las principales responsabilidades del ASABD son las siguientes: 2. Desarrollo, estructuración y crecimiento de la base de datos de acuerdo a las facilidades del SABD y la situación de la organización. 3. Habilitación de facilidades que originen una optima implementación del SABD, como interfaz de usuarios, mecanismos de seguridad, integridad, privacidad, validación, verificación entre otros. 4. Supervisión del uso dado por el usuario de las facilidades otorgadas por el SABD. 5. Preparación y difusión de procedimientos para la operación del SABD. 6. Asistencia técnica a los usuarios del SABD 7. Medición periódica del desempeño del SABD. El ASABD, en conjunto con el AI deben determinar como traducir y satisfacer los requerimientos de información de los usuarios. Para ello, previo a la implementación del SABD, tanto el ASABD como el AI tienen las siguientes responsabilidades: 1. Producir el inventario de datos de la organización. 2. Coordinar el manejo y seguridad de los datos. Versión 3.0 12 Bases de Datos I
  • 14. INACAP Dirección Área Informática 3. Crear y mantener un diccionario de datos 4. Coordinar los procesos de codificación y estandarización de datos. 5. Prepara normas y procedimientos para verter archivos tradicionales a la base de datos. 6. Experimentar y difundir en forma piloto las funciones del AI y el ASABD. El diseño físico de la base de datos es labor del ASABD, realizando las siguientes actividades: 1. Coordinación y apoyo en el desarrollo de SIAS para que estos aprovechen las facilidades del SABD y la BD. 2. Mantener el contacto con los proveedores del SABD y de otros SABD 3. Mantener información para los usuarios respecto de la organización de la BD. 4. Mantener un control total sobre el DDL 5. Definir las características e identificación de los datos 6. Analizar el contenido de la BD. 7. Mantener el software de apoyo al diccionario de datos. 8. Preparación y Mantención del catálogo de la base de datos. 9. Determinar la estructura física de la base de datos 10. Especificación de la estructura de la BD. 11. Controlar el acceso a los datos de la BD. 12. Coordinación entre las el SABD y el sistema operativo empleado 13. Definición de procedimientos de protección contra destrucción o accesos no autorizados. 14. Definición de niveles de seguridad para el acceso a la BD. 15. Establecer procedimientos para la seguridad y protección física de los datos. 16. Participación en la s pruebas de programas de aplicación. 17. Establecer procedimientos de respaldo para la BD. 18. Analizar y controlar el seguimiento de trazas y errores. 19. Mantención actualizada de los procedimientos de recuperación de la BD. 20. Determinar procedimientos que permitan detectar violaciones a las reglas de seguridad e integridad, buscando la identificación del causante e informando a los niveles que corresponda. B. Diccionario de datos ( DD) Este elemento del enfoque de base de datos es el conjunto centralizado de atributos lógicos que especifican la identificación y caracterización de los datos que se manejan en la BD. La BD contiene el valor de los datos, el DD contiene meta datos, es decir los atributos lógicos de dichos datos. Versión 3.0 13 Bases de Datos I
  • 15. INACAP Dirección Área Informática Entre las ventajas del DD se tiene: 1. Es un medio centralizado de tener información sobre los atributos lógicos de los datos de la BD. 2. Es un medio de estandarización en el manejo y uso de los datos 3. Es un medio expedito de almacenamiento y recuperación de proposiciones de atributos lógicos originados por analistas de sistemas en el diseño de un SIA. 4. Representa una ayuda para analistas y programadores en el momento de desarrollo de un SIA. 5. Permite introducir procedimientos estandarizados en le manejo de datos, informes y documentación de procesos y aplicaciones. Los usuarios del DD son: el AI, el SABD, usuarios finales, Analistas de Sistemas y programadores entre otros. El diccionario de datos contiene para cada dato los siguientes atributos lógicos o meta datos: Información respecto de: identificación, control administrativo, seguridad, validación y sobre relaciones lógicas y físicas. Atributos de identificación comprende el nombre completo del dato, nombre abreviado, sinónimos, identificador o clave, fecha de última actualización. Atributos de información para control administrativo incluye: unidad de origen del dato, nombre del programa o transformación que lo origina, nombre del documento que lo contiene por primera vez en la organización, las unidades organizacionales y programas de aplicación que lo usan, Cardinalidad del dato. Atributos de seguridad identificación de las personas autorizadas para cambiar las características del dato, accesarlo o actualizarlo, fecha de última actualización e identificación del usuario que efectuó esta actualización. Atributos de validación contienen lista o rango de valores permitidos, nombre de los programas validadores que actúan sobre él. Atributos de relaciones lógicas algoritmos de derivación, identifica la forma de generación del dato, estructuras lógicas, grupos y jerarquías donde el dato es miembro. Atributos de relación física: largo, tipo, nombre para programación, reglas de edición, unidad de medida del dato, precisión. Versión 3.0 14 Bases de Datos I
  • 16. INACAP Dirección Área Informática Beneficios y riesgos de usar Banco de Datos. Un banco de datos esta constituido por todos los datos formales, relevantes para la toma de decisiones. Los datos del banco de datos se encuentran dispersos en la organización soportados en diversos medios, como, archivadores, formularios, documentos, dispositivos de almacenamiento digital y otros. La base de datos se constituye por todos los datos del banco de datos, almacenados en archivos centralizados altamente disciplinados, de tal forma que puedan ser requeridos de diversas maneras lógicas, con el fin de satisfacer las consultas de los distintos usuarios de la base de datos. Los beneficios del banco de datos son amplios y casi innumerables, el banco de datos como se señalo en l párrafos anteriores representa toda la información relevante y formalizada de la organización, entiéndase por datos de la constitución de la empresa hasta los relativos al pago de patentes pasando por datos de acreedores y deudores. El riesgo del banco de datos es que el volumen de información va aumentando paulatinamente y se hace inmanejable si no es vertida a un sistema de base de datos. 1.3 Concepto Data – Warehouse La traducción literal es almacenamiento de datos. Como es sabido existen muchos lugares donde podemos buscar datos, pero ha surgido la idea que exista un mayorista al interior de la empresa que acumule toda la información, bodega de datos inteligente. Existen muchas definiciones de DW, pero la más completa es la de Bill Inmón, la cual dice: “Data Warehouse es una tecnología orientada a temas específicos, integrada, variante con el tiempo y es una colección no volátil que soporta la administración del proceso de toma de decisiones dentro de las organizaciones ¿Cuándo y porqué nace? Día a día van surgiendo nuevos problemas en una organización y junto a ello nuevas formas de solucionarlos, la idea de DW data de hace mucho tiempo pero la razón de que hoy día sea un tema de actualidad es que hoy existen tecnologías de HW y SW suficientemente poderosas para depurar esta información. Él porque se asocia a la necesidad de mejorar la información analítica a través de un medio computacional, la mayoría de la información útil en una empresa Versión 3.0 15 Bases de Datos I
  • 17. INACAP Dirección Área Informática está encerrada en viejas aplicaciones y los usuarios creían que bastaba con crear nuevas formas de acceso pero no es así porque además tienen las siguientes características, complejidad en la estructura de los sistemas, diseño de sistemas orientados al rendimiento óptimo, información dependiente, información a menudo dispersa en múltiples o diversos sistemas, definición inconsistente y la solución fue crear un almacén de datos, en el cual los datos fueran transformados, integrados y cargados a un dispositivo en donde tuvieran sentido para aquellas personas que lo necesiten como soporte a la toma de decisiones. Su creación se ha estimulado gracias a la necesidad de sistemas de información que apoyen la toma de decisiones de una organización. Versión 3.0 16 Bases de Datos I
  • 18. INACAP Dirección Área Informática UNIDAD 2: Características y representación de Datos. 2.1 Tipos de Bases de Datos Base de Datos Red: Una base de datos de red como su nombre lo indica, esta formado por una colección de registros, los cuales están conectados entre sí por medio de enlaces. El registro es similar al de una entidad como las empleadas en el modelo entidad relación. Un registro es una colección de campos (atributos), cada uno de los cuales contiene solamente almacenado un solo valor, el enlace es la asociación entre dos registros exclusivamente, así que podemos verla como una relación estrictamente binaria. Una estructura de datos de red, llamada algunas veces estructura de plex, abarca más que la estructura de árbol porque un nodo hijo en la estructura red puede tener más de un padre. En otras palabras, las restricción de que un árbol jerárquico cada hijo pude tener un solo padre, se hace menos severa. Así, la estructura de árbol se puede considerar como un caso especial de la estructura de red tal como lo muestra la siguiente figura. Para ilustrar las estructura de los registros en una base de datos red, consideramos la base de datos alumno – materia, los registros en lenguaje pascal entonces quedaría como: type alumno = record nombreA: string[30]; control: string[8] ; esp: string[3] end; type material= record clave: string[7] nombreM: string[25] cred= string[2]; end; Versión 3.0 17 Bases de Datos I
  • 19. INACAP Dirección Área Informática Ejemplo de una base de datos en red: 11234 Álvarez Rosa 1 Cois 5100 6 Cois 5100 21344 Rivera Juan 7 Cois 5120 23456 Ríos María 8 Cois 5130 Base de Datos Jerárquicas: En este tipo de bases de datos la información se distribuye en distintos niveles según su importancia estructural: por ejemplo de la entidad automóvil, depende la entidad motor, de esta depende block y de ésta, depende camisa de cilindro. Un diagrama de estructura de árbol es el esquema de una base de datos. Tiene dos componentes básicos, Registros y Ligas. Estos diagramas son similares a los de estructuras de datos en el modelo en red. La diferencia radica en que el modelo de red los registros se organizan en forma de un grafo arbitrario, mientras que el modelo jerárquico en forma de un árbol con raíz. Las reglas para la formación de árbol son: 1. No hay ciclos 2. De padre a hijos son válidas las relaciones de uno a uno a uno a muchos El esquema de una base de datos jerárquica se presenta como una colección de diagramas de estructuras de árbol. Para cada diagrama existe una única instancia de árbol base de datos. La raíz de este árbol es un nodo ficticio. Los hijos de ese nodo son instancias del tipo de registros adecuados: Versión 3.0 18 Bases de Datos I
  • 20. INACAP Dirección Área Informática Ejemplo de una base de datos jerárquica: 11234 Álvarez Rosa 23456 Ríos María 21344 Rivera Juan 1 Cois 5100 7 Cois 5120 6 Cois 5100 7 Cois 5120 8 Cois 5130 Base de Datos Relacional: Base de datos en la cual la información está almacenada en forma de tablas, y que permite establecer relaciones entre distintas entidades por medio de campos en común; por ejemplo, código de cliente en factura y en archivo de clientes. Ejemplo de una base de datos relacional: Sección Curso 1 Cois 5100 6 Cois 5100 7 Cois 5120 8 Cois 5130 Versión 3.0 19 Bases de Datos I
  • 21. INACAP Dirección Área Informática N° Est. Apellido Nombre Sección 11234 Álvarez Rosa 1 21344 Rivera Juan 6 21344 Rivera Juan 7 23456 Ríos María 7 23456 Ríos María 8 Diferencia entre modelos relacional, red y jerárquico: Los modelos relacionales se diferencian de los modelos de red y jerárquico en que no usan puntaros o enlaces. En Cambio el modelo relacional conecta los registros mediante valores que éstos contienen. Bases de datos orientadas a objeto: Modelo orientado a objeto: Al igual que el modelo entidad – relación se basa en una colección de objetos. Un objeto contiene valores almacenados en instancias dentro del objeto. Estos valores son objetos por si mismo, esto es, los objetos contienen objetos a un nivel de anidamiento de profundidad arbitraria. Un objeto también contiene partes de un código que operan sobre el objeto, estas partes se llaman métodos. Los objetos que contienen los mismos tipos de valores y los mismos métodos se agrupan en clases. Una clase puede verse como definición de tipo para objetos. En este modelo hay dos niveles de abstracción de datos, una que es visible externamente, que ocurre en la interfase de llamada de los métodos de un objeto y otro nivel que ocurre en la parte interna del objeto y el código del método. El interfase externo del objeto permanece sin cambios. La diferencia de las entidades en el modelo entidad relación, cada objeto tiene su propia identidad única independiente de los valores que contiene. Así, dos objetos que contienen los mismos valores son, sin embargo, distintos. La distinción entre objetos individuales se mantiene en el nivel físico por medio de identificadores de objeto. Versión 3.0 20 Bases de Datos I
  • 22. INACAP Dirección Área Informática 2.2 Naturaleza del dato La percepción del mundo puede ser descrita como una sucesión de fenómenos. Desde el comienzo de los tiempos el hombre ha tratado de descubrirlos, ya sea que los entienda completamente o no. La descripción de estos fenómenos es llamado Dato. Los datos corresponden al registro discreto (no continuo) de hechos acerca de un fenómeno, con lo cual ganamos información acerca del mundo que nos rodea (Información: Incremento del conocimiento que puede ser inferido de los datos). Usualmente el dato y su significado son registrados juntos, ya que el lenguaje natural es lo suficientemente poderoso para hacerlo. Por ejemplo, el Kilo de pan cuesta “$460” registra el valor 460 y su significado o semántica (valor del kilo de pan en pesos). En ciertos casos los datos están separados de su semántica. Por ejemplo, una planilla de notas es una tabla de datos. Su interpretación implícita y se supone que quien la lee conoce su significado. El uso del computador para procesar datos ha traído consigo una mayor separación entre lo datos y su interpretación. Mucha de la interpretación de los datos está explícita. Consideremos por ejemplo un programa que calcula integrales definidas, este programa recibe valores de entrada y genera valores como salida. Sin embargo el programa en sí no tiene conocimiento si el problema resuelto es de termodinámica o electromagnetismo. 2.3 Representación del dato Ha habido razones para separar los datos de su significado: • Los computadores no manejan (bien) el lenguaje natural, que es la mejor forma de dar interpretación y su significado a un dato. • El almacenamiento de los datos ocupa espacio, e inicialmente este era escaso y costoso. Así, tradicionalmente la interpretación de los datos se deja al usuario y al sistema manual externo al computador. En muchos sistema la interpretación de datos se encuentra en los programas que hacen usos de ellos, de modo que los datos pasan a ser una simple colección de valores. Por otra parte, supongamos que algo de la semántica de los datos se codifica junto con ellos. Así los datos no sólo son valores, si no que también tienen una semántica y lo datos están más cerca de la interpretación del mundo. Ellos forman Versión 3.0 21 Bases de Datos I
  • 23. INACAP Dirección Área Informática una “vista” del mundo, la que no es exacta ni concreta, si no que usualmente es bastante abstracta. Los datos no son estáticos, y corresponden a un mundo que esta en constante cambio. La flexibilidad en la interpretación de los datos permite capturar los aspectos dinámicos del mundo y al mismo tiempo, proveer una estructura estable para los datos. Esta flexibilidad se puede tener de dos formas: • El sistema puede permitir que los mismos datos sean vistos de diferente forma. Por ejemplo, diferentes aplicaciones pueden usar los mismos datos y dar su propia semántica. • Diferentes datos pueden ser vistos de la misma forma. Por ejemplo, se quiere ver a los gerentes, secretarias y empleados sólo como trabajadores de una organización, no importando su cargo. Aquí la interpretación debe ser lo suficientemente abstracta para que diferentes vistas del mundo se vean de la misma forma 2.4 Entidades Consideremos un número de conjuntos cada uno orientado a un tipo particular de objetos. Estos conjuntos están relacionados con Dominios (conjunto de valores de un mismo tipo. Se define como un conjunto, ya sea por extensión o comprensión). Si consideramos la relación dada por el producto cartesiano de estos dominios, una interpretación que se les da a cada una de estas tuplas es que cada una corresponde a una entidad particular. Ejemplo: (Juan , 70, 80, 50) (Pedro , 90, 50, 70) ¿Qué es una entidad? • Cualquier cosa de relevancia para el negocio acerca de la cual debe mantenerse información. • Algo con existencia real o conceptual • Algo a lo que se le da nombre • Cualquier cosa que se puede identificar claramente • Un objeto que existe y es distinguible entre otros objetos Versión 3.0 22 Bases de Datos I
  • 24. INACAP Dirección Área Informática ¿Cómo se identifican Entidades? A partir de la descripción del negocio, buscando sustantivos de usos común en el negocio, buscando sinónimos, que representen conceptos generalizables. 2.5 Atributos Elemento de un dominio. Aporta mediante su rótulo, la semántica de los valores del dominio al que está asociado. Dominio ATRIBUTO 2.6 Tipos de relaciones. Uno a Uno: Relaciones uno a uno (1:1). Una entidad A está asociada a lo más con una entidad B, y una entidad B a lo más con una entidad A. Ejemplo: “Ser jefe de” es una relación uno a uno entre las entidades empleado y departamento. Uno a Muchos: Relaciones Uno a Muchos (1 : n). Una entidad A está asociada con una o varias entidades B. Una entidad B, sin embargo, puede estar a lo más asociada con una entidad A. Ejemplo: “Ser profesor” es una relación 1: n entre profesor y curso, suponiendo que un curso sólo lo dicta un profesor. Muchos a muchos Relaciones Muchos a Muchos (n : m). Una entidad A está asociada con una o varias entidades B, y una entidad B está asociada con una o varias entidades B, y una entidad B está asociada con una o varias entidades A. Ejemplo: “Estar inscrito” es una relación n : m entre las entidades alumno y curso Versión 3.0 23 Bases de Datos I
  • 25. INACAP Dirección Área Informática Unidad 3: Modelos de Datos. Es aparente que una representación del mundo es necesaria, la que debe ser suficientemente abstracta para que no sea afectada por la dinámica del mundo (los pequeños cambios), y debe ser suficientemente robusta para poder representar como los datos y el mundo se relacionan. Una herramienta como esta es llamada Modelo de Datos, el cual permite representar en forma más o menos razonable alguna realidad. El modelo de datos permite realizar abstracciones del mundo, permitiendo centrarse en los aspectos macros, sin preocuparse de las particularidades; así nuestra preocupación se centra en generar un esquema de representación, y no en los valores de los datos. Los modelos de datos nos permiten capturar parcialmente el mundo, ya que es improbable generar un modelo que lo capture totalmente. Sin embargo se puede tener un conocimiento relativamente completo de la parte del mundo que nos interesa. Así un modelo captura la cantidad de conocimiento tal que cumpla con los requerimientos que nos hemos impuesto previamente. Un Modelo de Datos define las reglas por las cuales los datos son estructurados. Esta estructuración sin embargo, no da a una interpretación completa acerca de los significados de los datos y la forma en que serán usados. Las operaciones que se permiten efectuar a los datos deben ser definidos.. 3.1 Niveles de Abstracción de los datos La mayoría de las aplicaciones son dependientes de los datos; la organización del almacenamiento y los modos de acceso dependen de los requerimientos de la aplicación y el conocimiento de la organización física de los datos y las técnicas de acceso forman parte de la lógica de la aplicación. La aplicación es dependiente de los datos, porque no se puede mejorar la estructura de almacenamiento o los modos de acceso sin afectar la aplicación. En los sistemas de bases de datos se plantean los siguientes objetivos: 1. Independencia de la base de datos de los programas para su utilización. 2. Proporcionar a los usuarios una visión abstracta de los datos. El sistema esconde los detalles de almacenamiento físico (como se almacenan y se mantienen los datos) pero estos deben extraerse eficientemente. Independencia de los datos: “La independencia de los datos es la capacidad de un sistema para permitir que las referencias a los datos almacenados, especialmente en los programas y en sus descriptores de los datos, estén aislados de los cambios y de los diferentes usos en el entorno de los datos, como pueden ser la forma de almacenar dichos Versión 3.0 24 Bases de Datos I
  • 26. INACAP Dirección Área Informática datos, el modo de compartirlos con otros programas y como se reorganizan para mejorar el rendimiento del sistema de bases de datos”. Para conseguir esta independencia entre los datos y las aplicaciones es necesario separar la representación física y lógica de los datos, distinción que fue reconocida oficialmente en 1978, cuando el comité ANSI/X3/SPARC propuso un esqueleto generalizado para sistemas de bases de datos. Este esqueleto propone una arquitectura de tres niveles, los tres niveles de abstracción bajo los que podría verse una base de datos: el nivel interno, el nivel conceptual y el nivel externo. NE 1 NE 2 NE 3 N IV E L E X T E R N O N IV E L CO NCEPTUAL N IV E L IN T E R N O Los tres niveles de la arquitectura ANSI/X3/SPARC Los tres niveles de la arquitectura ANSI/X3/SPARC • Nivel Interno: En el se define la estructura física de la base de datos: dispositivos de almacenamiento físico, direcciones físicas, estrategias de acceso, relaciones, índices, apuntadores, etc. Es responsabilidad de los diseñadores de la base de datos física. Ningún usuario, en calidad de tal, tiene conocimiento de este nivel. • Nivel Conceptual: Contiene el nivel conceptual de la base de datos, que implica el análisis de las necesidades de información de los usuarios y las clases de datos necesarias para satisfacer dichas necesidades. El resultado del diseño conceptual contiene la descripción de todos los datos y las interrelaciones entre ellos, así como las restricciones de integridad y de confidencialidad. Versión 3.0 25 Bases de Datos I
  • 27. INACAP Dirección Área Informática • Nivel Externo: Visión que de la base de datos tiene un usuario o aplicación en particular. Habrá tantas vistas de la base de datos como exijan las diferentes aplicaciones. La vistas se derivan directamente del esquema conceptual, o de otras vistas, y con tienen una descripción de los elementos de datos y sus interrelaciones orientadas al usuario o aplicación y de las que se compone la vista. Una misma vista puede ser utilizada por varias aplicaciones. Esta arquitectura de tres niveles nos proporciona la deseada independencia, que definiremos como capacidad para cambiar el esquema en un nivel sin tener que cambiarlo en ningún otro nivel. Distinguimos entre independencia física y lógica: • Independencia lógica de los datos: Cambio del esquema conceptual sin cambiar las vistas externas o las aplicaciones. • Independencia física de los datos: Cambio del esquema interno sin necesidad de cambiar el esquema conceptual o los esquemas externos. 3.2 Semántica de los datos. La semántica de los datos es el significado asociado al lenguaje (por ejemplo, el significado de las palabras y su interpretación dentro de un contexto dado). 3.3 Cardinalidad La Cardinalidad de un objeto o entidad es el número de ocurrencias del objeto, entendiéndose por ocurrencia de una entidad o instancia de un objeto, al producto de asociar valores a los atributos de la entidad u objeto. 3.4 Grado Se denomina grado, a la cantidad de atributos que se consideran para una entidad u objeto. 3.5 Dependencia Igual que para los tipos de entidad, los tipos de interrelación pueden ser regulares o fuertes y débiles, según se asocien dos entidades fuertes o una fuerte y una débil, respectivamente. En los tipos de interrelación débil no pueden existir si desaparecen en existencia y la dependencia en identificación. Versión 3.0 26 Bases de Datos I
  • 28. INACAP Dirección Área Informática Dependencia en existencia: Cuando la ocurrencia en un tipo de entidad débil no puede existir si desaparece la ocurrencia de la entidad fuerte de la que depende. Dependencia en Identificación: Cuando, además de ser una dependencia en existencia las ocurrencias de la entidad débil no pueden identificarse únicamente mediante los atributos propios de la misma. 3.8 Clase Una clase es un objeto que permite instanciar objetos. 3.9 Agregación Es una correspondencia que se establece entre dos clases. 3.10 Modelos de Datos dependientes de la tecnología. La forma o vista externa con que se presentan los datos al usuario en la mayoría de los sistemas actuales es idéntica o muy semejante a la vista conceptual. La estructura lógica, a nivel contextual o externo, es la base para la clasificación de los DBMS en las tres categorías siguientes: Jerárquica , Red y Relacional. Cualquier categoría del DBMS debe permitir un acceso aleatorio a los datos requeridos, utilizando para tal fin una de las siguientes estructuras lógicas para almacenar los datos: redes, árboles, tablas o listas enlazadas. Cada DBMS esta diseñado para manejar un tipo determinado de estructura lógica. Los programas que se ejecutan bajo un DBMS no se pueden procesar en otro DBMS. Los DBMS más conocidos, disponibles en el Mercado en función de su categoría, son: • Enfoque Jerárquico: El IMS de IBM y el SYSTEM 2000 de Intel. • Enfoque de Red: Los ejemplos más importantes los proporciona las especificaciones del grupo de trabajo de base de datos (DBTG) de CODASYL. • Enfoque Relacional: System R y QBE de IBM, MAGNUM de Tymshare, ORACLE y otros. Versión 3.0 27 Bases de Datos I
  • 29. INACAP Dirección Área Informática • Enfoque Jerárquico Un DBMS de enfoque jerárquico utiliza ÁRBOLES para la representación lógica de los datos. A los archivos que entre sus registros guardan una relación tipo árbol se les llama Archivos Jerárquicos. La figura siguiente muestra una estructura en árbol con 4 tipos de registros: SUCURSAL AUTOMOVIL EMPLEADOS FECHA-MANTENIMIENTO Que representan las sucursales filiales de una empresa, los automóviles asignados a cada una de ellas, los empleados que deben conducir un determinado coche y la fecha de mantenimiento. El registro SUCURSAL contiene los campos NUMERO-SUCURSAL, NOMBRE-SUCURSAL, NOMBRE- CIUDAD, etc.; el registro AUTOMOVIL incluye los datos de los coches; el registro EMPLEADO, los datos personales del mismo: NUMERO, NONBRE, etc. y, por último el registro FECHA-MANTENIMIENTO contiene los campos FECHA, OPERACIÓN. Ver figura Anexa. Versión 3.0 28 Bases de Datos I
  • 30. INACAP Dirección Área Informática SUCURSAL AUTOMOVIL EMPLEADO FECHA - MANTENIMIENTO a) Estructura lógica con cuatro tipos de registros SUCURSAL AUTO 1 AUTO 2 AUTO 3 AUTO 4 EMPLEADO 1 EMPLEADO 2 EMPLEADO 4 EMPLEADO 2 EMPLEADO 3 b) Ejemplo de la base de datos jerárquica de la estructura a Archivo jerárquico con cuatro tipos de registros Versión 3.0 29 Bases de Datos I
  • 31. INACAP Dirección Área Informática Terminología para describir los árboles El anexo siguiente muestra un árbol compuesto por una jerarquía de elementos llamados nodos. Los árboles se dibujan con la raíz arriba y las hojas abajo Nivel 1: Raíz A Nivel 2 B D C Nivel 3 H E G F Estructura de un árbol La terminología para describir los nodos de un árbol es la siguiente: • Raíz : es el nodo más alto de la jerarquía ( nodo A) • Padre : Es el nodo al que se haya vinculado otros de nivel inferior. EL padre de B es A. • Gemelos : Nodos con el mismo padre Ej: B, C y D. • Hijos : Son los nodos vinculados con otros del nivel superior los hijos de B son E, F, G. • Hojas : Reciben este nombre los nodos que no tienen hijos. (C, H ) Versión 3.0 30 Bases de Datos I
  • 32. INACAP Dirección Área Informática El Enfoque de Red Una estructura de datos en RED, también llamada estructura PLEX, se caracteriza porque cada nodo hijo puede tener más de un padre, a diferencia de la estructura en árbol en la que un hijo sólo podía tener un padre. A B C D F E G H I J Estructura de red El nodo C tiene dos padres A y B. Lo mismo sucede con en nodo H cuyos padres son D Y E Versión 3.0 31 Bases de Datos I
  • 33. INACAP Dirección Área Informática 3.11 Modelos de Datos Independientes de la tecnología. Objetivos del diseño En los temas anteriores se han estudiado las arquitecturas de los distintos DBMS, así como los lenguajes para el manejo de los datos. Pero todavía no se ha considerado un aspecto fundamental de las bases de datos, como es su diseño. Por diseño se entiende el generar un conjunto de esquemas de relaciones que permitan almacenar la información con un mínimo de redundancia pero al mismo tiempo faciliten su recuperación. Entre los distintos objetivos en el diseño de una base de datos se pueden considerar: 1. La base de datos resultante tiene que ser capaz de almacenar toda la información necesaria. El primer paso será determinar los atributos que van a formar parte de la base de datos y reunirlos en una relación universal. Hasta que se hayan concretado los campos necesarios no podrá el diseñador establecer las relaciones entre ellos. 2. Eliminación de la información redundante siempre que sea posible. 3. Mantener el número de relaciones al mínimo entre los componentes de la base de datos con el fin de facilitar su programación o uso por parte del usuario. 4. Las relaciones obtenidas deben estar normalizadas con el fin de minimizar los problemas de actualización y borrado. Orientado a Objeto El Modelo Orientado a Objetos se basa en el paradigma de programación orientada a objetos. Este paradigma ha tenido gran aceptación debido a que es de gran naturalidad buscar objetos en la realidad a modelar. Estructura de objetos. El Modelo orientado a objetos se basa en encapsular código y datos en una única unidad llamada objeto. La Interfaz entre un objeto y el resto del sistema se define mediante un conjunto de mensajes. El motivo de este enfoque puede ilustrase considerando una base de datos de documentos en la que los documentos se preparan usando uno entre varios paquetes software con formateador de texto. Para imprimir un documento debe ejecutarse el formateador correcto en el documento. Bajo un enfoque orientado a objetos cada documento es un objeto que contiene el texto de un documento y el código que opera sobre el objeto. Versión 3.0 32 Bases de Datos I
  • 34. INACAP Dirección Área Informática Todos los objetos del tipo documento responden al mensaje imprimir, pero lo hacen de forma diferente. Cada documento responde ejecutando el código formateador adecuado. Encapsulando dentro del objeto documento la información acerca de cómo imprimirlo, podemos tener todos los documentos con la misma interfaz externa al usuario ( aplicación). En General un objeto tiene asociado: • Un conjunto de atributos que contienen datos acerca del objeto. A su vez, cada valor de un atributo es un objeto. • Un conjunto de mensajes a los que responde. • Un conjunto (puede ser unitario) de métodos, que es un procedimiento o trozo de código para implementar la respuesta a cada mensaje. Un método devuelve el valor (otro objeto) como respuesta al mensaje. Puesto que la única interfaz externa de un objeto es el conjunto de mensajes al que responde, es posible modificar la definición de métodos y atributos sin afectar a otros objetos. También es posible sustituir un atributo por un método que calcule un valor. Ejemplo: Un objeto documento puede contener un atributo de tamaño que contenga el número bytes de texto en el documento, o bien un método de tamaño que calcule el tamaño del documento leyéndolo y contando el número de bytes. La capacidad de modificar la definición de un objeto sin afectar al resto del sistema está considerada como una de las mayores ventajas del modelo de programación orientada a objetos. Entidad - Relación En 1976, Peter Chen publicó el modelo entidad – relación, el cual tuvo gran aceptación principalmente por su expresividad gráfica. Sobre esta primera versión han trabajado numerosos autores, generando distintas extensiones de mayor a menor utilidad y de aceptación variable en el medio académico y profesional. Muchas de estas extensiones son muy útiles, pero poco difundidas debido principalmente ala ausencia de herramientas automatizadas que apoyen su uso. ¿Cómo modelar en MER (Modelo Entidad Relación)? Para modelar en MER se sigue generalmente el siguiente orden: 1. Identificar los tipos de entidades 2. Identificar los tipos de Interrelaciones 3. Encontrar las cardinalidades Versión 3.0 33 Bases de Datos I
  • 35. INACAP Dirección Área Informática 4. Identificar los atributos de cada entidad 5. Identificar las claves de cada tipo de entidad La regla básica es distinguir tipos de entidades e interrelaciones de atributos. Así, los atributos deben ser atómicos y característicos del tipo entidad o interrelación que describan. También los atributos deben pertenecer al tipo de entidad o interrelación que describen y no a otro tipo. Otra diferencia entre tipo entidad y atributo es que, por ejemplo, se puede tener el tipo de entidad empleado, que tiene como atributo el departamento al que pertenece. En Forma alternativa se pueden tener los tipos de entidades Empleado y Departamento, y el tipo de interrelación trabaja_en, que relaciona a un empleado con el departamento en donde trabaja. Esta segunda alternativa es mejor desde el punto de vista del modelamiento conceptual y presenta una clara diferencia entre atributo y tipos de entidad. Reglas para elegir identificadores 1. No deben existir dos entidades con el mismo valor del identificador (en los tipos de entidad). 2. En los tipos de interrelación, la clave es la composición de las claves de los tipos de entidad involucrados, en caso que no se pueda utilizar la clave de un subconjunto de ellos. Ejercicios Propuestos: 1. Construir un esquema MER para una secretaria de universidad. La secretaria mantiene datos sobre cada asignatura, incluyendo el profesor, lista de alumnos y la hora y el lugar de las clases. Para cada par estudiante – asignatura se registra su nota. 2. Construir un esquema MER para una compañía de seguros de autos con un conjunto de clientes, cada uno de los cuales es propietario de un número de autos. Cada auto tiene asociado el número de accidentes asociados. 3. Construir un esquema MER para modelar la documentación requerida para un esquema conceptual E – R. Versión 3.0 34 Bases de Datos I
  • 36. INACAP Dirección Área Informática 3.12 Normalización Se entiende por normalización la descomposición o subdivisión de una relación en dos o más relaciones para evitar la redundancia; en definitiva, que “cada hecho esté en su lugar”. El proceso de normalización generalmente se utiliza en el enfoque relacional; sin embargo, un modelo relacional se puede modificar para su implantación en un DBMS jerárquico o de red. La relación universal Supongamos que se desea implantar en una base de datos las ventas de una determinada empresa a sus clientes por la relación ORDENES-VENTA (NCLI, NOMBRE, LOCALIDAD, CT, NART, ARTICULO, CANT, PVP, FECHA), donde NCLI es el número del cliente, CT es el costo de transporte y NART el número de artículo. La implantación, tal como indica la Figura 1, no se puede realizar debido a la gran cantidad de información redundante y los problemas que surgen a la hora de las actualizaciones. Relación ORDENES-VENTA NCLI NOMBRE LOCALIDAD CT NART ARTICULO CANT PVP FECHA 11 Luis Málaga 0.8 A1 Papel 100 5 3/5 11 Luis Málaga 0.8 A3 Cinta 50 500 5/5 11 Luis Málaga 0.8 A9 Disco 25 200 7/5 44 Ana Gijón 1.1 A1 Papel 100 5 10/5 55 José Valencia 1.4 A4 Grapas 30 50 3/5 Figura 1. Información deseada para las ORDENES-VENTA DEPENDENCIA FUNCIONAL: DF La normalización se basa en la dependencia funcional. El concepto de dependencia funcional se tomó de las matemáticas. [Y = f(X)], Y es función de X si el valor de Y está siempre determinado por el valor de X. La dependencia funcional (DF) se define: Dados dos atributos A y B de una relación R se dice que B es funcionalmente dependiente del atributo A si para cada valor de A existe un valor de B, y sólo uno, asociado con él. En otros términos: si en cualquier instante, conocido el valor de A, podemos conocer el valor de B. Se simboliza por: A B Versión 3.0 35 Bases de Datos I
  • 37. INACAP Dirección Área Informática Tanto A como B pueden ser un conjunto de atributos en lugar de atributos simples. La dependencia funcional establece condiciones entre atributos pertenecientes a la misma relación. No permite establecer condiciones entre atributos pertenecientes a la misma relación. No permite establecer condiciones entre atributos de diferentes relaciones. Las DF se determinan al estudiar las propiedades de todos los atributos de la relación y deducir cómo están relacionados los atributos entre sí. La dependencia funcional está íntimamente ligada con el concepto de clave. Para el diseño, las claves aparecen subrayadas. Se pueden distinguir los siguientes tipos de claves: • Clave candidata: Conjunto de uno o más atributos que podría ser utilizado como clave principal de una relación. • Superclave: Conjunto de uno o más atributos que, juntos, permiten identificar de forma única a una entidad dentro de una relación. • Clave principal: Es una clave candidata en la que ningún componente puede tomar el valor nulo. Para encontrar la clave candidata es preciso estudiar las dependencias funcionales y, a partir de ellas, obtener el mínimo conjunto posible de atributos tales que, una vez conocidos sus valores en la tupla, los demás queden definidos Consideremos la relación CLIENTES: NCLI, NOMBRE, LOCALIDAD, donde NCLI es el número del cliente. Los campos NOMBRE y LOCALIDAD son funcionalmente dependientes de NCLI: Para un valor de NCLI existe un único valor de NOMBRE y LOCALIDAD. Se expresa: NCLI NOMBRE NCLI LOCALIDAD En forma abreviada: NCLI (NOMBRE, LOCALIDAD) La proposición NCLI NOMBRE se lee: “el atributo NOMBRE es funcionalmente dependiente del atributo NCLI”, o también: “el atributo NCLI determina funcionalmente al atributo NOMBRE”. La proposición NCLI (NOMBRE, LOCALIDAD) se puede leer: “el atributo compuesto formado por NOMBRE y LOCALIDAD es funcionalmente dependiente de NCLI”. El atributo NCLI es un determinante de los atributos NOMBRE y LOCALIDAD. Dicho de otra forma: por cada NCLI sólo puede haber un NOMBRE y una Versión 3.0 36 Bases de Datos I
  • 38. INACAP Dirección Área Informática LOCALIDAD asociados a él. NCLI es una superclave. Sin embargo, el NOMBRE no es un determinante de la LOCALIDAD, ya que puede haber varias personas con igual nombre en ciudades diferentes o en la misma ciudad. Determinante: Si A B es una DF y B no es funcionalmente dependiente de A se dice que A es el determinante de B. Un determinante son todos los atributos situados en el lado izquierdo de una DF. Es conveniente representar las DF de una relación en un diagrama de dependencia funcional; en el ejemplo anterior: NOMBRE NOMBRE NCLI o NCLI LOCALIDAD LOCALIDAD El diagrama de dependencia funcional para la relación ORDENES-VENTA se muestra en la Figura 2. Se aprecia que el atributo CANT es totalmente dependiente de los atributos NCLI, NART y FECHA, lo que da lugar a la aparición de un nuevo concepto: dependencia funcional total. Dependencia funcional total: En una relación R, un atributo o colección de atributos B tiene una dependencia funcional total de otra colección de atributos A de la relación R, si B es funcionalmente dependiente de todos los atributos de A pero no de un subconjunto de A. NCLI NOMBRE, LOCALIDAD, CT CANT NART ARTICULO, PVP FECHA Figura 2 Diagrama de dependencia funcional Versión 3.0 37 Bases de Datos I
  • 39. INACAP Dirección Área Informática PRIMERA FORMA: 1FN Una relación está en primera forma normal si todo atributo contiene un valor indivisible, atómico. Esta forma normal está justificada por la sencillez y la estética en la representación de los registros (Fig. 1). NCLI NOMBRE LOCALIDAD CT NART ARTICULO CANT PVP FECHA 11 Luis Málaga 0.8 A1 Papel 100 5 3/5 50 5 5/5 se puede normalizar con la creación de un registro nuevo por cada uno de los distintos valores de un campo, tal que permita expresar la relación como una tabla NCLI NOMBRE LOCALIDAD CT NART ARTICULO CANT PVP FECHA 11 Luis Málaga 0.8 A1 Papel 100 5 3/5 11 Luis Málaga 0.8 A3 Cinta 50 500 5/5 Una relación en 1FN contiene una serie de anomalías de almacenamiento a la hora de realizar las actualizaciones por la información redundante, como se puede apreciar en la Figura 1. NORMALIZACIÓN DE LA RELACIÓN 1FN Las anomalías de almacenamiento, que se deben a la presencia de campos no clave en la relación, se pueden subsanar de la siguiente forma: a) Dividiendo la relación universal en nuevas relaciones. b) Cada relación tiene la propiedad de que su clave, en su totalidad, es necesaria para definir cada uno de los campos no clave. Al proceso de dividir cualquier relación en dos o más relaciones se llama proceso de normalización. Consiste en reemplazar las relaciones por proyecciones adecuadas, de tal forma que la reunión natural de las proyecciones genere la relación original, es decir, que no se produzca pérdida de la información. Incluso las nuevas relaciones pueden contener información que no se podía representar originalmente (un nuevo registro en alguna de las nuevas relaciones), pero siempre conservando las dependencias funcionales. Versión 3.0 38 Bases de Datos I
  • 40. INACAP Dirección Área Informática Descomposición sin pérdida. Descomposición de una relación R en R1, R2, ... RN, tal que: R = R1 * R2 * ... * RN. Cuando se actualiza la base de datos, el sistema debe poder comprobar que la actualización no va a generar una relación ilegal, es decir, una que no satisfaga todas las DF establecidas. Para llevar a cabo el proceso de normalización es aconsejable dar los siguientes pasos: 1. Elegir una clave primaria que puede representar de forma única a cada registro de la relación. 2. Construir un diagrama de dependencia en función de esas claves. 3. Construir las nuevas relaciones basándose en dichas claves. Por el paso 1, en la relación ORDENES-VENTA, los atributos que forman la clave primaria son: NCLI, NART, FECHA. Versión 3.0 39 Bases de Datos I
  • 41. INACAP Dirección Área Informática Los diagramas y las nuevas relaciones aparecen descritas en la figura siguiente. Relación Clientes NCLI Nombre, Localidad, CT Relación Artículos NART Artículo, PVP Relación Ventas NCLI NART CANT FECHA a) Diagramas de dependencias funcionales Relación CLIENTES NCLI NOMBRE LOCALIDAD CT 11 Luis Málaga 0.8 44 Ana Gijón 1.1 55 José Valencia 1.4 Relación ARTICULOS Relación VENTAS NART ARTICULO PVP NCLI NART CANT FECHA A1 Papel 5 11 A1 100 3/5 A3 Cinta 500 11 A3 50 5/5 A4 Grapas 50 11 A9 25 7/5 A9 Disco 200 44 A1 130 10/5 55 A4 30 3/5 b)Registros de las relaciones RELACION 1FN NORMALIZADA Versión 3.0 40 Bases de Datos I
  • 42. INACAP Dirección Área Informática SEGUNDA FORMA NORMAL: 2FN Una relación está en segunda forma normal sí, y sólo sí: 1. Está en 1FN 2. Todo atributo que no pertenezca a la clave debe depender de la clave en su totalidad y no sólo de una parte; debe tener una dependencia funcional total. Las relaciones mostradas en la Figura siguiente pertenecen ya a la 2FN. Sin embargo, la relación CLIENTES presenta anomalías de almacenamiento debido a que el atributo CT es funcionalmente dependiente de LOCALIDAD, que a su vez depende de NCLI; es decir, hay una dependencia transitiva que ocasiona problemas a la hora de las actualizaciones. Por ejemplo, no se puede insertar un CT para una localidad determinada hasta que haya un cliente para dicha localidad. Dependencia transitiva Supongamos la relación R(A,B,C). Si A B, B C y B A ; entonces se dice que C depende transitivamente de A y se puede formar la cadena A B C. En un diagrama de dependencia funcional, C es transitivamente dependiente de A si se tiene la siguiente situación: Relación R A B, C Se puede descomponer en dos relaciones por la proyección del último eslabón de la forma; Relación R1 A B Relación R2 A C Normalización de la relación 2FN Las anomalías de almacenamiento, originadas por la dependencia transitiva en una relación 2FN, se puede normalizar mediante los siguientes pasos: 1. En una relación, determinar el atributo que es funcionalmente dependiente de un Versión 3.0 no clave y dibujar el diagrama de dependencia Bases de Datos I atributo 41 funcional.
  • 43. INACAP Dirección Área Informática 2. Crear una nueva relación para almacenar el atributo no clave y su determinante El diagrama de dependencia funcional y las relaciones CLIENTES y TRANSPORTE se muestran en la figura 13.4. Han desaparecido las anomalías surgidas por la dependencia transitiva, como se puede comprobar al dar de alta un nuevo registro en la relación TRANSPORTE, aunque no haya ningún cliente de esa ciudad. Relación Clientes NCLI Nombre, Localidad Relación Transportes LOCALIDAD CT Relación Artículos NART Artículo, PVP Relación Ventas NCLI NART CANT FECHA a) Diagramas de dependencias funcionales Relación CLIENTES NCLI NOMBRE LOCALIDAD 11 Luis Málaga 44 Ana Gijón 55 José Valencia Relación TRANSPORTES LOCALIDAD CT Málaga 0.8 Gijón 1.1 Valencia 1.4 b) Registros de las relaciones CLIENTES Y TRANSPORTES RELACION 2FN NORMALIZADA Versión 3.0 42 Bases de Datos I
  • 44. INACAP Dirección Área Informática TERCERA FORMA NORMAL: 3FN Una relación está en 3FN sí, y sólo sí: 1. Está en 2FN 2. Todo atributo que no pertenezca a la clave no depende de un atributo no clave. La 3FN elimina las redundancias ocasionadas por las dependencias transitivas. Las relaciones mostradas en la figura 13.4 pertenecen ya a la 3FN. En la 3FN se puede decir que en cada relación no existe u atributo no clave que defina a otro atributo. Existe una excepción: Cuando en una relación hay dos atributos que podría ser la clave, como el DNI y l número de la seguridad social. Unidad 4: Metodología de Diseño de una Base de Datos. Versión 3.0 43 Bases de Datos I 4.1 Enfoque metodológico
  • 45. INACAP Dirección Área Informática Todo proceso tiene entradas -recursos humanos, tecnológicos, materiales y otros- para el desarrollo de las actividades que lo conforman; como salidas se esperan productos, servicios, información, activos financieros u otros. Si bien la distinción entre actividad y proceso no es nítida, por Bases de Datos I Versión 3.0 44 lo general un proceso es visto como un conjunto de actividades o una macro actividad. Otra definición, entiende todo proceso como un quot;conjunto de tareas lógicamente
  • 46. INACAP Dirección Área Informática PROCESOS DE APOYO Gestión de recursos humanos Gestión de adquisiciones Gestión de recursos tecnológicos Gestión de logística de entrada Gestión de operaciones Gestión de logística de salida Gestión de ventas Gestión de servicio PROCESOS PRINCIPALES Por tanto, los procesos principales serían los conjuntos de actividades vinculadas a la creación, venta, transferencia y asistencia posterior de productos o servicios; mientras que los de apoyo serían todos aquellos conjuntos de actividades que sustentan las actividades involucradas en los procesos principales proporcionándoles insumos, tecnologías, recursos humanos y variadas funciones administrativas. Modelo de Procesos por Regulación Uno de los modelos para representar los conjuntos de actividades asociados a los procesos es el llamado Modelo de Procesos por Regulación (MPR). El modelo asume que el propósito de todo sistema de gestión es el de regular el comportamiento de los recursos que manejan las organizaciones ante perturbaciones generadas por un entorno cambiante y Versión 3.0 45 Bases de Datos I
  • 47. INACAP Dirección Área Informática no controlable. Los recursos regulados son ingresados desde el entorno hacia la organización, para ser quot;operadosquot; o quot;transformadosquot; en su interior y devueltos al exterior. Bajo este modelo es crucial identificar los recursos que interesan regular, que pueden ser recursos materiales, humanos u otros. A modo de ejemplo, para la organización de una conferencia de informática, un recurso que interesará regular serían los trabajos que se presenten. Con propósitos de quot;regulaciónquot; interesará información más allá del contenido del quot;trabajoquot; Las operaciones o actividades que se ejecutan sobre los recursos son las que están sometidas a regulación. Por tanto, a nivel de actividades suelen distinguirse aquellas que producen bienes / servicios (actividades físicas) de las actividades que las regulan (actividades administrativas). Lo anterior implica que a nivel de los flujos existen los físicos y los de información. Los flujos físicos son aquellos asociados a los recursos que se aspira regular a través de los flujos de información. Ejemplos de flujos físicos pueden ser flujos de materiales, de dinero, de personas, de documentos, etc. Las actividades que tienen como entrada los flujos físicos modifican el estado de los recursos involucrados para dar origen a productos / servicios. Las actividades administrativas que regulan estos flujos, lo realizan a través de procesamientos, procedimientos, monitoreo, coordinación, toma de decisiones, dirección y control de los flujos físicos. Los objetos del entorno son todas aquellas unidades organizacionales o personas que originan o reciben los flujos físicos de entrada / salida, en tanto que lo sistemas externos son aquellos con los cuales sé interactúa y que inciden en la toma de decisiones. La siguiente figura presenta la estructura básica de un ciclo clásico de regulación, observándose que las actividades administrativas pueden descomponerse en las orientadas a registrar los cambios de estado que experimenta el recurso regulado, y aquellas orientadas a tomar decisiones que impliquen acciones sobre las actividades físicas llevadas a cabo Versión 3.0 46 Bases de Datos I
  • 48. INACAP Dirección Área Informática Sistemas de Información Se entenderá por sistema de información al conjunto de componentes interrelacionados que operan conjuntamente para capturar, procesar, almacenar y distribuir información que apoye la toma de decisiones, la coordinación, el control y análisis en una organización. Según el nivel organizacional al cual los sistemas satisfacen y su valor para la organización, los tipos de sistemas que interesarán son: • de Procesamiento de Transacciones (SPT): registran las transacciones rutinarias del negocio y que sirven para el nivel operacional de las organizaciones. • de Apoyo a las Decisiones (SAD): están a nivel de gestión de las organizaciones, y combinan datos y modelos analíticos sofisticados para apoyar el proceso de decisión. • de Información Administrativos o de Gestión (SIA o SIG): están a nivel de gestión de las organizaciones, y apoyan las funciones de planificación y control para proveer informes de resumen y de excepción; dependen de datos proporcionados por los SPT. • de Apoyo Ejecutivos (SAE): están a nivel estratégico de la organización diseñados para apoyar las decisiones no estructuradas y crear un entorno generalizado de automatización y comunicaciones de redes; son sistemas que incorporan información de eventos externos, tales como políticas impositivas, comportamientos de la competencia. Versión 3.0 47 Bases de Datos I
  • 49. INACAP Dirección Área Informática Metodología Para estructurar un sistema de información orientado a satisfacer requerimientos estratégicos de las organizaciones se desarrolló una metodología, apoyada en el modelamiento de procesos por regulación, que consta de las siguientes etapas: Etapa 1: Identificación de procesos Utilizando la cadena de valor planteada por Porter se identifican los procesos más relevantes dentro de una organización, diferenciando los principales y los de apoyo. En esta etapa se deben tomar en consideración la misión y los objetivos estratégicos fijados en la organización. Etapa 2: Selección de procesos Cumplido lo anterior se seleccionan aquellos en los que interesa focalizar los esfuerzos y recursos disponibles. Entre las herramientas de apoyo utilizadas en esta fase se encuentran el análisis FODA (Fortalezas/Oportunidades/Debilidades/Amenazas) y los FCE (Factores Críticos de Éxito). Etapa 3: Descomposición de procesos A continuación se identifican los recursos a regular, los subprocesos físicos que afectarán al recurso involucrado, y los administrativos o de gestión que regularán el comportamiento de los subprocesos físicos. Etapa 4: Estructuración del sistema de información Cada uno de los subprocesos administrativos da origen a tres subsistemas de información: de procesamiento de transacciones, de información administrativa, y de apoyo a las decisiones. El primero captura las transacciones que den cuenta de los cambios de estado del recurso que se está regulando; el segundo apoya las funciones de planificación y control; el tercero apoya el proceso de toma de decisiones. Sobre la totalidad de estos subsistemas se implementa el sistema de apoyo ejecutivo con propósitos de coordinación e interacción con los anteriores y con el medio externo. Este enfoque metodológico genera, para cada uno de los subprocesos identificados, sistemas de información orientados a los procesos con componentes a nivel operacional, táctico y estratégicos. Versión 3.0 48 Bases de Datos I
  • 50. INACAP Dirección Área Informática 4.3. Obtención del Modelo Corporativo Una sola visión de la base de datos puede describirse mediante un modelo. Un modelo de visión representa un pequeño subconjunto de la realidad, apropiado para una aplicación del contenido de la base de datos. La mayoría de las bases de datos para especificarse requerirán varios modelos de visión. El estrecho enfoque de visión por visión para comprender la estructura de una base de datos tiene la ventaja de que la complejidad de los vínculos que se presentan en las bases de datos del mundo real puede dominarse. Cuando se ha establecido un conjunto comprensivo de modelos de visión, es posible establecer la construcción de un modelo para toda la base de datos. Se combinan relaciones provenientes de modelos separados de visión con base en los atributos que tengan en común. Si los modelos de visión no tienen atributos en común no se obtiene ningún beneficio al unir estos datos en un solo modelo de base de datos. Aunque haya atributos comunes podría no haber conexiones. La falta de conexiones indica que las visiones o los grupos de visiones pueden mantenerse independientemente unas de otras. A una base de datos creada a partir de visiones que no se conectan con otras bases de datos se les denomina base de datos independiente, esta se mantiene mejor en forma distribuida, aún cuando el equipo de computación sea compartido. Hay beneficios ( funcionales, geográficos, desempeño, autonomía, confiabilidad, crecimiento) al efectuar distribución, y si las bases de datos pueden conservarse más pequeñas y manejarse en forma autónoma, probablemente los costos totales sean más bajos. Para permitir consultas de recuperación con acceso a datos de múltiples bases de datos independientes suele forzarse a que bases de datos más independientes queden en una base de datos integrada. Actualmente sólo unos cuantos sistemas de manejo de base de datos permiten que se procesen consultas con acceso a más de una base de datos. El costo de combinar bases de datos independientes consiste en un costo incrementado en demasía del sistema de base de datos, a fin de proporcionar la independencia requerida del modelo de visión y la protección para las transacciones de actualización. Los costos de manejo, debidos al intento de volver comunitarias áreas en las que existen pocos incentivos naturales para cooperar, también pueden ser altos. Ni siquiera deben integrarse todos los modelos conectados de visión. El enlace entre algunos conjuntos de visiones puede ser relativamente débil y no garantizará la integración de un modelo de visión en la base de datos. Un enlace débil puede deberse a un atributo compartido, pero que no cambia. En esos casos también se diseñarán bases de datos Versión 3.0 49 Bases de Datos I
  • 51. INACAP Dirección Área Informática independientes de datos, con un procedimiento para mantener sincronizado el atributo compartido. Por ejemplo, si los empleados están identificados con un departamento, y la producción de bienes con otro, la lista de departamentos podría proporcionar tal enlace relativamente constante. Sólo si los empleados se relacionaran con la producción habría un acoplamiento suficientemente fuerte entre las dos áreas para justificar la combinación de modelos de visión. La existencia de un atributo compartido que frecuentemente se actualice en dos modelos independientes de otro modo, proporciona otro incentivo para combinar los modelos y evitar así esfuerzos redundantes de actualización. Un ejemplo de base de datos centralizada se encuentra en los sistemas de reservaciones de líneas aéreas. Las relaciones básicas que proporcionan la disponibilidad de asientos y los programas de vuelos tienen que compartirse por todos los usuarios y reciben frecuente acceso. En las compañías manufactureras a menudo resultan convenientes las bases de datos distribuidas. Puede existir gran actividad en una sola fábrica, pero que no resulte de interés para todos los que trabajen en ella. Datos generales de entrada y salida, en términos de materiales, dinero y productos, describen la fábrica en forma adecuada desde un punto de vista externo. Las decisiones referentes a distribución se basan principalmente en la experiencia y la intuición. Hasta qué punto es más conveniente la distribución que la centralización?, depende del costo de manejo de operaciones, comunicaciones y procesamiento. Una base de datos distribuida no implica distribución física sino más bien una distribución de responsabilidades a múltiples bases de datos. Un sistema disperso puede estar bien integrado o distribuido. El costo de las comunicaciones necesarias para un sistema integrado pero repartido en sitios remotos hará posible un enfoque distribuido. Cada base de datos en el conjunto distribuido tendrá sus conexiones internas y algunas con otros sitios. Las relaciones y conexiones disponibles pueden describirse mediante un submodelo de base de datos. Este puede representar una sola visión o aumentarse y modificarse para tener en cuenta información y datos provenientes de otras visiones incluidos en la base de datos. Un sitio también podría tener un modelo global integrado de todos los datos en las bases distribuidas de datos. Versión 3.0 50 Bases de Datos I
  • 52. INACAP Dirección Área Informática Si una base de datos que opera en un sitio tiene derecho de acceso a datos provenientes de bases ubicadas en otros puntos, puede convenir tener disponible una copia en cada sitio del modelo global de base de datos, aún cuando en ese sitio sólo se almacenen datos para el submodelo local de base de datos. La capacidad de cambiar localmente inclusive la parte local de un modelo de base de datos estará restringida ahora, ya que se verán afectados modelos remotos, aunque sus bases de datos no sean afectadas por el cambio de modelo. Un ejemplo se presenta en los bancos, donde durante las horas de negocios, las bases de datos primarias se encuentran en las sucursales (submodelos). Después del cierre diario, la correspondencia de los datos locales con los datos de la oficina central (modelo global) se verifica y se da la responsabilidad primaria al sitio central. Durante la noche, la base de datos central puede actualizarse rápidamente con transacciones que llegan de otros bancos a la oficina central. Los mensajes de actualización se comunican a las sucursales. En la mañana la responsabilidad pasa a las sucursales, después de una verificación de integridad. Se observa que la creación de submodelos de bases de datos implica la existencia de un modelo integrado de bases de datos (modelo corporativo) aun cuando los datos puedan no estar integrados. En una base de datos distribuida puede existir un esquema global basado en el modelo integrado de base de datos que ayude a las consultas globales. Una vez que se ha decidido cuáles modelos de visión se incluirán en uno sólo, es posible construir el modelo integrado de bases de datos, que consistirá en relaciones de varios tipos y en las conexiones entre dichas relaciones. La combinación puede tener el aspecto de un árbol, de cierto número de árboles (un bosque) o de una red. Cuando se está construyendo la base integrada de datos, deben tenerse en cuenta algunos objetivos: 1. Obtener relaciones con el mayor grado de claridad semántica. 2. Conservar la independencia de visión para simplificar la distribución posterior. 3. Tener el menor número de relaciones. 4. Tener el menor número de tuplas. 5. Hacer que el número de datos almacenados sea mínimo. 6. Hacer que el número de conexiones entre relaciones y atributos compartidos sea mínimo. 7. Hacer que sea mínima la actividad a lo largo de todas las conexiones entre relaciones. Versión 3.0 51 Bases de Datos I
  • 53. INACAP Dirección Área Informática Se han estudiado reglas para establecer una situación óptima de acuerdo con los últimos cuatro criterios, utilizando dependencias funcionales entre atributos como elementos básicos para la toma de decisiones. En muchos casos prácticos los diseños de bases de datos sustentados en cualquiera de los criterios no diferirán mucho. La claridad semántica aumenta cuando se agrupan aquellos atributos fuertemente relacionados, y esto puede lograrse con un número limitado de relaciones y conexiones de interrelación. A menudo la normalización habrá aumentado el número de tuplas y reducido el número de datos almacenados. La integración puede reducir el número total de tuplas al combinarlas, pero normalmente aumenta el número total de relaciones y sus conexiones. El modelo integrado de base de datos puede ser complejo, pero presenta una descripción precisa de las necesidades del usuario. Algunas veces es mejor adaptar el submodelo de base de datos a un subconjunto propio de la base integrada, ya que esto puede proporcionar una visión más realista de la operación y sus restricciones. Cuando los submodelos de base de datos son subconjuntos del modelo de base de datos, tal transformación sólo requiere selección y puede lograrse fácilmente. 4.4. Obtención de las bases de datos requeridas por la organización Es posible construir sistemas de manejo de base de datos con una amplia gama de generalidad. Una clasificación de estos enfoques en tres niveles distingue los sistemas que apoyan a una sola aplicación, a varias aplicaciones del mismo tipo o a múltiples tipos de aplicaciones. Se han desarrollado algunos sistemas a través de estos tres niveles; otros se han diseñado para resolver problemas en un nivel especifico. Sistemas de bases de datos de una sola aplicación Una organización establece una operación de base de datos utilizando las facilidades disponibles de sistema de archivo y diseña programas de aplicación que realizan una interfase a la base de datos utilizando un paquete mantenido centralmente que implanta el grado necesario de descripción de datos y de estructura. El sistema original de reservación de la línea aérea American Airlines, SABRE, muchos grandes sistemas de información, tales como MEDLARS (sistema para consultar información médica) y sistemas de comando y control militar son ejemplos de este enfoque. Versión 3.0 52 Bases de Datos I
  • 54. INACAP Dirección Área Informática Sistemas de bases de datos para varias aplicaciones del mismo tipo. Un grupo de usuarios trabajando en cierto tipo de áreas de aplicación reconoce la existencia de necesidades comunes. Ellos o su vendedor de equipo electrónico diseñan un sistema que cubran sus necesidades. Las diferencias entre usuarios se incluyen en tablas y esquemas específicos para cada usuario. A menudo, este último paso se realiza después de obtener éxito con un sistema orientado más bien a un solo objetivo. Son ejemplos de este enfoque los sistema generalizados de reservación de líneas aéreas (PARS), sistemas de información clínica (TOD, GEMÍS), y sistemas de facturación de materiales (BOMP). Sistemas de bases de datos de tipo de aplicación múltiple. Un vendedor de equipo electrónico o un grupo académico diseñan un sistema con la intención de que cubra las necesidades generales de la base de datos en una forma mejor. Desde luego, habrá cierta tendencia a subrayar aquellos aspectos relacionados con la experiencia de los diseñadores de manera que en la práctica se encuentra una gran diferencia entre los sistemas generalizados. Otra fuente para los sistemas generalizados es una evolución continuada a partir de servicios para una sola aplicación o del tipo de aplicación. Una orientación hacia una aplicación específica o a un tipo de aplicación permite reconocer vínculos semánticos difíciles de explotar en un sistema generalizado. Sin embargo, un sistema generalizado presenta un mejor equilibrio de los problemas en la implantación de un sistema de base de datos. 4.5. Proceso de diseño de bases de datos La concepción de una Base de Datos Relacional es una tarea larga y costosa. Existe la necesidad de contar con procedimientos ordenados que faciliten el desarrollo de un producto software, ya que esto tiene una incidencia en cuanto a costos y plazos de entrega, además de la calidad y mantenimiento del producto. Según Sommerville (1988) quot; un buen diseño es la clave de una eficiente ingeniería del software. Un software bien diseñado es fácil de aplicar y mantener, además de ser comprensible y fiable. Los sistemas mal diseñados, aunque puedan funcionar, serán costosos de mantener, difíciles de probar y poco fiablesquot;. Versión 3.0 53 Bases de Datos I
  • 55. INACAP Dirección Área Informática Muchas veces, el diseño de una base de datos se limita aplicar la teoría de normalización, cuando en realidad debe abarcar muchas otras etapas, que van desde la concepción hasta la instrumentación. Una metodología es un conjunto de modelos y herramientas que nos permiten pasar de una etapa a la siguiente en el proceso de diseño de la base de datos. Rolland y Benci (1988). En la determinación de las fases de la metodología debemos definir una jerarquía de niveles de abstracción que resulte apropiada, en el sentido de ser lo suficientemente amplia para que a cada nivel le correspondan decisiones de diseño bien definidas, pero, a la vez, no proponer demasiados niveles, ya que sería muy sensible a la interpretación del diseñador. No existe una metodología consagrada, sin embargo, ciertas etapas son distinguibles: • Diseño Conceptual, cuyo objetivo es obtener una buena representación de los recursos de información de la empresa, con independencia de usuarios o aplicaciones en particular y fuera de consideraciones de eficiencia del computador. • Diseño Lógico, cuyo objetivo es transformar el esquema conceptual obtenido en la etapa anterior, adaptándolo al modelo de datos en el que se apoya el SGBD que se va a utilizar (modelo relacional). • Diseño Físico, cuyo objetivo es conseguir una instrumentación lo más eficiente posible del esquema lógico. Causas de malos diseños • Falta de conocimiento del dominio de la aplicación, conocimiento que no posee el informático, pero sí el usuario (aunque no sepa estructurarlo ni expresarlo de forma precisa). • Falta de experiencia en el modelado Etapa 1: Diseño Conceptual Consiste de básicamente 2 etapas: • Etapa de análisis de requisitos • Etapa de conceptualización Versión 3.0 54 Bases de Datos I
  • 56. INACAP Dirección Área Informática El análisis de requisitos debe responder a la pregunta: qué representar? Para ello hay que estudiar las reglas de la empresa (del negocio) a los diferentes niveles de la organización, para elaborar una descripción de la organización. Esquema percibido. Puede utilizarse el lenguaje natural. La segunda etapa responde a la pregunta Cómo representar?. Aquí se utilizan los modelos conceptuales. Nosotros utilizaremos el MER y sus extensiones, que básicamente define entidades, atributos, interrelaciones y restricciones semánticas. Esquema conceptual. En el paso del esquema percibido al esquema conceptual. No existen reglas claras que permitan decidir que elemento es una entidad o cual otro una interrelación. Existen 2 enfoques. Enfoque lingüístico y categorización de objetos. En el enfoque lingüístico: • un sustantivo (nombre común) que actúa como sujeto o complemento directo en un frase es por lo general un tipo de entidad, aunque podría ser un atributo. Ej.: los socios piden prestados libros, existen 2 posibles entidades: SOCIO y LIBRO. • los nombres propios indican ocurrencias de un tipo de entidad, Ej: Date,C indica una ocurrencia de AUTOR. • un verbo transitivo o una frase verbal es un tipo de interrelación, Ej: pedir prestado indica una interrelación entre las entidades LIBRO y SOCIO. • una preposición entre 2 nombres suele ser un tipo de interrelación o también establece la asociación entre una entidad y sus atributos. Ej: la institución del autor, podemos pensar en la interrelación entre AUTOR e INSTITUCION o bien, el atributo institución de AUTOR. En el enfoque de categorización de objetos (Navathe, 1983): • una entidad es un objeto de datos que tiene más propiedades que su nombre o se utiliza como operando en una sentencia de selección, borrado o inserción. Ej: en la biblioteca existen libros que poseen una serie de propiedades, como son el título, idioma, nro. de copias, etc. LIBRO es una entidad, ya que tiene varias propiedades. Ej: cuando un socio deja serlo, es preciso eliminarlo de la base de datos, SOCIO es una entidad, por ser un operando en una sentencia de borrado. • un atributo es un objeto de datos al que se asigna un valor o se utiliza como operando en una operación aritmética, boolean, etc. Ej: se puede consultar si el título de un libro es Bases de datos, luego, título es un atributo. Versión 3.0 55 Bases de Datos I
  • 57. INACAP Dirección Área Informática • una interrelación es un objeto de datos que hace posible la selección de una entidad por medio de una referencia a un atributo de otra entidad. Ej: seleccionar los libros que ha escrito un determinado autor, por lo que escribir es una interrelación, ya que nos permite seleccionar una entidad (LIBRO) por medio de una referencia a un atributo de otra entidad (Nombre de AUTOR). Casos especiales: 1. quot;ES_UNquot; nos permite crear jerarquías de entidades, corresponde al concepto de generalización de Smith y Smith (1977). Ej: tanto un libro como un artículo son documentos Los atributos de DOCUMENTO son heredados por ARTICULO y LIBRO. También pueden haber atributos que son exclusivos de las entidades subtipos, por ejemplo, editorial podría ser un atributo de LIBRO pero no de ARTICULO. 2. TIENE, este verbo, posee muchas interpretaciones. − Ocurrencia de, Ej.: un libro tiene varios ejemplares, en el sentido que un ejemplar es una ocurrencia de libro. Cual sería el identificador de la entidad, que es ocurrencia, (EJEMPLAR)???. Se forma con el identificador de la entidad principal (LIBRO) junto a un atributo discriminante de la ocurrencia. Ej: libros con 5 dígitos y 2 dígitos para los ejemplares. − Interrelación entre entidades Ej: los libros pueden tener más de un autor, actúa como interrelación entre AUTOR y LIBRO. − Asociación de las entidades con sus atributos (agregación) Ej: los libros tienen un título, un año de publicación y un idioma, estamos asociando a la entidad LIBRO una serie de atributos. Algunas mañas: Si decimos los socios piden prestados libros, estaríamos generando un diagrama con entidades LIBRO, SOCIO, EJEMPLAR, e interrelaciones presta (LIBRO, SOCIO) y tiene (LIBRO,EJEMPLAR), lo que es incorrecto. Versión 3.0 56 Bases de Datos I
  • 58. INACAP Dirección Área Informática Debería ser, las mismas entidades, e interrelaciones tiene (LIBRO, EJEMPLAR) y presta (EJEMPLAR,SOCIO). En las jerarquías de supertipo y subtipos, los atributos deben definirse a un nivel adecuado, es decir, si tanto libros como artículos tienen titulo e idioma, estos atributos deben estar en DOCUMENTO. Características del esquema conceptual La fase de modelación conceptual cumple los siguientes objetivos: • Captar y almacenar el universo del discurso mediante una descripción rigurosa, representando la información que describe a la organización y que es necesaria para su funcionamiento. • Aislar la representación de la información de los requisitos de la máquina y exigencias de cada usuario en particular. • Independizar la definición de la información de los SGBD en concreto. Los esquemas conceptuales se caracterizan por: • Claridad, la significación es no ambigua. • Coherencia, sin contradicciones o confusiones • Plenitud, representa lo esencial sin ser exhaustivo. • Fidelidad, la representación del universo del discurso ha de hacerse sin desviaciones ni deformaciones. • Simplicidad, máxima sencillez (Nº reducido de componentes, conceptos separados, redundancia controlada). Notar que desde un mismo universo del discurso se pueden obtener distintos esquemas conceptuales. El problema de la equivalencia entre DEI es importante. Algunos criterios de equivalencia son: • Compatibilidad de dominios de datos, los DEI representan el mismo UD • Equivalencia de dependencias de datos, representan las mismas restricciones. • Equivalencia de ocurrencias de datos Existen ciertas restricciones de tipo semánticas que no son posibles de describir a través de típicamente el MER extendido. Muchas de estas se escriben en lenguaje natural dentro del mismo DEI. Versión 3.0 57 Bases de Datos I
  • 59. INACAP Dirección Área Informática Proceso de integración de vistas Las vistas se dividen en idénticas y no idénticas. Las idénticas contienen los mismos tipos de objetos, puede que con distintos nombres. Las no idénticas, poseen diferentes tipos de objetos (todo o en parte). Dentro de estas ultimas hay que distinguir las que son equivalentes de las que no lo son. La integración de vistas consiste en partir de dos vistas y obtener una tercera que las englobe, así sucesivamente hasta llegar al esquema global. Al querer integrar vistas surgen algunos problemas: 1.- Conflictos de nombres: • Homonimia, a dos objetos se les ha asignado el mismo nombre • Sinonimia, un mismo objeto con mas de un nombre Ejemplo: conflicto de nombre e entidades, un sistema trata con AUTOR y con cod_autor como atributo identificador y otro, con ESCRITOR e identificador cod_escritor. Solución: usar una sola con su respectivo identificador. Conflicto de nombre en interrelaciones, una REVISTA publica ARTICULO o bien, en una REVISTA aparece un ARTICULO. Solución: Cambiar el nombre, adoptar uno solo. 2.- Conflictos entre entidades: o una entidad es un subconjunto de otra. Solución: introducir un subtipo. Ej: entidades REVISTA y PUBLICACION, esta última incluye además revistas, recopilaciones y otros tipos, se puede resolver introduciendo la revista como un subtipo de publicación. Se llama restricción de selección. o una entidad es disjunta con respecto a otra, pero ambas poseen atributos comunes, es decir, son un subtipo de una tercera entidad. Solución: crear el supertipo. Se llama restricción de disyunción. 3.- Conflicto entre tipos de objetos en los que un atributo en una vista es una entidad es otra o viceversa: La solución es transformar el atributo en entidad o la entidad en atributo según convenga. Ej: entidad EDITORIAL o atributo de LIBRO?. Si vemos que es importante almacenar información de la editorial la consideraremos una entidad, sino será atributo. Versión 3.0 58 Bases de Datos I
  • 60. INACAP Dirección Área Informática 4.- Conflicto de cardinalidades en interrelaciones: Ej: interrelación escribe entre AUTOR y DOCUMENTO, en un caso 1,n y en otro n,n. o se trata de la misma interrelación, en este caso se deja la menos restrictiva n,n. o se trata de dos interrelaciones distintas como escribe de tipo n,n y edita de tipo 1,n (suponiendo que un documento puede ser editado por una persona). En este caso se deben reflejar ambas interrelaciones con distintos nombres. o la entidad AUTOR tiene una interrelación con DOCUMENTO que es escribe, mientras que un subtipo de ella (que es EDITOR) tiene otra interrelación con DOCUMENTO, que es edita. o existen dos subtipos de la entidad AUTOR, que poseen interrelaciones distintas con DOCUMENTO, por ejemplo, el subtipo ESCRITOR y el subtipo EDITOR con las interrelaciones escribe y edita, respectivamente. 5.- Análisis de redundancia de interrelaciones: Una vez integradas las vistas, habrá que analizar si se producen redundancias de interrelaciones, lo que gráficamente se refleja en ciclos. Versión 3.0 59 Bases de Datos I
  • 61. INACAP Dirección Área Informática Etapa 2: Diseño Lógico En esta etapa transformaremos el esquema conceptual obtenido en la fase anterior a un esquema relacional. Este esquema sigue siendo independiente del SGBD que se utilizará en la siguiente etapa. El paso del esquema E/R al relacional se basa en los siguientes principios: • Todo tipo de entidad se convierte en una relación • Todo tipo de interrelación N:M se transforma en una relación Todo tipo de interrelación 1:N se traduce en el fenómeno de propagación de la clave o bien se crea una nueva relación. Reglas de transformación 1.-Transformación de Dominios CREATE DOMAIN Estados_Civiles AS CHAR(1) CHECK(VALUE in ( ‘S’, ‘C’, ‘V’, ‘D’) 2.-Transformación de entidades Versión 3.0 60 Bases de Datos I
  • 62. INACAP Dirección Área Informática CREATE TABLE... Cada entidad se transforma en una relación. 3.-Transformación de atributos de entidades Los AIP, pasan a ser la clave primaria de la relación PRIMARY KEY. Los AIA, pasan a ser UNIQUE. Ambas son cláusulas en el comando CREATE TABLE. 4.-Transformación de Interrelaciones i ) Interrelaciones N:M Se transforma en una relación que tendrá como clave primaria la concatenación de los AIP de las entidades que asocia. Cada uno de estos atributos que forman parte de la clave primaria son clave foránea respecto a las tablas en donde son claves primarias. Esto se representa por al cláusula FOREING KEY dentro del comando CREATE TABLE de la relación. ii ) Interrelaciones 1:N • Propagar el AIP de la entidad que tiene cardinalidad máxima 1 a la que tiene n. • Transformarlo en una relación, como si se tratara de una interrelación N:M. Esto es más conveniente cuando: o El número de ocurrencias de la entidad que propaga su clave es muy pequeño, evitando los valores nulos. o Cuando se prevé que en el futuro dicha interrelación se convierta en una N:M o Cuando la interrelación tiene atributos propios Un aspecto importante en estas interrelaciones se relaciona con las cardinalidades mínimas. Si la cardinalidad mínima de la entidad que se propaga es 1, significa que no pueden admitirse valores nulos en la clave foránea (clave propagada). En cambio, si es 0, si se admiten valores nulos. iii ) Interrelaciones 1:1 Son casos en donde se puede crear una relación o bien propagar la clave. Esto último puede ser en ambas direcciones. Si las entidades que se asocian tienen ambas cardinalidades (0,1): Versión 3.0 61 Bases de Datos I
  • 63. INACAP Dirección Área Informática En el MR: MATRIMONIO(cod_hombre , cod_mujer) HOMBRE(cod_hombre,....) MUJER(cod_mujer,....) Así, se evitan los valores nulos que aparecerían en caso de propagar la clave de la entidad MUJER a la entidad HOMBRE o viceversa. Recordar que no todos los hombres ni todas las mujeres están casados. Una de las entidades tiene cardinalidad (0,1) y la otra (1,1), conviene propagar la clave de la entidad con cardinalidad (1,1) a la tabla resultante de la entidad de cardinalidad (0,1). En MR: EMPLEADO(cod_empleado,...) DEPTO(cod_depto,cod_empleado) , clave foránea, NOT NULL En el caso de que ambas entidades tengan cardinalidades (1,1), se puede propagar la clave en cualquier dirección. Sería conveniente tener en cuenta acceso más frecuentes y prioritarios de los datos. 5.-Transformación de atributos de interrelaciones Es conveniente que aquellas interrelaciones que posean atributos propios se transformen en una relación en donde aquellos atributos pasan a ser columnas de dicha relación. 6.-Transformación de restricciones Las restricciones son por ejemplo rango de valores para un determinado dominio. Muchas de las restricciones no se representan en el esquema conceptual por lo que no existen reglas claras para transformarlas. Usualmente las restricciones se consideran en la fase siguiente y se implementan a través de funcionalidades particulares que ofrecen los SGBD comerciales. Típicamente esto es a través de triggers. Versión 3.0 62 Bases de Datos I
  • 64. INACAP Dirección Área Informática 7.-Transformación de dependencias en identificación y en existencia En MR: LIBRO(cod_libro,...) EJEMPLAR(cod_libro, cod_ejemplar,...) clave foránea, NOT NULL, ON DELETE CASCADE, ON UPDATE CASCADE. Para dependencia en identificación, la clave primaria de la entidad débil debe estar formada por la concatenación de las claves de las dos entidades participantes en la interrelación. 8.-Transformación de tipos y subtipos a ) Una sola relación, correspondiente al supertipo. Es conveniente cuando existan muy pocos atributos diferentes entre los subtipos y las interrelaciones que los asocian con el resto de las entidades del diagrama son las mismas para todos los subtipos. DOCUMENTO(código, título, idioma,...,tipo) b ) Una relación para entidad: el supertipo y los subtipos correspondientes. Es conveniente cuando existen muchos atributos diferentes entre los subtipos y además se quieren mantener los atributos comunes de todos ellos en una relación (supertipo). DOCUMENTO(código, título, idioma,...) ARTICULO(código,....) LIBRO(código,...) Versión 3.0 63 Bases de Datos I
  • 65. INACAP Dirección Área Informática c) Relaciones para los subtipos, que contengan además los atributos comunes. Es conveniente cuando existen muchos atributos distintos entre los subtipos y los accesos realizados sobre los datos de los distintos subtipos siempre afectan a atributos comunes. LIBRO(código,título, idioma,...) ARTICULO(código,título, idioma, ....) Etapa 3: Diseño Físico Esta etapa depende del SGBD comercial que se utilizará para implementar la base de datos Algunos elementos de diseño físico son: Indices Son lógicamente y físicamente independientes de los datos. Se crean o eliminan sin que produzca efectos en la base de datos. Se mantienen en forma automática por los SGBD. Se utiliza el comando CREATE UNIQUE INDEX. Se estructuran en árboles B*-tree. Secuencias Son generadores de números secuenciales utilizados como valor único para un determinado atributo de una relación. Sin secuencias, el proceso normal de generación de estos enteros conlleva un bloqueo manual en acceso para actualización de la tabla que los contiene. Con este mecanismo, las estructuras se bloquean justo en el momento de la actualización. Se utiliza el comando CREATE SEQUENCE... Cluster o agrupaciones Es una estructura formada por una o varias tablas. Las filas de éstas que comparten el mismo valor de clave se almacenan físicamente juntas. Vistas Son visiones lógicas de tablas, que permiten entregar a los usuarios sólo la información que a éstos les interesa. Facilitan el control de la seguridad de la base de datos Versión 3.0 64 Bases de Datos I
  • 66. INACAP Dirección Área Informática Sinónimos Proporcionan un nombre alternativo para referenciar tablas, vistas o secuencias. Links Son enlaces definidos desde la base de datos local a una base de datos remota. Versión 3.0 65 Bases de Datos I
  • 67. INACAP Dirección Área Informática Unidad 5: Lenguaje de consulta estándar (SQL). El lenguaje de consulta estructurado (SQL) es un lenguaje de bases de datos normalizado, utilizado por el motor de base de datos Microsoft Jet. SQL se utiliza para crear objetos QueryDef, como el argumento de origen del método. OpenRecordSet y como la propiedad RecordSource del control de datos. También se puede utilizar con el método Execute para crear y manipular directamente las bases de datos Jet y crear consultas SQL de paso a través para manipular bases de datos remotas Cliente – Servidor. El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear actualizar y manipular las bases de datos. Existen dos tipos de comandos SQL: • Los DLL que permiten crear y definir nuevas bases de datos, campos e índices. • Los DML que permiten generar consultas para ordenar , filtrar y extraer datos de la base de datos. 5.1 Instrucciones de definición de los datos Comandos DLL Create: Utilizado para crear nuevas tablas campos e índices Alter: Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos. Drop: Empleado para eliminar tablas e índices Versión 3.0 66 Bases de Datos I
  • 68. INACAP Dirección Área Informática 5.2 Instrucciones de manipulación de los datos Comandos DML Select: Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado Insert: Utilizado para cargar lotes de datos en la base de datos en un a única operación Delete: Utilizado para eliminar registros de una tabla de una base de datos. Update Utilizado para modificar los valores de los campos y registros especificados. 5.4 Operadores de comparación < Menor que > Mayor que <> Distinto que <= Menor ó igual que >= Mayor ó igual que = Igual que Versión 3.0 67 Bases de Datos I
  • 69. INACAP Dirección Área Informática Between Utilizado para expresar un intervalo de valores Like Utilizado en la comparación de un modelo In Utilizado para especificar registros de una base de datos 5.5 Operadores Lógicos And Es el “y” lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas son ciertas Or Es el “o” lógico. Evalúa dos condiciones y devuelve un valor de verdad si en alguna de las dos es cierta. Not Negación lógica. Devuelve el valor contrario de la expresión. Versión 3.0 68 Bases de Datos I
  • 70. INACAP Dirección Área Informática 5.6 Consultas sobre múltiples tablas y 5.7 Formato de las salidas SQL y el álgebra relacional SQL como lenguaje para consultas se fundamenta en el álgebra relacional, se dice que SQL será completo cuando incluya todas las operaciones del álgebra. Se señalaba hace un par de décadas respecto de las variadas versiones existentes que la mejor versión de SQL debería incorporar todas las operaciones del álgebra relacional. Actualmente SQL no incluyen la operación división por esto podemos afirmar que SQL es incompleto respecto del álgebra relacional. Sin embargo es posible emular esta operación en la mayoría de las versiones de SQL. Lenguaje de definición de datos OBJETIVOS: 1- RECONOCER DDL DE SQL. 2- IDENTIFICAR LOS TIPOS DE DATOS DE CREATE TABLE. 3- APLICAR CORRECTAMENTE CREATE TABLE Tabla de base Es una tabla que tiene existencia independiente. En la base de datos física se representa por un archivo almacenado. Se puede crear una tabla de base en cualquier momento ejecutando la proposición CREATE TABLE del DDL de SQL, la cual adopta la forma general: Versión 3.0 69 Bases de Datos I
  • 71. INACAP Dirección Área Informática CREATE TABLE nombre-de-tabla-de-base (definición-de-campo [,definición-de-campo ] ...) [ IN SEGMENT nombre-de-segmento ] donde una definición-de-campo, a su vez, adopta la forma: nombre-de-campo ( tipo-de-datos [NONULL] ) (salvo que se indique de modo explícito lo contrario) CREATE TABLA S ( SX (CHAR(5), NONULL), NOMS (CHAR(20) ), ESTADO (SMALLINT) ), CIUDAD (CHAR(15) ) ) CREATE TABLA P ( PX (CHAR(6), NONULL), NOMP (CHAR(20) ), COLOR (CHAR(6) ), PESO (SMALLINT) ), CIUDAD (CHAR(15) ) ) CREATE TABLA SP( SX (CHAR(5), NONULL), PX (CHAR(6), NONULL), CTD (INTEGER) ) La ejecución fructífera de una proposición CREATE TABLE hace que una tabla de base nueva (vacía) se cree en el segmento especificado con el nombre-de-tabla-de-base especificado v las definiciones-de-campo especificadas. (Los segmentos y las definiciones-de- campo se explican más adelante). El usuario puede ahora proceder a introducir datos en esa tabla usando la proposición INSERT de SQL (parte del DML de SQL). Por otra parte, el usuario puede invocar al cargador de System R, que es un programa de utilería suministrado por el sistema para realizar esta función. Campos Cada definición-de-campo de CREATE TABLE incluye tres elementos: un nombre-de-campo, un tipo-de-datos para el campo y (como opción) una especificación NONULL. El nombre-de- campo, desde luego, debe ser único en la tabla de base. Los tipos-de-datos permitidos son los siguientes: CHAR (n) hilera de caracteres de longitud fija. CHAR (n) VAR hilera de caracteres de longitud variable. INTEGER entero en binario de una palabra. SMALLINT entero en binario de media palabra. FLOAT número en punto flotante de doble palabra. Versión 3.0 70 Bases de Datos I
  • 72. INACAP Dirección Área Informática SQL admite el concepto de valores de campos nulos. En efecto, cualquier campo puede contener un valor nulo a menos que la definición de ese campo en CREATE TABLE incluya de modo explícito la especificación NONULL. Nulo es un valor especial que se usa para representar un quot;valor desconocido” o un “valor inaplicablequot;. Por ejemplo, un registro de remesa puede contener un valor nulo de CTD (se sabe que la remesa existe, pero se desconoce la cantidad enviada); o un registro de proveedor puede contener un valor nulo de ESTADO (quizá el quot;estadoquot; no se aplique a los proveedores de parís por alguna razón). Aquí no se estudian en detalle las propiedades del valor nulo, sino que basta señalar que (a) las expresiones aritméticas donde uno de los operandos es nulo se evalúan en el valor nulo, y (b) las comparaciones donde uno de los operandos de comparación es nulo se evalúan en el valor de verdad quot;desconocidoquot;. Al igual que una tabla de base nueva puede crearse en cualquier momento, también una tabla de base existente puede agrandarse en cualquier instante, adicionando una nueva columna (un campo) a la derecha: EXPAND TABLE nombre-de-tabla-de-base ADD FIELD nombre-de-campo (tipo-de-datos) Por ejemplo EXPAND TABLE SP ADD FIELD FECHA ( CHAR (6) ) Esta proposición adiciona un campo FECHA a la tabla SP. Todos los registros existentes de SP se aumenta de tres a cuatro campos; el valor del campo nuevo es nulo en cada caso (no se permite la especificación NONULL en EXPAND TABLE ). Nótese, además, que la ampliación de los registros existentes antes mencionada no significa que los registros de la base de datos sean en realidad actualizados en ese instante solo su descripción almacenada cambia. También es posible destruir una tabla de base existente en cualquier instante: DROP TABLE nombre-de-tabla-de-base Todos los registros de tabla de base especificada se eliminan, todos los índices y las vistas sobre esa tabla se destruyen, y luego se destruye, también la tabla misma (es decir, su descripción se suprime del diccionario y su espacio de almacenamiento se libera). Versión 3.0 71 Bases de Datos I
  • 73. INACAP Dirección Área Informática Índices Al igual que las tablas de base, los índices se crean y eliminan usando el DDL de SQL sin embargo, CREATE INDEX y DROP INDEX así como ciertas proposiciones de control de los datos, son las únicas del lenguaje SQL que se refieren a los índices; otras proposiciones -en particular las de acceso a los datos, como SELECT- no incluyen de modo explícito ninguna de esas referencias. La decisión en cuanto a usar o no un índice al responder una solicitud particular de datos no la toma el usuario, sino System R (en realidad el optimizador componente del precompilador de RDS). CREATE INDEX adopta la forma general: CREATE [UNIQUE] INDEX nombre-de-índice ON Nombre-de-tabla-de-base (nombre-de-campo [ORDER] [, nombre-de-campo [ORDER] ] ...) donde quot;ordenquot; es ASC (ascendente) o DESC (descendente). Si no se especifica ASC ni DESC, entonces se supone ASC por omisión. La secuencia de izquierda a derecha de los campos nombrados en la proposición CREATE INDEX corresponden a un ordenamiento de mayor a menor en la manera usual; por ejemplo, la proposición: CREATE INDEX X ON T ( A, B, C ) creará un índice llamado X sobre la tabla de base T donde las entradas se ordenan por valores ascendentes de C dentro de valores ascendentes de B dentro de los valores ascendentes de A. Una vez creado, un índice se mantiene de manera automática (por RSS) para reflejar las actualizaciones en la tabla de base indicada, hasta el instante en que el índice se suprime. La opción UNIQUE de CREATE INDEX especifica que no habrá dos registros en la tabla de base indicada a los que se les permita tomar el mismo valor para el campo o combinación de campos indicados (al mismo tiempo). Esta es la única manera de especificar que no se permiten valores duplicados para ningún campo o combinación de campos. De esta manera, si se desea hacer cumplir la unicidad de las llaves primarias en la base de datos de proveedores y partes, se deben añadir proposiciones tales como las siguientes: CREATE UNIQUE INDEX XS ON S ( SX ) CREATE UNIQUE INDEX XP ON P ( PX ) CREATE UNIQUE INDEX XSP ON SP ( SX PX ) Versión 3.0 72 Bases de Datos I
  • 74. INACAP Dirección Área Informática (los índices, al igual que las tablas de base, se pueden crear y suprimir en cualquier momento. En el ejemplo se debe asegurar que los índices XS, XP y XSP se crean antes de colocar cualquier dato en las tablas de base S, P y SP; de lo contrario, las restricciones de unicidad pueden haberse violado. Un intento de crear un índice único sobre una tabla que no satisfaga la restricción de unicidad tendrá que fracasar). La proposición para suprimir un índice es DROP INDEX nombre-de-índice. El comando CREATE TABLE es usado para crear archivos de base de datos, también se encuentra un par de comandos para insertar tuplas o para actualizarlas. Se puede definir un archivo o tabla de hasta 27 Columnas. SINTAXIS : CREATE TABLE table-name ( column_definition [, column_definition . . .] [, uniqueness constraint] ); COMPONENTES DE CREATE TABLE table_name El nombre de un archivo de base de datos puede ser de 1 a 10 caracteres. Los primeros ocho caracteres son los significativos, el primer carácter debe ser alfabético. Column_definition Column_name data_type [NOT NULL [UNIQUE]] column_name Un atributo puede tener de 1 a 10 caracteres, el primer carácter del atributo debe ser una letra. data_type Los tipos de datos son de dos clases: números o caracteres. Numeric (Exact Numeric) NUMERIC [ ( length [.decimal_places] ) ] DECE [ (length [, declmal_places ] ) ] INT SMALLINT Characters [Char (length) ] Este tipo de datos permite combinar caracteres, se justifica a la izquierda, el máximo es ochenta caracteres. CHARACTER y CHAR pueden usarse indistintamente. Si se omite el length modifier, entonces se asume el largo uno. Versión 3.0 73 Bases de Datos I
  • 75. INACAP Dirección Área Informática Date Este tipo crea una columna de ancho ocho caracteres. Las fechas son de la forma mm/dd/'yy estimándose atómica. Logical Y, y, N, n, T, t, F, f, or ? Not Null Caracteriza valores que son distinto de “blanco“. UNIQUE modifier Señala llave primaria. ACTIVIDAD: “EMPRESA MANUFACTURAS MONOLITICAS” Manufacturas monolíticas produce y vende productos de alta calidad en el oeste de los EE.UU. posee sucursales en varios estados. Los productos son manufactura dos por lotes, cuando el lote es terminado se registra en la base de datos, específicamente en el archivo de base de datos correspondiente, con la fecha, el código del producto, el estado donde el producto fue manufacturado la cantidad de ítems vendibles y el porcentaje de defectuosos del lote. Señala al archivo de ma- nufacturado el archivo de productos algo tan simple como, dado el código, la descripción del producto. Las ventas efectuadas por cada sala de venta es registrada en un archivo de ventas. Cuando una venta es efectuada, se registra la fecha, la sucursal, el comprador, el vendedor, el producto y la cantidad vendida. Señala el archivo de ventas al archivo de sucursales, al de vendedores y al de clientes. El archivo de empleados contiene el número del empleado, su nombre, y el empleado jefe. El archivo de sucursales contiene el número de sucursal el estado y el administrador. El archivo de cliente contiene el número de cliente, el estado donde re- side, su nombre. En detalle los seis archivos de la base de datos de manufacturas monolíticas: VEN CLI LOT SUC EMP PRO FEC_VEN FEC_LOT SUC_COD COD_CLI COD_ART COD_SUC COD_EMP COD_ART COD_CLI NOM_CLI EST_ART EST_SUC NOM_EMP ESTY_ART COD_EMP EST_CLI DEF_ART COD_JEF COD_JEF DES_ART COD_ART RTG_CLI QTY_ART QTY_ART Versión 3.0 74 Bases de Datos I
  • 76. INACAP Dirección Área Informática Ejemplificamos con la creación del archivo de base de datos CLI(ente): create table CLI ( COD_CLI char(2) not null unique, NOM_CLI char(15) not null, EST_CLI char(2) not null, RTG CLI numeric(2) ); Lenguaje de manipulación de datos OBJETIVOS: 1- RECONOCER EL DML DE SSQL. 2- POBLAR ARCHIVOS DE BASE DE DATOS. 3- APLICAR CORRECTAMENTE INSERT. CONTENIDO: INSERT SINTAXIS: INSERT INTO table_name [column_name [,colum_name. ... ] ] VALUES (column_value [, column_value ] ); EJEMPLO: insert into CLI COD_CLI, NOM_CLI, EST_CLI, RTG _CLI values (‘AA’, ‘Compugorp’, ‘WA’ ,20); ACTIVIDAD: Dada la siguiente lista de tuplas de la base de datos de manufacturas monolíticas, poblar los archivos del ejercicio anterior. Sucursal ARTiculo COD_SU EST_SU COD_JE COD_ART DES_ART C C F MW Megawamp 1A AZ 10 GC Gigasnarf 2A CA 20 NM Nanomouse 1B AZ 30 DD Dynamic Dis EMPleado COD_EMP NOM_EMP COD_JEF 1 Harvey Bigcheese 10 Mary Hizzle 1 11 Marty Nogglater 12 12 Elark Kaboom 10 13 Kelly Unlucky 12 Versión 3.0 75 Bases de Datos I
  • 77. INACAP Dirección Área Informática 14 Bobo Butters 12 20 Nancy Umlat 1 22 Kanga Rat 20 24 Xero Xanadu 22 27 Quarkly Poslak 20 30 Vern Equinox 1 32 Otto Otter 35 33 Yarquark Moon 35 35 Duncan Donut 30 37 Duncan Bagel 35 EMPleado COD_EMP COD_ART EST_ART DEF_ART QTY_ART 1 10 11 12 GC ID 12 15 13 GC ID 0 55 14 NM CA 17 93 20 DD ID 25 22 DD WA 22 46 24 NM WA 15 25 27 DD AZ 12 25 30 DD CA 15 25 32 GC AZ 4 43 33 35 37 VENta FEC_VEN COD_SUC COD_CLI COD_EMP COD_ART QTY_ART 04/01/94 1A ZZ 11 MW 23 04/01/94 1A ZZ 11 DD 34 04/08/94 1A DD 12 AB 2 04/08/94 1B EE 24 MW 81 04/10/94 1B BB 27 NM 3 04/12/94 1B BB 27 MW 41 04/15/94 2A BB 33 GC 33 04/18/94 2A AA 35 MW 125 04/01/94 1A AA 10 MW 947 04/08/94 1A AA 10 DD 452 04/15/94 1A AA 10 NM 32 04/08/94 1B DD 11 GC 845 04/01/94 2A ZZ 12 NM 45 04/08/94 2A ZZ 12 MW 73 04/15/94 2A AA 30 GC 127 Versión 3.0 76 Bases de Datos I
  • 78. INACAP Dirección Área Informática 04/15/94 2A AA 30 DD 32 CLIente COD_CLI NOM_CLI EST_CLI RTG_CLI Compugorp AA WA 20 Technoharp BB OR 15 s ZZ AZ 34 Organomice DD AZ 10 QuarkCo EE CA 30 Marswarp FF NV 2 Multicrud Manipulación de datos del SQL OBJETIVOS: 1- COMPRENDER EL COMANDO SELECT EN SUS ASPECTOS MAS ELEMENTALES. 2- REPRODUCIR EFICIENTEMENTE CONSULTAS EFECTUADAS EN SQL. 3- IDENTIFICAR LA SEMANTICA DE CADA QWERY SOBRE SELECT. En esta parte se presenta la porción de DML del lenguaje SQL El DML de SQL opera a la vez con tablas de base y vistas. Operaciones de recuperación La operación fundamental en SQL es la transformación, que se representa sintacticamente como un bloque SELECT-FROM-WHERE. Por ejemplo, la consulta “obtenga números de proveedores y estado para los proveedores en parísquot; puede expresarse como sigue: SELECT SX, ESTADO FORM WHERE CIUDAD = ‘PARIS’ Se puede advertir en este ejemplo que la operación de 'transformaciónquot; es, en efecto, la formación de un subconjunto horizontal (halle todos los renglones donde CIUDAD = quot;PARISquot;) seguida de la formación de un subconjunto vertical (extraiga Sx y ESTADO de estos renglones). En términos algebraicos se puede considerar como un SELECT seguido por un PROJECT excepto que, como se señala después, la operación encaminada a formar un subconjunto horizontal puede ser mucho más compleja que la sencilla operación algebraica SELECT. (no Versión 3.0 77 Bases de Datos I
  • 79. INACAP Dirección Área Informática debe confundirse el SELECT algebraico con el SELECT de SQL) Ahora se procede a explicar las características principales del lenguaje de recuperación por medio de un conjunto de ejemplos desarrollados con cuidado. Recuperación simple Obtenga los números de parte de todas las partes suministradas: SELECT PX FROM SP Se sugirió que una transformación (SELECT-FROM-WHERE) puede considerarse como una formación de un subconjunto horizontal seguida por una proyección. En este ejemplo, el subconjunto horizontal es la tabla completa (sin la cláusula WHERE). En cuanto a la proyección, se recuerda al lector que PROJECT, como se definió formalmente, opera extrayendo columnas especificadas y luego eliminando los renglones duplicados redundantes de las columnas extraídas (el resultado es una relación, sin renglones duplicados). Sin embargo, SQL en general no elimina los duplicados del resultado de ejecutar una proposición SELECT a menos que el usuario lo solicite de modo explícito por medio de la palabra clave UNIQUE, como en el ejemplo siguiente: SELECT UNIQUE PX FROM SP La justificación para exigir al usuario que especifique UNIQUE en tales casos es que (a) la eliminación de duplicados puede ser una operación costosa, y (b) los usuarios a menudo no advertirán la presencia de los duplicados en sus resultados. Además, se adopta en INGRES una filosofía semejante. Recuperación simple Obtenga todos los detalles de todos los proveedores. SELECT * FORMS Resultado : Una copia de la tabla S completa. El asterisco es una abreviatura de una lista ordenada de todos los nombres de campo en la tabla FROM (como lo especificó el diccionario se SQL en el momento en que el SELECT se precompiló: no se incluirá ningún campo agregado después de la tabla por medio de EXPAND TABLE). La proposición SELECT mostrada es, pues, equivalente a: Versión 3.0 78 Bases de Datos I
  • 80. INACAP Dirección Área Informática SELECT SX, NOMS, ESTADO, CIUDAD FROMS Recuperación calificada: Obtenga números de proveedor para los proveedores de París con estado > 20. SELECT SX FROMS WHERE CIUDAD = aPARISa AND ESTADO > 20 La condición o predicado que sigue a WHERE puede incluir los operadores de comparación =, =(no igual), >, >=, <, y <=, los operadores booleanos AND, OR y NOT; y paréntesis para indicar un orden deseado de evaluación. Recuperación con ordenamiento: Obtenga números de proveedor y estado de los proveedores en París, en orden descendente de estado. SELECT SX, ESTADO FROMS WHERE CIUDAD = “PARIS” ORDER BY ESTADO DESC Recuperación de más de una tabla: Para cada parte suministrada, obtenga el número de la parte y los nombres de todas las ciudades que suministran la parte: SELECT UNIQUE PX.CIUDAD FROMSP, S WHERE SP.SX = S.SX Recuperación usando IN Obtenga nombres de proveedores para los proveedores que suministran la parte ‘P2’. SELECT NOMS FROMS Versión 3.0 79 Bases de Datos I
  • 81. INACAP Dirección Área Informática WHERE SX IN (SELECT SX FROMSP WHERE PX = quot;P2quot;) «IN» y «=ANY» son completamente intercambiables. Cada uno puede equipararse al operador E de pertenencia a un conjunto. En adelante se usará a menudo IN en lugar de =ANY. Recuperación con niveles múltiples de anidamiento Obtenga nombres de proveedor para los proveedores que suministran al menos una parte roja. SELECT NOMS FROM S WHERE SX IN (SELECT SX FROM SP WHERE PX IN (SELECT PX FROM P WHERE COLOR = “ROJO”) ) Recuperación con una subconsulta, con referencia entre bloques Obtenga nombres de proveedor para los proveedores que suministran la parte ‘P2’. Se indica a continuación otra solución a este problema para introducir un punto nuevo. SELECT NOMS FROM S WHERE P2 IN (SELECT PX FROMSP WHERE SX = S.SX) Recuperación con una subconsulta, con la misma tabla en ambos bloques Obtenga números de proveedor para los proveedores que suministran al menos una parte suministrada por el proveedor S2. SELECT UNIQUE SX FROM SP WHERE PX IN (SELECT PX Versión 3.0 80 Bases de Datos I
  • 82. INACAP Dirección Área Informática FROM SP WHERE SX = S2) Recuperación con una subconsulta, con referencia entre bloques y la misma tabla en ambos bloques Obtenga números de parte para todas las partes suministradas por más de un proveedor. SELECT UNIQUE PX FROM SP SPX WHERE PX IN ( SELECT PX FROM SP WHERE SX = SPX.SX ) Recuperación usando ALL Obtenga nombres de proveedor para los proveedores que no suministran la parte ‘P2’. Una vez más hay muchas soluciones posibles, la que se muestra se escogió para ejemplificar una comparación ALL. SELECT NOMS FROM S WHERE P2 <> ALL (SELELECT PX FROMSP WHERE SX = S.X) Recuperación usando EXISTS Obtenga nombres de proveedor para los proveedores que suministran la parte ‘P2’. SELECT NOMS FROM S WHERE EXISTS (SELECT * FROMSP WHERE SX = S.SX AND PX = P2) EXISTS representa aquí al cuantificador existencial. Versión 3.0 81 Bases de Datos I
  • 83. INACAP Dirección Área Informática Recuperación usando NOT EXISTS Obtenga nombres de proveedor para los proveedores que suministran todas las Partes. SELECT NOMS FROM S WHERE NOT EXISTS (SELECT * FROM P WHERE NOT EXISTS (SELECT * FROM SP WHERE SX = S.SX AND PX = P.PX) ) La consulta puede describirse así: “Seleccione nombres de proveedor para los proveedores tales que no exista una parte que no suministrenquot;. Recuperación usando UNION Obtenga números de partes para las partes que pesen más de 18 libras o que actualmente sean suministradas por el proveedor S2 (o ambas cosas). SELECT PX FROM P WHERE PESO > 18 UNION SELECT PX FROM SP WHERE SX = S2 Recuperación que comprende a NULL Para los fines de ejemplo, supóngase que el proveedor S5 tiene un estado de nulo. Obtenga números de proveedor para los proveedores con estado mayor que 25. Versión 3.0 82 Bases de Datos I
  • 84. INACAP Dirección Área Informática SELECT SX FROM S WHERE ESTADO > 25 El proveedor S5 no satisface los requisitos. Cuando un valor nulo se compara con algún otro valor al evaluar un predicado, cualquiera que sea el operador de comparación utilizado, el resultado de la comparación nunca es verdadero, incluso si ese otro valor también es nulo; en otras palabras, ninguna de las siguientes comparaciones da verdadero: nulo > 25 nulo < 25 nulo = 25 nulo = 25 nulo = nulo ACTIVIDAD: APLICANDO SQL PRUEBE CADA UNO DE LOS SIGUIENTES EJEMPLOS 1- SELECT * FROM LOT; FEC_LOT COD_ART EST_ART DEF_ART QTY_ART 02-07-94 GC ID 12 15 02-01-94 GC ID 0 55 02-02-94 NM CA 17 93 02-02-94 DD ID 25 02-03-94 DD WA 22 46 02-02-94 NM WA 15 25 02-04-94 DD AZ 12 25 02-04-94 DD CA 15 25 02-06-94 GC AZ 4 43 2- SELECT COD_ART, EST_ART FROM LOT; COD_ART EST_ART GC ID GC ID NM CA DD ID DD WA NM WA DD AZ Versión 3.0 83 Bases de Datos I
  • 85. INACAP Dirección Área Informática DD CA GC AZ 3- SELECT DISTINCT EST_ART FROM LOT; EST_ART ID CA WA AZ 4- SELECT EST_ART, COD_ART FROM LOT; EST_ART COD_ART ID GC ID GC CA NM ID DD WA DD WA NM AZ DD CA DD AZ GC 5- SELECT * FROM CLI WHERE EST_CLI = ‘AZ’; COD_CLI NOM_CLI EST_CLI RTG_CLI ZZ ORGANOMICE AZ 34 DD QUARKO AZ AZ 6- SELECT * FROM LOT WHERE DEF_ART > 10; FEC_LOT COD_ART EST_ART DEF_ART QTY_ART 02-07-94 GC ID 12 15 02-02-94 NM CA 17 93 02-03-94 DD WA 22 46 Versión 3.0 84 Bases de Datos I
  • 86. INACAP Dirección Área Informática 02-02-94 NM WA 15 25 02-04-94 DD AZ 12 25 02-04-94 DD CA 15 25 7- SELECT NOM_CLI FROM CLI WHERE NOM_CLI > ‘MACHADO’; NOM_CLI TECHNOHARPS ORGANOMICE QUARKCO MARSWARP MULTICRUD 8- SELECT * FROM LOT WHERE EST_ART = ‘ID’; FEC_LOT COD_ART EST_ART DEF_ART QTY_ART 02-07-94 GC ID 12 15 02-01-94 GC ID 0 55 02-02-94 DD ID 0 25 9- SELECT COD_ART FROM LOT WHERE DEF_ART IS NULL; COD_ART DD 10- SELECT * FROM LOT WHERE DEF_ART IS NOT NULL; FEC_LOT COD_ART EST_ART DEF_ART QTY_ART 02-07-94 GC ID 12 15 02-01-94 GC ID 0 55 02-02-94 NM CA 17 93 02-03-94 DD WA 22 46 02-02-94 NM WA 15 25 02-04-94 DD AZ 12 25 02-04-94 DD CA 15 25 Versión 3.0 85 Bases de Datos I
  • 87. INACAP Dirección Área Informática 02-06-94 GC AZ 4 43 11- SELECT DISTINCT COD_ART FROM LOT WHERE EST_ART = ´WA´ AND DEF_ART > 16; COD_ART DD 12- SELECT DISTINCT COD_ART FROM LOT WHERE EST_ART = ´WA´ OR EST_ART = ‘ID’; COD_ART GC DD NM 13- SELECT DISTINCT COD_ART FROM LOT WHERE EST_ART = ´WA´ AND EST_ART = ‘ID’; COD_ART NO ROWS FOUND 14- SELECT * FROM LOT WHERE NOT(EST_ART = ´WA´ OR EST_ART = ‘ID’); FEC_LOT COD_ART EST_ART DEF_ART QTY_ART 02-02-94 NM CA 17 93 02-04-94 DD AZ 12 25 02-04-94 DD CA 15 25 02-06-94 GC AZ 4 43 15- SELECT DISTINCT COD_ART FROM LOT WHERE COD_ART ¡= ‘NM’ AND COD_ART ¡= ‘GC’ AND COD_ART ¡= ‘DD’; Versión 3.0 86 Bases de Datos I
  • 88. INACAP Dirección Área Informática 16- SELECT DISTINCT COD_ART FROM LOT WHERE EST_ART = ‘WA’ OR EST_AR = ‘ID’; COD_ART GC DD NM 17- SELECT DISTINCT COD_ART FROM LOT WHERE (EST_ART = ‘WA’ OR COD_ART = ‘ID’) AND DEF_ART < 16; FEC_LOT COD_ART EST_ART DEF_ART QTY_ART 02-07-94 GC ID 12 15 02-01-94 GC ID 0 55 02-02-94 NM WA 15 25 18- SELECT DISTINCT COD_ART FROM LOT WHERE EST_ART = ‘WA’ OR COD_ART = ‘ID’ AND DEF_ART < 16; FEC_LOT COD_ART EST_ART DEF_ART QTY_ART 02-07-94 GC ID 12 15 02-01-94 GC ID 0 55 02-03-94 DD WA 22 46 02-02-94 NM WA 15 25 19- SELECT FEC_LOT, COD_ART, EST_ART FROM LOT WHERE DEF_ART = ANY(12,15); FEC_LOT COD_ART EST_ART 02-07-94 GC ID 02-02-94 NM WA 02-04-94 DD AZ 02-04-94 DD CA Versión 3.0 87 Bases de Datos I
  • 89. INACAP Dirección Área Informática 20- SELECT FEC_LOT, COD_ART, EST_ART FROM LOT WHERE EST_ART != ALL(‘WA’, ’ID’); FEC_LOT COD_ART EST_ART 02-02-94 NM CA 02-04-94 DD AZ 02-04-94 DD CA 02-06-94 GC AZ 21- SELECT COD_ART, EST_ART, DEF_ART FROM LOT WHERE DEF_ART BETWEEN 12 AND 16; COD_ART EST_ART DEF_ART GC ID 12 NM WA 15 DD AZ 12 DD CA 15 22- SELECT * FROM LOT WHERE DEF_ART != 15; FEC_LOT COD_ART EST_ART DEF_ART QTY_ART 02-07-94 GC ID 12 15 02-01-94 GC ID 0 55 02-02-94 NM CA 17 93 02-03-94 DD WA 22 46 02-04-94 DD AZ 12 25 02-06-94 GC AZ 4 43 23- SELECT FROM LOT WHERE DEF_ART != 15; (NO HAY RESULTADO, NO SE INDICO LO QUE SE DEBIA SELECCIONAR) Versión 3.0 88 Bases de Datos I
  • 90. INACAP Dirección Área Informática FUNCIONES INTEGRADAS OBJETIVOS: 1- REPRODUCIR CADA UNA DE LAS CONSULTAS. 2- APLICAR FUNCIONES: SUM, COUNT Y AVG. 3- IDENTIFICAR VALORES NULL. El lenguaje de recuperación descrito hasta ahora es “completo”, según se acaba de explicar, es aún inadecuado para muchos problemas prácticos. SQL, por tanto, proporciona varias funciones integradas especiales para mejorar su poder básico de recuperación. Las funciones soportadas actualmente son: COUNT, SUM, AVG, MAX y MIN. Todas estas funciones producen el siguiente resultado: COUNT : el número de valores SUM : la suma de los valores AVG : el promedio de 10 valores MAX : el valor más grande MIN : el valor más pequeño ACTIVIDAD: En SQL aplique cada una de las consultas dadas e identifique la semántica de cada consulta, señale en que consultas afectan los valores NULL de los archivos de base de datos monolítica. 24- SELECT COUNT(COD_ART) FROM LOT; CNT(COD_ART) 25- SELECT COUNT(DISTINCT EST_ART) FROM LOT; CNT(EST_ART) 4 26- SELECT COUNT(*) Versión 3.0 89 Bases de Datos I
  • 91. INACAP Dirección Área Informática FROM LOT; CNT(*) 9 27- SELECT COUNT(COD_JEF) SELECT EMP; CNT(COD_JEF) 14 28- SELECT COUNT(DISTINCT COD_JEF) SELECT EMP; CNT(COD_JEF) 7 29- SELECT COD_ART, EST_ART, DEF_ART FROM LOT WHERE EST_ART = ‘ID’; COD_ART EST_ART DEF_ART GC ID 12 GC ID 0 DD ID 30- SELECT AVG (DEF_ART) FROM LOT WHERE EST_ART = ‘ID’; AVG (DEF_ART) 6 31- SELECT SUM (QTY_ART) FROM LOT WHERE COD_ART = ‘DD’; SUM(QTY_ART) 121 32- SELECT AVG (QTY_ART), SUM (QTY_ART) FROM LOT WHERE COD_ART = ‘DD’; AVG(QTY_ART) SUM(QTY_ART) 30 121 Versión 3.0 90 Bases de Datos I
  • 92. INACAP Dirección Área Informática OBJETIVOS: 1- APLICAR OPERACIONES ARITMETICAS SOBRE LOS ATRIBUTOS DE LAS RELACIONES EN CONSULTA. 2- APLICAR ORDER BY Y HAVING EN LA CONFECCION DE CONSULTAS. 3- INTERPRETAR SEMANTICAMENTE QWERY EN SQL. ACTIVIDAD: Reproducir cada consulta e indicar su correspondiente significado. 33- SELECT COD_ART, DEF_ART*2 FROM LOT; COD_ART DEF_ART GC 24 GC 0 NM 34 DD DD 44 NM 30 DD 24 DD 30 GC 8 34- SELECT EST_ART, AVG(DEF_ART) FROM LOT GROUP BY EST_ART; EST_ART AVG(DEF_ART) AZ 8 CA 16 ID 6 WA 18 35- SELECT EST_ART, AVG(DEF_ART) FROM LOT GROUP BY EST_ART HAVING AVG(DEF_ART) > 10; 36- SELECT FEC_LOT, COD_ART, DEF_ART FROM LOT Versión 3.0 91 Bases de Datos I
  • 93. INACAP Dirección Área Informática WHERE EST_ART = ‘ID’ ORDER BY ART_DEF; 37- SELECT FEC_LOT, EST_ART, COD_ART, QTY_ART FROM LOT GROUP BY FEC_ART, EST_ART; OBJETIVOS: APLICAR CORRECTAMENTE LAS SIGUIENTES ORDENES. ORDENES: - UPDATE - DELETE Y DROP - CREATE VIEW Una vista es una relación o archivo de base de datos derivado, que describe una alternativa de acceso a los archivos de la base de datos (que ya existen), las vistas son relaciones virtuales. SINTAXIS: CREATE VIEW view_name [(column_name [, column_name... )]] AS select_statement UPDATE Permite modificar los valores de los atributos. SINTAXIS: UPDATE table_name SET column_name = value [, column_name = value...] WHERE search_condition DELETE (ATRIBUTOS) SINTAXIS:_ DELETE FROM table_name Versión 3.0 92 Bases de Datos I
  • 94. INACAP Dirección Área Informática WHERE search expression] DROP TABLE/VIEW El comando DROP elimina archivos de base de datos y vistas. SINTAXIS: DROP TABLE table_name; o DROP VIEW view_name; ACTIVIDAD: Determine la salida de cada consulta sin aplicar SSQL, aplique sólo para verificar. 38- SELECT * FROM LOT WHERE EST_ART = ‘AZ’ REDIRECTO ARIZ ORDER BY COD_ART; 39- SELECT COD_ART, EST_ART FROM LOT WHERE EST_ART = ‘CA’ UNION SELECT COD_ART, EST_ART FROM PRO WHERE EST_ART = ‘ID’; 40- SELECT NOM_CLI, COD_ART, QTY_ART FROM VEN, CLI WHERE VEN.COD_CLI = CLI.COD_CLI; 41- SELECT COD_CLI, QTY_ART FROM VEN WHERE COD_ART = ‘NM’ AND QTY_ART > (SELECT SUM(QTY_ART) FROM VEN WHERE COD_CLI= ‘BB’ AND COD_ART = ‘NW’); 42- SELECT DISTINCT COD_ART FROM VEN WHERE COD_CLI IN (SELECT COD_CLI FROM CLI WHERE EST_CLI = ‘AA’); 43- SELECT * FROM VEN Versión 3.0 93 Bases de Datos I
  • 95. INACAP Dirección Área Informática WHERE QTY_ART > (SELECT AVG(QTY_ART) FROM VEN); 44- ¡Suponga existe VEN1 idéntica a VEN! SELECT * FROM VEN, VEN1 WHERE QTY_ART > (SELECT AVG(QTY_ART) FROM VEN WHERE VEN.COD_ART = VEN1.COD_ART); 45- SELECT DES_ART FROM ART WHERE EXIST (SELECT * FROM VEN WHERE ART_COD_ART = VEN.COD_ART); 46- UPDATE CLI SET RTG_CLI = RTG_CLI + 5 WHERE COD_CLI = ‘AA’; 47- UPDATE CLI SET RTG_CLI = NULL WHERE COD_CLI = ‘CC’; 48- UPDATE LOT SET DEF_ART = 10 WHERE FEC_LOT = ‘07/21/94’ AND COD_CLI = ‘GC’ AND EST_ART = ‘ID’; 49- UPDATE CLI SET RTG_CLI = 14, EST_CLI = ‘ID’ WHERE COD_CLI = ‘BB’; 50- UPDATE CLI SET RTG_CLI = 30 WHERE COD_CLI IN (SELECT DISTINCT COD_CLI FROM CLI, VEN WHERE CLI.COD_CLI = VEN.COD_CLI AND COD_SUC = ‘2A’; AND QTY_ART > (SELECT AVG(QTY_ART) FROM VEN) ); Versión 3.0 94 Bases de Datos I
  • 96. INACAP Dirección Área Informática 51- DELETE FROM CLI; 52- DELETE FROM CLI WHERE RTG_CLI < 10; 53- SELECT * FROM VEN WHERE COD_CLI IN (SELECT COD_CLI FROM CLI WHERE RTG_CLI < 10); 54- DELETE FROM VEN WHERE COD_CLI IN (SELECT COD_CLI FROM CLI WHERE RTG_CLI < 10); 55- DELETE FROM VEN WHERE NOT EXISTS (SELECT * FROM CLI WHERE VEN.COD_CLI = CLI.COD_CLI); 56- CREATE VIEW CLTE AS SELECT COD_CLI, NOM_CLI, EST_CLI FROM CLI; 57- SELECT * FROM CLTE; 58- DROP TABLE CLI 59- DROP VIEW CLTE Fin Versión 3.0 95 Bases de Datos I
  • 97. INACAP Dirección Área Informática BIBLIOGRAFÍA • Silberschatz, Abraham Korth, Sudarshan, S. Fundamentos de Bases de Datos, Tercera Edición, Madrid, Editorial Mc Hill, 1998. • Wiederhold, Gio Diseño de Bases de Datos. Segunda Edición, USA, Editorial Mc Graw Hill, 1998. • http://usuarios.tripod.es/smaug • Bases de Datos tema1. DECUPS, curso 2000 – 2001. • Introducción a las Bases de Datos, Victor Pérez, Editorial Universitaria. • Introducción a los Sistemas de Bases de Datos, C. J. Date, Prentice H. CC42A Bases de Datos, Universidad de Chile, Facultad de Ciencias Físicas y Matemáticas, Departamento de Ciencias de la Computación Versión 3.0 96 Bases de Datos I

×