Download Que es una base de datos
Document related concepts
Transcript
INTRODUCCIÓN AL RDBMS DESVENTAJAS DEL ALMACENAMIENTO EN ARCHIVOS PLANOS. Los datos pueden ser accedidos y modificados solo por una persona a la vez. Cuando la información es utilizada por más de una aplicación los datos pueden corromperse. Es difícil establecer relaciones. Un archivo plano diseñado para un sistema no puede ser utilizado por otro sistema. Los datos son vulnerables puesto que pueden ser accedidos por cualquier usuario o cualquier aplicación. QUE ES UNA BASE DE DATOS Colección organizada de datos relacionados. QUE ES UN DBMS Conjunto de programas que ayudan a insertar, eliminar, modificar y recuperar datos de una base de datos. Sistema que trabaja sobre las bases de datos. QUE ES UNA TABLA Es una colección de registros. VENTAJAS DE DBMS Minimiza la redundancia de datos. Asegura la integridad, seguridad i consistencia de los datos. Provee mecanismos de recuperación y manipulación de datos lo que hace mas rápido este proceso. Los datos pueden ser distribuidos. Los datos pueden adaptarse a los cambios de los modelos del negocio. NIVELES DE INDEPENDENCIA DE DATOS Independencia de datos física: inmunidad de los programas de aplicación a los cambios en la organización física de la base de datos. Independencia de datos lógica: capacidad de cambiar el esquema lógico de la base de datos sin causar que las aplicaciones se rescriban. TIPOS DE USUARIOS QUE UTILIZAN LOS DBMS Programadores de aplicaciones. Usuarios sofisticados. Usuarios especializados. Usuarios ingenuos. Administradores de base de datos. QUE SON LOS MODELOS DE DATOS Estructura subyacente de una base de datos. MODELO LÓGICO BASADO EN REGISTROS Son llamados así porque la base de datos es estructurada en torno a registros de formato fijo, con varios campos o atributos. Los campos a atributos pueden ser de diferentes tipos de datos y cada campo es usualmente de longitud fija. MODELOS DE DATOS BASADOS EN REGISTROS Modelo relacional: una o más tablas representan los datos y las relaciones entre las tablas. Este modelo es la base del RDBMS y esta basado en las operaciones relacionales Select, View, Join y operaciones de conjuntos como la Unión e Intersección. Modelo de red: los datos se representan mediante una colección de registros y las relaciones entre los datos se representan por enlaces. Modelo jerárquico: los datos se representan mediante una colección de registros y las relaciones entre los datos se representan por enlaces, los archivos están organizados como una colección de árboles. QUE ES UN RDBMS Es un DBMS basado en el modelo relacional. FUNCIONES DE UN RDBMS Organizar los datos y las relaciones entre los datos almacenados en las tablas que se componen de filas y columnas. Permitir la definición de las estructuras de datos, de las operaciones de almacenamiento y recuperación y de las restricciones de integridad. Mantener la integridad de los datos almacenados en la base de datos. PROVEEDORES DE RDBMS IBM DB2 Oracle Corporation MYSQL AB Postgre SQL Microsoft UDB Oracle MySQL Postgre SQL Microsoft SQL Server QUE ES UNA TRANSACCIÓN Colección de operaciones que realiza una única unidad lógica de trabajo. CARACTERÍSTICAS DE LA ADMINISTRACIÓN DE TRANSACCIONES Atomicidad: todas las operaciones asociadas a una transacción deben de ser realizadas completamente para finalizar la transacción. Consistencia: los datos comprometidos en una transacción deben preservarse semánticamente. Aislamiento: cuando hay transacciones concurrentes cada transacción debe comportarse como si fuera la única ejecutándose en el sistema. Durabilidad: si una transacción tiene éxito el sistema garantiza que persistirán sus actualizaciones aun cuando la computadora falle después de ejecutarla. DIAGRAMA ENTIDAD RELACION PASOS PARA EL DISEÑO DE BASE DE DATOS Recolección y análisis de requerimientos: interacción con el sistema y los usuarios para definir que datos deben ser almacenados en la base de datos y los procesos involucrados en la captura de esos datos. Diseño conceptual: consiste en formar una descripción concisa de los requerimientos de datos usando un modelo de alto nivel, se deben identificar las entidades involucradas en el sistema y entender las relaciones entre estas entidades. Diseño lógico: traducción de entidades y relaciones a tablas y otros objetos de la base de datos, este proceso implica la normalización y otras consideraciones de diseño. Diseño físico: toma de decisiones sobre el almacenamiento de los datos tomando en consideración el rendimiento y la disponibilidad de los recursos de hardware. EL MODELO CONCEPTUAL Pertenece al dominio de la modelación del nivel más alto. Una de las maneras de crear un modelo conceptual es usando el diagrama ER. QUE ES UN DIAGRAMA ENTIDAD RELACIÓN Es una representación del mundo real, muestra las relaciones significativas que existen entre las entidades. Es una representación gráfica del sistema. COMPONENTES DE UN DIAGRAMA ER Entidades Relaciones ENTIDADES Representan agrupaciones de objetos del mundo real que son relevantes al sistema de información. Una entidad representa una colección de objetos del mundo real. CARACTERÍSTICAS DE LAS ENTIDADES Pueden ser identificadas individualmente. Desempeñan un papel necesario en el sistema a ser desarrollado. Pueden ser descritas por uno o más elementos de datos. TIPOS DE ENTIDADES Entidad fuerte: no es dependiente de otra entidad. Entidad débil: es dependiente de algún otro tipo de entidad para su existencia. RELACIONES Permiten conectar entidades con otras entidades, representa un conjunto de conexiones entre los objetos. CARDINALIDAD Especifica si una entidad esta relacionada con una o más instancias de una entidad en una misma relación. TIPOS DE CARDINALIDAD Relación uno a uno (1: 1). Relación uno a muchos (M: 1). Relación muchos a muchos (M: N). OPCIONALIDAD Una relación puede ser opcional o mandatario y la opcionalidad puede ser diferente a cada lado de la relación. ATRIBUTOS Todos los datos referentes a una entidad, propiedades de la entidad cuyos valores tienen que ser almacenados en la base de datos. CARACTERÍSTICAS DE LOS ATRIBUTOS Simples o compuestos, de valor único o multivaluados. CLAVES Es un elemento de los datos que identifica de manera única las ocurrencias individuales de un tipo de entidad. CLAVE COMPUESTA Cuando se utilizan dos o mas atributos juntos para formar la clave. GRADO DE UNA RELACIÓN Es el número de entidades que participan en una relación. RELACIÓN UNARIA Cuando el número de entidades que participan en una relación es uno. RELACIÓN BINARIA Cuando hay solamente dos entidades involucradas en una relación. RELACION N-ARIA Involucra más de dos entidades. PASOS PARA CONSTRUIR UN MODELO ER Identificar las entidades. Eliminar las entidades duplicadas. Enumerar los atributos de cada entidad. Marcar las claves primarias. Definir las relaciones. Examinar cada tipo de entidad para ver como se relaciona con otras entidades. Describir la cardinalidad de las relaciones Eliminar las relaciones redundantes. NORMALIZACION DE LA BASE DE DATOS NORMALIZACIÓN Es el proceso de organizar los datos para reducir al mínimo la duplicación, implica el proceso de dividir una base de datos en dos o más tablas y de definir las relaciones entre ellas. Se refiere al proceso de crear una estructura de base de datos relacional eficiente, confiable, flexible y apropiada para almacenar información. Proceso de organizar los datos en tablas y definir las relaciones entre ellas. VENTAJAS DE LA NORMALIZACIÓN Flexibilidad. Integridad de datos. Eficiencia. DESCOMPOSICIÓN SIN PÉRDIDA DE INFORMACIÓN (LOSS LESS JOINS) Dividir las tablas de manera tal que si las tablas resultantes se unieran de nuevo se debe obtener la tabla original. FORMAS NORMALES Primera forma normal (1NF): Los campos de variables repetidas o grupos de variables repetidas deben ser eliminados. Todas las filas contienen el mismo número de campos. Segunda forma normal (2NF) Tiene que estar en 1NF Cada columna que no esta en la clave primaria es dependiente totalmente de la clave primaria. Solo se aplica a las tablas que tienen clave primaria compuesta. Tercera forma normal (3FN) Tiene que estar en 2NF Cada columna normal tiene que ser mutuamente independiente y excluyente. No debe tener ninguna dependencia transitiva. Cuarta forma normal (4FN) Tiene que estar en 3NF La tabla no debe contener dos o más columnas independientes multivaluadas. LENGUAJE DE CONSULTA ESTRUCTURADO - FUNDAMENTOS QUE ES SQL Es el lenguaje usado para comunicarse con una base de datos, un lenguaje estandarizado que sirve para definir y manipular los datos de una base de dato racional. Fue desarrollado por IBM a comienzos de los años setenta, llamada inicialmente Sequel, cambio después su nombre a SQL. En 1986 el American National Standard Institute (ANSI) y el Inernational Standards Organization (ISO) presentaron un estándar para SQL llamado SQL-86. En 1992 en ANSI / ISO presento el estándar SQL-92. Actualmente esta vigente el SQL-99 (SQL3) que es soportado por muchos RDBMS. PARTES DEL SQL. Lenguaje de definición de datos (data definition language - DDL): proporciona comandos para definir los objetos de base de datos. Create: se usa para crear objetos de la base de datos. Alter: se usa para modificar la estructura de los objetos de la base de datos. Drop: se usa para eliminar objetos de la base de datos. Lenguaje de manipulación de datos (data manipulación language - DML): proporciona comandos para insertar, eliminar y modificar registros en las tablas. Insert: se usa para agregar valores en la tabla. Delete: se usa para eliminar valores de la tabla. Update: se usa para actualizar o cambiar los valores presentes en la tabla. Lenguaje de control de datos (data control language - DCL): proporciona comandos para manejar y controlar datos, ayuda al administrador a controlar la seguridad y a los accesos a los datos. Grant Revoke Lenguaje de consulta de datos (data query language - DQL): proporciona comandos para recuperar datos desde tablas. Select: se usa para recuperar datos de las tablas. Select Condicional: se usa para recuperar aquellos registros que satisfacen una condición específica. Where: se usa para especificar que solo las filas que cumplen con la condición deben mostrarse. QUE ES UNA TABLA DE DATOS Es el objeto de mayor importancia en la base de datos, utilizada para almacenar datos. CARACTERÍSTICAS DE LA TABLA DE DATOS Los datos se almacenan en forma de filas y columnas. Cada fila represente a un registro y cada columna se denomina un atributo, el cual representa a un campo. Un campo es una característica o una propiedad de los datos que son representados. FUNCIONES AGREGADAS Sum (Suma). Avg (Promedio). Max (Máximo valor). Min (Mínimo valor). Count (Total registros). CONDICIONES COMPUESTAS Y OPERADORES LÓGICOS And: une dos o mas condiciones y muestra todas las filas que satisfacen todas las condiciones especificadas en la cláusula Where. Or: une dos o más condiciones y muestra todas las filas que satisfacen al menos una condición especificada en la cláusula Where. In: se usa para realizar comparaciones con una lista de valores. Bettween: se usa para comprobar si cierto valor esta dentro de un rango dado. Not: evalúa una condición e invierte su valor. Like: se usa para verificar patrones dentro de cadenas de caracteres, compararlos y mostrar los resultados. Concatenación ( | | ): se usa para unir dos cadenas de caracteres. Nota: el operador Not tiene mayor precedencia los Operadores And y Or. ALIAS Se usan para definir una columna o una tabla con un nombre alternativo ORDER BY Se usa para dar formato a la salida basándose en un campo y en cierto orden el cual puede ser ascendente o descendente. Por defecto toma el orden ascendente si no es especificado. MANEJO DE VALORES NULOS Se usa cuando el campo escogido no contiene un tipo de valor conocido. DISTINCT No muestra los valores mas de una vez indistintamente de que estén duplicados en la tabla. SQL AVANZADO CLAVE PRIMARIA Es una columna de una tabla la cual se usa identificar un registro en la tabla, para que un campo sea una clave primaria su valor debe ser NOT NULL y debe ser único. Una tabla solo puede tener una clave primaria. CLAVE PRIMARIA COMPUESTA Es una clave primaria formada por más de una columna. CLAVE FORÁNEA Es una columna de una tabla cuyos valores son dependientes de los valores existentes en otras tablas. RESTRICCIÓN DE INTEGRIDAD REFERENCIAL Es una restricción definida entre una clave primaria y una clave foránea. RELACIÓN PADRE HIJO Cuando la clave primaria de una tabla (padre) es una clave foránea en otra tabla (hijo). QUE ES UN JOIN Es utilizado para evitar la redundancia y para integrar los datos almacenados en varias tablas. Ayuda a vincular dos o más tablas a través de un atributo en común. TIPOS DE JOINS Cartesian JOIN: hace corresponder todas las filas de la primera tabla con todas las filas de la segunda tabla y presenta una combinación de todos los registros en ambas tablas. Natural / Equi JOIN ó Inner JOIN: hace corresponder los registros de la primera tabla con los de la segunda tabla basándose en la igualdad de los valores especificados en la condición JOIN, solo los registros que tengan una correspondencia exacta serán extraídos de ambas tablas. Right Outer JOIN: hace corresponder los registros de la primera tabla con los de la segunda tabla basándose en la igualdad de los valores especificados en la condición JOIN. Además, también incluye aquellos registros presentes en la segunda tabla que no están asociados con los registros de la primera tabla. Left Outer JOIN: hace corresponder los registros de la primera tabla con los de la segunda tabla basándose en la igualdad de los valores especificados en la condición JOIN. Además, también incluye aquellos registros presentes en la primera tabla que no están asociados con los registros de la segunda tabla. Full Outer JOIN: hace corresponder los registros de la primera tabla con los de la segunda tabla basándose en la igualdad de los valores especificados en la condición JOIN. Además, también incluye aquellos registros presentes en la primera y segunda tabla que no están asociados entre si. Es una combinación del Right Outer JOIN y el Left Outer JOIN. Self JOIN: se aplica entre valores de atributos comunes de dos tablas o más. En el caso de una tabla que tiene dos atributos los cuales comparten el mismo valor se puede realizar un JOIN en la misma tabla. GROUP BY Permite el agrupamiento lógico de los datos existentes basándose en el valor de uno de los atributos. HAVING Permite introducir una condición después de que se realiza un agrupamiento. SUBCONSULTA Es una consulta dentro de otra consulta, es una sentencia Select anidada dentro de otra sentencia Select. Las subconsultas también se pueden escribir en sentencias Update y Delete. TIPOS DE SUBCONSULTA Subconsulta correlacionada: es una consulta en la cual la consulta hijo se refiere a la columna de la consulta padre. Son ejecutadas una vez por cada fila en la consulta padre. Subconsulta no correlacionada: es una consulta en la cual la consulta padre se ejecuta tomando en cuenta los valores devueltos por la consulta hijo. Son ejecutadas una vez por cada fila en la consulta padre son ejecutadas una vez por toda la sentencia. UNIÓN Es una operación de conjunto que combina los resultados e dos o mas consultas, elimina los registros duplicados y presenta el resultado. FUNDAMENTOS DE DB2 TIPOS DE RDBMS IBM DB2. Microsoft SQL Server. Oracle. Sybase. Informix. MY SQL. Postgree SQL. CAPACIDADES DE DB2 Puede manejar una gran variedad de datos. Puede almacenar y administrar grandes volúmenes de datos. Proporciona gran seguridad. Rápida recuperación de los datos almacenados. VENTAJAS DE DB2 Confiabilidad: maneja pedidos de procesamiento de datos de manera eficiente y proporciona información exacta. Alta disponibilidad de datos: proporciona un mecanismo de protección ante caídas que permite la rápida recuperación de los datos almacenados y él reinicio del sistema. Escalabilidad: DB2 esta disponible para una gran variedad de sistemas operativos. Rendimiento: permite el soporte para SMP (multiprocesamiento simétrico), MPP (procesadores masivamente paralelos) y agrupamiento (clustering) lo que aumenta el rendimiento de la aplicación. Rápido desarrollo de aplicaciones: soporte para las ultimas tecnologías (Java, JDBC y XML), además proporciona integración con aplicaciones de e-business lo que le permite a los desarrolladores utilizar las capacidades del servidor DB2. Capacidad para construir soluciones OLAP: DB2 esta equipado con un servidor (OLAP) es cual es un sistema de soporte de toma de decisiones que puede analizar los datos presentes en el sistema y proporcionar un análisis multidimensional. Este servidor puede ser utilizado para soluciones de almacenamiento de datos (data warehousing) y extracción de datos (data minig). Soluciones de ultima generación: DB2 puede manejar datos multimedia (imágenes, videos, sonido y objetos espaciales). FAMILIA DE PRODUCTOS IBM DB2 DB2 EVERYPLACE Orientado a herramientas que se ejecuten en dispositivos móviles como PDA´s o Handheld. Soporta Encriptación. Soporta Indexación de datos para mejorar el desempeño. SO: PalmOS, WindowsCE, Windows de 32Bits, Symbian, QNX Neutrino, J2ME y Linux. EDICIONES DE DB2 EVERYPLACE Everyplace DataBase Edition para Desarrollo de Aplicaciones con base de datos en dispositivos móviles. Everyplace Enterprise Edition Para servidor de Base de Datos Móviles. DB2 PERSONAL EDITION Funciona en DeskTops comunes Pueden crearse y manipularse cualquier cantidad de Bases de datos. Solo permite usuarios locales. Puede conectarse como cliente a otros servidores remotos DB2 SO: Windows 98,ME, NT, 2000, XP, Linux. Soporta XML, Spatial y Net Search DB2 PERSONAL DEVELOPER’S EDITION Igual al Personal Edition pero incluyen Librerías para interactuar con aplicaciones desarrolladas en COBOL, FORTRAN, C, C++ y Java. SO: Windows 2000, NT, XP y Linux. DB2 UNIVERSAL DEVELOPER’S EDITION Incluye Personal Developer y DB2 Connect, DB2 Extenders, DB2 Warehouse Manager y DB2 Intelligent Miner. Solo Cuenta con licencia para entorno de desarrollo. DB2 WORKGROUP SERVER EDITION Es un Servidor de Base de Datos LAN y/o WAN. SO: UNÍS, Linux, Windows, Windows NT, 2000 y XP. Orientado a Pymes. No tiene soporte para procesadores de 64Bits. Soporte de multiprocesamiento simétrico para 4 procesadores. DB2 WORKGROUP SERVER UNLIMITED EDITION Igual que el DB2 WorkGroup Server Unlimited Edition, pero con otras restricciones de licencia. Especialmente para Pymes. La Licencia se otorga por Procesadores. Independiente del número de conexiones a las bases de datos. DB2 ENTERPRISE SERVER EDITION Es un Servidor de Base de Datos LAN y/o WAN SO: UNÍS, Linux, Windows, Windows NT y 2000. Orientado a Servidores Grandes y Medianos. Conectividad con Servidores iseries y zseries. Compatibilidad con recursos CICS, VSAM y ISM. Licencia para Multiprocesadores y Cluster de Computadoras. Permite Bases de Datos Aprisionadas, siempre que los servidores usen el mismo SO. Se requiere una actualización de licencia para DataBase Partitioning Feature para cada servidor. CARACTERISTICAS DE LA ARQUITECTURA DB2 Se basa en la arquitectura cliente servidor. DB2 puede comunicarse con cualquier sistema administrador de base de datos que soporte el protocolo de arquitectura de base de datos relacionales distribuidas DRDA (arquitectura que permite una comunicación entre mas de un producto de administración de base de datos relacionales, el cual se encarga de coordinar la comunicación entre los sistemas de diferentes proveedores definiendo protocolos de comunicación). Soporta gran variedad de protocolos de comunicaciones cliente/servidor (NPIPE, TCP/IP, NetBIOS y SNA). Permite la comunicación entre el cliente y el servidor aun cuando estén en diferentes plataformas. ARQUITECTURA DE PROCESOS DE DB2 Las aplicaciones locales se comunican con el servidor DB2 UDB haciendo uso de la memoria compartida y los semáforos. Las aplicaciones remotas se comunican con el servidor DB2 UDB a través de la red haciendo uso del protocolo de comunicaciones. Del lado del servidor las actividades son controladas por los EDUs (Engine Dispatchable Units). EDUs (ENGINE DISPATCHABLE UNITS) Agente lógico (Logic Agent): facilita la interacción con la base de datos, existe uno por cada aplicación conectada al administrador de la base de datos, almacena la información requerida por la aplicación. Agente Trabajador (Work Agent): llevan a cabo solicitudes de acciones y tienen información para completar una solicitud en particular, no están atados a una aplicación. Agente Coordinador (Coordinator Agent): es asignado a cada aplicación cliente, coordina el procesamiento y se comunica con la aplicación cliente, para cada requerimiento del cliente puede haber un conjunto de subagentes los cuales trabajan juntos para completar el requerimiento. Buffer Pool: es un área temporal de almacenamiento de memoria principal, donde los objetos de la base de datos relacionados a los requerimientos de usuarios son almacenados temporalmente. Mejoran el rendimiento del sistema. Cargadores de Datos (Prefetchers): mueven los datos del disco duro al Buffer Pool. Limpia Paginas (Page Cleanners): son hilos de procesos que mueven los datos ya no requeridos por la aplicación, desde la memoria hasta el disco. Detector de Interbloqueos (Deadlock Detector): detectan bloqueos entre EDUs, recuperan la información y de forma aleatoria selecciona uno de ellos para liberarlo. Registrador de Actividades (Logger): registra de manera temporal los datos paginados hacia el buffer en un espacio del buffer llamado log buffer. ARQUITECTURA DE ALMACENAMIENTO DE DB2 Sistema Administrador de Base de Datos: sistema que organiza bases de datos, tablas, índices, etc. DB2 soporte varias instancias en una misma maquina, cada una con su propio directorio, bases de datos y un conjunto de archivos de configuración. Sistema: es el objeto de más alta jerarquía, representa una instalación de DB2, puede tener una o varias instancias de DB2 cada una de las cuales puede administrar una o varias bases de datos. Las bases de datos pueden dividirse y sus espacios de tablas residir en los grupos de particiones de las bases de datos, los espacios de tabla almacenan los datos de las tablas. Instancias: entorno gestor de base de datos lógico donde se pueden catalogar bases de datos y establecer parámetros de configuración. Bases de datos: una base de datos relacional presenta los datos como una colección de tablas. Una tabla consiste en un conjunto definido de columnas y cualquier numero de filas, los datos en cada tabla están relacionados de forma lógica y pueden definirse relaciones entre tablas. Los datos pueden verse y manipularse usando sentencias SQL. Una base de datos posee una descripción de su estructura, un conjunto de tablas de catálogos del sistema que describen la estructura lógica y física de los datos, un archivo de configuración que contiene los valores de los parámetros asociados a la base de datos. Las bases de datos pueden ser locales (localizada físicamente en la estación de trabajo en uso) o remotas (localizada en otra maquina). Grupos de particiones de base de datos: es un conjunto de una o más particiones de base de datos. Espacio de tablas: es un lugar para almacenar tablas, están contenidos en un área de almacenamiento llamado grupo de particiones de base de datos. Una base de datos se organiza en espacios de tablas. Cada espacio de tablas consiste en una colección de contenedores, cada tabla es asignada a un espacio de tablas. Existen dos tipos de espacios de tablas, los del espacio administrado por el sistema (SMS) y los de espacio administrado por la base de datos (DMS). ARQUITECTURA DE MEMORIA DE DB2 Memoria compartida del administrador de base de datos: espacio adjudicado cuando el administrador de base de datos es iniciado. Memoria global de base de datos: es reservada cuando se activa una base de datos, este espacio es especificado en un parámetro de configuración. Memoria global de aplicación: es reservada cuando la aplicación se conecta a la base de datos, para manejar los procesos relacionados a la aplicación. Esta memoria se obtiene de la memoria global de la base de datos. Memoria privada de agente: se asigna al agente al recibir un requerimiento antes de que lo atienda. CLIENTES DB2 Cliente de tiempo de ejecución (Run Time Client). Cliente administrador (Administration Client). Cliente desarrollador de aplicaciones (Aplication Client). OTROS PRODUCTOS DB2 DB2 Data Link File Manager. DB2 Connect. UDB Extenders. DB2 XML Extender. DB2 Next Search Extender. DB2 Spatial Extender. DB2 Audio, Video e Image Extender. DB2 Text Extender. HERRAMIENTAS DEL DB2 Centro de control (Control Center). Centro de duplicación (Replication Center). Centro de administración de satélites (Satellite Administration Center). Editor de mandatos (Command Editor). Centro de Tareas (Task Center). Centro de Salud (Health Center). Diario (Journal Center). Centro de Licencia (License Center). Centro de Desarrollo (Development Center). Centro de Información (Information Center). Plan de Acceso (Access Plan). Asistente de Configuración (Configuration Assistant). DICCIONARIO DE DATOS, ACCESO Y SEGURIDAD DE LA BASE DE DATOS DICCIONARIO DE DATOS Información sobre los datos almacenados en la base de datos. VISTAS DEL DICCIONARIO DE DATOS Son creadas junto con la base de datos y no pueden ser creadas o eliminadas de manera explícita, están dentro del esquema SYSCAT y el privilegio SELECT es publico, estas le permiten al usuario ver el diccionario de datos también se les denomina vistas del catalogo del sistema. VISTAS DEL CATALOGO DEL SISTEMA USADAS FRECUENTEMENTE SYSCAT.TABLES Devuelve la lista de tablas a las cuales tiene acceso el usuario. SYSCAT.COLUMNS Devuelve la lista de columnas en una tabla. SYSCAT.KEYCOLOUSE Devuelve información sobre las columnas que participan en una clave primaria, clave foránea y columnas a las cuales se les ha definido restricción de valor único. SYSCAT.REFERENCES Devuelve las restricciones de clave foramea. SYSCAT.CHECKS Devuelve las restricciones definidas en la base de datos. SYSCAT.COLCHECKS Devuelve las restricciones definidas en una tabla. SYSCAT.INDEXES Devuelve los índices disponibles en la base de datos. SYSCAT.VIEWS Devuelve las vistas disponibles en la base de datos. AUTORIZACIONES Otorgan acciones sobre la base de datos en general. Le permiten a los usuarios realizar tareas generales en la base de datos. PRIVILEGIOS Permiten trabajar sobre objetos específicos dentro de la base de datos, le da derecho al usuario de acceder a un objeto de la base de datos de una manera especifica. TIPOS DE AUTORIZACIONES DE ADMINISTRACION SYSADM: administrador del sistema, es el nivel mas alto de autorización y tiene control sobre todos los recursos que el sistema administrador de base de datos crea y mantiene. DBADM: administrador de base de datos, autorización especifica para una base de datos, incluye privilegios para crear objetos, emitir mandatos y acceder a los datos de sus tablas mediante sentencias SQL, también incluye la autorización para otorgar o revocar el privilegio CONTROL además de los privilegios individuales. PRIVILEGIOS EN LA BASE DE DATOS SELECT: privilegio de recuperar filas, ver o crear vistas de una tabla. INSERT: privilegio de insertar filas en una tabla. UPDATE: privilegio de modificar datos en una tabla. DELETE: privilegio de eliminar filas de una tabla. INDEX: privilegio de crear un índice en una tabla, automáticamente otorga el privilegio CONTROL el cual permanece aun si el privilegio INDEX es revocado. REFERENCES: privilegio de crear y eliminar una clave foránea que haga referencia a una tabla base. ALTER: privilegio de agregar columnas a la tabla y crear o eliminar restricciones PRIMARY KEY o UNIQUE: en una tabla base. ALL o ALL PRIVILEGES: privilegio de otorgar todos los privilegios excepto CONTROL. CONTROL: otorga todos los privilegios. OTORGAR PRIVILEGIOS GRANT privilegio1, privilegio2 ON tabla TO USER nombre_del_usuario; GRANT privilegio1, privilegio2 ON tabla TO GROUP nombrte_del_grupo; REVOCAR PRIVILEGIOS REVOKE privilegio1, privilegio2 ON tabla FROM USER nombre_del_usuario; REVOKE privilegio1, privilegio2 ON tabla FROM GROUP nombrte_del_grupo; VISTAS Son usadas para controlar el acceso a una tabla, subconjunto de filas o de columnas permite limitar el acceso de los usuarios solo a un PROGRAMACION ESTRUCTURADA UDT Y UDF TIPOS DE UDT Tipo de datos diferenciado Tipo de datos estructurado Tipo de dato de referencia. TIPO DE DATOS DIFERENCIADO Es un tipo de dato definidos por el usuario basado en tipos de datos predefinidos en DB2. Un tipo diferenciado comparte su representación con un tipo existente pero se considera un tipo separado e incompatible. También pueden estar basado en tipos predefinidos para almacenar y manipular objetos grandes (BLOB). cuando se crean tipos diferenciados DB2 genera funciones de conversión del tipo de datos para convertir el tipo diferenciado al tipo fuente y viceversa VENTAJAS DE LOS TIPOS DE DATOS DIFERENCIADOS Capacidad de ampliación. Flexibilidad. Comportamiento coherente. Encapsulacion. Rendimiento. TIPO DE DATOS ESTRUCTURADO Es un tipo de datos definido por el usuario con una estructura en la base de datos. Contiene una secuencia de atributos con nombres, cada uno de los cuales tiene un tipo de datos. TIPO DE DATO DE REFERENCIA Es un tipo de datos creado automáticamente por DB2 cada vez que el usuario crea un tipo de dato estructurado. El tipo de dato estructurado al que se hace referencia se le denomina tipo de dato referenciado. RESTRICCIONES PARA DEFINIR TIPOS DE DATOS DIFERENCIADOS DISTINCT debe ser un tipo de datos predefinido, los tipos de datos diferenciados definidos por el usuario no se pueden utilizar como tipos fuentes de otros tipos diferenciados. PROCEDIMIENTO PARA DEFINIR TIPOS DE DATOS DIFERENCIADOS DISTINCT CREATE DISTINCT TYPE nombre_del_tipo_diferenciado AS tipo_predefinido WITH COMPARISONS; CLAUSULA WITH COMPARISONS Permite comparar entre las distintas instancias de un mismo tipo diferenciado, la cláusula WITH COMPARISONS no se puede especificar si el tipo de dato fuente es un objeto grande LONG VARCHAR o LONG VARGRAPHC OPERADORES DE COMPARACION DE TIPOS DIFERENCIADOS Menor que (<) Mayor que (>) Menor o igual que (<=) Mayo o igual que (>=) No igual o diferente (<>) Igual a (=) Nota: para comparar tipos de datos diferenciado con constantes, las constantes deben ser convertidas a tipos de datos diferenciados apropiados. INSERCION DE DATOS EN TABLAS CON TIPOS DE DATOS DIFERENCIADOS CREATE DISTINCT TYPE tipo_diferenciado AS SMALLINT WITH COMPARISONS; CREATE TABLE tabla (tipodiferenciado tipo_diferenciado); INSERT INTO tabla VALUES (tipo_dififerenciado (4)); PROCEDIMIENTO PARA DEFINIR TIPOS DE DATOS ESTRUCTURADOS SUPERTIPO CREATE TYPE nombre_del_tipo_base AS ( atributo_1 tipo_predefinido, atributo_2 tipo_predefinido, atributo_3 tipo_predefinido ) REF USING INT INSTANTIABLE MODE DB2SQL; SUBTIPO CREATE TYPE nombre_del_subtipo UNDER nombre_del_tipo_base AS ( atributo_1 tipo_predefinido, atributo_2 tipo_predefinido, atributo_3 tipo_predefinido ) INSTANTIABLE MODE DB2SQL; CLAUSULA MODE DB2SQL Esta cláusula es obligatoria y permite la invocación directa de la función constructora para el tipo. CLAUSULA INSTANTIABLE o NO INSTANTIABLE Determina si se puede crear o no una instancia del tipo estructurado. Declarar un tipo como no instanciable impide generar una función constructora para el tipo estructurado además este no puede utilizarse como tipo de una tabla. CLAUSULA REF USUNG Define el tipo de dato utilizado como representación para el tipo de referencia de este tipo estructurado y de todos sus subtipos. Solo puede especificarse para el tipo base de una jerarquía de tipos. UDF Funciones creadas por los desarrolladores de aplicaciones.