MANUAL DE PRÁCTICAS
ADMINISTRACIÓN DE BASES DE DATOS
SCB-1001
Índice
PLAN ISIC-20102004 INGENIERÍA EN SISTEMAS COMPUTACIONALES
INTRODUCCIÓN-----------------------------------------------------------------------------------------------------------------1 PRÁCTICA 1 Fundamentos de la Inteligencia Artificial------------------------------------------------------------------------------------1
PRÁCTICA 2 Representación del conocimiento--------------------------------------------------------------------------------------------1 PRÁCTICA 3 Sistemas de razonamiento lógico--------------------------------------------------------------------------------------------1 PRÁCTICA 4 Búsqueda y Satisfacción de Restricciones---------------------------------------------------------------------------------1 LISTA DE MATERIAL, EQUIPO O REACTIVO A UTILIZAR---------------------------------------------------------1 LISTA DE BIBLIOGRAFÍA REQUERIDA----------------------------------------------------------------------------------1 CONTROL DE CAMBIOS DEL MANUAL DE PRÁCTICAS
1
Administración de Bases de Datos [SCB-1001]
INTRODUCCIÓN La información en una Base de Datos (BD) está sujeta a diversos peligros, tanto deliberados comoaccidentales. Por tanto, el Sistema Gestor de Base de Datos (SGBD) deberá ofrecer un conjunto apropiado de controles paraproteger la BD contra este tipo de riesgos. Entre los controles necesarios están los derecuperación, concurrencia, seguridad e integridad. Los problemas de recuperación y concurrencia están muy ligados con la noción deprocesamiento de transacciones. En este capítulo presentamos el concepto de transacción,usado para representar una unidad lógica de procesamiento de la BD. Estudiaremos lastécnicas de control de concurrencia, utilizadas para asegurar que múltiples transaccionesrealizadas por varios usuarios no interfieren entre sí produciendo resultados incorrectos.También analizaremos las técnicas para la recuperación desde transacciones fallidas. Los temas a tratar son diversos y dependen del SGBD ocupado
Fecha de Actualización 9/09/2013
Página 1
Administración de Bases de Datos [SCB-1001]
Práctica
1
SUBTEMA:
ADMINISTRADOR DE BASE DE DATOS. Observaciones Esta práctica incluye a la Práctica # 1 del temario deAdministrador de Base de Datos que dice “ Funciones de un DBA”
1.- OBJETIVO Conocerlas funciones del administrador de Base de datos 2.- MARCO TEÓRICO SGBD ó SMBD: Conjunto de programas que controla todo el acceso a la Base de Datos , y proporciona la interfaz entre el usuario y el sistema de Base de Datos. Base de Datos: Es una colección de archivos interrelacionados, creados con un SGBD. El contenido de una Base de Datos engloba la información concerniente (almacenadas en archivos) de una organización, de tal manera que los datos están disponibles para los usuarios, una finalidad de la base de datos es eliminar la redundancia o al menos minimizarla. Server2Go. Servidor portable para el desarrollo de aplicaciones que incluye entre otros MySQL, Apache, PHP, etc.
3.- MATERIAL, EQUIPO O REACTIVO 4.- PROCEDIMIENTO I. II. III. IV.
Organizar por equipos a los alumnos (2 integrantes máximo). Entrevistar a personas que cubren la función de ABD en empresas de la región • Realizar un manual de actividades para el ABD en una empresa ficticia, Cuadro comparativo de los SMBD.
propuesta por el docente5.- APARATOS E INSTRUMENTOS I. Computadora 6. ACTIVIDADES, DATOS Y RESULTADOS El alumno conocerá las funciones del administrador de base de datos.. CONCLUSIONES Al concluir esta práctica el alumno habrá realizado la entrevista y el cuadro comparativo para adquirir conocimientos de los SMBD. 7. PRACTICA A RESOLVER 8.- BIBLIOGRAFÍA
Fecha de Actualización 9/09/2013
Página 2
Administración de Bases de Datos [SCB-1001]
Práctica
2
SUBTEMA:
INSTALACIÓN Y CONFIGURACIÓN DE UN SMBD Observaciones: Esta práctica incluye las propuestas en el temario: 1) Instalar y configurar un manejador de base de datos, usando los asistentesproporcionados por el fabricante del gestor, 2) Realizar un análisis comparativo de diferentes manejadores de bases de datos, 3) Instalar y configurar del manejador elegido para el desarrollo de la materia, sin utilizar los asistentes y en sistemas operativos distintos, y 4) Desarrollar un proyecto integrador relacionado con otras materias. 1.- OBJETIVO
Conocer la instalación y configuración de un SMBD en diferentes S.O., considerando una base de datos para una aplicación real. 2.- MARCO TEÓRICO
Requisitos previos Antes de instalar PostgreSQL, comprueba que tienes el siguiente software en tu ordenador:
Un descompresor de ficheros Zip Windows XP los maneja automáticamente; si no tienes uno disponible, instálate WinZip, por ejemplo.
Microsoft Installer Presente por defecto en Windows 2000, Me y XP. Puedes comprobar si lo tienes instalado seleccionando "Ejecutar..." en el menú Inicio y escribiendo MSIEXEC. Si no aparece un cuadro de diálogo informándote de la versión, debes instalar una versión apropiada: o
Para Windows 95/98/Me
o
Para Windows NT/2000/XP
Además, debes saber cómo cambiar las variables de entorno de Windows. Esto depende de tu versión de Windows, pero normalmente puedes hacerlo desde el Panel de Control, opción "Sistema", etiqueta "Avanzado" o similar. Para más información Esta información está basada en el documento InstallingthePeerDirectPostgreSQL beta for Windows. En el web ofical de PostgreSQL puedes encontrar toda la información sobre Fecha de Actualización 9/09/2013
Página 3
Administración de Bases de Datos [SCB-1001]
PostgreSQL, incluyendo documentación, tutoriales, utilidades e información sobre otras versiones de PostgreSQL que funcionan bajo Windows
Definición de SQLite SQLite es un sistema de gestión de bases de datos relacional compatible con ACID (Atomicity, Consistency, Isolation and Durabilityó Atomicidad, Consistencia, Aislamiento y Durabilidad). SQLite sólo necesita una librería (biblioteca) que ocupa poco más de 700KB (tclsqlite3.dll). Desarrollada en C, SQLite es un proyecto de dominio público creado por D. Richard Hipp. A diferencia de los sistemas de gestión de base de datos cliente-servidor (Oracle, MySQL, Microsoft SQL Server, DB2, etc.), el motor de SQLite no es un proceso independiente con el que el programa principal se comunica, sino que es una biblioteca (finchero DLL) que se enlaza con el software mediante llamadas a funciones y subrutinas. Esto reduce la latencia en el acceso a la base de datos, debido a que las llamadas a funciones son más eficientes que la comunicación entre procesos. La base de dato SQLite (definiciones, tablas, índices y datos) se guarda como un sólo fichero estándar en la máquina host. Este diseño simple se logra bloqueando todo el fichero de base de datos al principio de cada transacción. Actualmente, SQLite va por la versión 3.6.11, que permite bases de datos de hasta 2 Terabytes de tamaño, y también permite la inclusión de campos tipo BLOB. Este motor de base de datos es muy útil para realizar aplicaciones de propósito general que necesiten guardar datos en base de datos y que no sean "intrusivos", es decir, programas que con un ejecutable, una DLL y un fichero de base de datos funcionarían perfectamente, sin necesidad de instalación de motores de base de datos, ni de ningún otro componente. 3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR En la lista siguiente se describe el hardware, el software, la infraestructura de red que necesitará: Microsoft Access Laboratorio de Centro de cómputo. Sistema Operativo Windows Xp Sistema Operativos Linux 4.- COMPETENCIAS ESPECÍFICAS Organizar por equipos a los alumnos (2 integrantes máximo). Instalación
I. II.
1. Bájate el fichero Zip que contiene PostgreSQL y descomprímelo en c:\. Se creará un directorio postgres_beta4. Cámbiale el nombre a pgsql 2.
Crea las siguientes variables de entorno: o
PGHOME=C:\pgsql
Fecha de Actualización 9/09/2013
Página 4
Administración de Bases de Datos [SCB-1001] o
PGDATA=%PGHOME%\data
o
PGLIB=%PGHOME%\lib
o
PGHOST=localhost
3.
Añade a la variable de entorno PATH la cadena ;%PGHOME%\bin
4.
Utilizando la opción "Ejecutar..." del menú Inicio, lanza los siguientes programas: o
initdb
Fecha de Actualización 9/09/2013
Página 5
Administración de Bases de Datos [SCB-1001] o
post_svc -install
o
pg_ctlstart
El primero de ellos inicializa la base de datos. El segundo instala PostgreSQL como un servicio de Windows, y el tercero arranca el servicio. A partir de este momento, puedes arrancar o parar el servidor de base de datos mediante la opción Servicios del Panel de Control. El nombre del servidor es UltraSQLDatabaseService
Utilidades adicionales Es recomendable que instales también la utilidad de administración gráfica de PostgreSQL, que proporciona entre otras cosas un entorno más cómodo que psql bajo Windows. Antes de poder utilizarla has de instalar también el controlador ODBC para PostgreSQL. III.
Instalación
Fecha de Actualización 9/09/2013
Página 6
Administración de Bases de Datos [SCB-1001]
1.
Descargar de la página: http://www.sqlite.org/download.html "sqlite3.exe", disponible gratuitamente.
2.
seleccionaremos en "PrecompiledBinariesForWindws" el enlace "sqlite3_6_11.zip":
3.
Descomprimiremos el fichero descargado "sqlite-3_6_11.zip", al descomprimirlo tendremos el fichero "sqlite3.exe" de 490KB. A continuación abriremos una ventana de MS-DOS (línea de comandos), desde "Inicio" - "Ejecutar" escribiremos "cmd" y pulsaremos "Aceptar" o en explorador de archivos :
Fecha de Actualización 9/09/2013
el ejecutable
Página 7
Administración de Bases de Datos [SCB-1001]
IV. V.
4.
En la línea de comandos, accederemos a la carpeta donde hayamos descomprimido el fichero sqlite3.exe, con los comandos:
5.
Se hace la instalación.
Instalar y configurar del manejador elegido para el desarrollo de la materia, sin utilizar los asistentes y en sistemas operativos distintos Seleccionar DBMS para desarrollar un proyecto integrador relacionado con otras materias
5. RESULTADOS
El alumno logrará habilidades de instalación de diferentes DBMS. 6. CONCLUSIONES . 7.- BIBLIOGRAFÍA 1. Post, Gerald V. Sistemas de Administración de Bases de Datos, 3ª Edición, Editorial Mc Graw Hill, 2006 2. Mannino Michael V. Administración de bases de datos: Diseño y desarrollo de aplicaciones.2da. Edición, Editorial Mc Graw Hill. Año 2009. 3. Abraham Silbertshatz, Henry F. Korth, S. Sudarshan, Fundamentos de base de datos, 5ta edición, Mc Graw Hill. 4. PEREZ, C. Oracle 10g. Administración y Análisis de Bases de Datos. 2ª edición.Editorial Ra-ma. 5. Everest Gordon C. Database management. Objectives, system function & administration.3ra. Edición McGrawHill. 6. Farley, Guía de Seguridad e Integridad de Datos, Serie LanTimes, Editorial Mc-Graw Hill 7. Ramakrishnan, Sistemas de Gestion de Bases de Datos Editorial McGrawHill 8. Rosa, Maria Elizabeth. SQL Server, Bases de Datos robustas y confiables, Colección Manuales USERS, Editorial MP Ediciones.2005 9. Oracle. 2010. Documentación oficial del Administrador de Base de Datos. Disponible en Internet desde: http://www.oracle.com/technology/documentation/index.html. 10. Mysql. 2009.- Manuales de Referencia del Manejador de Base de Datos.Disponible en Internet en: http://dev.mysql.com/doc/refman/5.0/es/index.html. Con acceso el 24 de febrero de 2010. 11. Microsoft. 2010. Centro de desarrollo de SQL Server. Disponible desde Internet en: http://msdn.microsoft.com/es-mx/sqlserver/bb671064.aspx. Con acceso el 24 de febrero de 2010.
Fecha de Actualización 9/09/2013
Página 8
Administración de Bases de Datos [SCB-1001]
Práctica
3
SUBTEMA:
DISEÑO E IMPLEMENTACIÓN DE LA BASE DE DATOS Observaciones: Esta práctica incluye la propuesta en el temario: 1) Definir espacios de trabajo independientes para tres bases de datos coexistentes, realizando una carga de datos y 2) Desarrollar un proyecto integrador relacionado con otras materias. 1.- OBJETIVO Diseñar e implementar la BD del sistema en desarrollo.
3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR En la lista siguiente se describe el hardware, el software, la infraestructura de red que necesitará: Microsoft Postgred Microsoft SQL Ser Laboratorio de Centro de cómputo. Sistema Operativo Windows Xp Sistema Operativos Linux 4.- COMPETENCIAS ESPECÍFICAS Creación de un espacio virtual de almacenamiento: 1. Seguidamente se van a crear un espacio de tablas y antes hay que saber localizar donde se encuentran los ficheros de datos. Para ello existe una vista que da esta información: DBA_DATA_FILES, sacar por pantalla sólo los campos de la vista que nos interesa para obtener esta información. 2. Crear un espacio de tablas temporal de 10M que se llamará TEMP_USERXXXX (denotando las letras x vuestro número de usuario). Se creará con almacenamiento gestionado localmente con un tamaño máximo de 20M extensible automáticamente en tamaños de 640k. 3. Crear un espacio de tablas permanente llamado DESARROLLO, con un tamaño mínimo de 3M y máximo de 10M, con extensiones de 1280K y gestionado automáticamente. Fecha de Actualización 9/09/2013
Página 9
Administración de Bases de Datos [SCB-1001] 4.
Determinar los espacios que ocupa en su proyecto.
5.- RESULTADOS Construir el espacio de tablas temporales en su proyecto 6. CONCLUSIONES Desarrollar su proyecto en unSMBD 7.- BIBLIOGRAFÍA 1. Post, Gerald V. Sistemas de Administración de Bases de Datos, 3ª Edición, Editorial Mc Graw Hill, 2006 2. Mannino Michael V. Administración de bases de datos: Diseño y desarrollo de aplicaciones.2da. Edición, Editorial Mc Graw Hill. Año 2009. 3. Abraham Silbertshatz, Henry F. Korth, S. Sudarshan, Fundamentos de base de datos, 5ta edición, Mc Graw Hill. 4. PEREZ, C. Oracle 10g. Administración y Análisis de Bases de Datos. 2ª edición.Editorial Ra-ma. 5. Everest Gordon C. Database management. Objectives, system function & administration.3ra. Edición McGrawHill. 6. Farley, Guía de Seguridad e Integridad de Datos, Serie LanTimes, Editorial Mc-Graw Hill 7. Ramakrishnan, Sistemas de Gestion de Bases de Datos Editorial McGrawHill 8. Rosa, Maria Elizabeth. SQL Server, Bases de Datos robustas y confiables, Colección Manuales USERS, Editorial MP Ediciones.2005 9. Oracle. 2010. Documentación oficial del Administrador de Base de Datos. Disponible en Internet desde: http://www.oracle.com/technology/documentation/index.html. 10. Mysql. 2009.- Manuales de Referencia del Manejador de Base de Datos.Disponible en Internet en: http://dev.mysql.com/doc/refman/5.0/es/index.html. Con acceso el 24 de febrero de 2010. 11. Microsoft. 2010. Centro de desarrollo de SQL Server. Disponible desde Internet en: http://msdn.microsoft.com/es-mx/sqlserver/bb671064.aspx. Con acceso el 24 de febrero de 2010.
Práctica
4
SUBTEMA:
PLANTEAMIENTO DE LA BASE DE DATOS Observaciones: Esta práctica incluye la propuesta en el temario: 1) Desarrollar un proyecto integrador relacionado con otras materias. 1.- OBJETIVO Análisis y diseño de la BD para el sistema a realizar durante el curso y seguridad. 2.- MARCO TEÓRICO En otras unidades hemos aprendido cómo es una base de datos relacional yhemos estudiado un lenguaje, el SQL, que nos proporciona mecanismos paracrear estas bases de datos, así como para actualizarlas y consultarlas. Fecha de Actualización 9/09/2013
Página 10
Administración de Bases de Datos [SCB-1001] Sin embargo, todavía debemos resolver algunas cuestiones fundamentalespara poder emplear la tecnología de las bases de datos relacionales; por ejemplo, cómo se puede decidir qué relación es debe tener una base de datos determinada o qué atributos deben presentar las relaciones, qué claves primarias yqué claves foráneas se deben declarar, etc. La tarea de tomar este conjunto dedecisiones recibe el nombre dediseñar la base de datos. Una base de datos sirve para almacenar la información que se utiliza en un sistema de información determinado. Las necesidades y los requisitos de los futuros usuarios del sistema de información se deben tener en cuenta para podertomar adecuadamente las decisiones anteriores El diseño de una base de datos consiste en definir la estructura de los datos que debe tener la base de datos de un sistema deinformación determinado. En el caso relacional, esta estructura será unconjunto de esquemas de relación con sus atributos, dominios de atributos, claves primarias, claves foráneas, etc. Al concepto de seguridad también se le puede llamar privacidad. El problema de la seguridad consiste en lograr que los recursos de un sistema sean, bajo toda circunstancia, utilizados para los fines previstos. 3.- MATERIAL, EQUIPO O REACTIVO a) b) c) d)
Server2Go en USB Servidor de MySql Manual de MySQL Postgres.
4.- COMPETENCIAS ESPECÍFICAS I. Organizar por equipos a los alumnos (2 integrantes máximo). II. Realizar el diseño de su proyecto y en script de su base de datos. III. Realizar los siguientes pasos para la seguridad de su proyecto: a) Supongamos que se nos ha olvidado la contraseña del superusuarioPostgres, ¿qué debemoshacer para poder acceder a la base de datos y cambiar la contraseña. b) Nuestro servidor acepta conexiones TCP/IP, ¿por qué?. Configurar el fichero de accesos para permitir cualquier acceso sin necesidad de introducir contraseñas. c) Modificar el fichero de accesos para que el usuario postgresse conecte sin contraseña y los usuarios de la red del servicio de informática se puedan conectar a la base de datos “bdnueva” pidiendo password. d) .¿Qué problema de seguridad tiene la anterior configuración? Resolver el problema, y además, queremos impedir que los usuarios que se encuentran en nuestra misma fila de mesas no puedan acceder a ninguna de nuestras bases de datos desde sus máquinas. e) .Por último, resulta que tenemos varios usuarios de sistema especiales, comopostgres, por ejemplo el usuario backup al que debemos permitir que se conecte a la base de datos como superusuario para realizar determinadas operaciones sin validarse. Además, queremos que los operadores, operval, opercas y operali, si se conectan localmente sólo puedan conectarse con un usuario llamado “consultasmax” y si esremotamente, dentro de nuestra red, con un usuario llamado “consultasmin” f) Vamos a crear una base de datos, ‘curso’ sobre un tablespace ‘tbscurso’ con codificación LATIN9 y lenguaje ‘es_ES’. g) Sobre esa base de datos, tenemos que crear dos esquemas, ‘coches’ y ‘empresa’. h) Además crearemos cuatro usuarios, ‘mgrcoches’, ‘modcoches’, ‘mgrempresa’ y ‘modempresa’ , siendo los ‘mgr*’ los propietarios de los esquemas. En cada esquema, creamos una tabla con la siguiente estructura: CREATE TABLE marcas(cifm VARCHAR(4) not null,nombre VARCHAR(10) not null,ciudad VARCHAR(10) not null,CONSTRAINTpk_marcas PRIMARY KEY (cifm) ); CREATE TABLE departamentos( numdeptNUMERIC (2) NOT NULL,nomdeptVARCHAR (14) NOT NULL, localidad VARCHAR (13) NOT NULL,jefeNUMERIC(4), Fecha de Actualización 9/09/2013
Página 11
Administración de Bases de Datos [SCB-1001] CONSTRAINT pk_departamentos PRIMARY KEY ( numdept ));
Se trata de asignar los permisos necesarios tal como se cumple en esta tabla
i)
Guardar el script "b05_bdborrar.sql"
5. RESULTADOS
6. CONCLUSIONES Desarrollar una base de datos con SMBD 7.- BIBLIOGRAFÍA 1. Post, Gerald V. Sistemas de Administración de Bases de Datos, 3ª Edición, Editorial Mc Graw Hill, 2006 2. Mannino Michael V. Administración de bases de datos: Diseño y desarrollo de aplicaciones.2da. Edición, Editorial Mc Graw Hill. Año 2009. 3. Abraham Silbertshatz, Henry F. Korth, S. Sudarshan, Fundamentos de base de datos, 5ta edición, Mc Graw Hill. 4. PEREZ, C. Oracle 10g. Administración y Análisis de Bases de Datos. 2ª edición.Editorial Ra-ma. 5. Everest Gordon C. Database management. Objectives, system function & administration.3ra. Edición McGrawHill. 6. Farley, Guía de Seguridad e Integridad de Datos, Serie LanTimes, Editorial Mc-Graw Hill 7. Ramakrishnan, Sistemas de Gestion de Bases de Datos Editorial McGrawHill 8. Rosa, Maria Elizabeth. SQL Server, Bases de Datos robustas y confiables, Colección Manuales USERS, Editorial MP Ediciones.2005 9. Oracle. 2010. Documentación oficial del Administrador de Base de Datos. Disponible en Internet desde: http://www.oracle.com/technology/documentation/index.html. 10. Mysql. 2009.- Manuales de Referencia del Manejador de Base de Datos.Disponible en Internet en: http://dev.mysql.com/doc/refman/5.0/es/index.html. Con acceso el 24 de febrero de 2010. 11. Microsoft. 2010. Centro de desarrollo de SQL Server. Disponible desde Internet en: http://msdn.microsoft.com/es-mx/sqlserver/bb671064.aspx. Con acceso el 24 de febrero de 2010.
Práctica
5
CONCURRENCIA. Fecha de Actualización 9/09/2013
Página 12
Administración de Bases de Datos [SCB-1001]
Observaciones Esta práctica incluye del temario de Administrador de Base de Datos que dice Desarrollar ejercicios para ejecutar instrucciones DML bajo el concepto de transacción y se visualice el efecto del “commit” o “rollback 1.- OBJETIVO Aplicar las propiedades de las transacciones y analizará como afectan a las aplicaciones. 2.- MARCO TEÓRICO
Transacciones Las transacciones son un concepto fundamental de todos los sistemas de bases de datos. El punto esencial de una transacción es su capacidad para empaquetar varios pasos en una sola operación “todo o nada”. Los estados intermedios entre los pasos no son visibles para otras transacciones concurrentes, y si ocurre alguna falla que impida que se complete la transacción, entonces ninguno de los pasos se ejecuta y no se afecta la base de datos en absoluto. Por ejemplo, considere una base de datos bancaria que contiene balances de varias cuentas de clientes y balances totales de depósito de sucursales. Suponga que queremos registrar un pago de $100 de la cuenta de Alicia a la de Roberto. Simplificando la operación exageradamente, las órdenes SQL para hacerlo se verían así: UPDATEcuentasSETbalance=balance-100.00WHEREnombre='Alicia'; UPDATEsucursalesSETbalance=balance100.00WHEREnombre=(SELECTsucursalFROMcuentasWHEREnombre='Alicia'); UPDATEcuentasSETbalance=balance+100.00WHEREnombre='Roberto'; UPDATEsucursalesSETbalance=balance+100.00WHEREnombre=(SELECTsucursalFROMcuen tasWHEREnombre='Roberto');
Los detalles de estas órdenes no son importantes en este momento; lo que importa es que hay varias actualizaciones separadas involucradas para lograr esta operación más o menos sencilla. Los operadores bancarios van a querer estar seguros de que o todos estos pasos se ejecutan o no se ejecuta ninguno. Definitivamente no sería aceptable si una falla del sistema resulta en que Roberto recibe $100 que no fueron debitados de la cuenta de Alicia. Tampoco si a Alicia le debitaran y a Roberto no le abonaran. Se necesita una garantía de que si algo sale mal en el transcurso de la operación, ninguno de los pasos ejecutados hasta el momento tendrán efecto. Para el ejemplo anterior, agrupar las actualizaciones en una transacción proporciona esa garantía. De las transacciones se dice que son atómicas: desde el punto de vista de otras transacciones, la transacción ocurre completamente o no ocurre en absoluto. En PostgreSQL, una transacción se indica encerrando las órdenes SQL de la transacción entre las órdenes BEGIN y COMMIT. Entonces la transacción bancaria del ejemplo de arriba se vería así: BEGIN; Fecha de Actualización 9/09/2013
Página 13
Administración de Bases de Datos [SCB-1001] UPDATEcuentasSETbalance=balance-100.00WHEREnombre='Alicia'; -- etcetc COMMIT;
Si en medio de una transacción se decide que ya no se quiere registrar los cambios (tal vez el balance de Alicia se volvió negativo en algún momento, por ejemplo), se puede recurrir a la orden ROLLBACK en lugar de COMMIT y todas las actualizaciones hasta ese punto quedarían canceladas. De hecho, PostgreSQL trata cada declaración de SQL como si se estuviera ejecutando dentro de una transacción. Si uno no especifica una orden BEGIN, entonces cada declaración individual tiene un BEGIN y, si es exitosa, un COMMIT alrededor de ella. Algunas veces, a un grupo de declaraciones encerradas entre BEGIN y COMMIT se les llama un bloque de transacción. Retomando el ejemplo de la base de datos bancaria, suponga que se debitan $100 de la cuenta de Alicia y se abonan a la cuenta de Roberto, pero que después resulta que se debió abonar a la cuenta de Walter. Esto se podría hacer usando un punto de recuperación: BEGIN; UPDATEcuentasSETbalance=balance-100.00WHEREnombre='Alicia'; SAVEPOINTmi_savepoint; UPDATEcuentasSETbalance=balance+100.00WHEREnombre='Roberto'; -- Uy ... no era la cuenta de Roberto sino la de Walter ROLLBACKTOmi_savepoint; UPDATEcuentasSETbalance=balance+100.00WHEREnombre='Walter'; COMMIT; 4.- COMPETENCIAS ESPECÍFICAS I. Organizar por equipos a los alumnos (2 integrantes máximo).
II. hay que ejecutar el script "b05_bdcrear.sql" Este último es un ejemplo de script que invoca a otros. $ psql template1 –f b05_b99_bdborrar.sql; $ psql template1 –f b05_bd00.sql 2>&1 | tee resultado.txt
1. Reglas ACID: comprobar la propiedad “Atomicidadlo que se ejecuta en una transacción se ejecuta todo o nada”, usando la tabla “clientes”. 2. Reglas ACID: comprobar la propiedad “Consistencia - Integridad”, usando la tabla“clientes”. 3. Reglas ACID: comprobar la propiedad “Aislamiento,los cambios en una transacción no terminada no se ven en otra sesión, usando la tabla “clientes”. Nota, para ejecutar dossesiones, basta con el pgAdmin3 abrir dos ventanas SQL distintas, aunque sea con el mismo usuario. ¡Cuidado con las ventanas que abrimos de SQL o de ver los datos en pgAdmin3porque cada una ocupa una sesión!. 4. Reglas ACID: comprobar la propiedad “Persistencia: se confirma una transacción, se para y enciende el servidor y se ve si están los datos.”, usando la tabla “clientes”. III. Vamos a comprobar el funcionamiento del Control de Concurrencia Multiversión. Ahora lo probaremos sobre la tabla “Distribución” que indicala cantidad de coches distribuidos por cada concesionario. Necesitamos, para verlo, variassesiones, una con el usuario mgrcochesy otra con el usuarios modcoches Fecha de Actualización 9/09/2013
Página 14
Administración de Bases de Datos [SCB-1001]
El proceso sería: a) sesión 1: iniciamos una transacción, vemos los datos que hay, actualizamos los datos y no confirmamos la transacción. b) sesión 2: iniciamos la transacción y consultamos la información de distribución. c) sesión 2: iniciar una transacción e intentar sumar 5 a la cantidad. d) sesión 1: confirmamos los cambios y vemos qué pasa con los datos vistos desde esta sesión y luego vamos a ver los datos vistos desde la sesión 2. e) sesión 2: confirmamos los cambios . IV. Vamos a probar la Serialización. Vamos a trabajar sobre la tabla clientes, para el cliente cuyodni es ‘0001’. Intentaremos cambiar su nombre de ‘LUIS’ a ‘LUISA’ en ambas sesiones, el proceso sería, antes de empezar las transacciones, activar el modo de transacciones a ‘serializable’: a) sesión 1: iniciamos una transacción, vemos los datos que hay. b) sesión 2: hacemos lo mismo. c) sesión 1: actualizamos el nombre y no confirmamos la transacción. d) sesión 2: hacemos lo mismo. e) sesión 1: confirmamos la transacción y vemos los datos f) sesión 2: hacemos lo mismo. V. Ahora pasamos al esquema “empresa”, donde los departamentos pueden tener un jefe que es un empleado, y los empleados tienen un jefe que también es un empleado, así como pertenecen a un departamento. Normalmente, los jefes de los departamentos, son empleados que ya existen, pero imaginemos que demos de alta un departamento que tiene un empleado nuevo, con lo que hay que darlo de alta también, realizar esta operación para estos datos:
¿Es posible realizar esto en una transacción, dandode alta primero el departamento y luego el empleado?. ¿Qué tendríamos que hacer para poder realizar la transacción?. Si la clave ajena la hubiésemos definido como “DEFERRABLE INITIALLY IMMEDIATE”, ¿Qué tendríamos que hacer para poder ejecutar la transacción? 5. RESULTADOS
6. CONCLUSIONES Aplicar en su proyecto integrador
Fecha de Actualización 9/09/2013
Página 15
Administración de Bases de Datos [SCB-1001] 7.- BIBLIOGRAFÍA 1. Post, Gerald V. Sistemas de Administración de Bases de Datos, 3ª Edición, Editorial Mc Graw Hill, 2006 2. Mannino Michael V. Administración de bases de datos: Diseño y desarrollo de aplicaciones.2da. Edición, Editorial Mc Graw Hill. Año 2009. 3. Abraham Silbertshatz, Henry F. Korth, S. Sudarshan, Fundamentos de base de datos, 5ta edición, Mc Graw Hill. 4. PEREZ, C. Oracle 10g. Administración y Análisis de Bases de Datos. 2ª edición. Editorial Ra-ma. 5. Everest Gordon C. Database management. Objectives, system function & administration. 3ra. Edición McGrawHill.
Práctica
SUBTEMA:
6
RECUPERACIÓN SERVER.
DE
DATOS
DE
SQL
Observaciones: Esta práctica incluye a la Práctica # 6del temario deAdministrador de Base de Datos que dice “Crear y recuperar respaldos del SBD”. 1.- OBJETIVO
Conocer las herramientas y funciones para el manejo de seguridad en un SGBD. 2.- MARCO TEORICO Recuperación de datos de SQL Server con OfficeRecovery
Recoveryfor SQL Server está diseñado para una recuperación efectiva de bases de datos dañados de Microsoft SQL Server. Te permite evitar la pérdida de información importante. El procesador de texto de Microsoft SQL Server es la herramienta más amplia para la creación de cualquier tipo de base de datos, incluyendo bases de datos corporativos. Escanea, analiza los archivos dañados y exporta todos los datos del archivo. Si la bases de datos está muy dañado, la perdida de datos es inevitable. Todos los datos recuperados se guardan en un set de archivos SQL. Después de la recuperación la base de datos se convierte disponible para procesar. El dato importante que el programa solamente analiza los archivos dañados y no cambia los datos originales. La recuperación para SQL Server trabaja con archivos de texto con varios formatos: la base de datos de Microsoft SQL Server de diferentes versiones (archivos .mdf, .ndf, .bak, .ldf) Características
Nuevo en la recuperación de SQL Server 4.7:
Fecha de Actualización 9/09/2013
Página 16
Administración de Bases de Datos [SCB-1001]
Es compatible con SQL Server 2008 R2
Soporta SCSU (el esquema de compresión estándar para Unicode)
Compatible con los índices XML
Es compatible con archivos encriptados de SQL Server 2008
Recupera respaldos comprimidas de SQL Server 2008
Recupera SQL Server 2005, 2008 datos comprimidos (tipos ROW, RAGE)
Recupera SQL Server 2008 tipo de datos filestream. Ten en cuenta que la base de datos deben ser recuperados en el mismo equipo donde se encuentra la base de datos originalmente Recupera información tipo varchar (max)
Procesa archivos de la base de datos dañados de Microsoft SQL Server (.mdf,.ndf,.dat,.dlf,.bak) y crear un script SQL con la estructura de base de datos recuperados
Soporta versiones Microsoft® SQL Server 2008 R2, 2008, 2008 x64, 2008 Express, 2005, 2005 x64, 2005 Express, 2000, 2000 x64, 7.0 y 6.5
Registro de soporte para MS SQL Server 2005 y 2008.
Recupera respaldos de Microsoft SQL Server para todas las versiones
Recupera archivos de varios volúmenes de base de datos
Recupera tablas, procedimientos almacenados, vistas
Recupera valores predeterminados, normas, “Chequeos” limitados, datos de usuario (“Permitir nulo”, “default”, “regla”)
Recupera las claves principales, clave única, índices (incluyendo “IGNORE_DUP_KEY”, “CLUSTERED”, “STATISTICS_NORECOMPUTE”, “FILLFACTOR”), claves foráneas
Recupera SQL Server 2008 columnas dispersas
Recupera los triggers
Restaura el orden de las claves de índice
Recupera archivos borrados y los guarda en un script SQL por separado
Fecha de Actualización 9/09/2013
Página 17
Administración de Bases de Datos [SCB-1001]
Recupera archivos parcialmente dañados, y los guarda en un archivo de lotes separados
Reconstrucción de la Base de datos del lote se genera automáticamente
Los resultados de la reconstrucción del script de la base de datos se divide en varias partes para la conveniencia de visualizar y editar
Caracteres nacionales (diéresis, jeroglíficos, etc.) se recuperan
Función de informes de recuperación
Instalación completa / Soporte de desinstalación
Limitaciones
Las fechas que no entran en el rango de enero, 1, 1900 – Diciembre 31, 2199 no se pueden recuperar correctamente El orden de las filas en las tablas recuperadas puede diferir de la orden original
3.- MATERIAL, EQUIPO O REACTIVO Requisitos del sistema
Sistema operativo: Windows 2000, XP, Vista, 7, Server 2003 o Server 2008. Windows 95, 98, ME no son compatibles.
RAM: 256-1024 MB (depende de la base de datos, respaldos y el tamaño de registro y el rango de corrupción)
Disco duro: mínimo 10 MB de espacio libre necesario para la instalación
Pantalla: 640 x 480 o de mayor resolución, 256 colores
4.- Competenicas I. Organizar por equipos a los alumnos (2 integrantes máximo). II. Realizar procedimientos para recuperación de la base de datos de su proyecto a partir de los archivos de respaldo. III. Realizar procedimiento para migración de la base de datos de su proyecto. IV. Realizar los dos punto con interfaz en un lenguaje anfitrión. 5.- APARATOS E INSTRUMENTOS I. Computadora Fecha de Actualización 9/09/2013
Página 18
Administración de Bases de Datos [SCB-1001] 6. ACTIVIDADES, DATOS Y RESULTADOS Se tendrá configurado el servidor y su primera base de datos creada. CONCLUSIONES Al concluir esta práctica el alumno habrá realizado el respaldo, migración e migración de su base de datos 7. PRACTICA A RESOLVER 8.- BIBLIOGRAFÍA
Silberschatz, Abraham. Fundamentos de Base de Datos. Ed. McGraw Hill. http://www.mysql.com www.server2go.com
Práctica
7
SUBTEMA:
RESTAURACION DE BD. Observaciones: Esta práctica incluye a la Práctica #7del temario deAdministración de Base de Datos que dice “Establecer estrategias para crearmétodos de restauración de datos”. 1.- OBJETIVO I. Crear puntos de restauración y recuperación de bases de datos (simulación dedaños) 2.- MARCO TEORICO El objetivo de una restauración completa de la base de datos es restaurar toda la base de datos. Durante el proceso de restauración, la base de datos completa se encuentra sin conexión. Antes de que ninguna parte de la base de datos tenga conexión, se recuperan todos los datos a un punto coherente en el que todas las partes de la base de datos se encuentran en el mismo momento y en el que no existe ninguna transacción sin confirmar. 3.- MATERIAL, EQUIPO O REACTIVO a) Server2Go en USB , SqlServer,postgress b) Servidor de MySql, Sql Server c) Manual de MySQL,Sql Server 4.- PROCEDIMIENTO a) Organizar por equipos a los alumnos (3 integrantes máximo).
Fecha de Actualización 9/09/2013
Página 19
Administración de Bases de Datos [SCB-1001]
En general, la recuperación de una base de datos hasta el momento del error incluye los siguientes pasos básicos: 1.
Realizar una copia de seguridad del registro de transacciones activo (denominado el final del registro). De esta forma se crea una copia de seguridad de registros después del error. Si el registro de transacciones activo no está disponible, todas las transacciones de esa parte del registro se pierden. Importante: En el modelo de recuperación por medio de registros de operaciones masivas, realizar la copia de seguridad de un registro que contiene operaciones de registro masivo requiere acceso a todos los archivos de datos de la base de datos. Si no se puede tener acceso a los archivos de datos, no se puede realizar una copia de seguridad del registro de transacciones. En ese caso, debe repetir manualmente todos los cambios realizados desde la copia de seguridad de registros más reciente.
2.
Para obtener más información, vea Copias de seguridad de registros después del error.
3.
Restaurar la copia de seguridad completa más reciente sin recuperar la base de datos (RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY).
4.
Si existen copias de seguridad diferenciales, restaurar la más reciente sin recuperar la base de datos (RESTORE DATABASE database_name WITH NORECOVERY).
5.
Restaurar los registros secuencialmente con la opción NORECOVERY, comenzando por la primera copia de seguridad del registro de transacciones creada después de la copia de seguridad que recién restaurada.
6.
Recuperar la base de datos (RESTORE DATABASE database_name WITH RECOVERY). Como alternativa, este paso se puede combinar con la restauración de la última copia de seguridad de registros.
7.
Una restauración completa de la base de datos normalmente se puede recuperar hasta un punto o transacción marcada en una copia de seguridad de registros. Sin embargo, en el modelo de recuperación por medio de registros de operaciones masivas, si la copia de seguridad de registros contiene cambios de registros de operaciones masivas, no es posible la recuperación a un momento dado. Para obtener más información, vea Restaurar bases de datos a un punto de una copia de seguridad.
Al restaurar completamente una base de datos, debe utilizar una única secuencia de restauración. En el siguiente ejemplo se muestran las opciones más importantes de una secuencia de restauración para el caso de una restauración completa en que la base de datos se restaura al momento del error. Una secuencia de restauración consta de dos o más operaciones de restauración que mueven datos en una o varias fases de restauración. La sintaxis y los detalles no relevantes para este propósito se omiten. La base de datos se restaura y se pone al día. Para reducir el tiempo de puesta al día se utiliza una copia diferencial de la base de datos. Esta secuencia de restauración está orientada a eliminar la pérdida de trabajo; la última copia de seguridad que se restaura es una copia de seguridad de registros después del error.
Fecha de Actualización 9/09/2013
Página 20
Administración de Bases de Datos [SCB-1001]
La sintaxis básica de RESTORE para la secuencia de restauración es: 1.
RESTORE DATABASE database FROM full database backup WITH NORECOVERY;
2.
RESTORE DATABASE database FROM full_differential_backup WITH NORECOVERY;
3.
RESTORE LOG database FROM log_backup WITH NORECOVERY; Repita este paso de restauración del registro para cada copia de seguridad de registros adicional.
4.
RESTORE DATABASE database WITH RECOVERY;
5.- APARATOS E INSTRUMENTOS a) Computadora 6. ACTIVIDADES, DATOS Y RESULTADOS I. II.
Integrante máximo de 2 alumnos Realizar la restauración de su base de datos con su proyecto integrador.
CONCLUSIONE El alumno aplicará sus conocimiento en la restauración de una base de datos 7. PRACTICA A RESOLVER 8.- BIBLIOGRAFÍA
Silberschatz, Abraham. Fundamentos de Base de Datos. Ed. McGraw Hill. http://www.mysql.com www.server2go.com MySql con clase http://www.conclase.net
8.- LISTA DE MATERIAL, EQUIPO O REACTIVO A UTILIZAR FOLI O
NOMBRE DEL MATERIAL, EQUIPO O REACTIVO
1
Computadora
2
Postgress,SQL server, mysql
CANT.
UNIDAD
3
Fecha de Actualización 9/09/2013
Página 21
Administración de Bases de Datos [SCB-1001]
9.- LISTA DE BIBLIOGRAFÍA REQUERIDA FOLI O
BIBLIOGRAFIA
CANT
1 2 3 4 5 6
Fecha de Actualización 9/09/2013
Página 22
10.- CONTROL DE CAMBIOS DEL MANUAL DE PRÁCTICAS
Administración de Bases de Datos [SCB-1001]
DATOS GENERALES FECHA DE ACTUALIZAC ION 09/09/2013
ELABORÓ Y/O ACTUALIZÓ
ING. SUSANA GARRIDO
Fecha de Actualización 26/08/2010
DESCRIPCIÓN DE LA ACTUALIZACIÓN
ELABORACION DE LAS PRACTICAS.
Página 23