Sunteți pe pagina 1din 31

RESUMEN DE CONCEPTOS GENERALES DE SISTEMAS MANEJADORES DE BASES DE DATOS 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.

Sistemas Manejadores de Base de Datos DBMS Las 12 reglas de Codd para DBMS relacionales SQL LMD, LDD Y LCD Tablas Vistas ndices Catlogo Optimizacin de consultas Seguridad Integridad Control de concurrencias Respaldo y recuperacin Utileras de mantenimiento Herramientas para monitoreo Administracin de base de datos

SISTEMAS MANEJADORES DE BASES DE DATOS El DBMS o SMBD (Sistema Manejador de Base de Datos) es un Software que acta como un intermediario entre la base de datos y los usuarios. Estos usuarios pueden ser finales, tcnicos (programadores) o especializados (administrador de base de datos). Las bases de datos de las empresas se miden en trminos de gigabytes o terabytes. Puesto que la memoria principal de las computadoras no puede almacenar esta informacin, la base de datos se almacena en disco. Es de gran importancia que el sistema de base de datos minimice la necesidad de mover los datos entre la memoria y el disco. Una base de datos es similar a un archivo de datos en cuanto a que ambos son un almacenamiento de datos. Como en un archivo de datos, una base de datos presenta informacin directamente al usuario; el usuario ejecuta una aplicacin que tiene acceso a los datos de la base de datos y los presenta al usuario en un formato inteligible. Los sistemas de bases de datos son ms tiles que los archivos de datos. Los datos estn mucho mejor organizados. En una base de datos bien diseada, no hay elementos de datos duplicados que el usuario o la aplicacin tengan que actualizar al mismo tiempo. Los elementos de datos estn agrupados en una nica estructura o registro, y se pueden definir relaciones entre dichas estructuras y registros.

Un Sistema Manejador de Base de Datos es una herramienta de Software con un conjunto de programas que permiten construir y administrar una base de datos, adems de ofrecer los medios para que programas dedicados al usuario puedan explotar la informacin que se agrega a las tablas de las bases de datos. Los principales componentes de un manejador serian los siguientes:

PROTOCOLOS DE COMUNICACIONES

HERRAMIENTAS DE ADMINISTRACION

MOTOR DE BASE DE DATOS


HERRAMIENTAS DE DISEO DE REPORTES Y PANTALLAS HERRAMIENTAS DE DISEO DE SCRIPTS HERRAMIENTAS DE MANTENIMIENTO . . . . . OTROS

Las funciones que debe cumplir un DBMS son las siguientes: Simplificar la definicin de las estructuras de una base de datos. Facilitar el acceso a los datos. interactuar con el sistema de archivos. Permitir la implantacin de esquemas de integridad. Permitir la implantacin de esquemas de seguridad. Agregar esquemas de respaldo y recuperacin. Establecer control de concurrencia. Ejemplos de manejadores de bases de datos: SQL SERVER, DB2, SYBASE , ORACLE, INFORMIX, INGRESS

El entorno de Software en el que se puede ver involucrado un Sistema Manejador de Base de Datos puede ser el siguiente.

SERVICIO EXTERNO

INTERNET
JAVA, HTML, FRONT PAGE, DREAM WEAVER, FLASH, OTROS SISTEMAS SOBRE INTERNET

WIN NT, WIN 2000 SERVER


VISUAL B, VISUAL C SQL SERVER ERWIN, S DESIGNOR, ETC ESTRUCTURAS Y MODELOS DE DATOS

OTROS S M B D OTROS LENGUAJES

OTROS SIST. OPERATIVOS

SERVICIO LOCAL

Todo DBMS est basado en un modelo de Datos.

USUARIO FINAL REQUERIMIENTO Necesidad de informacin Necesidad de automatizar funciones

USUARIO TECNICO PROGRAMA LENGUAJE C Pascal Visual Basic Power Builder

DBA SMBD SQL SERVER DB2 SEQUEL ANYWHERE ACCESS INFORMIX ORACLE DDF

DBA TABLAS HERRAMIENTAS DE DISEO

DBA MODELO TECNICAS para modelar

Modelo relacional de base de datos Hay varias formas de organizar los datos en las bases de datos, pero las bases de datos relacionales son una de las formas ms efectivas. Los sistemas de bases de datos relacionales son una aplicacin de la teora matemtica de los conjuntos al problema de la organizacin de los datos. En una base de datos relacional, los datos estn organizados en tablas (llamadas relaciones en la teora relacional). Una tabla representa una clase de objeto que tiene cierta importancia en una organizacin. Por ejemplo, una corporacin puede tener una base de datos con una tabla para los empleados, otra tabla para los clientes y otra para los productos del almacn. Las tablas estn compuestas de columnas y filas (atributos y tuplas en la teora relacional). Cada columna representa algn atributo del objeto representado por la tabla. Por ejemplo, una tabla Empleados normalmente tendra columnas para el nombre, el apellido, el Id. del empleado, el departamento, la categora laboral y el cargo. Cada fila representa una instancia del objeto representado por la tabla. Por ejemplo, una fila de la tabla Empleados representa el empleado cuyo Id. de empleado es 12345. Al organizar los datos en tablas, se pueden encontrar varias formas de definirlas. La teora de las bases de datos relacionales define un proceso, la normalizacin, que asegura que el conjunto de tablas definido organizar los datos de manera eficaz.

Bases de datos Los datos de una base de datos estn organizados en los componentes lgicos visibles por los usuarios. Adems, una base de datos est implementada fsicamente como dos o ms archivos de disco. Al utilizar una base de datos, se trabaja principalmente con los componentes lgicos, como tablas, vistas, procedimientos y usuarios. La implementacin fsica de los archivos es casi enteramente transparente. Normalmente, slo el administrador de la base de datos tiene que trabajar con la implementacin fsica.

Funciones del servidor El servidor es el componente que recibe las instrucciones SQL de los clientes y realiza las acciones necesarias para completar las instrucciones. Esta seccin trata: E servidor compila cada una de las instrucciones SQL de proceso por lotes en un plan de ejecucin que indica al servidor cmo procesar la instruccin. Administra los recursos de memoria, subprocesos y tareas. Determina qu parte de una consulta distribuida hace referencia a un servidor vinculado y qu peticin se transmite al servidor para obtener los datos que se necesitan. Transmite las llamadas a procedimientos almacenados remotos a los servidores remotos. Administra la simultaneidad y los problemas de transacciones. Implementa los cursores del servidor.

Sistemas de bases de datos cliente-servidor Los sistemas cliente-servidor estn construidos de tal modo que la base de datos puede residir en un equipo central, llamado servidor y ser compartida entre varios usuarios. Los usuarios tienen acceso al servidor a travs de una aplicacin de cliente o de servidor: 1. En un sistema cliente-servidor de dos estratos, los usuarios ejecutan una aplicacin en su equipo local, llamado cliente, que se conecta a travs de la red con el servidor que ejecuta SQL Server. La aplicacin de cliente ejecuta las reglas de la compaa y el cdigo necesario para presentar el resultado al usuario. 2. En un sistema cliente-servidor de varios componentes, la lgica de la aplicacin de cliente se ejecuta en dos ubicaciones: El cliente reducido se ejecuta en el equipo local del usuario y se encarga de presentar resultados al usuario. La lgica de la compaa se encuentra en aplicaciones de servidor que se ejecutan en un servidor. Los clientes reducidos solicitan funciones a la aplicacin de servidor, que, a su vez, es una aplicacin multiproceso capaz de operar con varios usuarios simultneos. La aplicacin de servidor es la que abre las conexiones con el servidor de la base de datos y se puede ejecutar en el mismo servidor que la base de datos, o se puede conectar a travs de la red con otro servidor que opere como servidor de base de datos.

El tener los datos almacenados y administrados en una ubicacin central ofrece varias ventajas: Todos los elementos de datos estn almacenados en una ubicacin central en donde todos los usuarios pueden trabajar con ellos. Los servidores de base de datos relacionales optimizan el trfico de la red al devolver slo los datos que la aplicacin necesita. Por ejemplo, si una aplicacin que trabaja con un servidor de archivos tiene que presentar la lista de los representantes comerciales de Oregn, debe obtener el archivo de empleados completo. Si la aplicacin trabajara con un servidor de bases de datos relacionales, enviara este comando:
SELECT first_name, last_name FROM employees WHERE emp_title = 'Sales Representative' AND emp_state = 'OR'

La base de datos relacional slo devuelve los nombres de los representantes comerciales de Oregn, no toda la informacin de todos los empleados

No se almacenan copias separadas del elemento en cada cliente, lo que elimina los problemas de hacer que todos los usuarios trabajen con la misma informacin. Las reglas de la organizacin y las reglas de seguridad se pueden definir una sola vez en el servidor para todos los usuarios. Esto se puede hacer en una base de datos mediante el uso de restricciones, procedimientos almacenados y desencadenadores. Tambin se puede hacer en una aplicacin de servidor. Los gastos en hardware se pueden minimizar. Como los datos no estn almacenados en los clientes, stos no tienen que dedicar espacio de disco a almacenarlos. Los clientes tampoco necesitan la capacidad de proceso para administrar los datos localmente y el servidor no tiene que dedicar capacidad de proceso para presentar los datos. El servidor se puede configurar para optimizar la capacidad de E/S de disco necesaria para obtener los datos y los clientes se pueden configurar para optimizar el formato y presentacin de los datos obtenidos desde el servidor. El servidor puede estar situado en una ubicacin relativamente segura y estar equipado con dispositivos como Sistemas de alimentacin interrumpida (SAI), lo que resulta ms econmico que si se protegieran todos los clientes. Las tareas de mantenimiento como las copias de seguridad y restauracin de los datos son ms sencillas porque estn concentradas en el servidor central.

Sistemas de bases de datos de escritorio Son tiles para aplicaciones que necesiten bases de datos independientes almacenadas de forma local en el cliente. No se tiene que dedicar un administrador de bases de datos a cada cliente.

Cuando los clientes utilizan bases de datos locales, una copia del motor de bases de datos se ejecuta en el cliente y administra todas las bases de datos de dicho cliente. Las aplicaciones conectan con el motor de la base de datos casi de la misma forma en que se conectan a travs de la red con un motor de base de datos que se ejecuta en un servidor remoto.

LAS 12 REGLAS DE CODD PARA DBMS RELACIONALES Sirven para determinar la fidelidad de un sistema relacional al modelo relacional En la dcada de los 80 comenzaron a aparecer numerosos SMBD que se anunciaban como "relacionales". Sin embargo estos sistemas carecan de muchas caractersticas que se consideran importantes en un sistema relacional, perdiendo muchas ventajas del modelo relacional. Como ejemplo extremo de esto "sistemas relacionales" eran simplemente sistemas que utilizaban tablas para almacenar la informacin, no disponiendo de elementos como claves primarias, etc. En 1984 Codd public 12 reglas que un verdadero sistema relacional debera de cumplir. En la prctica algunas de ellas son difciles de realizar. Un sistema podr considerarse "ms relacional" cuanto ms siga estas reglas.

Para que un sistema se denomine sistema de manejo de bases de datos relacionales, este sistema debe usar (exclusivamente) sus capacidades relacionales para manejar la base de datos.
REGLA 1: REGLA DE LA INFORMACIN

REGLA 0

Toda la informacin en una base de datos relacional se representa explcitamente en el nivel lgico exactamente de una manera: con valores en tablas.
REGLA 2: REGLA DEL ACCESO GARANTIZADO

Para todos y cada uno de los datos (valores atmicos) de una BDR se garantiza que son accesibles a nivel lgico utilizando una combinacin de nombre de tabla, valor de clave primaria y nombre de columna.
REGLA 3: TRATAMIENTO SISTEMTICO DE VALORES NULOS

Los valores nulos (que son distintos de la cadena vaca, blancos, 0, ...) se soportan en los SMBD totalmente relacionales para representar informacin desconocida o no aplicable de manera sistemtica, independientemente del tipo de datos.
REGLA 4: CATLOGO DINMICO EN LNEA BASADO EN EL MODELO RELACIONAL

La descripcin de la base de datos se representa a nivel lgico de la misma manera que los datos normales, de modo que los usuarios autorizados pueden aplicar el mismo lenguaje relacional a su consulta, igual que lo aplican a los datos normales.

REGLA 5: REGLA DEL SUBLENGUAJE DE DATOS COMPLETO

Un sistema relacional debe soportar varios lenguajes y varios modos de uso de terminal (ej: rellenar formularios, etc.). Sin embargo, debe existir al menos un lenguaje cuyas sentencias sean expresables, mediante una sintaxis bien definida, como cadenas de caracteres y que sea completo, soportando:
REGLA 6: REGLA DE ACTUALIZACIN DE VISTAS

Todas las vistas que son tericamente actualizables se pueden actualizar por el sistema.
REGLA 7: INSERCIN, ACTUALIZACIN Y BORRADO DE ALTO NIVEL

La capacidad de manejar una relacin base o derivada como un solo operando se aplica no slo a la recuperacin de los datos (consultas), si no tambin a la insercin, actualizacin y borrado de datos.
REGLA 8: INDEPENDENCIA FSICA DE DATOS

Los programas de aplicacin y actividades del terminal permanecen inalterados a nivel lgico cuando quiera que se realicen cambios en las representaciones de almacenamiento o mtodos de acceso.
REGLA 9: INDEPENDENCIA LGICA DE DATOS

Los programas de aplicacin y actividades del terminal permanecen inalterados a nivel lgico cuando quiera que se realicen cambios a las tablas base que preserven la informacin.
REGLA 10: INDEPENDENCIA DE INTEGRIDAD

Los limitantes de integridad especficos para una determinada base de datos relacional deben poder ser definidos en el sublenguaje de datos relacional, y almacenables en el catlogo, no en los programas de aplicacin.
REGLA 11: INDEPENDENCIA DE DISTRIBUCIN

Una SMBD tiene independencia de distribucin.


REGLA 12: REGLA DE LA NO SUBVERSIN

Si un sistema relacional tiene un lenguaje de bajo nivel (un registro de cada vez), ese bajo nivel no puede ser usado para saltarse (subvertir) las reglas de integridad y los limitantes expresados en los lenguajes relacionales de ms alto nivel (una relacin (conjunto de registros) de cada vez).

TABLAS TABLAS BASE Denominaremos tabla base a aquella tabla (columnas + renglones) que tienen existencia fsica. Es el objeto al que hacen referencia los programas. Al definir una tabla no se indica ningn ordenamiento para los renglones. Las columnas se ordenan de izquierda a derecha.

Se distingue el trmino de tabla base, con el de tabla debido a que no todas las tablas tienen existencia fsica, como es el caso de aquellas que son resultado de una vista. A todas las tablas se les asigna un nombre, al igual que a cada columna dentro de una tabla. Estos sern los nicos objetos a que un programa har referencia en un postulado de SQL. El orden de los renglones no es relevante desde un punto de vista lgico, aunque si puede importar desde el punto de vista fsico. Por ello, normalmente existirn mecanismos que permitan conservar los renglones en un cierto orden, aunque esta no debe imponer restriccin alguna en los postulados de SQL ni alterar los resultados de estos. TABLAS RESULTANTES Son aquellas que a partir de una consulta en una proyeccin y/o restriccin a una o varias tablas son recuperadas de tablas base. Existen de manera temporal en la memoria mientras dura la consulta VISTAS Una vista se puede considerar una tabla virtual o una consulta almacenada. Los datos accesibles a travs de una vista no estn almacenados en otro objeto distinto de la base de datos. Lo que est almacenado en la base de datos es una instruccin SELECT. El resultado de la instruccin SELECT forma la tabla virtual que la vista devuelve. El usuario puede utilizar dicha tabla virtual haciendo referencia al nombre de la vista, de la misma forma en que se hace referencia a las tablas. Las vistas se utilizan para alguna de estas funciones, o para todas: Restringir al usuario a filas concretas de una tabla. Por ejemplo, hacer que un empleado slo vea las filas que guardan sus datos en una tabla de seguimiento de actividad laboral (consulta con una restriccin de algunos renglones).

Restringir al usuario a columnas especficas. Por ejemplo, hacer que los empleados que no trabajen en el departamento de nminas vean las columnas nombre, oficina, telfono y departamento de la tabla de empleados, pero no vean las columnas con los datos de salario u otra informacin personal (consulta con una proyeccin de solo algunas columnas). Combinar columnas de varias tablas de forma que parezcan una sola tabla. Agregar informacin en lugar de presentar los detalles. CREATE VIEW costo_vista AS SELECT titulo, nombre_autor, precio, id_publicacion FROM titulo INDICES Es un mecanismo que se puede emplear para hacer mas veloz el acceso a los datos de una tabla. Tambin se emplean para garantizar la unicidad de la llave primaria Ningn postulado de manipulacin de datos hace referencia a los ndices. La decisin de emplear o no un ndice existente la toma el optimizador. A todas las tablas se les define un ndice para reforzar la unicidad de la llave primaria. El DBA decide si define varios ndices sobre una tabla. La existencia o no de ndices puede alterar la velocidad con la que se produce el resultado, pero no sus resultados.

Los ndices se implementan en forma de rboles B. Un ndice contiene una entrada con una o varias columnas (la clave de bsqueda) de cada fila de una tabla. Un rbol B se ordena con la clave de bsqueda y se puede buscar de forma eficiente en cualquier subconjunto principal de la clave de bsqueda. Por ejemplo, un ndice en las columnas A, B y C puede buscarse de forma eficiente en A, en A y B, y en A, B y C. PRIMARY KEY (clave principal) y UNIQUE (no duplicados) son clusulas que crean de manera automtica ndices No obstante, las ventajas que ofrecen los ndices por lo que respecta al rendimiento tambin tienen un costo. Las tablas con ndices necesitan ms espacio de almacenamiento en la base de datos. Asimismo, es posible que los comandos de insercin, actualizacin o eliminacin de datos sean ms lentos y precisen ms tiempo de proceso para mantener los ndices. Cuando se disea y crea ndices, se debe asegurar de que las ventajas en el rendimiento compensan suficientemente el costo adicional en cuanto a espacio de almacenamiento y recursos de proceso.

Los dos tipos de ndice en casi cualquier manejador son: Agrupado Los ndices agrupados ordenan y almacenan las filas de los datos de la tabla de acuerdo con los valores de la clave del ndice. Como las filas de los datos estn almacenadas siguiendo el orden de la clave del ndice agrupado, los ndices agrupados son eficientes para buscar filas. Slo puede haber un ndice agrupado por cada tabla, porque las filas de datos slo pueden estar ordenadas de una forma. Las propias filas de datos forman el nivel inferior de los ndices agrupados. No agrupado Los ndices no agrupados tienen una estructura que est completamente separada de las filas de datos. Las primeras filas de un ndice no agrupado contienen los valores de las claves del ndice y cada entrada de clave tiene punteros a las filas de datos que contienen el valor de la clave. Las filas de datos no estn ordenadas en el orden de las claves del ndice no agrupado. El puntero de una fila de ndice no agrupado para una fila de datos se denomina localizador de fila. Los ndices pueden ser nicos, lo que significa que ninguna fila puede tener el mismo valor que otra en la clave del ndice. De lo contrario, el ndice no es nico y varias filas pueden compartir el mismo valor de clave. Hay dos formas de definir ndices. CREATE INDEX crea y asigna el nombre de un ndice. CREATE TABLE acepta las siguientes restricciones que crean ndices: PRIMARY KEY crea un ndice nico que implementa una clave principal. UNIQUE ndice en el que no se permite que dos filas tengan el mismo valor de ndice, para as prohibir los ndices o valores de clave duplicados. El sistema comprueba si hay valores de claves duplicados cuando se crea el ndice y realiza la comprobacin cada vez que se agregan datos con una instruccin INSERT o UPDATE CLUSTERED ndice en el que el orden lgico o indizado de los valores de la clave es el mismo que el orden fsico almacenado de las correspondientes filas existentes en la tabla. NONCLUSTERED crea ndice en el que el orden lgico del ndice no coincide con el orden fsico o almacenado de las filas en el disco. El siguiente es un posible ejemplo de creacin de varios ndices sobre la misma tabla.
USE pubs GO CREATE TABLE emp_sample (emp_id int PRIMARY KEY CLUSTERED, emp_name char(50), emp_address char(50), emp_title char(25) UNIQUE NONCLUSTERED ) GO CREATE NONCLUSTERED INDEX sample_nonclust ON emp_sample(emp_name) GO

La decisin de qu conjunto concreto de ndices optimizara mejor el rendimiento depende de los tipos de consultas del sistema. Tenga en cuenta el ndice agrupado en emp_sample.emp_id. ste funciona bien si la mayor parte de las consultas que hacen referencia a emp_sample hacen comparaciones de igualdad o de intervalo sobre emp_id en sus clusulas WHERE. Si las clusulas WHERE de la mayor parte de las consultas hacen referencia a emp_name en lugar de a emp_id, se podra aumentar el rendimiento al crear el ndice agrupado sobre la columna emp_name. TABLAS DE CATALOGO Es un conjunto de tablas donde se almacena informacin de: Estructuras de datos definidas Programas que hacen referencia a las estructuras Autorizaciones sobre objetos El catlogo es mantenido por el DBMS en forma automtica Puede ser consultado con postulados de SQL. La estructura del catlogo varia dependiendo del DBMS en particular Un catalogo tiene como ejemplo las siguientes tablas: TABLAS, se almacena un rengln por cada tabla definida en el DBMS COLUMNAS se almacena un rengln por cada columna defina en el DBMS. INDICES: se guarda un rengln por cada ndice definido sobre una tabla. Las aplicaciones dinmicas que no estn diseadas para funcionar con un conjunto exclusivo de tablas y vistas deben disponer de un mecanismo para determinar la estructura y atributos de los objetos de cualquier base de datos a la que se conectan. Las aplicaciones pueden necesitar informacin como, por ejemplo:

El nmero y nombre de las tablas y vistas de una base de datos. El nmero de columnas en una tabla o vista, junto con el nombre de cada columna, tipo de datos, escala y precisin. Las restricciones definidas en una tabla. Los ndices y claves definidas para una tabla.

No es recomendable que los usuarios consulten directamente las tablas de catlogo; esto slo debe hacerse en el caso de que ninguno de los mtodos anteriores suministre la informacin necesaria. La actualizacin, eliminacin o insercin de datos en una tabla del sistema puede producir efectos impredecibles o errneos en un manejador de base de datos.

OPTIMIZACION DE CONSULTAS El objetivo de la optimizacin del rendimiento consiste en minimizar el tiempo de respuesta de cada consulta y maximizar el rendimiento de todo el servidor de bases de datos al minimizar el trfico de red, la E/S de disco y el tiempo de CPU. Este objetivo se logra mediante la comprensin de los requisitos de las aplicaciones, la estructura fsica y lgica de los datos y los intercambios entre usos conflictivos de la base de datos, como el procesamiento de transacciones en lnea (OLTP, Online Transaction Processing), frente a la ayuda a la toma de decisiones. Se deben tener en cuenta los problemas de rendimiento durante el ciclo de desarrollo, no al final cuando el sistema est implementado. Muchos aspectos de rendimiento que causan una mejora significativa se consiguen mediante un cuidadoso diseo desde el principio. Mientras otros aspectos del rendimiento en el nivel de sistema, como la memoria, hardware, etc., tambin se deben estudiar, la experiencia muestra que la ganancia de rendimiento de estas reas a menudo es incremental. Los manejadores suelen administrar automticamente los recursos de hardware disponibles, lo que reduce la necesidad (y por lo tanto, las ventajas) de realizar optimizaciones manuales extensas en el nivel de sistema. Algunos renglones que ayudan a optimizar el performance en un ambiente de manejo bases de datos son los siguientes: Diseo de bases de datos Optimizar las consultas Diseo de aplicaciones Optimizar el rendimiento de programas y herramientas Optimizar el rendimiento del servidor El Componente responsable de generar el plan de ejecucin ptimo de una consulta se llama optimizador, el cual utiliza informacin estadstica contenida en las tablas del catalogo principalmente de los ndices de tablas para desarrollar su actividad de minimizar los costos de bsquedas.

SEGURIDAD DE INFORMACIN Es la proteccin contra la divulgacin, alteracin o destruccin no autorizada. Privacidad es el derecho de todo individuo a tener control sobre su informacin personal. Es el derecho de individuos, grupos o instituciones a determinar por ellos mismos cuanto, como y que informacin acerca de ellos puede ser comunicada a otros. Privacidad vs. Derecho de la informacin.

SEGURIDAD E INTEGRIDAD USUARIO

Acceso permitido

Acceso Prohibido

No hay violacin n de seguridad

Hay violacin n de seguridad

No hay cambio en los datos

Cambio correcto

Cambio incorrecto

No hay violacin de integridad

Hay violacin de integridad

CONTROL DE SEGURIDAD Dentro del DBMS tiene que haber un mecanismo para proteger los datos, y para poder dar o quitar autorizaciones a los usuarios. Los tipos de autorizacin son: Lectura, actualizacin, borrado e insercin Y se pueden otorgar sobre: Una tabla, un grupo de tablas, una vista (subconjunto de renglones y columnas) En SQL existen 2 postulado para dar o quitar autorizacin: GRANT y REVOKE OTROS ASPECTOS DE SEGURIDAD La seguridad que provee el DBMS debe ser complementada por el sistema operativo. No existen sistemas de seguridad perfectos. Los DBMS suelen brindar la funcin de crear tiras de auditoria. Se deben considerar otras opciones como el encriptado de datos.

INTEGRIDAD Integridad de los datos La integridad de los datos garantiza la calidad de los datos de la base de datos. Por ejemplo, si se especifica para un empleado el valor de employee_id (IdEmpleado) 123, la base de datos no debe permitir que ningn otro empleado tenga el mismo valor de identificador. Si tiene una columna employee_rating (clasificacinEmpleado) para la que se prevea valores entre el 1 y el 5, la base de datos no debe aceptar el valor 6. Si en la tabla hay una columna dept_id (IdDepto) en la que se almacene el nmero de departamento del empleado, la base de datos slo debe permitir valores que correspondan a los nmeros de departamento de la compaa. Dos pasos importantes en el diseo de las tablas son la identificacin de valores vlidos para una columna y la determinacin de cmo forzar la integridad de los datos en la columna. Hay cuatro categoras de integridad de datos: Integridad de entidad, de dominio, referencial y definida por el usuario. Hay varias maneras de forzar cada tipo de integridad. Tipo de integridad Entidad Opciones recomendadas Restriccin PRIMARY KEY Restriccin UNIQUE Propiedad IDENTITY Definicin predeterminada (DEFAULT) Restriccin FOREIGNKEY Restriccin CHECK NOT NULL Restriccin FOREIGNKEY Restriccin CHECK Todas las restricciones en columnas y tablas de CREATE TABLE Procedimientos almacenados Desencadenadores

Dominio

Referencial Definidos por el usuario

Integridad de entidad La integridad de entidad define una fila como entidad nica para una tabla determinada. La integridad de entidad fuerza la integridad de la columna o columnas de los identificadores o la clave principal de una tabla (mediante ndices, restricciones UNIQUE, restricciones PRIMARY KEY o propiedades IDENTITY).

Integridad de dominio La integridad de dominio viene dada por la validez de las entradas para una columna determinada. Puede forzar la integridad de dominio si restringe el tipo (mediante tipos de datos), el formato (mediante las reglas y las restricciones CHECK), o el intervalo de valores posibles (mediante restricciones FOREIGN KEY, restricciones CHECK, definiciones DEFAULT, definiciones NOT NULL y reglas). Integridad referencial La integridad referencial protege las relaciones definidas entre las tablas cuando se crean o se eliminan registros. En Microsoft SQL Server, la integridad referencial se basa en las relaciones entre las claves externas y las claves principales o entre las claves externas y las claves nicas. La integridad referencial garantiza que los valores clave son coherentes en las distintas tablas. Para conseguir esa coherencia, es preciso que no haya referencias a valores inexistentes y que, si cambia el valor de una clave, todas las referencias a ella se cambien en consecuencia en toda la base de datos. Cuando se fuerza la integridad referencial, SQL Server impide a los usuarios: Agregar registros a una tabla relacionada si no hay ningn registro asociado en la tabla principal. Cambiar valores en una tabla principal de manera que queden registros hurfanos en una tabla relacionada. Eliminar registros de una tabla principal cuando hay registros relacionados coincidentes. Por ejemplo, con las tablas sales (compras) y titles (ttulos) de la base de datos pubs, la integridad referencial se basa en la relacin entre la clave externa (title_id) de la tabla sales y la clave principal (title_id) de la tabla titles.

Integridad definida por el usuario La integridad definida por el usuario le permite definir reglas de la compaa especficas que no pertenecen a ninguna otra categora de integridad. Todas las categoras de integridad son compatibles con la integridad definida por el usuario.

CONTROL DE CONCURRENCIA Para que un DBMS permita el acceso concurrente a los datos debe tener tcnicas para asegurar la integridad de los datos. Se emplean tcnicas de locking (bloqueo) para poder asegurar la integridad. TRANSACCIN Todo DBMS deber soportar el concepto de transaccin. Entenderemos por transaccin una unidad lgica de trabajo. El DBMS deber garantizar la atomicidad de cada transaccin. Para ello emplea los mecanismos de control de concurrencia y de respaldo y recuperacin.

Una transaccin estar formada por un conjunto de postulados SQL que conforman una unidad lgica de trabajo. -hacer un retiro de una cuenta de cheques -dar de alta un cliente nuevo -efectuar un pago para tarjeta de crdito -autorizar un pago con tarjeta de crdito -hacer una reservacin en un vuelo de una lnea rea

PREMISA: Una transaccin individualmente correcta arrojar un estado vlido en los datos, despus de ejecutarse, si se ejecuta aisladamente. An cuando un conjunto de transacciones sean individualmente correctas, es posible, en un ambiente multi-usuario, que al ejecutarse concurrentes interfieran entre ellas y arrojen un estado invlido al concluir su ejecucin.

El DBMS deber garantizar que una transaccin se ejecuta en su totalidad y nunca parcialmente. EL PROBLEMA DE LA ACTUALIZACIN PERDIDA

T1 SELECT Saldo (10000) UPDATE Saldo (8000)

SELECT Saldo (10000) T2

UPDATE Saldo (9000)

En este escenario se estn representando dos transacciones T1 y T2, que se ejecutan concurrentemente. La transaccin T1 consiste en hacer un retiro de 2000 de una cuenta de cheques. En T2 se hace un retiro de 1000 de la misma cuenta de cheques. Observe que el resultado final es errneo.

LOCKING La tcnica de locking o bloqueo regula el acceso concurrente a objetos compartidos (datos). Existe un componente del DBMS llamado lock manager que se encarga de otorgar locks a peticin de una transaccin. Un lock (candado) es un bloque de control que tiene la identificacin del rengln al que est asociado y la identificacin de la transaccin que solicit el lock. Si la transaccin T tiene un lock sobre el registro R, entonces T tiene ciertas garantas sobre R (por ejemplo, exclusividad) La naturaleza de las garantas depende del tipo de lock.

LOCKS EXCLUSIVOS. Si la transaccin T tiene un lock exclusivo sobre un rengln R, entonces, ninguna otra transaccin T podr adquirir un lock de cualquier tipo sobre R hasta que T libere su lock. Protocolo PX: cualquier transaccin que intente actualizar un rengln R deber, primero, ejecutar un XREAD R para leer el rengln y adquirir un lock exclusivo sobre R. Si el lock no pude ser adquirido, la transaccin pasar a un estado wait (espera); la transaccin continuar su proceso cuando el rengln est disponible y el lock pueda ser otorgado.

EL PROBLEMA DE LA ACTUALIZACION PERDIDA. T1 SELECT XREAD Saldo (10000) UPDATE saldo (8000)

SELECT XREAD Saldo (WAIT) T2 DEADLOCKS

SELECT XREAD Saldo (8000)

El empleo de locks puede producir DEADLOCKS. Un deadlock se presenta cuando 2 ms transacciones estn simultneamente en estado de wait, cada una esperando que se libere el lock otorgado a la otra.

DEADLOCKS. . . T1 SELECT XREAD R1 SELECT XREAD R2 (WAIT)

SELECT XREAD R2 T2

SELECT XREAD R1 WAIT

DEADLOCKS. . . Para resolver un deadlock se escoge una vctima (una de las transacciones en el deadlock) y se le hace ROLLBACK. El rollback, adems de hacer un UNDO, deber liberar todos los locks otorgados a la transaccin vctima. A la transaccin vctima se le notifica del deadlock a travs de un cdigo de retorno.

EL PROBLEMA DE LA ACTUALIZACION PERDIDA. . . T1

SELECT XREAD saldo (10000)

UPDATE saldo (8000)

T2

SELECT XREAD saldo . . . . . . . . . . . . (WAIT)

SELECT XREAD saldo (8000)

EL PROBLEMA DE LA ACTUALIZACION PERDIDA T1 SELECT XREAD saldo (10000) UPDATE saldo (8000)

ROLLBACK

SELECT XREAD saldo (WAIT) T2

SELECT XREAD saldo (8000)

UPDATE saldo (7000)

PROTOCOLO PXC Para evitar la posibilidad de perder una actualizacin a causa de un ROLLBACK, no se debe permitir a ninguna transaccin actualizar un uncommited change. PROTOCOLO PXC: se agrega al protocolo KPX una regla que establece que los locks exclusivos se retiene hasta el punto de COMMIT/ROLLBACK.

LOCKS COMPARTIDOS (SHARE) T1 READ CTA 1(40) SUMA = SUMA + CTA1 (40) READ CTA 2 (50) SUMA = SUMA + CTA 2 (90) T2

XREAD CTA 3, (30) UPDATE CTA 3, (20) XREAD CTA 1, (40)

READ CTA3 (20) SUMA= SUMA + CTA 3 (40) LOCKS COMPARTIDOS . . .

UPDATE CTA 1 (50) COMMIT

T1 debera establecer un lock en cada cuenta segn las va leyendo y retener estos locks hasta terminar la suma. El tipo de lock para T1 necesita ser exclusivo, aunque un lock exclusivo servira, la concurrencia se reducira innecesariamente. Se necesita un lock que impida que otra transaccin cambien los valores de los datos, aunque no hay ningn problema con permitir que otra transaccin vea los datos. Esto se puede resolver con un lock compartido.

LOCK COMPARTIDO Si una transaccin T tiene un lock compartido sobre algn rengln, otra transaccin T puede adquirir tambin un lock compartido sobre ese mismo rengln. Sin embargo, ninguna otra transaccin T puede adquirir un lock exclusivo sobre ese rengln hasta que no se hayan liberado todos los locks compartidos.

LOCKS COMPARTIDOS T1 SREAD CTA 1(40) SUMA= SUMA + CTA 1(40) SREAD CTA 2, (50) SUMA = SUMA +CTA 2 (90) T2

XREAD CTA 3, (30) UPDATE CTA 3, (20) XREAD CTA 1 WAIT

SREAD CTA3 WAIT

PROTOCOLO PSC Cualquier transaccin que intente procesar un rengln R (incluye lectura y actualizacin), deber ejecutar primero un SREAD R, par leer el rengln y adquirir un lock compartido sobre R. Cualquier intento subsecuente de actualizar el registro deber hacerse por medio de un XUPDATE R que no slo actualice el rengln sino que tambin promueva el lock s sobre ese rengln a un lock X Los locks X se retiene hasta el punto de COMMIT/ROLLBACK

MATRIZ DE COMPATIBILIDAD

X X S NO NO SI FALLAS

S NO SI SI SI SI SI

Todo DBMS deber estar construido a partir de la premisa de que las fallas son inevitables. Las fallas pueden clasificarse en 4 tipos: Fallas Fallas Fallas Fallas locales a un programa en ejecucin detectadas por el programa locales a un programa en ejecucin no detectada por el programa. globales que afectan a todas las transacciones en ejecucin. en los dispositivos de almacenamiento.

El primer tipo de falla deber ser manejado por el programa, apoyndose en las herramientas que el DBMS proporciona. Las fallas del segundo y tercer tipo debern ser manejadas por el DBMS en forma automtica. Las fallas del cuarto tipo se debern resolver apoyndose en utileras de recuperacin proporcionadas por el DBMS.

RESPALDO Y RECUPERACIN. El DBMS debe contar con mecanismos que permitan recuperar los datos en caso de alguna falla. Los mecanismos de recuperacin se basan en la redundancia controlada. Por tanto deber contar tambin con proceso par poder respaldar la informacin.

MECANISMOS DE RESPALDO Y RECUPERACIN. Por lo general, los DBMS proporcionan tres elementos bsicos para resolver alguna falla: Utileras para hacer respaldo peridicos de las tablas Mecanismos para registrar en una bitcora o log todos los cambio efectuados a los valores de los datos en las tablas Utileras para poder restaurar o recupera tablas a partir de los respaldos y del log. BITACORA O LOG Transferir 500 cheques (31561) a inversiones (100911) TABLAS CTA . 31561 . T1 NOMBRE . RUBEN ADAD .. SALDO .. 1000 .. CONTRATO MONTO NOMBRE . . . 100911 2000 RUBEN ADAD

Begin

solicitar Monto Transferencia OPER BEGIN UPDATE UPDATE COMMIT

leer saldo cheques

cargo a cheques 500

abono a inversiones 500 AFTER IMAGE

commit

TABLA CHEQUES INVERSION

BEFORE IMAGE 31561 RUBEN ABAD 1000 100911 2000 RUBEN ABAD

31561 RUBEN ABAD 500 100911 2500 RUBEN ABAD

TX ID T1 T1 T1 T1

TX SEC 1 2 3 4

EJEMPLO CON DOS TRANSACCIONES Transferir 500 de cheques (31561) a inversiones (100911)2) Transferir 750 de cheques (35871) a inversiones (102456) CUENTA DE INVERSION SALDO 1000 1500 .. NUM CTA . 100911 .. 102456 MONTO . . 2000 5000 NOMBRE .. .. R. LINARES . Q. RAMOS

CUENTA DE CHEQUES NUMCTA .. .. 31561 35871 .. NOMBRE . R. LINARES Q. RAMOS

Begin

solicitar Monto Transferencia

leer saldo

cargo cheques por 500

abono inversiones por 500

commit

Begin

solicitar Monto Transferencia

leer saldo

cargo cheques por 750

abono inversiones por7 50

commit

EJEMPLO CON DOS TRANSACCIONES tabla oper Begin Begin Update Update Before image Tx id T1 T2 35871 O. RAMOS 750 T2 31561 R. LINARES T1 1500 100911 1500 R. T1 LINARES 102456 5000 O. T2 RAMOS T2 T1 Alter image Tx sec 1 1 2 2 3 3 4 4

Cheques Cheque

35871 O. RAMOS 1500 31561 R. LINARES 100 100911 2000 R. LINARES 102456 5000 O. RAMOS

Inversiones Update Inversiones Update Commit Commit

LOG ACTIVO Y LOG ARCHIVE LOG ACTIVO

DATASET 1

DATASET 2

DATASET n

OFFLOAD

LOG ARCHIVE O PASIVO Una alternativa es mantener un trozo de la bitcora en DASD y el resto en otro tipo de dispositivos mas econmicos (cinta). Al pedazo del log que est en DASD se le denomina LOG ACTIVO; al que se almacena en cinta se le llama LOG ARCHIVE. El log activo se forma por un conjunto de n archivos que funcionan de forma rotativa. Cada vez que se llena un archivo se contina en el sibolsa de trabajo siguiente y se hace una descarga (off load) asincrona del dataset lleno al archive log. TIPOS DE FALLAS 1) 2) 3) 4) Fallas Fallas Fallas Fallas locales a la transaccin que son detectadas por el propio programa locales a las transaccin que no son detectadas por el propio programa del sistema que afectan a todas las transacciones en ejecucin. en los dispositivos de almacenamiento que daan los datos

1) FALLAS LOCALES DETECTADAS Cuando la transaccin descubre la falla, se puede ejecutar un ROLLBACK para asegurar que los datos no se corrompan. As, el ROLLBACK no es considerado como una falla de transaccin sino como una terminacin anormal prevista. 2) FALLAS LOCALES NO DETECTADAS En este caso el DBMS forzar el ROLLBACK para deshacer los cambios efectuados a los datos

3) FALLAS DEL SISTEMA El contenido de los buffers en memoria se pierde: Los datos no se daan fsicamente pero pueden reflejar un estado invlido. Al reiniciar el sistema, el DBMS revisa cada transaccin que ejecutaba: Dependiendo del punto donde se encontraba los concluye (COMMIT) o los deshace (ROLLBACK).

5) FALLAS EN LOS DISPOSITIVOS DE ALMACENAMIENTO.

REDO

Ultimo respaldo tomado

LOG para rehacer los cambios Efectuados desde que se Tomo el respaldo

Los datos grabados se destruyen y es necesario recuperarlos.

UTILERIAS PARA MANTENIMIENTO Para tener un buen rendimiento, todo DBMS debe contar con diferentes procesos para mantener y ajustar las estructuras de datos. Reorganizar una tabla Reorganizar un ndice Validar la integridad de un ndice Validad la integridad referencial Generar estadstica de una tabla Etc.

Este tipo de utileras se ejecutar en forma peridica dependiendo del volumen y volatilidad de los datos encada tabla. En lo general, las utileras de mantenimiento se pueden agrupar en 3 clases: 1) Reorganizacin fsica: este tipo de utileras se emplean para estructurar fsicamente alguna tabla o ndice con objeto de preservar las condiciones fsicas con las que se dise originalmente, o bien, corregir alguna de estas condiciones (por ejemplo: tamao, espacio reservado, orden fsico, reagrupacin de renglones fragmentados, etc.). 2) Validacin de integridad: sin utileras que chequean algn aspecto de la integridad de datos. 3) Reporteo y generacin de estadstica son utileras para producir reportes sobre algn aspecto del DBMS, o bien, para actualizar las estadsticas que emplean el optimizador para seleccionar trayectorias de acceso a los datos. HERRAMIENTAS PARA MONITOREO La actividad de monitoreo consiste en un chequeo constante al ambiente de trabajo dentro de un SMBD con un conjunto de herramientas para supervisar el uso de los recursos. Los usuarios pueden configurar grficos que presentan informacin acerca del uso de los recursos de forma grfica. El Monitoreo tiene muchos contadores diferentes, cada uno de los cuales mide algn recurso del equipo. El Monitoreo es aplicable a actividades como las siguientes Entrada/Salida Uso de la memoria Conexiones de usuario Bloqueos Actividad de duplicacin

ADMINISTRACIN DE BASE DE DATOS La administracin es la respuesta a la responsabilidad administrativa o suceso del ambiente del manejo de bases de datos en un servidor. El trabajo de un administrador conlleva diversas responsabilidades administrativas que no varan de un da para otro y que pueden resultar tareas tediosas. Una alternativa es automatizar todas aquellas actividades inherentes a la administracin misma. Al automatizar las tareas administrativas puede disponer de ms tiempo para realizar las tareas administrativas que requieren creatividad y carecen de respuestas predecibles o programables. Algunas tareas administrativas son las siguientes: Creacin de copias de seguridad de seguridad. Administracin de mltiples servidores. Ejecucin de programas rutinarios. Restauracin de de bds. Creacin y administracin de usuarios y privilegios. Administracin de dispositivos de respaldo y recuperacin. Administrar y configurar mdulos de los SMBD. Monitorear tablas de catlogo y de usuario. Monitorear trabajos de sesiones y usuarios. Disear y probar consultas para la obtencin de datos. Etc.

S-ar putea să vă placă și