You are on page 1of 73

1.1 Caractersticas del gestor Bases de Datos.

Recordemos antes que: una Bases de Datos es una coleccin de datos organizados bajo normas establecidas en un modelo seleccionado. y que la base de datos es un conjunto de informacin almacenada bajo la estructura diseada e implementada en el SGBD y relacionada con un asunto o con una finalidad, tal como el seguimiento de los pedidos de clientes o una coleccin de msica. Generalmente nos referimos a los datos de los usuarios y de la organizacin, que apoyan el negocio modelado y soportado por el Sistema de Gestin de Bases de Datos. En la etapa de diseo lgico, la arquitectura de los datos es independiente del motor donde se montar finalmente. Ahora bien, debemos de tener en cuenta que la gestin de los datos implica:

Definicin de estructuras para almacenar informacin Mecanismos para manipulacin de la informacin

Sistema de Gestin de Bases de Datos (SGBD) en Espaol o Data Base Manager System (DBMS) en Ingles. Veamos una primera definicin: Si existe una coleccin de datos interrelacionados, y para poder acceder a ellos requiere un medio electronico para ello, entonces entendamos que un SGBD es un conjunto de programas para acceder dichos datos. Es decir son productos de software desarrollados por diferentes proveedores y con diferentes caractersticas, las cuales los diferencian unos de otros; ejemplos de estos SGBD tenemos: Dbase, Fox, Access, Informix, Unify, Oracle, Interbase, entre otros.

Objetivo de un SGBD. El Objetivo primordial de un SGBD es proporcionar un entorno que sea a la vez conveniente y eficiente para ser utilizado al extraer y almacenar informacin de la base de datos. (KORTH, 1995) El sistema de gestin de la base de datos (SGBD) es una aplicacin que permite a los usuarios definir, crear y mantener la base de datos, y proporciona acceso controlado a la misma. (MRQUES, 2001)

Funciones Bsicas de un SGBD Un SGBD debe incluir por lo menos las siguientes funciones (DATE, 1993): Definicin de los Datos. El SGBD debe ser capaz de aceptar las definiciones de datos en versin fuente y convertirlas en la versin objeto. El SGBD debe incluir componentes procesadores para cada uno de los lenguajes de definicin de datos (LDD). (DATE, 1993). Manipulacin de los Datos. El SGBD debe atender las solicitudes de los usuarios para extraer, actualizar, adicionar o suprimir datos. El SGBD debe incluir un componente procesador del Lenguaje de manipulacin de datos (LMD). (DATE, 1993). Seguridad e Integridad de los Datos. El SGBD debe supervisar las solicitudes de los usuarios y rechazar los intentos de violar las medidas de seguridad e integridad definidas por el Administrador de la Base de Datos DBA. (DATE, 1993). Recuperacin y concurrencia de los datos. El principal objetivo de la implantacin de una base de

datos es poner a disposicin de un gran numero de usuarios en conjunto integrado de datos, estos datos podrn ser manipulados por los diferentes usuarios y es ahora cuando se debe garantizar la coherencia de los datos despus de las diversas manipulaciones. (DATE, 1993).

Diccionario de Datos. Desempeo. El SGBD debe ejecutar todas las funciones en la forma eficiente.

Componentes de un Sistema de Gestin de Base de Datos. Un Sistema de Gestin de Base de Datos se divide en mdulos que tratan cada una de las responsabilidades del sistema general. Los componentes funcionales de un SGBD (KORTH, 1995) incluyen:

1.2 HERRAMIENTAS

De creacin de bases de datos.

Manejador de Bases de Datos El sistema manejador de bases de datos es la porcin ms importante del software de un sistema de base de datos. Un DBMS es una coleccin de numerosas rutinas de software interrelacionadas, cada una de las cuales es responsable de alguna tarea especfica. Las funciones principales de un DBMS son:

Crear y organizar la Base de datos. Establecer y mantener las trayectorias de acceso a la base de datos de tal forma que los datos puedan ser accesados rpidamente. Manejar los datos de acuerdo a las peticiones de los usuarios. Registrar el uso de las bases de datos. Interaccin con el manejador de archivos. Esto a travs de las sentencias en DML al comando de el sistema de archivos. As el Manejador de base de datos es el responsable del verdadero almacenamiento de los datos. Respaldo y recuperacin. Consiste en contar con mecanismos implantados que permitan la recuperacin fcilmente de los datos en caso de ocurrir fallas en el sistema de base de datos. Control de concurrencia. Consiste en controlar la interaccin entre los usuarios concurrentes para no afectar la inconsistencia de los datos. Seguridad e integridad. Consiste en contar con mecanismos que permitan el control de la consistencia de los datos evitando que estos se vean perjudicados por cambios no autorizados o previstos. El DBMS es conocido tambin como Gestor de Base de datos. En s, un sistema manejador de base de datos es el corazn de la base de datos ya que se encarga del control total de los posibles aspectos que la puedan afectar.

Administracin de bases de datos Rpidamente surgi la necesidad de contar con un sistema de administracin para controlar tanto los datos como los usuarios. La administracin de bases de datos se realiza con un sistema llamado DBMS (Database management system [Sistema de administracin de bases de datos]). El DBMS es un conjunto de servicios (aplicaciones de software) para administrar bases de datos, que permite: un fcil acceso a los datos el acceso a la informacin por parte de mltiples usuarios la manipulacin de los datos encontrados en la base de datos (insertar, eliminar, editar) El DBMS puede dividirse en tres subsistemas: El sistema de administracin de archivos: para almacenar informacin en un medio fsico El DBMS interno: para ubicar la informacin en orden El DBMS externo: representa la interfaz del usuario Los DBMS principales Los principales sistemas de administracin de bases de datos son: Borland Paradox Filemaker IBM DB2 Ingres Interbase Microsoft SQL server Microsoft Access Microsoft Foxpro Oracle Sybase My SQL Postgre SQL mSQL

SQL Server 11 1.2.3 De edicin para crear Esquemas y Consultas de Base de Datos Un esquema es un conjunto lgico de tablas, como la base de datos. Usualmente, se piensa en l simplemente como la base de datos, pero una base de datos puede contener ms de un esquema. Por ejemplo, un esquema estrella est compuesto de tablas, donde una gran y central tabla tiene toda la informacin importante, con la que se accede, va claves ajenas, a tablas dimensionales, las cuales tienen informacin de detalle, y pueden ser usadas en una unin para crear informes detallados. Un esquema en estrella es aquel que tiene una tabla fact de hechos que contiene los datos de anlisis, rodeada de las tablas lookup o de dimensiones. Este aspecto, de tabla de hechos (o central) ms grande rodeada de radios o tablas ms pequeas es lo que asemeja con una estrella. Una tabla fact o tabla de hechos es la tabla central de un esquema dimensional y contiene los valores de las medidas de negocio. Cada medida se toma mediante la interseccin de las dimensiones que la definen. Este esquema es ideal por su simplicidad y velocidad para ser usado para anlisis: Data Marts? (Mercado de datos) y EIS (Sistemas de informacin ejecutiva). Permite acceder tanto a datos agregados como de detalle. Adems, permite reducir el nmero de joins entre tablas y deja a los usuarios establecer jerarquas y niveles entre las dimensiones. Finalmente, es la opcin con mejor rendimiento y velocidad pues permite indexar las dimensiones de forma individualizada sin que repercuta en el rendimiento de la base de datos en su conjunto. Esquema Snowflake La diferencia del esquema snowflake comparado con el esquema estrella, est en la estructura de las tablas lock_up: las tablas lock_up en el esquema snowflake estn normalizadas. Cada tabla lock_up contiene slo el nivel que es clave primaria en la tabla y la foreign key de su parentesco del nivel ms cercano del diagrama. Esquema de relacin y esquema relacional En un esquema de relacin debemos especificar los atributos y dominios sobre los que se define la relacin, as como las restricciones de integridad que se deben cumplir para que la relacin constituya una ocurrencia vlida del esquema; es decir, aquellas restricciones que afectan a cada uno de los elementos que forman parte del correspondiente esquema de relacin (restricciones intraelementos). Por tanto, podremos definir un esquema de relacin como: R <A:D, S> Siendo R el nombre de la relacin, A la lista de atributos, D los dominios sobre los que estn definidos los atributos y S las restricciones de integridad, intraelementos. El esquema de la base de datos relacional ser una coleccin de esquemas de relacin y de restricciones de integridad nter elementos. Esto se puede representar: E < {Ri}, {Ii}> Donde E es el nombre del esquema relacional, {Ri} es el conjunto de esquemas de relacin, e {Ii} representa el conjunto de restricciones de integridad nter elementos. Podemos definir una base de datos relacional variable relacional siguiendo la terminologa de DATE (1995) como un esquema relacional junto con una ocurrencia vlida de dicho esquema, es decir, una ocurrencia que cumple todas las restricciones descritas en el esquema. La creacin de esquemas se lleva a cabo mediante la sentencia: <Definicin de esquemas>::= CREATE SCHEMA <clusula de nombre del esquema> [<Especificacin del conjunto de caracteres del esquema>] [<Elementos de esquemas>]

<Clusula de nombre del esquema> ::= <Nombre del esquema> | AUTHORIZATION <id. Autorizacin del esquema | <Nombre del esquema AUTHORIZATION <id. Autorizacin Del esquema> Podramos, por ejemplo, crear el siguiente esquema: CREATE SCHEMA biblioteca AUTHORIZATION uc3m; Diferencia entre una simple consulta de fila y una mltiple consulta de filas Primero, para cubrir lo obvio, una consulta de una slo fila es una consulta que slo devuelve una fila como resultado, y una consulta de mltiples filas es una consulta que devuelve ms de una fila como resultado. Si una consulta devuelve una fila o ms esto depende enteramente del diseo (o esquema) de las tablas de la base de datos. Como escritor de consultas, debes conocer el esquema, estar seguro de incluir todas las condiciones, y estructurar tu sentencia SQL apropiadamente, de forma que consigas el resultado deseado (aunque sea una o mltiples filas). Por ejemplo, si quieres estar seguro que una consulta de la tabla Propietarios _ antigedades devuelve slo una fila, considera una condicin de igualdad de la columna de la clave primaria, ID _ propietario. Tres razones vienen inmediatamente a la mente de por qu esto es importante. Primero, tener mltiples filas cuando t slo esperabas una, o viceversa, puede significar que la consulta es errnea, que la base de datos est incompleta, o simplemente, has aprendido algo nuevo sobre tus datos. Segundo, se ests usando una sentencia Update o Delete, debes de estar seguro que la sentencia que ests escribiendo va a hacer la operacin en la fila (o filas) que t quieres o sino, estars borrando o actualizando ms filas de las que queras. Tercero, cualquier consulta escrita en SQL embebido debe necesitar ser construida para completar el programa lgico requerido. Si su consulta, por otra parte, devuelve mltiples filas, debers usar la sentencia Fetch, y muy probablemente, algn tipo de estructura de bucle para el procesamiento iterativo de las filas devueltas por la consulta. De control, monitoreo y estadsticas de acceso a bases de datos.

Monitoreo Administra y garantiza el acceso pleno y ptimo a todos los datos expuestos por el servidor Microsoft SQL, tanto para el motor de base de datos, como para cada una de las base de datos desplegadas en el sistema. El monitoreo del servidor SQL tiene la capacidad de conectarse a la fuente de la base de datos y monitorear diversos valores de columnas en tablas, recolectar datos, as como notificar a travs de mensajes de alerta, si las propiedades de los sistemas de bases de datos van ms all de un umbral determinado UTILERIAS DIVERSAS o Algunos de los componentes monitoreados en MS SQL son las siguientes: o Uso de memoria. o Gestin de estadstica de Buffer . o Estadstica de Conexin . o Detalles de Cache . o Estadstica del bloqueo de tablas. o Estadsticas de SQL . o Detalles Latch .
o

1.2.5 Utileras diversas

UTILERIAS DIVERSAS

Las utilerias son programas diseados para ayudar a las DBA en susu numerosas tareas administrativas. Algunos programas de utilerias operan en el nivel externo del sistema y que en realidad no son mas que aplicaciones de proposito especial. A continucion algunos tipos de utilerias que comnmente utilizamos: Rutina de carga: Para crear la version inicial de la base de datos a partir de uno o mas archivos del sistema operativo. Rutinas de descarga/recarga: Para descargar la base de datos (o parte de ella),para respaldar los datos almacenados y para recargar datos desde dichas copias de respaldo. Rutinas de reorganizacin: Para reordenar los datos en las bases de datos almacenada por distintas razones que normalmente tienen que ver con el desempeo; por ejemplo: agrupar datos en el disco de alguna forma en particular o recuperar espacio en el disco por datos que se volvieron obsoletos. Rutinas estadisticas: Para calcular diversas estadisticas desempeo, como el tamao de los archivos, las distribuciones de valores, los contadores de E/S, etc. Rutinas de analisis: Para analizar las estadisticas dicha mente mencionadas.

1.3 Instalacin y configuracin del entorno operativo.

Instalacin y configuracin del RDBMS Para que el producto Tivoli Enterprise Console pueda funcionar dentro del entorno Tivoli, deber instalar y configurar un RDBMS compatible antes de instalar cualquier componente de Tivoli Enterprise Console:

En una configuracin de cliente/servidor: o El software cliente del RDBMS y el host RIM deben estar en el mismo nodo gestionado. o El servidor RDBMS puede estar en cualquier sistema. No es necesario que est en un nodo gestionado. En una configuracin RDBMS de slo servidor, el servidor RDBMS deber estar instalado en un nodo gestionado. El host RIM deber estar en el mismo nodo gestionado.

Para obtener informacin adicional acerca del host RIM, consulte la publicacin Tivoli Enterprise Gua de instalacin. Los siguientes apartados incluyen informacin acerca de la instalacin y configuracin de las bases de datos RDBMS admitidas (DB2, Informix, Microsoft SQL Server, Oracle y Sybase). Nota:

es importante leer la publicacin Tivoli Management Framework - Notas del release y los archivos readme de los parches de Tivoli Management Framework para obtener informacin sobre los requisitos de RIM del RDBMS. La informacin contenida en los archivos readme puede incluir cambios de RIM que prevalecen sobre las publicaciones Tivoli Management Framework - Gua del usuario y Tivoli Management Framework - Notas del release. Realice la copia de seguridad del servidor de base de datos antes de iniciar cualquiera de los cambios que se describen en los apartados siguientes.

Eleccin del servidor RDBMS El servidor RDBMS alberga el esquema del depsito de eventos. Tenga en cuenta las siguientes consideraciones cuando seleccione qu sistema ser el servidor RDBMS:

Este sistema deber tener una conexin TCP/IP con el host RIM. Este sistema no tiene que ser necesariamente un nodo gestionado en la regin de gestin Tivoli, pero debe encontrarse en la misma subred que la regin de gestin Tivoli. Este sistema deber tener espacio en disco suficiente para soportar la cantidad de informacin que tiene previsto almacenar en el depsito de eventos.

Eleccin del host RIM El host RIM proporciona comunicacin con la base de datos RDBMS de forma sencilla, independientemente de la base de datos. Tenga en cuenta las siguientes consideraciones cuando seleccione qu sistema ser el host RIM:

El host RIM deber ser un nodo gestionado. El host RIM deber tener instalado el software servidor o cliente del RDBMS. En la mayora de entornos Tivoli que utilizan el producto Tivoli Enterprise Console, la ubicacin ms eficaz para el host RIM es el servidor de eventos. Cuando el host RIM sea un sistema HP-UX o Windows, la cuenta de usuario tmersrvd deber estar definida en dicho sistema. Para obtener informacin adicional acerca de la cuenta tmersrvd, consulte la publicacin Tivoli Enterprise - Gua de instalacin.

Instalacin y configuracin de DB2 Desde el punto de vista de DB2, el host RIM es un cliente de bases de datos. Por lo tanto, el host RIM deber tener acceso a un servidor DB2. En el host RIM deber instalarse un servidor DB2 o un cliente DB2. La informacin siguiente proporciona slo una visin general de los pasos necesarios para la configuracin de una DB2 que se utilice con el host RIM. El proceso de instalacin y las consideraciones sobre DB2 no forman parte de esta documentacin. Por lo tanto, deber seguir la informacin de instalacin y configuracin que se facilita en la documentacin de IBM DB2.

Nota: cuando instala una base de datos DB2 en un sistema operativo UNIX, las variables de entorno se crean en el archivo .profiledel propietario de la instancia.Estas variables se pueden configurar ejecutando el script .db2profile (shell bash, Bourne o Korn) o el script .db2cshrc (Shell C). Para RIM, debe especificar el mismo nombre para el usuario DB2 que el utilizado para la instancia DB2. Para una base de datos DB2, el nombre del usuario de DB2 deber tener ocho caracteres o menos. Nota: en el sistema operativo UNIX, el nombre de usuario de DB2 es el mismo que el nombre predeterminado de la instancia. Sin embargo, en Windows debe asegurarse de que existe un usuario con el mismo nombre que el de la instancia.

Configuracin del servidor DB2 para el acceso del cliente remoto si el host RIM es el mismo sistema que el servidor DB2 , no ser necesario realizar ninguna configuracin adicional. Si desea que los clientes DB2 remotos puedan acceder al servidor DB2, utilice el procedimiento siguiente: 1. Agregue la variable de entorno DB2COMM con el valor tcpip. 2. Configure el servidor DB2 para que pueda aceptar clientes TCP/IP. Edite el archivo /etc/services y agregue una entrada para el puerto de conexin. Por ejemplo, agregue las siguientes lneas al archivo services: [[code format="xmp"]]

TEC 3700/tcp Puerto de servicio de conexin DB2 code

1. En la lnea de comandos, escriba lo siguiente: [[code format="xmp"]]


db2 update database manager configuration using svcename TEC code

Este comando actualiza el nombre de servicio con el nombre del puerto de conexin (TEC), que es tambin el nombre de la instancia en este ejemplo.

Configuracin del cliente DB2 para configurar el cliente DB2, utilice el procedimiento siguiente: 1. Configure el cliente para que utilice el protocolo TCP/IP para conectarse al servidor. Edite el archivo /etc/services y agregue la entrada para el puerto de conexin. Por ejemplo, agregue las siguientes lneas al archivo services:

[[code format="xmp"]]

TEC 3700/tcp puerto de servicio de conexin DB2 code

1. Agregue la variable de entorno DB2COMM con el valor tcpip. 2. Catalogue el nodo servidor y realice los pasos siguientes para actualizar la base de datos remota: 1. Inicie la utilidad SQL (lenguaje de consulta estructurada) interactiva de DB2especificando lo siguiente: [[code format="xmp"]]
o o 3.

db2 code Catalogue el nodo del servidor:

[[code format="xmp"]]
o o o

catalog tcpip node nodo_db2 remote nombrehost \ server nombre_servicio code

donde: nodo_db2 Especifica el nombre del sistema en el que se ha instalado el cliente DB2. Este nombre debe ser nico en la lista de directorios de nodo.nombrehost Especifica el nombre del sistema en el que se ha instalado el servidor DB2.nombre_servicio Especifica al nombre del puerto de conexin tal y como est definido en el archivo "services".

Instalacin y configuracin de DB2 Antes de empezar a crear un depsito de eventos de Informix, compruebe los siguientes requisitos previos:

Informix Client debe estar instalado en el host RIM y el archivo .odbc.ini debe estar instalado en el directorio en el que est instalado el software de Informix ($INFORMIXDIR). Con todas las bases de datos Informix, se recomienda utilizar el registro sin colocacin en el bfer. La base de datos Tivoli Enterprise Console para Informix se crea con el registro sin colocacin en el bfer. No utilice el registro cronolgico en modo ANSI (American National Standards Institute), ya que pueden surgir problemas de bloqueo de bases de datos y se podran detener los programas de aplicacin de Tivoli.

Nota: las pruebas han demostrado que las bases de datos de Informix pueden dar problemas de simultaneidad en entornos Tivoli de grandes transacciones o grandes volmenes. Bajo estas condiciones, ajuste con cuidado el servidor Informix para evitar que surjan problemas de bloqueo que puedan provocar la prdida de datos. Cuando se dan determinadas condiciones, la habilitacin del

bloqueo de filas podra solucionar los problemas de bloqueo relacionados con el producto Tivoli Enterprise Console. Para determinar cul es el mejor modo de bloqueo para su entorno, pngase en contacto con el administrador de bases de datos Informix. Para obtener informacin de instalacin adicional especfica de Informix, consulte la documentacin de Informix.

Instalacin y configuracin de Microsoft SQL Server Instale SQL Server de Microsoft en el servidor RDBMS. Para obtener ms informacin acerca de la instalacin, consulte la documentacin de SQL Server de Microsoft. Nota: el cuadro de dilogo de opciones de instalacin que aparece durante la instalacin de SQL Server de Microsoft incluye una opcin de Orden de clasificacin. Para utilizar SQL Server de Microsoft para el depsito de eventos, deber seleccionar en la instalacin la opcin de orden de diccionario, sensible a las maysculas y minsculas Seleccione un nodo gestionado de Windows para que sea el host RIM. En el host RIM deber instalarse el cliente SQL Server de Microsoft o SQL Server de Microsoft. Para obtener informacin de instalacin adicional especfica de SQL Server de Microsoft, consulte la documentacin de SQL Server de Microsoft.

Instalacin y configuracin de Oracle Instale Oracle RDBMS y SQL*Plus en el servidor RDBMS. Para obtener ms informacin acerca de la instalacin, consulte la documentacin de Oracle. Seleccione un nodo gestionado para que sea el host RIM. Para configurar el host RIM como un cliente de Oracle utilizando SQL*Plus, complete los pasos que se indican a continuacin. Consulte la documentacin de Oracle si desea utilizar nombres de Oracle. 1. Instale el software del cliente Oracle, que incluye SQL* Plus, en el host RIM. 2. Si el servidor Oracle est en otro sistema que no es el cliente, copie el archivo tnsnames.ora del directorio %ORACLE_HOME %\network\admin del servidor RDBMS en el directorio %ORACLE_HOME%\network\admin del host RIM, siendo ORACLE_HOME la variable de entorno que equivale a la ruta de acceso al directorio en el que reside la instalacin de cliente o servidor de Oracle. 3. Verifique si el archivo tnsnames.ora se ha actualizado correctamente para que refleje su configuracin. En otras palabras, compruebe que sean correctos el nombre de host del servidor, el ID de la instancia de Oracle, el puerto con el que SQL*Plus se conecta y el protocolo de comunicaciones. Para obtener informacin de instalacin adicional especfica de Oracle, consulte la documentacin de Oracle.

Instalacin y configuracin de Sybase Instale RDBMS de Sybase. Para obtener ms informacin acerca de la instalacin, consulte las instrucciones en la documentacin de Sybase. Seleccione un nodo gestionado para que sea el host RIM y realice los pasos siguientes para configurar el host RIM como cliente del servidor RDBMS: 1. Instale el software del cliente Sybase, que incluye isql, en el host RIM. 2. Si el host RIM es un sistema Windows, realice las siguientes acciones: 1. Compruebe que la variable PATH incluye el directorio en el que se han instalado los archivos DLL de Sybase. 2. Compruebe que el archivo SQL.INI se encuentra en el directorio %SYBASE %\INI del host RIM, siendo SYBASE la variable de entorno que equivale a la ruta de acceso al directorio en el que reside la instalacin de Sybase. Si el host RIM es un sistema UNIX, copie el archivo interfaces desde el servidor RDBMS al directorio del host RIM en el que est instalado el software del cliente Sybase.

Nota: si el servidor RDBMS se ejecuta en un sistema con un entorno operativo Solaris y el host RIM no es un sistema Solaris, o viceversa, no copie el archivo interfaces en el host RIM.El archivo interfaces de los entornos operativos Solaris no es compatible con otros sistemas operativos. Deber crear un nuevo archivo interfaces que sea compatible. Consulte al administrador de la base de datos para obtener soporte.

2.1 Creacin de bases de datos

Una base de datos en un sistema relacional est compuesta por un conjunto de tablas, que corresponden a las relaciones del modelo relacional. En la terminologa usada en SQL no se alude a las relaciones, del mismo modo que no se usa el trmino atributo, pero s la palabra columna, y no se habla de tupla, sino de lnea. A continuacin se usarn indistintamente ambas terminologas, por lo que tabla estar en lugar de relacin, columna en el de atributo y lnea en el de tupla, y viceversa. Prcticamente, la creacin de la base de datos consiste en la creacin de las tablas que la componen. En realidad, antes de poder proceder a la creacin de las tablas, normalmente hay que crear la base de datos, lo que a menudo significa definir un espacio de nombres separado para cada conjunto de tablas. De esta manera, para una DBMS se pueden gestionar diferentes bases de datos independientes al mismo tiempo sin que se den conflictos con los nombres que se usan en cada una de ellas. El sistema previsto por el estndar para crear los espacios separados de nombres consiste en usar las instrucciones SQL "CREATE SCHEMA". A menudo, dicho sistema no se usa (o por lo menos no con los fines y el significado previstos por el estndar), pero cada DBMS prev un procedimiento propietario para crear una base de datos. Normalmente, se ampla el lenguaje SQL introduciendo una instruccin no prevista en el estndar: "CREATE DATABASE". La sintaxis empleada por PostgreSQL, pero tambin por las DBMS ms difundidas, es la siguiente: CREATE DATABASE nombre_base de datos Con PostgreSQL est a disposicin una orden invocable por shell Unix (o por shell del sistema

usado), que ejecuta la misma operacin: createdb nombre_base de datos Para crear nuestra base de datos bibliogrfica, usaremos pues la orden: createdb biblio Una vez creada la base de datos, se pueden crear las tablas que la componen. La instruccin SQL propuesta para este fin es: CREATE TABLE nombre_tabla ( nombre_columna tipo_columna [ clusula_defecto ] [ vnculos_de_columna ] [ , nombre_columna tipo_columna [ clusula_defecto ] [ vnculos_de_columna ] ... ] [ , [ vnculo_de tabla] ... ] ) nombre_columna: es el nombre de la columna que compone la tabla. Sera mejor no exagerar con la longitud de los identificadores de columna, puesto que SQL Entry Level prev nombres con no ms de 18 caracteres. Consltese, de todos modos, la documentacin de la base de datos especfica. Los nombres tienen que comenzar con un carcter alfabtico. tipo_columna: es la indicacin del tipo de dato que la columna podr contener. Los principales tipos previstos por el estndar SQL son:

CHARACTER(n) Una cadena de longitud fija con exactamente n caracteres. CHARACTER se puede abreviar con CHAR CHARACTER VARYING(n) Una cadena de longitud variable con un mximo de n caracteres. CHARACTER VARYING se puede abreviar con VARCHAR o CHAR VARYING. INTEGER Un nmero estero con signo. Se puede abreviar con INT. La precisin, es decir el tamao del nmero entero que se puede memorizar en una columna de este tipo, depende de la implementacin de la DBMS en cuestin. SMALLINT Un nmero entero con signo y una precisin que no sea superior a INTEGER. FLOAT(p) Un nmero con coma mvil y una precisin p. El valor mximo de p depende de la implementacin de la DBMS. Se puede usar FLOAT sin indicar la precisin, empleando, por tanto, la precisin por defecto, tambin sta dependiente de la implementacin. REAL y DOUBLE PRECISION son sinnimo para un FLOAT con precisin concreta. Tambin en este caso, las precisiones dependen de la implementacin, siempre que la precisin del primero no sea superior a la del segundo. DECIMAL(p,q) Un nmero con coma fija de por lo menos p cifras y signo, con q cifras despus de la coma.

DEC es la abreviatura de DECIMAL. DECIMAL(p) es una abreviatura de DECIMAL(p,0). El valor mximo de p depende de la implementacin.

INTERVAL Un periodo de tiempo (aos, meses, das, horas, minutos, segundos y fracciones de segundo). DATE, TIME y TIMESTAMP Un instante temporal preciso. DATE permite indicar el ao, el mes y el da. Con TIME se pueden especificar la hora, los minutos y los segundos. TIMESTAMP es la combinacin de los dos anteriores. Los segundos son un nmero con coma, lo que permite especificar tambin fracciones de segundo.

clusula_defecto: indica el valor de defecto que tomar la columna si no se le asigna uno explcitamente en el momento en que se crea la lnea. La sintaxis que hay que usar es la siguiente: DEFAULT { valor | NULL } donde valor es un valor vlido para el tipo con el que la columna se ha definido. vnculos_de_columna: son vnculos de integridad que se aplican a cada atributo concreto. Son:

NOT NULL, que indica que la columna no puede tomar el valor NULL. PRIMARY KEY, que indica que la columna es la llave primaria de la tabla. una definicin de referencia con la que se indica que la columna es una llave externa hacia la tabla y los campos indicados en la definicin. La sintaxis es la siguiente: REFERENCES nombre_tabla [ ( columna1 [ , columna2 ... ] ) ] [ ON DELETE { CASCADE | SET DEFAULT | SET NULL } ] [ ON UPDATE { CASCADE | SET DEFAULT | SET NULL } ] Las clusulas ON DELETE y ON UPDATE indican qu accin hay que ejecutar en el caso en que una tupla en la tabla referenciada sea eliminada o actualizada. De hecho, en dichos casos en la columna referenciante (que es la que se est definiendo) podra haber valores inconsistentes. Las acciones pueden ser:
o o o

CASCADE: eliminar la tupla que contiene la columna referenciante (en el caso de ON DELETE) o tambin actualizar la columna referenciante (en el caso de ON UPDATE). SET DEFAULT: asignar a la columna referenziante su valor de defecto. SET NULL: asignar a la columna referenciante el valor NULL.

un control de valor, con el que se permite o no asignar un valor a la columna en funcin del resultado de una expresin. La sintaxis que se usa es: CHECK (expresin_condicional) donde expresin_condicional es una expresin que ofrece verdadero o falso. Por ejemplo, si estamos definiendo la columna COLUMNA1, con el siguiente control: CHECK ( COLUMNA1 < 1000 )

en dicha columna se podrn incluir slo valores inferiores a 1000. vnculo_de_tabla: son vnculos de integridad que se pueden referir a ms columnas de la tabla. Son:

la definicin de la llave primaria: PRIMARY KEY ( columna1 [ , columna2 ... ] ) Vase que en este caso, a diferencia de la definicin de la llave primaria como vnculo de columna, sta se puede formar con mas de un atributo.

las definiciones de las llaves externas: FOREIGN KEY ( columna1 [ , columna2 ... ] ) definiciones_de_referencia La definicin_de_referencia tiene la misma sintaxis y significado que la que puede aparecer como vnculo de columna.

un control de valor, con la misma sintaxis y significado que el que se puede usar como vnculo de columna.

Para aclarar mejor el uso de la instruccin CREATE TABLE, veamos algunas rdenes que implementan la base de datos bibliogrfica ejemplificada. CREATE TABLE Publication ( ID INTEGER PRIMARY KEY, type CHAR(18) NOT NULL ); La instruccin anterior crea la tabla Publication, formada por las dos columna ID de tipo INTEGER, y type de tipo CHAR(18). ID es la llave primaria de la relacin. En el atributo type hay un vnculo de no nulidad. CREATE TABLE Book ( ID INTEGER PRIMARY KEY REFERENCES Publication(ID), title VARCHAR(160) NOT NULL, publisher INTEGER NOT NULL REFERENCES Publisher(ID), volume VARCHAR(16), series VARCHAR(160), edition VARCHAR(16), pub_month CHAR(3), pub_year INTEGER NOT NULL, note VARCHAR(255) ); Crea la relacin Book, formada por nueve atributos. La llave primaria es el atributo ID, que es tambin una llave externa hacia la relacin Publication. Sobre los atributos title, publisher y pub_year hay vnculos de no nulidad. Adems, el atributo publisher es una llave externa hacia la tabla Publisher.

CREATE TABLE Author ( publicationID INTEGER REFERENCES Publication(ID), personID INTEGER REFERENCES Person(ID), PRIMARY KEY (publicationID, personID) ); Crea la relacin Author, compuesta por dos atributos: publicationID y personID. La llave primaria en este caso est formada por la combinacin de los dos atributos, como est indicado por el vnculo de tabla PRIMARY KEY. PublicationID es una llave externa hacia la relacin Publication, mientras que personID lo es hacia la relacin Person. El archivo create_biblio.sql contiene todas las rdenes necesarias para crear la estructura de la base de datos bibliogrfica ejemplificada. NOTA SOBRE POSTGRESQL En PotgreSQL, por lo menos hasta la versin 6.5.1, no se han implementado todava los vnculos sobre las llaves externas. El parser acepta, de todos modos, las sintaxis SQL que le afectan, y por tanto los constructos FOREIGN KEY y REFERENCES no producen un error, sino slo un warning.

2.1.1 Creacin de la estructura de la base de datos. 1. Base de datos Definir el trmino base de datos

Definicin de Bases de Datos.- Un conjunto de informacin almacenada en memoria auxiliar que permite acceso directo y un conjunto de programas que manipulan esos datos

Base de Datos es un conjunto exhaustivo no redundante de datos estructurados organizados independientemente de su utilizacin y su implementacin en mquina accesibles en tiempo real y compatibles con usuarios concurrentes con necesidad de informacin diferente y no predicable en tiempo. Explicar Sus Orgenes Y Antecedentes Surgen desde mediados de los aos sesenta la historia de las bases de datos, en 1970 Codd propuso el modelo relacional, este modelo es el que ha marcado la lnea de investigacin por muchos aos, ahora se encuentran los modelos orientados a objetos. Describir las ventajas del uso de la base de datos en la organizacin Ventajas de las bases de datos.1. Independencia de datos y tratamiento. o Cambio en datos no implica cambio en programas y viceversa (Menor coste de mantenimiento). 2. Coherencia de resultados. o Reduce redundancia : + Acciones logicamente unicas. + Se evita inconsistencia. 3. Mejora en la disponibilidad de datos o No hay dueo de datos (No igual a ser publicos). + Ni aplicaciones ni usuarios. o Guardamos descripcin (Idea de catalogos).

4. Cumplimiento de ciertas normas. o Restricciones de seguridad. + Accesos (Usuarios a datos). + Operaciones (Operaciones sobre datos). 5. Otras ventajas: o Ms efiente gestin de almacenamiento. Efecto sinergico. Describir La Artuitectura De Una Base De Datos Distintos Niveles de un SBD Los SBD pueden ser estudiados desde 3 niveles distintos: 1.- Nivel Fsico. Es el nivel real de los datos almacenados. Es decir como se almacenan los datos, ya sea en registros, o como sea. Este nivel es usado por muy pocas personas que deben estar cualificadas para ello. Este nivel lleva asociada una representacin de los datos, que es lo que denominamos Esquema Fsico. 2.- Nivel Conceptual. Es el correspondiente a una visin de la base de datos desde el punto de visto del mundo real. Es decir tratamos con la entidad u objeto representado, sin importarnos como est representado o almacenado. Este nivel lleva asociado el Esquema Conceptual. 3.- Nivel Visin. Son partes del esquema conceptual. El nivel conceptual presenta toda la base de datos, mientras que los usuarios por lo general slo tienen acceso a pequeas parcelas de sta. El nivel visin es el encargado de dividir estas parcelas. Un ejemplo sera el caso del empleado que no tiene porqu tener acceso al sueldo de sus compaeros o de sus superiores. El esquema asociado a ste nivel es el Esquema de Visin. Los 3 niveles vistos, componen lo que conocemos como arquitectura de base de datos a 3 niveles. A menudo el nivel fsico no es facilitado por muchos DBMS, esto es, no permiten al usuario elegir como se almacenan sus datos y vienen con una forma estndar de almacenamiento y manipulacin de los datos. La arquitectura a 3 niveles se puede representar como sigue: Subesquema de Visin, Subesquema de Visin, Subesquema de Visin, Esquema Conceptual Esquema Fsico Citar Las Diferentes Estructuras De Bases De Datos Modelos de Datos Para representar el mundo real a travs de esquemas conceptuales se han creado una serie de modelos: Mundo Real Esqs Conceptuales Modelizacin Existen multitud de estos modelos que se conocen como Modelos de Datos, algunos de estos modelos son:

Modelo Relacional de Datos Modelo de Red Modelo Jerrquico

1.- Modelo Relacional de Datos. Representa al mundo real mediante tablas relacionadas entre s por columnas comunes. Ex.: Num_empleado Nombre Seccin 33 Pepe

25 34 Juan 25 Num_seccin Nombre 25 Textil 26 Pintura 2.- Modelo de Red. Representamos al mundo real como registros lgicos que representan a una entidad y que se relacionan entre s por medio de flechas. Ex.: 33 Pepe 25 Textil 34 Juan 3.- Modelo Jerrquico. Tiene forma de rbol invertido. Un padre puede tener varios hijos pero cada hijo slo puede tener un padre. Ex.: Empresa 25 Textil 26 Pintura 27 Construccin 33 Pepe 34 Juan 36 Perico Al llegar a este punto adoptaremos una convencin con respecto a las restricciones que se pueden dar en un modelo, en cuanto a la capacidad de relacionarse que pueda tener cada entidad de ese modelo con el resto de entidades. Como se ha dicho el modelo jerrquico slo admite relaciones 1 : 1 1 : N. En caso de que tuvisemos la necesidad de otro tipo de asociaciones y queramos usar el esquema jerrquico, recurriramos a una duplicacin de la informacin en el esquema, pero slo a nivel esquemtico. Ex.: Tenemos dos entidades (cliente y cuenta), queremos que un cliente pueda poseer varias cuentas, y que una cuenta pueda tener como titulares a varios clientes. Usando el modelo jerrquico tendramos que recurrir a una duplicacin de los datos en el esquema. Cliente Cuenta Cuenta Cliente Como ya se ha dicho esta duplicacin slo ocurrira a nivel esquemtico, pero a nivel fsico existira un nico registro por cliente, y por cuenta que relacionaramos mediante varios punteros con todo lo necesario. En el modelo de red no existen restricciones, si queremos representar que un cliente puede tener varias cuentas, cada una de las cules slo puede tener un titular, y cada cuenta sta en una sola sucursal, que por supuesto puede ser compartida por varias cuentas, ste sera el esquema: Cliente Cuenta Sucursal Con el modelo relacional podramos tener ambas entidades definidas de la siguiente forma: Cliente = (N Cliente: Acceso Principal; Nombre, Direccin, N Cuenta: Acceso Ajeno) Cuenta = (N Cuenta: Acceso Principal; Saldo) Se podra hablar de otro modelo que est un nivel ms arriba y que se denomina Modelo EntidadRelacin (E/R). Este modelo slo realiza el diseo, no realiza la implementacin, por lo tanto una vez hecho el diseo se puede llevar al modelo relacional, de red o jerrquico. Define dos entidades y una forma de relacin entre ellas. Ex.: Nombre Dccin Num_Cli Num_cuenta Saldo CLIENTE Cliente - CUENTA Cuenta Entidad Relacin Entidad Clasificar Las Bases De Datos Por Su Uso Y Aplicacin

TIPOS DE MODELOS DE DATOS Existen fundamentalmente tres alternativas disponibles para disear las bases de datos: el modelo jerrquico, el modelo de red y el modelo relacional. MODELO JERARQUICO. Puede representar dos tipos de relaciones entre los datos: relaciones de uno a uno y relaciones de uno a muchos. MODELO DE RED. Este modelo permite la representacin de muchos a muchos, de tal forma que cualquier registro dentro de la base de datos puede tener varias ocurrencias superiores a l. El modelo de red evita redundancia en la informacin, a travs de la incorporacin de un tipo de registro denominado el conector. MODELO RELACIONAL. Este modelo se est empleando con ms frecuencia en la prctica, debido a la ventajas que ofrece sobre los dos modelos anteriores, entre ellas, el rpido entendimiento por parte de ususarios que no tienen conocimientos profundos sobre Sistemas de Bases de Datos. BASES DE DATOS DISTRIBUIDAS. Las bases de datos distribuidas se estn utilizando cada vez ms en la misma medida en que se usan las arquitecturas de cliente-servidor y groupware. Los principales problemas que se generan por el uso de la tecnologa de bases de datos distribuidas son en lo referente a duplicidad de datos y a su integridad al momento de realizar actualizaciones a los mismos. Adems, el control de la informacin puede constituir una desventaja, debido a que se encuentra diseminada en diferentes localidades geogrficas. TENDENCIAS FUTURAS. En el futuro la mayora de las organizaciones cambiarn la forma convencional de manejo de la informacin a la arquitectura de base de datos a las ventajas derivadas de su uso. El uso de las bases de datos distribuidas se incrementar de manera considerable en la medida en que la tecnologa de comunicacin de datos brinde ms facilidades para ello. El uso de bases de datos facilitar y soportar en gran medida a los Sistemas de Informacin para la Toma de Decisiones. 2. DBMS Definir Que Es Un DBMS El DBMS : es un conjunto de programas que se encargan de manejar la creacin y todos los accesos a las bases de datos, esta compuesto por: DDL: Lenguaje de Definicin de Datos DML:Lenguaje de Manipulacin de Datos SQL: Lenguaje de Consulta. Ejemplificar Distintos Dbms Relacionales Existentes En El Mercado Actual Si se trata de una base de datos relacional (veremos a continuacin qu significa esto), es probable que el lenguaje usado para recuperar las informaciones que se nos muestran sea SQL (Structured Query Language). los DBMS mas comunes son Oracle, Sql Server?, Informix, Sysbase, Describir Las Caracteristicas De Al Menos 3 DBMS Bases de datos jerrquicos: los datos se organizan en grupos unidos entre ellos por relaciones de posesin, en las que un conjunto de datos puede tener otros conjuntos de datos, pero un conjunto puede pertenecer slo a otro conjunto. La estructura resultante es un rbol de conjuntos de datos. Bases de datos reticulares: el modelo reticular es muy parecido al jerrquico, y de hecho nace como una extensin de este ltimo. Tambin en este modelo conjuntos de datos estn unidos por relaciones de posesin, pero cada conjunto de datos puede pertenecer a uno o ms conjuntos. Bases de datos relacionales: las bases de datos que pertenecen a esta categora se basan en el modelo relaciones, cuya estructura principal es la relacin, es decir una tabla bidimensional compuesta por lneas y columnas. Cada lnea, que en terminologa relacional se llama tupla, representa una entidad que nosotros queremos memorizar en la base de datos. las caractersticas de cada entidad estn definidas por las columnas de las relaciones, que se llaman atributos. Entidades con caractersticas comunes, es decir descritas por el mismo conjunto de atributos, formarn parte de la misma relacin. Base de datos por objetos (object-oriented): el esquema de una base de datos por objetos est representado por un conjunto de clases que definen las caractersticas y el comportamiento de los objetos que poblarn la base de datos. La diferencia principal respecto a los modelos examinados

hasta ahora es la no positividad de los datos. En efecto, con una base de datos tradicional (entendiendo con este trmino cualquier base de datos no por objetos), las operaciones que se tienen que efectuar en los datos se les piden a las aplicaciones que los usan. Con una base de datos object-oriented, al contrario, los objetos memorizados en la base de datos contienen tanto los datos como las operaciones posibles con tales datos. En cierto sentido, se podr pensar en los objetos como en datos a los que se les ha puesto una inyeccin de inteligencia que les permite saber cmo comportarse, sin tener que apoyarse en aplicaciones externas. Explicar la diferencia entre un dbms y una base de datos La base de datos es una coleccin de archivos interrelacionados almacenados en conjunto sin redundancia y la dbms es un conjunto de nmerosas rutinas de software interrelacionadas cada una de ellas es responsable de una determinada tarea. Mencionar la importancia de una apropiada eleccin de dbms Se tiene que elegir el que tenga la mejor interfaz a las necesidades de la empresa y sobre todo que este apto para la base de datos que vayamos a utilizar. Citar los componentes de un sistema de base de datos Recursos que componen un sbd Un sbd estar formado por:

Personas Mquinas Programas Datos

Describir las funciones de cada componente de un sistema de base de datos 1. Los datos. Es lo que se conoce como base de datos propiamente dicha. Para manejar estos datos utilizamos una serie de programas. 2.- Los Programas. Son los encargados de manejar los datos, son conocidos como DBMS (Data Base Management System) o tambin SGBD (Sistema Gestor de Base de Datos). Los DBMS tienen dos funciones principales que son: - La definicin de las estructuras para almacenar los datos. - La manipulacin de los datos. 1.- Describir los sistemas de procesamiento de archivos La informacin necesita ser guardada y manipulada para que sea til y este es uno de los objetivos principales que han tenido la computadoras dentro de la empresa. A principios de su incorporacin al mbito empresarial, las computadoras trabajaban con lo que se conoce como Sistema de procesamiento de Archivos en los que se guardaban los datos para ser procesados por programas escritos especialmente para cada clase de archivos; esto degeneraba en un sistema monoltico y de difcil mantenimiento. Sistema de Procesamiento de Archivos: Tiene una serie de inconvenientes que son reducidos en los SGBD: Dificultad de Acceso a ciertos datos o informacin: Si no existen programas para acceder o calcular cierta informacin, no puede accederse a ella. Ej.: Calcular totales, o registros con cierta condicin Aislamiento de Datos: Los datos pueden estar en varios archivos con distintos formatos, que complican la creacin de programas nuevos. Falta de Integridad: Es complicado mantener ciertas condiciones en la informacin. Ej.: Que el saldo sea superior a cierta cantidad, que un empleado no est adscrito a un nmero de Depa rtamento que no exista Problemas de Atomicidad en las operaciones: A veces es esencial que para la consistencia de la BD se efecten varias operaciones como si fueran

una nica operacin, evitando que se produzcan fallos en medio de dicha operacin. Ej.: En una transferencia bancaria hay que dar de quitar dinero de una cuenta y aadirlo a la otra. Problemas en el Acceso Concurrente: Si varios usuarios acceden a la vez a un dato pueden producirse errores. Ej.: Si se saca dinero de una misma cuenta desde dos sitios distintos. Problemas de Seguridad: Dificultad para controlar que ciertos usuarios no accedan a ciertos datos 2.- Explicar su evolucin histrica Viendo la necesidad de mejorar este estndar se desarrollaron los Sistemas gestores de Base de Datos Relacionales(SGBDR) cuyas caractersticas hacen al sistema mucho mas eficiente que los sistemas de manejos de archivos. Algunas de las caractersticas son que existe solo una copia de los datos para que todos los programas trabajen con ella, esto es lo que se denomina obtencin de redundancia mnima y de esta manera se podr eliminar la inconsistencia de los datos. La capacidad de interactuar en un ambiente cliente/servidor donde los clientes o usuarios (ya sea de una intranet o desde Internet) pudiendo trabajar con un un conjunto nico de datos alojados en un servidor y donde varios clientes podran estar trabajando al mismo tiempo. Estas son solo algunas de las caractersticas que tiene el modelo de base de datos relacional y en Linux exiten diversos motores de base de datos que permiten trabajar ya sea con base de datos existentes o creando nuevas con todas las capacidades de trabajo en red de este sistema operativo. Numerosas empresas se han volcado al desarrollo de SGBDRs como Oracle e Informix pero la mas conocida por su carcter gratuito para el uso personal y la inclusin en numerosas distribuciones es el Postgre SQL. En un principio adoptado para el sistema UNIX, fue portado a Linux y modificado para utilizar el lenguaje de consultas SQL, donde se llamo Posgres95. Mejorado en el 96 tomo su nuevo Postge SQL? y adopto las nuevas carcter del SQL - 92. Actualmente posee ciertas limitaciones tcnicas como el no permitir consultas paralelas, es decir que no pueden dos usuarios consultar una misma tabla al mismo tiempo, lo que impide su adopcin en un ambiente de trabajo de grandes dimensiones. Pero el uso del lenguaje de consulta SQL lo hace especial para ambientes de trabajo que cuente con mltiples plataformas y tambin as para su utilizacin para ser consultado directamente desde internet a trabes de una pagina Web. Postgre SQL requiere de cierto conocimiento del lenguaje SQL por lo que es recomendable el estudio de bibliografa que trate este tema antes de trabajar en el diseo de una base de datos con el. No estara bien terminar sin nombrar otros sistemas de base de datos como el Sybase SQL Anywhere Studio de la empresa Sybase cuya versin beta se encuentra disponible en el web site de la compaa www.sybase.com/products/anywhere/linuxbeta. Otro conocido en el campo de las bases de datos es Oracle y el portar Oracle 8 a Linux fue un gran avanc que da solides a este sistema operativo para su adopcin en las grandes y medianas empresas. 3.- Describir los sistemas de procesamiento en lnea y por lotes Un sistema de procesamiento por lotes (batch) ejecuta trabajos (jobs) En un sistema de procesamiento por lotes, organizar la memoria en particiones fijas es simple y efectivo: cada trabajo se carga en la memoria cuando le toque su turno, y se queda en memoria hasta que termine. Si hay suficientes particiones para mantener a la CPU siempre ocupada, no habra razones para usar nada diferente. Procesamiento en linea: A diferencia del procesamiento por lotes o batch, el procesamiento en lnea implica que los programas se ejecuten de tal forma que los datos se actualicen de inmediato en los archivos de la computadora. A este tipo de procesamiento se le conoce tambin como tiempo real. Las aplicaciones de tiempo real son indispensables en aquellos casos en que los datos contenidos en los archivos se modifican varias veces en el transcurso de un da y se consultan en forma casi inmediata con las modificaciones que se efectuaron. Un ejemplo de lo anterior es un sistema de

reservaciones en alguna lnea area. 4.- Explicar los lenguajes de 3era y 4 generacin Los lenguajes de tercera generacin (3GL; third-generation languages) son los lenguajes propiamente como los conocemos (poseen instrucciones, funciones, sintaxis, semntica); ya trascienden el uso de los trminos nemotcnicos. Una instruccin puede indicar 1 o ms tareas para el computador. Pueden dividirse como sigue: Orientados a problemas A procedimientos A objetos 4GL (Generadores de aplicaciones que no dependen de una metodologa).

Son de alto nivel y amigables; los programadores profesionales que utilizan 4GL sostienen que experimentan incrementos en la productividad de 200 a 1,000% en comparacin con los lenguajes orientados al procedimiento de la tercera generacin (COBOL, FORTRAN, BASIC y dems ). Hay dos tipos de 4GL:

Orientados a la produccion Al usuario 5.- Ejemplificar las aplicaciones de los 3GL y los 4GL

Lenguajes orientados al procedimiento.- Los lenguajes orientados al procedimiento requieren que los programadores resuelvan problemas de programacin utilizando la lgica de programacin tradicional; esto es, los programadores codifican o escriben las instrucciones en la secuencia en que deben ejecutar para solucionar el problema. Se dividen en:

o Lenguajes empresariales. Los 3GL orientados a las empresas se disean para ser instrumentos efectivos para desarrollar sistemas de informacin empresarial. La fuerza de la 3GL empresariales consiste en su capacidad de almacenar, recuperar y manejar datos alfanumricos. + COBOL, el primer lenguaje de programacin empresarial, se introdujo en 1959. Este lenguaje sigue siendo el mas popular. La intencin original del os 0creadores del COBOL (Common Bussines Oriented Language; lenguajes comn orientado a la empresa) era hacer que sus instrucciones se aproximan al ingls. o Lenguaje cientficos. Estos lenguajes del tipo de una formula algebraica estn diseado en particular para satisfacer las necesidades de procedimientos repetitivo, la expresin y la solucin de ecuaciones matemticas y dems operaciones pertinentes. + FORTRAN. (Formula Translator), el primer lenguaje orientado a procedimientos, se desarrollo en 1955. Fue y sigue siendo el lenguaje cientfico ms popula. + APL. (A Programming Language un lenguaje de programacin), introducido en 1968, es un lenguaje de programacin interactivo que es comn entre los ingenieros, matemticos y cientficos. Un tablero especial con smbolos taquigrficos ayuda a la rapidez del proceso de cifrado. o Lenguajes de la cuarta generacin orientados a la produccin. Los lenguajes de la cuarta generacin orientados a la produccin estn diseados sobre todo para profesionales en la computacin, quienes usan 4GL como el Ideal de ADR, el Natural 2 de Software AG y el Mantis de Cincom.

Otros lenguajes orientados al procedimiento. El anlisis anterior de los lenguajes al procedimiento no pretende ser exhaustivo. Entre estos se incluyen los siguientes:

o LISP ( List Processing [procesamiento de listas], 1959). Un lenguaje de procesamiento de listas eficiente para el manejo de datos no numricos, tales como smbolos y texto (se utiliza en el desarrollo de la inteligencia artificial y los compiladores). o LOGO (1967). Hace uso de una tortuga para ensear a los nios ge ometra, matemticas y

programacin. o FORTH (1971). Se utiliza para aplicaciones de control de dispositivos, juegos de video y robtica. o Prolog (Programming in Logic [programacin en lgica], 1972. Es capaz de manejar relaciones entre hechos ( se utiliza en el desarrollo de sistemas expertos). o Modula-2 (1981). Permite combinar mdulos independientes en un programa. Lenguajes de la cuarta generacin orientados al usuario. Los usuarios escriben programas para consultar (extraer informacin ) de una base de datos y para crear sistemas de informacin personales o departamentales. Los lenguajes de la cuarta generacin orientados al usuario incluyen el RAMIS II de Mathematica Products Group y el FOCUS de Information Builders. 6.- Explicar la diferencia entre procesamiento de archivos y procesamiento de Base de Datos La diferencia principal entre un sistemas de procesamiento de archivos y un DBMS radica en la manera de almacenar, recuperar y actualizar los datos; lo anterior se debe a que con los sistemas de procesamiento de archivos, como su nombre lo indica, los datos se guardan en diversos archivos y muchas veces dichos archivos son de diferente formato, ocasionando problemas como la redundancia que trae consigo almacenamiento y dificulta el acceso a los datos. Dicha redundancia tambin implica inconsistencias en lo que se tiene almacenado . 7.- Describir las ventajas de procesamiento de base de datos 1.- Independencia de datos y tratamiento. Cambio en datos no implica cambio en programas y viceversa (Menor coste de mantenimiento). 2.- Coherencia de resultados. Reduce redundancia : Acciones logicamente unicas. Se evita inconsistencia. 3.- Mejora en la disponibilidad de datos No hay dueo de datos (No igual a ser publicos). Ni aplicaciones ni usuarios. Guardamos descripcin (Idea de catalogos). 4.- Cumplimiento de ciertas normas. Restricciones de seguridad. Accesos (Usuarios a datos). Operaciones (Operaciones sobre datos). 5.- Otras ventajas : Ms efiente gestin de almacenamiento. Efecto sinergico 8.- Describir los 4GLs para manejo de base de datos

Debe tener integrado un manejador de base de datos Debe contar con un reporteador basado en objetos Debe haber independencia total entre los datos y las aplicaciones Debe contar con un diccionario o repositorio de datos Debe proporcionar apoyo para un esquema de seguridad por usuarios Debe contar con un lenguaje de rastreo basado en ejemplos (Query By Example) Debe hacer hincapi en el modelo de datos y no en la programacin del cdigo Debe poseer herramientas para la fcil documentacin de anlisis, diseo, y modelo de datos.

Ejemplos: Informix, Progress, Sisinf. Desventajas: Requieren conocimientos especializados y su operacin requiere personal calificado (lo cual es caro). Su precio como producto tambin es caro. 9.- Citar las diferentes estructuras de base de datos Objeto binario grande

Estructuras de base de datos en las que estan almacenados los documentos reales, como un disco duro de gran capacidad al que puede tener acceso el Agente de oficina postal (POA). En un mismo objeto binario grande se almacenan el documento, sus versiones y los objetos relacionados. Los objetos binarios grandes estan comprimidos y encriptados. Las Base de Datos son clasificadas como sigue: 1. PLEX STRUCTURE: La base de datos tiene al menos un encadenamiento muchos a muchos (MANY-TO-MANY link). 2. TREE OR NETWORK: La base de datos no tiene ningn encadenamiento muchos a muchos (ONE-TO-MANY link). En este caso, los encadenamientos de uno a muchos (ONE -TO-MANY links) estn dirigidos para que las flechas sencillas apunten hacia arriba y las dobles hacia abajo. Como resultado de esto, el diagrama esta orientado y se pueden definir varios niveles. Cada encadenamiento (link) se une del nivel superior (the parent) al sub nivel (the child). 2.1 TREE STRUCTURE: Por definicin, en la estructura de rbol (tree structure), cada hijo (child) tiene un solo padre (parent). 2.2 NETWORK STRUCTURE: Por definicin, en la estructura de red (network structure), cada hijo (child) puede tener varios padres (parents). 10.- Clasificar a las base de datos por su uso y aplicacin 1. Bases de datos referenciales: son aquellas que ofrecen registros que su vez son representaciones de documentos primarios. Dentro de stas distinguen, as su vez, entre: 1.1. bibliogrficas: aquellas cuyo contenido son registros de tipo bibliogrfico. 1.2. directorios: aquellas cuyo contenido est referido a la descripcin de otros recursos de informacin, como por ejemplo un directorio de bases de datos. 2. Bases de datos fuente: seran aquellas bases de datos que ofrecen el documento completo, no una representacin del mismo. Tambin distinguen entre: 2.1. numricas: contienen informacin de tipo numrico, como un censo o indicadores cuantitativos. 2.2. textuales: ofrecen el texto completo de un documento. 2.3. mixtas: combinan ambos tipos de informacin, como por ejemplo informes econmicos de empresas, datos geoeconmicos, etc. 11.- Describir las base de datos orientadas a objetos

La Orientacin a Objetos puede describirse como el conjunto de disciplinas (ingeniera) que desarrollan y modelizan software que facilita la construccin de sistemas complejos a partir de componentes, llamados objetos. En la programacin orientada a objetos todo se organiza en torno a los objetos. Un objeto tiene un nombre y posee datos y procedimientos. En cierto sentido, un objeto es un programa virtual.

Dado ciertos datos de entrada, el objeto aplica los procedimientos sobre dichos datos y genera una salida. 12.- Identificar cual sera el futuro de las base de datos Dentro del panorama futuro de las bases de datos mltiples hay un aspecto importante que considerar, el inusitado xito del World Wide Web (WWW o, de forma abrevia da, el web) como medio de publicacin de documentos y como medio de intercambio de informacin. El WWW proporciona uno de los medios ms heterogneos y retadores en el campo de la interoperabilidad. Recientemente han surgido tecnologas y estndares enfocados a hacer del web una infraestructura escalable y manejable. Una de dichas tecnologas es XML [4] (eXtensible Markup Language), sobre la cual la comunidad cientfica tiene muchas expectativas. Una de ellas es que XML convierta a Internet en un sistema de bases de datos, haciendo posible especificar consultas en el estilo de los manejadores de bases de datos tradicionales lo cual da muchos mejores resultados que las actuales mquinas de bsqueda. Sin embargo, XML en s no posee mucha de la funcionalidad de sistemas de bases de datos mltiples como las indicadas en Donaj. El reto es integrar esa funcionalidad en XML y aprovechar al mximo la informacin estratgica que podamos encontrar en el web.

3. Multitarea La ejecucin de ms de un programa a la vez en una computadora. Los sistemas operativos multitarea (Windows, OS/2, Unix y otros) permiten que mltiples operaciones se ejecuten simultneamente. Sus mayores beneficios se obtienen cuando se realizan tareas largas y complejas (como consultar una base de datos). La cantidad de programas que pueden ejecutarse depende de la memoria disponible, de la velocidad de la CPU y de la eficiencia del sistema operativo. 4. Multiusuario Un SO multiusuario permite a mas de un solo usuario accesar una computadora. Claro que, para llevarse esto a cabo, el SO tambin debe ser capaz de efectuar multitareas. Unix es el Sistema Operativo Multiusuario ms utilizado. Debido a que Unix fue originalmente diseado para correr en una minicomputadora, era multiusuario y multitarea desde su concepcin. Actualmente se producen versiones de Unix para PC tales como The Santa Cruz Corporation Microport, Esix, IBM,y Sunsoft. Apple tambin produce una versin de Unix para la Machintosh llamada: A/UX.Unix , Unix proporciona tres maneras de permitir a mltiples personas utilizar la misma PC al mismo tiempo. 1.Mediante Mdems 2.Mediante conexin de terminales a travs de puertos seriales 3.Mediante Redes 5. Multiproceso Las computadoras que tienen mas de un CPU son llamadas multiproceso. Un sistema operativo multiproceso coordina las operaciones de la computadoras multiprocesadoras. Ya que cada CPU en una computadora de multiproceso puede estar ejecutando una instruccin, el otro procesador queda liberado para procesar otras instrucciones simultneamente. Al usar una computadora con capacidades de multiproceso incrementamos su velocidad de respuesta y procesos. Casi todas las computadoras que tienen capacidad de multiproceso ofrecen una gran ventaja. Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como: Multiproceso asimtrico: Una CPU principal retiene el control global de la computadora, as como el de los otros procesadores. Esto fue un primer paso hacia el multiproceso pero no fue la direccin ideal a seguir ya que la CPU principal poda convertirse en un cuello de botella. Multiproceso simtrico: En un sistema multiproceso simtrico, no existe una CPU controladora nica. La barrera a vencer al implementar el multiproceso simtrico es que los SO tienen que ser rediseados o diseados desde el principio para trabajar en u n ambiente multiproceso. Las extensiones de Unix, que soportan multiproceso asimtrico ya estn disponibles y las extensiones simtricas se estn haciendo disponibles. Windows NT de Microsoft soporta multiproceso simtrico. Lenguajes que tienen estas caractersticas C, SQL, El UNIX y sus clones permiten mltiples tareas y mltiples usuarios. Su sistema de archivos proporciona un mtodo sencillo de organizar archivos y permite la proteccin de archivos. Sin embargo, las instrucciones del UNIX no son intuitivas. Otros sistemas operativos multiusuario y multitarea son OS/2, desarrollado inicialmente por Microsoft Corporation e International Business Machines (IBM) y Windows, desarrollado por Microsoft. El sistema operativo multitarea de las computadoras Apple se denomina Macintosh OS. La estructura de una base de datos hace referencia a los tipos de datos, los vnculos o relaciones y las restricciones que deben cumplir esos datos (integridad de datos y redundancia de datos). La estructura de una base de datos es diseada o descripta empleando algn tipo de modelo de datos. Un ejemplo a modo de descripcin de la estructura de una base de datos puede ser: ALUMNO: numero de alumnno (entero de 6 nmeros), nombre (cadena de 30 caracteres), apellido (cadena de 30 caracteres), ao de nacimiento (entero de 4 nmeros), especialidad (entero de 3 nmeros). ESPECIALIDAD: numero de especialidad (entero de 3 nmeros), nombre de especialidad (cadena de 30 caracteres).

2.1.4 Creacin de vistas de la base de datos (view). Una vista es una tabla temporal, que a travs de una consulta previa se genera y se puede operar sobre ella el comando para generar una vista en Oracle es: Create view Nombre_vista AS codigo SELECT usu_cod, usu_nombre FROM usuario; Esto produciria lo siguiente al ejecutarlo SELECT * FROM Nombre_vista; Hdr Hdr Hdr usu_cod usu_nombre 1 Juan 2 Pedro Por que creamos vistas!!

Seguridad: visualizamos solo una parte de la informacin que existe Comodidad: el modelo relacional no es cmodo para visualizar ,

tener una vista nos simplifica esta tarea. Creacin de vistas Para crear una vista debemos utilizar la sentencia CREATE VIEW, debiendo proporcionar un nombre a la vista y una sentencia SQL SELECT vlida. CREATE VIEW <nombre_vista>AS(<sentencia_select>); Ejemplo: Crear una vista sobre nuestra tabla alquileres, en la que se nos muestre el nombre y apellidos del cliente en lugar de su cdigo. CREATE VIEW vAlquileresAS(SELECT nombre, apellidos, matriculaFROM tAlquileres, tClientes WHERE ( tAlquileres.codigo_cliente = tClientes.codigo )

1. Modificacin de vistas Si queremos, modificar la definicin de nuestra vista podemos utilizar la sentencia ALTER VIEW, de forma muy parecida a como lo hacamos con las tablas. En este caso queremos aadir los campos fx_alquiler y fx_devolucion a la vista.

ALTER VIEWvAlquileresAS(SELECT nombre, apellidos, matricula, fx_alquiler, fx_devolucion FROMtAlquileres, tClientes WHERE ( tAlquileres.codigo_cliente = tClientes.codigo )) 2. Eliminacin de vistas Por ltimo podemos eliminar la vista a travs de la sentencia DROP VIEW. Para eliminar la vista que hemos creado anteriormente se utilizara: DROP VIEWvAlquileres; 3. VISTAS EN MySQL 4. Qu es una Vista de BD? Una vista de base de datos es un resultado de una consulta SQL de una o varias tablas; tambin se le puede considerar una tabla virtual. Tienen la misma estructura que una tabla: filas y columnas. Slo almacenan la definicin, no los datos. Los datos que se recuperan mediante una consulta a una vista se presentarn igual que los de una tabla. Se especifican a travs de una expresin de consulta (una sentencia SELECT) que la calcula y que puede realizarse sobre una o ms tablas. La mayora de los DBMS soportan la creacin y manipulacin de vistas. 5. Aplicaciones: En general: informacin derivada de consultas complejas a la que se accede con frecuencia. Obtencin de informacin derivada de la relacin entre varias tablas y estadsticas. Como mecanismo de seguridad: creacin de vistas con, nicamente, los atributos de las tablas a los cuales se desea permitir acceder a determinados usuarios. Para la creacin de esquemas externos 6. Sintaxis: Existen 3 comandos principales: Creacin o modificacin de vistas con CREATE VIEW o ALTER VIEW Eliminacin de vistas con DROP VIEW Obtencin de informacin de definicin de una vista (metadatos) con SHOW CREATE VIEW 7. Sintaxis de CREATE VIEW CREATE[OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEWnombre_vista[(columnas)] ASsentencia_select[WITH[CASCADED | LOCAL] CHECK OPTION] Esta sentencia crea una vista nueva o reemplaza una existente si se incluye la clusula OR REPLACE. Las tablas y las vistas comparten el mismo espacio de nombres en la base de datos, por eso, una base de datos no puede contener una tabla y una vista con el mismo nombre. 8. Sintaxis de ALTER VIEW ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEWnombre_vista[(columnas)] ASsentencia_select[WITH[CASCADED | LOCAL] CHECK OPTION] Esta sentencia modifica la definicin de una vista existente. La sintaxis es semejante a la empleada en CREATE VIEW. 9. Sintaxis de SHOW CREATE VIEW SHOW CREATE VIEW nombre_vista Muestra la sentencia CREATE VIEW que se utiliz para crear la vista 10. Sintaxis de DROP VIEW DROP VIEW [IF EXISTS] nombre_vista [, nombre_vista] ... [RESTRICT | CASCADE] DROP VIEW elimina una o ms vistas de la base de datos. Se debe poseer el privilegio DROP en cada vista a eliminar.

2.2 Definicin del esquema de integridad.

La seguridad de los datos implica protegerlos de operaciones indebidas que pongan en peligro su definicin, existencia, consistencia e integridad independientemente de la persona que los accede. Esto se logra mediante mecanismos que permiten estructurar y controlar el acceso y actualizacin de los mismos sin necesidad de modificar o alterar el diseo del modelo de datos; definido de acuerdo a los requisitos del sistema o aplicacin software.

1. Integridad Las restricciones de integridad proporcionan un medio de asegurar que las modificaciones hechas en la base de datos no provoquen la prdida de la consistencia de los datos. En el modelo Entidad relacin existen dos restricciones: Declaracin de claves (Regla de la Entidad) Forma de la relacin (Regla de Integridad Referencial) 2. Claves Primarias Es el mnimo subconjunto no vaco de atributos que permiten identificar en forma unvoca una tupla dentro de la relacin. Si existen varios conjuntos que cumplan esta condicin se denominan llaves candidatas y debe ser seleccionada una de estas como llave primaria. Los atributos que conforman la clave primaria se denominan atributos primos. Esta definicin determina que para un valor llave primaria solo existir una tupla o registro en la tabla. Esta situacin garantiza que no se tendr informacin repetida o discordante para un valor de clave y puede ser usada como control, para evitar la inclusin de informacin inconsistente en las tablas. 3. Integridad Referencial La condicin de Integridad Referencial se refiere a que si un valor que aparece en una relacin para un conjunto de atributos determinado entonces aparece tambin en otra relacin para un cierto conjunto de atributos. es un sistema de reglas que utilizan la mayora de las bases de datos relacionales para asegurarse que los registros de tablas relacionadas son vlidos y que no se borren o cambien datos relacionados de forma accidental produciendo errores de integridad. 4. Cundo se pueden producir errores en los datos? Cuando insertamos una nueva fila en la tabla secundaria y el valor de la clave fornea no existe en la tabla principal. Cuando modificamos el valor de la clave principal de un registro que tiene hijos. Cuando modificamos el valor de la clave fornea, el nuevo valor debe existir en la tabla principal. Cuando queremos borrar una fila de la tabla principal y ese registro tiene hijos.

2.2.1 Validar y verificar integridad de entidad e integridad referencial.

ntegridad en las bases de datos Definicin de una base de datos Una base de datos es una coleccin de datos relacionados. Con la palabra "datos" nos referimos a los hechos conocidos que se pueden grabar y que tienen un significado implcito. Por ejemplo, los nombres, nmeros de telfono y direcciones de un grupo de personas. Esta coleccin de datos relacionados con un significado implcito es una base de datos. Sin embargo, la definicin anterior es muy genrica. No obstante, el uso comn del trmino "Base de datos" es normalmente ms restringido. Una base de datos tiene las siguientes propiedades implcitas:

Una base de datos representa algn aspecto del mundo real, lo que en ocasiones se denomina "minimundo" o "universo de discurso". Los cambios introducidos en el minimundo se reflejan en la base de datos. Una base de datos es una coleccin de datos lgicamente coherente con algn tipo de significado inherente. No es correcto denominar base de datos a un surtido aleatorio de datos. Una base de datos se disea, construye y rellena con datos para un propsito especfico. Dispone de un grupo pretendido de usuarios y algunas aplicaciones preconcebidas en las que esos usuarios estn interesados.

En otras palabras, una base de datos tiene algn origen del que se derivan los datos, algn grado de interaccin con eventos del mundo real y un pblico que est activamente interesado en su contenido. Al objeto de que una base de datos sea en todo momento precisa y fiable, debe ser un reflejo exacto del minimundo que representa; por consiguiente, en la base de datos deben reflejarse los cambios tan pronto como sea posible. Por ltimo cabe destacar que una base de datos puede ser de cualquier tamao y complejidad. Y adems esta puede mantenerse manualmente o de forma automtica. Definicin de DBMS Un DBMS (DataBase Management System) es una coleccin de programas que permite a los usuarios crear y mantener una base de datos. El DBMS es un sistema de software de propsito general que facilita los procesos de definicin, construccin, manipulacin y comparticin de bases de datos entre varios usuarios y aplicaciones. Definir una base de datos implica especificar los tipos de datos, estructuras y restricciones de los datos que se almacenarn en la base de datos. La definicin o informacin descriptiva de una base de datos tambin se almacena en esta ltima en forma de catlogo o diccionario de la base de datos; es lo que se conoce como metadatos. La construccin de la base de datos es el proceso consistente en almacenar los datos en algn medio de almacenamiento controlado por el DBMS. La manipulacin de una base de datos incluye funciones como la consulta de la base de datos para recuperar datos especficos, actualizar la base de datos para reflejar los cambios introducidos en el minimundo y generar informes a partir de los datos. Compartir una base de datos permite que varios usuarios y programas accedan a la base de datos de forma simultnea. Otras funciones importantes ofrecidas por el DBMS son la proteccin de la base de datos y su mantenimiento durante un largo perodo. La proteccin incluye la proteccin del Sistema contra el funcionamiento defectuoso del hardware o el software (cadas) y la proteccin de la seguridad contra el acceso no autorizado o malintencionado. Una gran base de datos tpica puede tener un ciclo de vida de muchos aos, por lo que el DBMS debe ser capaz de mantener el sistema de bases de datos permitiendo que este evolucione segn cambian los requisitos en el tiempo. Definicin de Integridad La integridad en una base de datos se refiere a la correccin y exactitud de la informacin contenida. Una base de datos determinada podra estar sujeta a cualquier cantidad de restricciones de integridad (en general) de una complejidad arbitraria. En la mayora de los sistemas actuales, la verificacin de la integridad se realiza mediante cdigos de procedimientos escritos por los usuarios. Algunos ejemplos de restricciones de integridad seran:

Los dueos de cuentas de ahorro no pueden solicitar un monto mayor de dinero del que hayan juntado hasta la fecha.

Para que un cliente sea considerado especial, deber tener un mnimo de USD 1.000 en compras promedio al ao.

La Integridad es el trmino utilizado para decir que la informacin almacenada tiene calidad. El DBMS tiene que asegurar que los datos se almacenan de acuerdo a las polticas previamente determinadas por el DBA. En otras palabras, el DBMS debe principalmente, a este respecto, comprobar las restricciones de integridad, controlar la correcta ejecucin de las actualizaciones y recuperar la base de datos en caso de prdida. La Integridad conserva la seguridad en un sistema de bases de datos que permite el acceso a mltiples usuarios en tiempos paralelos. Un control de integridad o restriccin es aquel que nos permite definir con precisin el rango de valores vlidos para un elemento y/o las operaciones que sern consideraciones vlidas en la relacin de tales elementos. Reglas de Integridad Una vez definida la estructura de datos del modelo relacional (es decir, una vez que se determina el modelo conceptual) pasamos a estudiar las reglas de integridad que los datos almacenados en dicha estructura deben cumplir para garantizar que son correctos. Al definir cada atributo sobre un dominio se impone una restriccin sobre el conjunto de valores permitidos para cada atributo. A este tipo de restricciones se les denomina restricciones de dominio. Hay adems dos reglas de integridad muy importantes que son restricciones que se deben cumplir en todas las bases de datos relacionales y en todos sus estados o instancias (las reglas se deben cumplir todo el tiempo). Estas reglas son la de integridad de entidades y la de integridad referencial. Antes de definirlas es preciso conocer el concepto de nulo y dominio. Nulo: Es un indicador que le dice al usuario que el dato falta o no es aplicable. Por conveniencia, un dato que falta normalmente se dice que tiene valor Nulo, pero el valor de Nulo no es un valor de dato real. En vez de ello es una seal o un recordatorio de que el valor falta o es desconocido. Dominio: Posibles valores que puede tener un campo. Un dominio no es ms que un tipo de dato; posiblemente un tipo simple definido por el sistema o por el usuario. El Dominio de un atributo define los valores posibles que puede tomar este atributo. Adems de los Dominios "naturales", usados como tipos de datos, el administrador del sistema puede generar sus propios dominios definiendo el conjunto de valores permitidos. Esta caracterstica, usada en forma correcta, se convierte en mecanismo de control, restriccin y validacin de los datos a ingresar. Reglas de Integridad - Dominio Un Dominio de valores posibles puede estar asociado a cada atributo. Los lmites de Dominio son la forma ms elemental de restricciones de Integridad. Son fciles de probar en el sistema siempre que se introduce un nuevo dato en el sistema. Por ejemplo: Tipos de datos en SQL Dato Longitud Descripcin Bit 1 byte Valores true/false Byte 1 byte Entero entre 0 y 255 Counter 4 bytes Campo ID (long) Currency 8 bytes Numrico Datetime 8 bytes Fecha Text 1 byte/caracter De 0 a 255 caracteres

Una definicin bien adecuada de restricciones de dominio no slo nos permite probar valores insertados en la base de datos. Tambin nos permite probar consultas para asegurarnos de que las comparaciones que se hacen tienen sentido. Reglas de Integridad - Relacin Las reglas de Integridad de relacin son restricciones que se deben cumplir en todas las bases de datos relacionales y en todos sus estados o instancias, es decir, se deben cumplir todo el tiempo. Existen bsicamente dos reglas de Integridad asociadas con el modelo relacional: la Integridad de Entidad y la Integridad Referencial. Estas dos reglas son generales y tienen relacin con las llaves primarias y forneas. Integridad de Entidad Las restricciones de entidades aseguran la integridad de las entidades que son modeladas por el sistema. En el nivel ms simple, la existencia de una clave principal es una restriccin de entidad que impone la regla "cada entidad debe estar identificada de forma nica". En esta no est permitido que algn componente de la clave primaria acepte valores nulos. Las razones de esta regla son:

Las tuplas en las relaciones base representan entidades en la realidad. Las entidades en la realidad son identificables por definicin. Sus contrapartes en la base de datos tambin deben ser identificables. Los valores de la clave primaria sirven como identificadores en la base de datos. Los valores de clave primaria no pueden ser nulos.

Integridad Referencial La regla de Integridad referencial define que la base de datos no debe contener valores de claves forneas sin concordancia. Esta regla se aplica a las claves forneas. Si en una relacin hay alguna clave fornea, entonces sus valores deben coincidir con los valores de la clave primaria a la que hace referencia, o bien, debe ser completamente nulo.

Esta regla impide que, por ejemplo, en una base de datos acadmica, exista un profesor en un departamento inexistente, o un curso impartido por un profesor inexistente. Hemos de recordar que slo los productos puramente relacionales implementan realmente estas dos reglas generales de Integridad relacional. En otros, destinados al mercado domstico (un Microsoft Access por ejemplo),

estas incongruencias son admitidas sin problemas. As que cuando se realiza una operacin ilegal, existen dos opciones: rechazar la operacin ilegal o bien aceptar la operacin y realizar operaciones adicionales compensatorias que conduzcan a volverla legal. Por lo tanto, para cada clave fornea en la base de datos habr que contestar a dos preguntas: 1. Regla de los nulos: tiene sentido que la clave fornea acepte nulos? 2. Regla de borrado: Qu ocurre si se intenta borrar la tupla referenciada por la clave fornea? o Restringir: no se permite borrar la tupla referenciada. o Propagar: se borra la tupla referenciada y se propaga el borrado a las tuplas que hacen referencia mediante la clave fornea. o Anular: se borra la tupla referenciada y las tuplas que la referenciaban indicando un valor nulo a la clave fornea (slo si acepta nulos).

La Integridad referencial tambin vigila que se cumplan las siguientes reglas:


No se podr introducir un valor en la tabla relacionada si antes no ha sido introducida en la tabla principal. No se puede eliminar un registro de una tabla principal si existen registros coincidentes en la tabla relacionada. No se puede cambiar un valor de la clave primaria en la tabla principal si el registro tiene registros relacionados.

Mecanismos de Vistas para la implementacin de Integridad Las vistas son expresiones del lgebra relacional con un nombre determinado. Por ejemplo, veamos la tabla siguiente que contiene informacin sobre los vendedores de una ferretera.

Supongamos que el dueo del negocio quiere conocer a los mejores vendedores para premiarlos con un bono especial al final del ao. Para hacerlo, l considera un buen vendedor a aquel que iguale o supere los $100.000 en ventas. Utilizando una vista en SQL podramos decir: var BUEN_VENDEDOR view (V where venta >= 100000) { Clave, Nombre, Ciudad} Al ejecutar esta instruccin, la expresin del lgebra relacional no es evaluada, sino que es recordada por el sistema de tal forma que para el usuario es como si en realidad tuviera una tabla denominada BUEN_VENDEDOR con los registros y atributos que se muestran a continuacin:

En otras palabras, una vista es una ventana a travs de la cual se puede consultar o cambiar informacin de la tabla a la que est asociada. Esto, claro est, en relacin con los privilegios que posea el usuario de la base de datos. Si el usuario solamente tiene privilegios de lectura en una entidad, en la vista tampoco podr agregar o modificar informacin; si el usuario no tiene acceso a determinadas tablas, tampoco podr crear una vista con informacin proveniente de las mismas. Las vistas tienen la misma estructura que una tabla: filas y columnas. La nica diferencia es que slo se almacena de ellas la definicin, no los datos. Los datos que se recuperan mediante una consulta en una vista se presentarn igual que los de una tabla. De hecho, si no se sabe que se est trabajando con una vista, nada hace suponer que es as. Al igual que sucede con una tabla, se pueden insertar, actualizar, borrar y seleccionar datos. Esto significa que una vista no contiene datos duplicados de una tabla de la base de datos. No tiene absolutamente ningn dato, pues como ya se mencionaba, no es una tabla real. Es decir, se percibe como una tabla virtual. Por qu utilizar vistas?

Las vistas pueden proporcionar un nivel adicional de seguridad. Las vistas permiten ocultar la complejidad de los datos. Una base de datos se compone de muchas tablas. La informacin de dos o ms tablas puede recuperarse utilizando una combinacin de tablas, y estas combinaciones pueden resultar muy confusas. Creando una vista se hace visualmente todo ms simple. Las vistas ayudan a mantener unos nombres razonables para las consultas. Por ejemplo, en lugar de la instruccin:

Select Clave, Nombre, Ciudad from Vendedores where Venta > 100000 Se utiliza slo la frase: Buen_Vendedor

En las vistas remotas y en las vistas sin conexin puede crear reglas a nivel de campo y de registro para validar datos introducidos localmente antes de enviarlos al origen de datos remoto. Puesto que el objetivo de estas reglas es impedir que se enve al origen de datos cualquier dato que pueda ser rechazado por las reglas de Integridad del servidor, debe reproducir las reglas del origen de datos en las reglas que se crean para la vista remota. Por ejemplo, si la clave de un vendedor est formada por cuatro dgitos y as lo establecen las restricciones de Integridad de la tabla Vendedores, entonces en la vista, cuando un vendedor se d de alta, tambin se deber cumplir con esa restriccin.

Existen funciones en los DBMS para crear reglas para las vistas, y es precisamente as como una vista puede implementarse para garantizar la Integridad de la base de datos; tambin, mediante las vistas, es posible determinar si existen datos referenciados que pudieran comprometer la Integridad relacional.

2.2.2 Creacin de disparadores (Triggers).

CONCEPTO Un disparador define una accin que la base de datos debe llevar a cabo cuando se produce algn suceso relacionado con la misma. Los disparadores (triggers) pueden utilizarse para completar la integridad referencial, tambin para imponer reglas de negocio complejas o para auditar cambios en los datos. El cdigo contenido en un disparador, denominado cuerpo del disparador, est formado por bloques PL/SQL. La ejecucin de disparadores es transparente al usuario. Para crear un disparador (trigger) en una tabla, el usuario con el que accedamos a Oracle deber ser propietario de la misma, teniendo as el privilegio ALTER para la tabla ALTER ANY TABLE. Adems, dicho usuario, debe disponer del privilegio CREATE TRIGGER. Existen varios tipos de disparadores, dependiendo del tipo de transaccin de disparo y el nivel en el que se ejecuta el disparador (trigger): 1.- Disparadores de nivel de fila: se ejecutan una vez para cada fila afectada por una instruccin DML. Los disparadores de nivel de fila se crean utilizando la clusula for each row en el comando create trigger. 2.- Disparadores de nivel de instruccin: se ejecutan una vez para cada intruccin DML. Por ejemplo, si una nica intruccin INSERT inserta 500 filas en una tabla un disparador de nivel de instruccin para dicha tabla slo se ejecutar una vez. Los disparadores de nivel de instruccin son el tipo predeterminado que se crea con el comando create trigger. 3.- Disparadores Before y After: puesto que los disparadores son ejecutados por sucesos, puede establecerse que se produzcan inmediatamente antes (before) o despus (after) de dichos sucesos. 4.- Disparadores Instead Of: puede utilizar INSTEAD OF para indicar a Oracle lo que tiene que hacer en lugar de realizar las acciones que invoca el disparador. Por ejemplo, podra usar un disparador INSTEAD OF en una vista para gestionar las inserciones en una tabla o para actualizar mltiples tablas que son parte de una vista. 5.- Disparadores de esquema: puede crear disparadores sobre operaciones en el nivel de esquema tales como create table, alter table, drop table, audit, rename, truncate y revoke. Puede incluso crear disparadores para impedir que los usuarios eliminen sus propias tablas. En su mayor parte, los disparadores de nivel de esquema proporcionan dos capacidades: impedir operaciones DDL y proporcionar una seguridad adicional que controle las operaciones DDL cuando star se producen. 6.- Disparadores en nivel de base de datos: puede crear disparadores que se activen al producirse sucesos de la base de datos, incluyendo errores, inicios de sesin, conexiones y desconexiones. Puede utilizar este tipo de disparador para automatizar el mantenimiento de la base de datos o las acciones de auditora.

EJEMPLO DE CREACIN DE TRIGGER (DISPARADOR) DE NIVEL DE FILA 1.- En primer lugar abriremos la Consola de Oracle Enterprise Manager:

seleccionaremos "Iniciar en Modo Autnomo" y pulsaremos en "Aceptar":

Selecionaremos la Base de Datos del rbol e introduciremos un usuario y contrasea con permisos suficientes para crear trigger en la tabla de ejemplo (en nuestro caso accederemos como "system"):

2.- En el rbol accederemos a "Esquema" y a continuacin seleccionaremos el usuario propietario de la tabla en la que crearemos el trigger, en nuestro caso "ALONSO". Despus pulsaremos en "Tablas", seleccioremos la tabla a la que queramos aplicarle el disparador y, sobre la carpeta "Disparadores" pulsaremos con el botn derecho del ratn, nos aparecer un men emergente, pulsaremos "Crear...":

3.- En "Nombre" introduciremos el nombre del disparador y en "Cuerpo del Disparador" introduciremos el cdigo PL/SQL que queramos que se ejecute, en nuestro caso queremos que el disparador aada un registro otra tabla llamada "resultadodisparador" cuando el valor que introduzca el usuario en el campo CAMPO2 de la tabla PRUEBA (despus de insertar una nueva fila) sea superior a 1000:

En la pestaa "Evento" de la ventana de "Crear Disparador" marcaremos "Disparador en Tabla", marcaremos "Despus" y marcaremos tambin en "Arrancar Disparador:" "Insertar":

Pulsaremos en "Crear" y, si no ha habido errores el el cdigo PL/SQL nos aparecer un mensaje como este "Disparador se ha creado correctamente":

Nota: tambin se pueden crear disparadores sin necesidad de utilizar la interfaz grfica (Consola de Oracle Enterprise Manager). Se pueden crear mediante SQL. La consulta SQL que crea el disparador anterior es la siguiente:

CREATE OR REPLACE TRIGGER "ALONSO"."INSERCIONNUMEROMAYOR1000" AFTER

INSERT ON "ALONSO"."PRUEBA" FOR EACH ROW WHEN (new.CAMPO2 > 1000)

BEGIN

insert into resultadodisparador (fecha, aviso, tabla)

values

(Sysdate, 'Registro con CAMPO2 superior a 1000',

'PRUEBA');

END;

Con este disparador, cuando un usuario inserte un registro en la tabla PRUEBA cuyo CAMPO2 tenga un valor superior a 1000 se insertar automticamente (transparente para el usuario) otro registro en la tabla "resultadodisparador" con la fecha de la insercin (sysdate), el aviso "Registro con CAMPO2 superior a 1000" y el nombre de la tabla origen del disparador "PRUEBA". Obviamente, para que este disparador funcione correctamente debern existir las tablas PRUEBA (origen del disparador) y "resultadodisparador" (donde se insertar el registro si se cumple la condicin CAMPO2 > 1000. La consulta SQL necesaria para crear la tabla "PRUEBA":

CREATE TABLE "ALONSO"."PRUEBA" (

"CAMPO1" VARCHAR2(10) NOT NULL,

"CAMPO2" NUMBER)

La consulta SQL necesaria para crear la tabla "resultadodisparador":

CREATE TABLE "ALONSO"."RESULTADODISPARADOR" ("FECHA" DATE NOT

NULL, "AVISO" VARCHAR2(100) NOT NULL, "TABLA" VARCHAR2(50)

NOT NULL)

En nuestro ejemplo estamos trabajando en todo momento utilizando el usuario ALONSO para la creacin del disparador y de las tablas, puesto que es el propietario de dichos objetos.

Posibles errores: Si tras crear el disparador aparece con un icono rojo con una X en medio es porque el cdigo PL/SQL no es correcto:

En ocasiones Oracle introduce algn "END" y ";" de ms al final. Para solucionarlo es suficiente con quitar los "END" y ";" sobrantes y volver a compilar y guardar el disparador hasta que quede con el siguiente icono:

Para comprobar que el disparador funciona adecuadamente, realizamos una insercin en la tabla PRUEBA: insert into alonso.prueba values ('PRUEBA 1', 10) con esta insercin el disparador no se ejecutar pues CAMPO2 es inferior a 1000, para comprobarlo hacemos un SELECT a la tabla RESULTADODISPARADOR (no nos debera devolver ningn registro): select * from alonso.resultadodisparador Ahora realizamos una insercin en la tabla PRUEBA con el valor del CAMPO2 superior a 1000: insert into alonso.prueba values ('PRUEBA 2', 1500) Ahora comprobamos con un SELECT que la tabla "resultadodisparador" tiene una nueva fila: select * from alonso.resultadodisparador

AjpdSoft Administracin BD

ALGUNAS CONSULTAS SQL PARA MODIFICAR EL ESTADO DE UN TRIGGER Para eliminar un trigger mediante SQL: drop trigger nombretrigger Para deshabilitar temporalmente un trigger (dejar de realizar su funcin): alter trigger nombretrigger disable Para habilitar un trigger deshabilitado: alter trigger nombretrigger enable Para deshabilitar todos los triggers asociados a una tabla: alter table nombretabla disable all triggers Para habilitar todos los triggers asociados a una tabla: alter table nombretabla enable all triggers

2.2.3 Creacin de procedimientos almacenados.

Puede crear procedimientos almacenados mediante la instruccin CREATE PROCEDURE de Transact-SQL. Antes de crearlos, tenga en cuenta lo siguiente:

Las instrucciones CREATE PROCEDURE no se pueden combinar con otras instrucciones SQL en el mismo lote. Para crear procedimientos, debe disponer del permiso CREATE PROCEDURE en la base de datos y del permiso ALTER en el esquema donde se crea el procedimiento. En procedimientos almacenados CLR, debe ser propietario del ensamblado al que se hace referencia en <method_specifier> o disponer del permiso REFERENCES en dicho ensamblado. Los procedimientos almacenados son objetos de mbito de esquema y sus nombres deben ajustarse a las reglas para los identificadores. Slo puede crear un procedimiento almacenado en la base de datos actual.

Cuando cree un procedimiento almacenado, deber especificar lo siguiente:

Todos los parmetros de entrada y de salida del lote o del procedimiento que realiza la llamada. Las instrucciones de programacin que realicen operaciones en la base de datos, incluidas las llamadas a otros procedimientos. El valor de estado devuelto al lote o al procedimiento que realiza la llamada, a fin de indicar que la operacin se ha realizado correctamente o que se ha producido un error (y el motivo del mismo). Las instrucciones de control de errores necesarias para detectar y administrar posibles errores. Las funciones de control de errores tales como ERROR_LINE y ERROR_PROCEDURE se pueden especificar en el procedimiento almacenado.

Se recomienda que no cree procedimientos almacenados con el prefijo sp_. SQL Server utiliza el prefijo sp_ para indicar procedimientos almacenados del sistema. El nombre que elija puede entrar en conflicto con algn procedimiento futuro del sistema. Si la aplicacin utiliza referencias de nombre completo que no son de esquema y el nombre de su procedimiento entra en conflicto con un procedimiento del sistema, la aplicacin generar un error ya que el nombre se enlaza con el procedimiento del sistema, no con el suyo. Un procedimiento almacenado definido por el usuario, con el mismo nombre que un procedimiento almacenado del sistema y que no est calificado o se encuentre en el esquema dbo no se ejecutar nunca; siempre se ejecutar el procedimiento almacenado del sistema. En el ejemplo siguiente se muestra este comportamiento.

USE AdventureWorks2008R2; GO CREATE PROCEDURE dbo.sp_who AS SELECT FirstName, LastName FROM Person.Person; GO EXEC sp_who; EXEC dbo.sp_who; GO

DROP PROCEDURE dbo.sp_who; GO Si se utiliza un calificador de esquema explcito tambin se consigue una ligera mejora del rendimiento. La resolucin de nombres es un poco ms rpida si Motor de base de datos no tiene que buscar en varios esquemas para encontrar el procedimiento. Para obtener ms informacin, vea Ejecutar procedimientos almacenados (motor de base de datos).

De forma similar a las tablas temporales, los procedimientos almacenados temporales (tanto privados como globales) se pueden crear agregando los prefijos # y ## delante del nombre del procedimiento. # denota un procedimiento almacenado temporal local; ## denota un procedimiento almacenado temporal global. Estos procedimientos dejan de existir cuando se cierra SQL Server. Los procedimientos almacenados temporales son tiles para conectarse a versiones anteriores de SQL Server que no permiten volver a utilizar los planes de ejecucin para instrucciones o lotes de Transact-SQL. Las aplicaciones que se conecten a SQL Server 2000 y versiones posteriores deben utilizar el procedimiento almacenado del sistema sp_executesql, en vez de procedimientos almacenados temporales. Slo puede ejecutar un procedimiento temporal local la conexin que lo cre; el procedimiento se elimina automticamente cuando se cierra la conexin. Cualquier conexin puede ejecutar un procedimiento almacenado temporal global. ste existe hasta que se cierra la conexin que el usuario utiliz para crearlo, y hasta que se completan todas las versiones del procedimiento que se estuvieran ejecutando mediante otras conexiones. Una vez cerrada la conexin que se utiliz para crear el procedimiento almacenado temporal, ste ya no se puede volver a ejecutar. Slo podrn finalizar las conexiones que hayan empezado a ejecutar el procedimiento almacenado. Si se crea directamente en la base de datos tempdb un procedimiento almacenado sin el prefijo # o ##, el procedimiento en cuestin se eliminar automticamente cuando se cierre SQL Server, ya que tempdb se vuelve a crear cada vez que se inicia SQL Server. Los procedimientos creados directamente en tempdb existen incluso despus de haber finalizado la conexin en que se crearon.

Nota Nota Utilizar excesivamente los procedimientos almacenados temporales puede causar conflictos en las tablas del sistema de tempdb y afectar de forma negativa al rendimiento. Se recomienda que utilice en su lugar sp_executesql. El procedimiento sp_executesql no almacena datos en las tablas del sistema y, por tanto, evita el problema. Los procedimientos almacenados CLR no se pueden crear como procedimientos almacenados temporales.

A. Utilizar un procedimiento sencillo con una instruccin SELECT compleja El siguiente procedimiento almacenado devuelve todos los empleados (nombre y apellidos), sus puestos y los nombres de sus departamentos a partir de una vista. Este procedimiento almacenado no utiliza ningn parmetro.

B. Utilizar un procedimiento simple con parmetros El siguiente procedimiento almacenado slo devuelve el empleado especificado (nombre y apellidos), su puesto y el nombre de su departamento a partir de una vista. Este procedimiento almacenado acepta coincidencias exactas de los parmetros pasados.

C. Utilizar un procedimiento simple con parmetros comodn El siguiente procedimiento almacenado slo devuelve los empleados especificados (nombre y apellidos), sus puestos y los nombres de sus departamentos a partir de una vista. Este patrn de procedimiento almacenado coincide con los parmetros pasados o, si stos no se proporcionan, utiliza los valores predeterminados (apellidos que comienzan por la letra D).

D. Utilizar parmetros OUTPUT El siguiente ejemplo crea el procedimiento almacenado uspGetList, que devuelve una lista de productos con precios que no superan un importe especificado. El ejemplo muestra la utilizacin de varias instrucciones SELECT y varios parmetros OUTPUT. Los parmetros OUTPUT permiten a un procedimiento externo, un proceso por lotes o ms de una instruccin Transact-SQL tener acceso a un conjunto de valores durante la ejecucin del procedimiento. 2.3 Definicin del esquema de seguridad. SEGURIDAD 4.1. Concepto El objetivo es proteger la Base de Datos contra accesos no autorizados. Se llama tambin privacidad. INCLUYE ASPECTOS DE:

Aspectos legales, sociales y ticos Polticas de la empresa, niveles de informacin publica y privada Controles de tipo fsico, acceso a las instalaciones Identificacin de usuarios: voz, retina del ojo, etc. Controles de sistema operativo

En relacin al SGBD, debe mantener informacin de los usuarios, su tipo y los accesos y operaciones permitidas a stos. TIPOS DE USUARIOS: DBA, estn permitidas todas las operaciones, conceder privilegios y establecer usuarios

Usuario con derecho a crear, borrar y modificar objetos y que adems puede conceder privilegios a otros usuarios sobre los objetos que ha creado. Usuario con derecho a consultar, o actualizar, y sin derecho a crear o borrar objetos.

Privilegios sobre los objetos, aadir nuevos campos, indexar, alterar la estructura de los objetos, etc. Los SGBD tienen opciones que permiten manejar la seguridad, tal como GRANT, REVOKE, etc. Tambin tienen un archivo de auditoria en donde se registran las operaciones que realizan los usuarios. MEDIDAS DE SEGURIDAD

Fsicas: Controlar el acceso al equipo. Tarjetas de acceso, etc Personal: Acceso slo del personal autorizado. Evitar sobornos, etc. SO: Seguridad a nivel de SO SGBD: Uso herramientas de seguridad que proporcione el SGBD. Perfiles de usuario, vistas, restricciones de uso de vistas, etc.

Un SMBD cuenta con un subsistema de seguridad y autorizacin que se encarga de garantizar la seguridad de porciones de la BD contra el acceso no autorizado.

Identificar y autorizar a los usuarios: uso de cdigos de acceso y palabras claves, exmenes, impresiones digitales, reconocimiento de voz, barrido de la retina, etc Autorizacin: usar derechos de acceso dados por el terminal, por la operacin que puede realizar o por la hora del da. Uso de tcnicas de cifrado: para proteger datos en Base de Datos distribuidas o con acceso por red o internet. Diferentes tipos de cuentas: en especial del ABD con permisos para: creacin de cuentas, concesin y revocacin de privilegios y asignacin de los niveles de seguridad. Manejo de la tabla de usuarios con cdigo y contrasea, control de las operaciones efectuadas en cada sesin de trabajo por cada usuario y anotadas en la bitcora, lo cual facilita la auditora de la Base de Datos.

Discrecional: Se usa para otorgar y revocar privilegios a los usuarios a nivel de archivos, registros o campos en un modo determinado (consulta o modificacin). El ABD asigna el propietario de un esquema, quien puede otorgar o revocar privilegios a otros usuarios en la forma de consulta (select), modificacin o referencias. A travs del uso de la instruccin grant option se pueden propagar los privilegios en forma horizontal o vertical. Ejemplo: grant select on Empleado to cdigoUsuario revoke select on Empleado from cdigoUsuario Obligatoria: sirve para imponer seguridad de varios niveles tanto para los usuarios como para los datos. El problema de la seguridad consiste en lograr que los recursos de un sistema sean, bajo toda circunstancia, utilizados para los fines previstos. Para eso se utilizan mecanismos de proteccin. Los sistemas operativos proveen algunos mecanismos de proteccin para poder implementar polticas de seguridad. Las polticas definen qu hay que hacer (qu datos y recursos deben protegerse de quin; es un problema de administracin), y los mecanismos determinan cmo hay que hacerlo. Esta separacin es importante en trminos de flexibilidad, puesto que las polticas

pueden variar en el tiempo y de una organizacin a otra. Los mismos mecanismos, si son flexibles, pueden usarse para implementar distintas polticas. Un aspecto importante de la seguridad es el de impedir la prdida de informacin, la cual puede producirse por diversas causas: fenmenos naturales, guerras, errores de hardware o de software, o errores humanos. La solucin es una sola: mantener la informacin respaldada, de preferencia en un lugar lejano. Otro aspecto importante de la seguridad, es el que tiene que ver con el uso no autorizado de los recursos: Lectura de datos. Modificacin de datos. Destruccin de datos. Uso de recursos: ciclos de CPU, impresora, almacenamiento. Principios bsicos para la seguridad Suponer que el diseo del sistema es pblico. El defecto debe ser: sin acceso. Chequear permanentemente. Los mecanismos de proteccin deben ser simples, uniformes y construidos en las capas ms bsicas del sistema. Los mecanismos deben ser aceptados sicolgicamente por los usuarios. SEGURIDAD: Fallos lgicos o fsicos que destruyan los datos. - Evitar prdidas de datos por fallos hardware o software (fallo disco, etc.). Normalmente suelen ser fallos de disco o prdida de memoria RAM. - Aparte del punto de vista de los SGBD, intervienen otros niveles (ej: discos replicados, etc.) - A pesar de estos posibles fallos la base de datos debe quedar siempre en un estado consistente. El concepto de seguridad, segn Date (1992), se puede entender como la proteccin de los datos contra acceso, alteracin o destruccin no autorizados. LAS TRES PRINCIPALES CARACTERSTICAS DE LA SEGURIDAD Que se deben mantener en una base de datos son la confidencialidad, la integridad y la disponibilidad de la informacin. - Los datos contenidos en una Base de Datos pueden ser individuales o de una Organizacin. Sean de un tipo o de otro, a no ser que su propietario lo autorice, no deben ser desvelados. Si esta revelacin es autorizada por dicho propietario la confidencialidad se mantiene. Es decir, asegurar la confidencialidad significa prevenir/ detectar/ impedir la revelacin impropia de la informacin. Los siguientes siete requisitos son esenciales para la seguridad de la base de datos:

La base de datos debe ser protegida contra el fuego, el robo y otras formas de destruccin. Los datos deben ser reconstruibles, porque por muchas precauciones que se tomen, siempre ocurren accidentes. Los datos deben poder ser sometidos a procesos de auditoria. La falta de auditoria en los sistemas de computacin ha permitido la comisin de grandes delitos. El sistema debe disearse a prueba de intromisiones. Los programadores, por ingeniosos que sean, no deben poder pasar por alto los controles. Ningn sistema puede evitar de manera absoluta las intromisiones malintencionadas, pero es posible hacer que resulte muy difcil eludir los controles. El sistema debe tener capacidad para verificar que sus acciones han sido autorizadas. Las acciones de los usuarios deben ser supervisadas, de modo tal que pueda descubrirse cualquier accin indebida o errnea.

SERVICIOS DE SEGURIDAD Existen varios servicios y tecnologas relacionadas con la seguridad. Accede a cada una de ellas para conocer qu tecnologas son las ms interesantes: Autenticacin: Se examinan las capacidades de logon nico a la red, autenticacin y seguridad.

Adems, se proporciona informacin sobre el interfaz Security Support Provider Interface (SSPI) para obtener servicios de seguridad integrados del sistema operativo. Kerberos es el protocolo por defecto en Windows 2000 para autenticacin en red. Sistema de Archivos Encriptado: El Sistema de Archivos Encriptado (Encrypted File System EFS) proporciona la tecnologa principal de encriptacin de archivos para almacenar archivos del sistema de archivos NTFS de Windows NT encriptados en disco. Seguridad IP: Windows IP Security, del Internet Engineering Task Force, proporciona a los administradores de redes un elemento estratgico de defensa para la proteccin de sus redes. Servicios de seguridad en Windows 2000: se examinan los procedimientos relacionados con la gestin de cuentas, autenticacin de red a nivel corporativo, as como el Editor de Polticas de Seguridad. Tarjetas Inteligentes: se examinan los procesos de autenticacin utilizando tarjetas inteligentes y los protocolos, servicios y especificaciones asociadas. Tecnologas de Clave Pblica: se revisa la infraestructura de clave pblica incluida en los sistemas operativos de Microsoft y se proporciona informacin sobre criptografa. Un SMBD cuenta con un subsistema de seguridad y autorizacin que se encarga de garantizar la seguridad de porciones de la BD contra el acceso no autorizado.

Identificar y autorizar a los usuarios: uso de cdigos de acceso y palabras claves, exmenes, impresiones digitales, reconocimiento de voz, barrido de la retina, etc. Autorizacin: usar derechos de acceso dados por el terminal, por la operacin que puede realizar o por la hora del da. Uso de tcnicas de cifrado: para proteger datos en BD distribuidas o con acceso por red o internet. Diferentes tipos de cuentas: en especial la del ABD con permisos para: creacin de cuentas, concesin y revocacin de privilegios y asignacin de los niveles de seguridad. Manejo de la tabla de usuarios con cdigo y contrasea, control de las operaciones efectuadas en cada sesin de trabajo por cada usuario y anotadas en la bitcora, lo cual facilita la auditora de la BD.

Discrecional: se usa para otorgar y revocar privilegios a los usuarios a nivel de archivos, registros o campos en un modo determinado (consulta o modificacin). El ABD asigna el propietario de un esquema, quien puede otorgar o revocar privilegios a otros usuarios en la forma de consulta (select), modificacin o referencias. A travs del uso de la instruccin grant option se pueden propagar los privilegios en forma horizontal o vertical. Ejemplo: grant select on Empleado to cdigoUsuario revoke select on Empleado from cdigoUsuario. Obligatoria: sirve para imponer seguridad de varios niveles tanto para los usuarios como para los datos. Problemas de seguridad. La informacin de toda empresa es importante, aunque unos datos lo son ms que otros, por tal motivo se debe considerar el control de acceso a los mismos, no todos los usuarios pueden visualizar alguna informacin, por tal motivo para que un sistema de base de datos sea confiable debe mantener un grado de seguridad que garantice la autenticacin y proteccin de los datos. En un banco por ejemplo, el personal de nminas slo necesita ver la parte de la base de datos que tiene informacin acerca de los distintos empleados del banco y no a otro tipo de informacin.

2.3.1 Creacin de usuarios de la base de datos.

http://www.youtube.com/watch?v=tCHw_xBvnSM

2.4.2 Recuperacin a partir de la bitcora. RECUPERACION DE TRANSACCIONES Una transaccin es una unidad lgica de trabajo. Supongamos, que la tabla P, la de partes, contiene un campo adicional CANTTOTAL que representa la cantidad total enviada de la parte en cuestin; el valor de CANTTOTAL para una parte dada es igual a la suma de todos los valores SP.CANT de todos los registros SP correspondientes a esa parte. Consideremos ahora la siguiente secuencia de operaciones, cuya intencin es aadir un nuevo envo (S5, P1, 1000) a la BD: EXEC SQL WHENEVER SQLERROR GO TO ANUAR; EXEC SQL INSERT INTO SP (S#, P#, CANT) VALUES (S5, P1, 1000); EXEC SQL UPDATE P SET CANTTOTAL = CANTTOTAL + 100 WHERE P# = P1; EXEC SQL COMMIT; GO TO TERMINAR; ANULAR: EXEC SQL ROLLBACK; TERMINAR: RETURN; La proposicin INSERT (insertar) agrega el nuevo envo a la tabla SP, la proposicin UPDATE (actualizar) pone al da en forma apropiada el campo CANTOTAL de la parte P1. Esta operacin implica en realidad 2 modificaciones de la BD. La BD ni siquiera es consistente entre esas 2 modificaciones; viola en forma temporal el requerimiento segn el cual el valor de CANTTOTAL para la parte P1 debe ser igual a la suma de todos los valores SP.CANT correspondientes a esa parte. En una situacin ideal, nos gustara tener una garanta absoluta de que se realizarn las 2 modificaciones. Por desgracia, es imposible ofrecer tal garanta; siempre existe la posibilidad de una falla y, adems, de una falla en el peor momento posible. Pero si el sistema maneja el procesamiento de transacciones, podr ofrecer lo ms cercano a esa garanta. Garantizar que si la transaccin ejecuta algunas modificaciones y despus presenta una falla antes de que llegue el trmino normal de la transaccin, se anularn esas modificaciones. As, o bien la transaccin se lleve a cabo en su totalidad, o se cancela en su totalidad. De esta manera puede lograrse que una secuencia de operaciones, la cual en esencia no es atmica, aparente serlo desde un punto de vista externo. El componente del sistema encargado de lograr la atomicidad se conoce como manejador de transacciones, y las operaciones COMMIT (comprometer) y ROLLBACK (retroceder) son la clave de su funcionamiento:

La operacin COMMIT seala el trmino exitoso en la transaccin: le dice al manejador de transacciones que se ha finalizado l con xito una unidad lgica de trabajo, que la BD est de nuevo en un estado consistente, y que pueden comprometer, todas las modifi caciones efectuadas por esa unidad de trabajo. La operacin ROLLBACK, en cambio, seala el trmino no exitoso de la transaccin: dice al manejador de transacciones que algo sali mal, que la BD podra estar en un estado inconsistente, y que todas las modificaciones efectuadas hasta el momento por la unidad lgica del trabajo deben retroceder o anularse.

2.4.3 Respaldar bases de datos.

Respaldar bases de datos MySQL A pesar de no ser comunes los errores en bases de datos MySQL, la omision de un respaldo puede ocasionar severas perdidas de informacion para su empresa o negocio. Le recomendamos realizar respaldos regularmente de acuerdo a la cantidad de informacion y periodicidad de actualizacion de la misma. 1.- Ingrese a su panel de control desde la direccion web https://www.su-dominio.com:8443, elija idioma espaol y luego coloque su usuario (login) y password tal como se lo proporcionamos por correo electronico al activar su plan de web hosting. 2.- Haga click sobre el nombre de dominio al que pertenece la base de datos que quiere respaldar, que esta en la seccion Dominios.

Respaldar una base de datos MySQL

3.- Pulse sobre el icono Bases de datos que se encuentra en la seccion Servicios.

Respaldar una base de datos MySQL

4.- Haga click sobre el nombre de la base de datos que quiere respaldar y luego sobre el icono Adm. Web-BD. Tenga en cuenta que la interfase web de administracion (phpmyadmin) a traves de la cual realizara su respaldo se abre en una ventana emergente por lo que debera deshabilitar el bloqueador de ventanas emergentes de su navegador web (Internet Explorer, Mozilla Firefox, Opera, etc.). Para poder utilizar este administrador de bases de datos debe de haber como minimo un usuario creado. Si hay varios usuarios, el primero de la lista sera seleccionado por defecto para administrar la base de datos.

Respaldar una base de datos MySQL

5.- Para realizar la copia de seguridad de su base de datos haga click en el icono Exportar que se encuentra en la columna izquierda bajo el encabezado MySQL. (Puede consultar la documentacion oficial (en ingles) de phpmyadmin a traves del icono ? que se encuentra en la tercera posicion del menu lateral de la izquierda.)

Respaldar una base de datos MySQL

6.- Seleccione las caracteristicas deseadas segun los requerimientos de su respaldo: Seleccione SQL si desea las opciones de inserts directos a bases de datos o bien CSV para datos de MS Excel si desea aplicar su respaldo en una tabla de modificacion externa como "Excel". Le sugerimos la seleccion del resto de las opciones como se muestra en la siguiente pantalla.

Respaldar una base de datos MySQL

7.- Con esto su base de datos habra quedado respaldada. Le recomendamos guardar los archivos en un lugar seguro y conservar, como minimo, los dos ultimos. Los demas podra borrarlos para ahorrar espacio en disco a menos que sean requeridos como historial. 2.4.4 Recuperar bases de datos. Recuperacin base de datos SQL

Microsoft SQL Server es un paquete de software para empresas que gestiona los datos mediante una base de datos que trabaja en modo cliente-servidor. Hay cuatro aspectos fundamentales de un servidor SQL (Structured Query Language):

1. 2. 3. 4.

Archivos de bases de datos Concepto de base de datos relacional Sistema cliente-servidor Sistema de gestin de bases de datos (DBMS)

Por archivo de base de datos nos referimos fsicamente al archivo que contiene los datos que el servidor SQL gestiona. Pero el archivo es ms que un contenedor de datos. Los archivos SQL o MDF son extremadamente complejos y con una gran organizacin interna. El archivo est diseado

de modo que el servidor SQL puede gestionar un gran nmero de transmisiones de datos de una sola vez. El concepto de bases de datos relacionales es el mtodo empleado para organizar los datos y se encuentra separado de la organizacin interna del archivo. Los sistemas de concepto de bases de datos relacionales utilizan un conjunto de teoras matemticas para organizar los datos del modo ms eficiente. La organizacin de datos es muy importante para mantener la velocidad del servidor de bases de datos. El sistema cliente-servidor se refiere a la parte del servidor SQL que se comunica con el sistema operativo. Esta parte del sistema necesita gestionar los recursos del servidor, las conexiones y la gestin de varias bases de datos al mismo tiempo. Un sistema de gestin de gases de datos interacta y combina todos los elementos anteriores. Pero no slo gestiona la estructura interna del archivo .MDF, el DBMS tambin controla las bases de datos relacionales y organiza los datos. El DBMS de un servidor SQL es el corazn de su sistema.

Qu hacer en una situacin de prdida de datos Las situaciones de prdidas de datos pueden darse en un gran nmero de niveles. El primer nivel de prdida de datos comienza en la unidad de almacenamiento, que puede ser un disco duro o una matriz de almacenamiento (o Array) SAN o RAID. Si la prdida se produce a este nivel, la meta de Ontrack es conseguir que la unidad vuelva a ser operativa para poder copiar los datos. Los ingenieros de habitacin limpia de Ontrack trabajan a nivel electrnico y mecnico para hacer que el dispositivo vuelva a estar operativo. Si el dispositivo de almacenamiento es una matriz de almacenamiento SAN o RAID, la meta ser hacer que el dispositivo vuelva a estar operativo y extraer los datos. Las matrices de almacenamiento SAN y RAID aaden una nueva complejidad al trabajo. Ontrack ha mejorado sus especificaciones tcnicas para poder solucionar los problemas en este tipo de dispositivos. El segundo nivel de **prdida de datos** puede empezar a nivel sistema de archivos. El sistema de archivos es un mtodo de almacenamiento y organizacin de los archivos del sistema de los usuarios. El sistema operativo contrala el sistema de archivos. Si la informacin acerca de la ubicacin de los archivos de datos se encuentra en el volumen que est daado o perdido, los ajustes o reparaciones debern realizarse a nivel del sistema de archivos. Una vez reparado el sistema de archivos se podr acceder correctamente al flujo de datos de archivo. La mayora de los sistemas operativos dispone de una herramienta que automticamente arregla el sistema de archivos. Estas herramientas hacen que el volumen sea accesible. Sin embargo, tambin pueden daar permanentemente el flujo de datos del archivo. El tercer nivel de la prdida de datos puede ocurrir en el archivo. Como hemos mencionado anteriormente, los archivos .MDF son muy complejos. La estructura interna puede estar corrupta hasta hacer que el DBMS no pueda utilizar la base de datos. Aqu es donde Ontrack marca la diferencia al proporcionar una solucin total de recuperacin de datos.

Soluciones de Ontrack para situaciones de prdidas de datos

Ontrack tiene la solucin para los archivos de bases de datos corruptos o daados y disponemos de la tecnologa **Remote Data Recovery** para recuperar los datos a distancia tan pronto como sea posible. El conjunto de herramientas de recuperacin interna para SQL de Ontrack ha sido diseado para recuperar los datos contenidos en archivos .MDF. El proceso de una recuperacin de SQL comienza con la localizacin del archivo de base de datos requerido. Si el archivo de base de datos no se encuentra accesible debido a problemas con el dispositivo de almacenamiento, intentamos extraer los datos. Si no se encuentra el archivo, est borrado o truncado por problemas con el sistema de archivo, intentamos ajustar o reparar el sistema de archivos para dirigirlo correctamente al flujo de datos del archivo. Si finalmente el sistema de archivos no dispone en absoluto de vnculos hacia el archivo, buscamos en toda la unidad todos los datos SQL. La siguiente fase es trabajar sobre la misma base de datos. En este punto entra en juego el conjunto de herramientas de SQL. Estas herramientas analizan la compleja estructura interna de un archivo .MDF y proporciona informes sobre qu tablas son recuperables. Los informes tambin muestran el nmero de listas de datos que se pueden recuperar. Una vez que se ha terminado el proceso de evaluacin y se ha recibido la autorizacin para recuperar los datos, el conjunto de herramientas para SQL copiar los datos en otra base de datos de servidor de SQL. Al terminar esta fase, podemos realizar una copia de seguridad o guardar los datos recuperados. La recuperacin de datos a distancia es la solucin ms rpida para las recuperaciones de SQL. Los procesos de recuperacin de datos a distancia copiarn los datos recuperados en un servidor SQL que est instalado en su sitio o en el de su cliente. Slo es necesario que el servidor SQL est encendido. Para obtener los mejores resultados recomendamos que el dispositivo de almacenamiento en el que se trabaja se encuentre conectado a un servidor SQL, de este modo todo el trnsito de datos sucede en un solo equipo. Versiones compatibles de SQL Generalmente uno o ms archivos DAT de gran tamao. Extraemos la tabla de Microsoft informacin de la base de datos con errores y creamos nuevas tablas en una nueva SQL 6.5 base de datos. Ontrack da completa cobertura a esta versin, incluidas las tablas y listas de informacin borradas. Microsoft Igual que SQL 6.5, los nombre de archivos de base de datos son generalmente .MDF. SQL 7,0 Microsoft Igual que SQL 7.0 SQL 2000 Microsoft Igual que SQL 7.0 SQL 2005 Trminos importantes Tabla eliminada Tabla en una base de datos SQL que ha sido borrada. Base de datos eliminada Base de datos SQL que ha sido borrada. Fila borrada Fila de informacin en una tabla de SQL que ha sido borrada. Funciones de recuperacin

Archivo corrupto

Archivo borrado

Objetos eliminados 2.5 2.5.1 Definicin de transacciones en un lenguaje husped. 2 Evaluacin El lenguaje SQL como lenguaje Husped El lenguaje SQL puede actuar como si fuera un lenguaje husped, es decir, que puede interactuar dentro de un lenguaje distinto como puede ser el cobol, el visual Basic, el C++, etc. Un ejemplo de esto en c sera: #include <stdio.h> EXEC SQL BEGIN DECLARE SECTION; CHAR dni[6]; CHAR cod_cli[7]; CHAR user_name[7]; CHAR password[8]; FLOAT cuota; EXEC SQL END DECLARE SECTION; VOID sql_error ( ); MAIN ( ) { EXEC SQL WHENEVER sqlerror DO sql_error (Error Oracle) ... ... EXEC SQL CONNECT :username IDENTIFY BY :password; EXEC SQL SELECT cod_cli INTO :cod_cli FROM clientes WHERE dni = :dni; ... ... EXEC SQL COMMIT RELEASE; EXIT(0) } VOID sql_error (CHAR *msg) { PRINTF (\N%S,msg) EXEC SQL ROLLBACK RELEASED EXIT(1); } El oracle mantiene una variable llamada SQLSTATE en la cual guarda codigos de retorno cuando se interactua con el. De esta forma se puede saber si se ha producido un error a la hora de manejar el oracle. Otras variables de este tipo son SQLCODE y SQLERR. Para hacer el control de errores se ha escrito la linea: EXEC SQL WHENEVER sqlerror DO sql_error (Error Oracle) Con esta linea le especificamos al oracle que en el momento en el que ocurra un error ejecute la funcin SQL_ERROR. Tambin le podamos haber dicho que hiciera otras cosas como:

Archivo de base de datos que el motor de la base de datos no puede abrir. Ya sea directamente por el cliente, despus de que el archivo haya sido restaurado desde una recuperacin de cinta, o despus de que el archivo se haya copiado tras la recuperacin de una unidad. Base de datos que ha sido eliminada por el motor de la base de datos. Se trata primeramente de una recuperacin de archivo borrado. Si el archivo no se encuentra despus de la recuperacin se trata de una recuperacin de pgina perdida ( Lost Page recovery). Tablas eliminadas en SQL que son compatibles. Listas eliminadas en SQL que son compatibles.

CONTINUE GOTO etiqueta Funcin

Tambin se puede controlar con esta sentencia que cuando no halla error haga algo, cambiando SQLERROR por NOTFOUND despus de la palabra WHENEVER. El nombre de las variables que van a intervenir en las sentencias de SQL van siempre precedidas por el carcter `:'. A la hora de hacer un select tenemos que especificarle a donde van a ir a parar las filas que son el resultado. Para ello tenemos la palabra INTO, con el cual le especificamos a donde va a ir el resultado del select. 2.5.3 Ejecucin de transacciones anidadas.

Otra de las posibilidades que nos ofrece el SQL Server es utilizar transacciones anidadas. Esto quiere decir que podemos tener transacciones dentro de transacciones, es decir, podemos empezar una nueva transaccin sin haber terminado la anterior. Asociada a esta idea de anidamiento existe una variable global @@TRANCOUNT que tiene valor 0 si no existe ningn nivel de anidamiento, 1 si hay una transaccin anidada, 2 si estamos en el segundo nivel de anidamiento y as sucesivamente. La dificultad de trabajar con transacciones anidadas est en el comportamiento que tienen ahora las sentencias COMMIT TRAN y ROLLBACK TRAN ROLLBACK TRAN: Dentro de una transaccin anidada esta sentencia deshace todas las transacciones internas hasta la instruccin BEGIN TRANSACTION ms externa. COMMIT TRAN: Dentro de una transaccin anidada esta sentencia nicamente reduce en 1 el valor de TRANCOUNT, pero no finaliza ninguna transaccin ni guarda los cambios. En el caso en el que TRANCOUNT=1 (cuando estamos en la ltima transaccin) COMMIT TRAN hace que todas las modificaciones efectuadas sobre los datos desde el inicio de la transaccin sean parte permanente de la base de datos, libera los recursos mantenidos por la conexin y reduce @@TRANCOUNT a 0. Quizs estos dos grficos nos ayuden a entender el comportamiento de estas sentencias cuando hay varios niveles de anidamiento Comportamiento del COMMIT TRAN Comportamiento de ROLLBACK TRAN Como siempre un ejemplo es lo mejor para entender como funciona. CREATE TABLE Test (Columna int) GO BEGIN TRAN Tran Externa? @@TRANCOUNT ahora es 1 SELECT El nivel de anidamiento es, @@TRANCOUNT INSERT INTO Test VALUES (1) BEGIN TRAN Tran Interna 1? @@TRANCOUNT ahora es 2. SELECT El nivel de anidamiento es, @@TRANCOUNT INSERT INTO Test VALUES (2) BEGIN TRAN Tran Interna 2? @@TRANCOUNT ahora es 3. SELECT El nivel de anidamiento es, @@TRANCOUNT INSERT INTO Test VALUES (3) COMMIT TRAN Tran Interna 2 Reduce @@TRANCOUNT a 2. Pero no se guarda nada en la base de datos. SELECT El nivel de anidamiento es, @@TRANCOUNT COMMIT TRAN Tran Interna 1 Reduce @@TRANCOUNT a 1. Pero no se guarda nada en la base de datos. SELECT El nivel de anidamiento es, @@TRANCOUNT

COMMIT TRAN Tran Externa Reduce @@TRANCOUNT a 0. Se lleva a cabo la transaccin externa y todo lo que conlleva. SELECT El nivel de anidamiento es, @@TRANCOUNT SELECT * FROM Test Por cierto que lo de usar nombre para las transacciones es por claridad, puesto que COMMIT TRAN como ya hemos dicho solamente reduce en 1 el valor de @@TRANCOUNT. Veamos ahora un ejemplo de transaccin anidada con ROLLBACK TRAN BEGIN TRAN Tran Externa @@TRANCOUNT ahora es 1 SELECT El nivel de anidamiento es, @@TRANCOUNT INSERT INTO Test VALUES (1) BEGIN TRAN Tran Interna 1 @@TRANCOUNT ahora es 2. SELECT El nivel de anidamiento es, @@TRANCOUNT INSERT INTO Test VALUES (2) BEGIN TRAN Tran Interna 2 @@TRANCOUNT ahora es 3. SELECT El nivel de anidamiento es, @@TRANCOUNT INSERT INTO Test VALUES (3) ROLLBACK TRAN @@TRANCOUNT es 0 y se deshace la transaccin externa y todas las internas SELECT El nivel de anidamiento es, @@TRANCOUNT SELECT * FROM Test En este caso no se inserta nada puesto que el ROLLBACK TRAN deshace todas las transacciones dentro de nuestro anidamiento hasta la transaccin ms externa y adems hace @@TRANCOUNT=0 Supone este funcionamiento asimtrico del COMMIT y del ROLLBACK un problema? Pues la verdad es que no. La manera de tratar las transacciones por el SQL Server es la que nos permite programar de manera natural los anidamientos. De todos modos, si queremos ir un poco ms lejos hay una cuarta sentencia para trabajar con transacciones: SAVE TRAN SAVE TRAN Esta sentencia crea un punto de almacenamiento dentro de una transaccin. Esta marca sirve para deshacer una transaccin en curso slo hasta ese punto. Por supuesto nuestra transaccin debe continuar y terminar con un COMMIN TRAN (o los que hagan falta) para que todo se guarde o con un ROLLBACK TRAN para volver al estado previo al primer BEGIN TRAN. Otra de las posibilidades que nos ofrece el SQL Server es utilizar transacciones anidadas. Esto quiere decir que podemos tener transacciones dentro de transacciones, es decir, podemos empezar una nueva transaccin sin haber terminado la anterior. Asociada a esta idea de anidamiento existe una variable global que tiene valor 0 si no existe ningn nivel de anidamiento, 1 si hay una transaccin anidada, 2 si estamos en el segundo nivel de anidamiento y as sucesivamente. La dificultad de trabajar con transacciones anidadas est en el comportamiento que tienen ahora las sentencias COMMIT TRAN y ROLLBACK TRAN ROLLBACK TRAN: Dentro de una transaccin anidada esta sentencia deshace todas las transacciones internas hasta la instruccin BEGIN TRANSACTION ms externa. COMMIT TRAN: Dentro de una transaccin anidada esta sentencia nicamente reduce en 1 el valor de TRANCOUNT, pero no finaliza ninguna transaccin ni guarda los cambios. En el caso en el que TRANCOUNT=1 (cuando estamos en la ltima transaccin) COMMIT TRAN hace que todas las modificaciones efectuadas sobre los datos desde el inicio de la transaccin sean parte permanente de la base de datos, libera los recursos mantenidos por la conexin y reduce. Quizs estos dos grficos nos ayuden a entender el comportamiento de estas sentencias cuando hay varios niveles de anidamiento Comportamiento del COMMIT TRAN

Comportamiento de ROLLBACK TRAN Como siempre un ejemplo es lo mejor para entender como funciona. CREATE TABLE Test (Columna int) GO BEGIN TRAN Tran Externa? @@TRANCOUNT ahora es 1 SELECT El nivel de anidamiento es, @@TRANCOUNT INSERT INTO Test VALUES (1) BEGIN TRAN Tran Interna 1? @@TRANCOUNT ahora es 2. SELECT El nivel de anidamiento es, @@TRANCOUNT INSERT INTO Test VALUES (2) BEGIN TRAN Tran Interna 2? @@TRANCOUNT ahora es3. SELECT El nivel de anidamiento es, @@TRANCOUNT INSERT INTO Test VALUES (3) COMMIT TRAN Tran Interna 2 Reduce @@TRANCOUNT a 2. Pero no se guarda nada en la base de datos. SELECT El nivel de anidamiento es, @@TRANCOUNT COMMIT TRAN Tran Interna 1 Reduce @@TRANCOUNT a 1. Pero no se guarda nada en la base de datos. SELECT El nivel de anidamiento es, @@TRANCOUNT COMMIT TRAN Tran Externa Reduce @@TRANCOUNT a 0. Se lleva a cabo la transaccin externa y todo lo que conlleva. SELECT El nivel de anidamiento es, @@TRANCOUNT SELECT * FROM Test Por cierto que lo de usar nombre para las transacciones es por claridad, puesto que COMMIT TRAN como ya hemos dicho solamente reduce en 1 el valor de @@TRANCOUNT. Veamos ahora un ejemplo de transaccin anidada con ROLLBACK TRAN BEGIN TRAN Tran Externa @@TRANCOUNT ahora es 1 SELECT El nivel de anidamiento es, @@TRANCOUNT INSERT INTO Test VALUES (1) BEGIN TRAN Tran Interna 1 @@TRANCOUNT ahora es 2. SELECT El nivel de anidamiento es, @@TRANCOUNT INSERT INTO Test VALUES (2) BEGIN TRAN Tran Interna 2 @@TRANCOUNT ahora es 3. SELECT El nivel de anidamiento es, @@TRANCOUNT INSERT INTO Test VALUES (3) ROLLBACK TRAN @@TRANCOUNT es 0 y se deshace la transaccin externa y todas las internas SELECT El nivel de anidamiento es, @@TRANCOUNT SELECT * FROM Test En este caso no se inserta nada puesto que el ROLLBACK TRAN deshace todas las transacciones dentro de nuestro anidamiento hasta la transaccin ms externa y adems hace @@TRANCOUNT=0 Supone este funcionamiento asimtrico del COMMIT y del ROLLBACK un problema? Pues la verdad es que no. La manera de tratar las transacciones por el SQL Server es la que nos permite programar de manera natural los anidamientos. De todos modos, si queremos ir un poco ms lejos hay una cuarta sentencia para trabajar con transacciones: SAVE TRAN SAVE TRAN Esta sentencia crea un punto de almacenamiento dentro de una transaccin. Esta marca sirve para deshacer una transaccin en curso slo hasta ese punto. Por supuesto nuestra transaccin debe continuar y terminar con un COMMIN TRAN (o los que hagan falta) para que todo se guarde o con un ROLLBACK TRAN para volver al estado previo al primer BEGIN TRAN.

BEGIN TRAN Tran Externa @@TRANCOUNT ahora es 1 SELECT El nivel de anidamiento es, @@TRANCOUNT INSERT INTO Test VALUES (1) BEGIN TRAN Tran Interna 1 @@TRANCOUNT ahora es 2. SELECT El nivel de anidamiento es, @@TRANCOUNT INSERT INTO Test VALUES (2) SAVE TRAN Guadada BEGIN TRAN Tran Interna 2 @@TRANCOUNT ahora es 3. SELECT El nivel de anidamiento es, @@TRANCOUNT INSERT INTO Test VALUES (3) ROLLBACK TRAN Guadada se deshace lo hecho el punto guardado. SELECT El nivel de anidamiento es, @@TRANCOUNT Ahora podemos decidir si la transaccin se lleva a cabo o se deshace completamente Para deshacerla un ROLLBACK bastar como hemos visto Pero para guardar la transaccin hace falta reducir @@TRANCOUNT a 0 COMMIT TRAN Tran Interna 1 Reduce @@TRANCOUNT a 2. SELECT El nivel de anidamiento es, @@TRANCOUNT COMMIT TRAN Tran Interna 1 Reduce @@TRANCOUNT a 1. Pero no se guarda nada en la base de datos. SELECT El nivel de anidamiento es, @@TRANCOUNT COMMIT TRAN Tran Externa Reduce @@TRANCOUNT a 0. Se lleva a cabo la transaccin externa y todo lo que conlleva. SELECT El nivel de anidamiento es, @@TRANCOUNT SELECT * FROM Test Si no ponemos el nombre del punto salvado con SAVE TRAN al hacer un ROLLBACK TRAN se deshace la transaccin ms externa y @@TRANCOUNT se pone a 0. Como podemos ver el uso de transacciones no es complicado, e incluso las transacciones anidadas si se tratan con cuidado son fciles de manejar. Como siempre si hay alguna duda la mejor fuente de ejemplos y soluciones son los BOL del SQL Server.

3.1 ODBC. Qu es el ODBC? Open Data Base Conectivity O lo que es lo mismo, conectividad abierta de bases de datos. Si escribimos una aplicacin para acceder a las tablas de una DB de Access, qu ocurrir si despus queremos que la misma aplicacin, y sin reescribir nada, utilice tablas de SQL Server u otra DB cualquiera? La respuesta es sencilla: no funcionar. Nuestra aplicacin, diseada para un motor concreto, no sabr dialogar con el otro. Evidentemente, si todas las DB funcionaran igual, no tendramos este problema.... aunque eso no es probable que ocurra nunca. Pero si hubiera un elemento que por un lado sea siempre igual, y por el otro sea capaz de dialogar con una DB concreta, solo tendramos que ir cambiando este elemento, y nuestra aplicacin siempre funcionara sin importar lo que hay al otro lado... algo as como ir cambiando las boquillas de una manguera. A esas piezas intercambiables las llamaremos orgenes de datos de ODBC Casi todas las DB actuales tienen un ODBC. Debido a que este elemento impone ciertas limitaciones, ya que no todo lo que la DB sabe hacer es compatible con la aplicacin, como velocidad

de proceso, tiempos de espera, mxima longitud de registro, nmero mximo de registros, versin de SQL, etc., est cayendo en desuso a cambio de otras tcnicas de programacin, pero an le quedan muchos aos de buen servicio. Todo lo referido aqu funciona con Windows NT Server 4.0 con el Service Pack 4 o superior instalado (el ltimo publicado es el 6). El Option Pack 4 para actualizar el IIS y las extensiones ASP. SQL Server 6.5 y Access 97. Por supuesto, tambin funciona con las versiones modernas de servidores como 2003 Server, y tambin XP PRO, que lleva un IIS 5.0 de serie. Igualmente es posible utilizar bases de datos de Access 2000 o 2003. Esas otras tcnicas de programacin antes mencionadas, se utilizan ya en el nuevo Windows 2003, Office 2003 y SQL Server 2000, que adems de ODBC pueden utilizar.... pero esa es otra historia. Esta es la idea: por un lado el ODBC provee de unas caracteristicas siempre homogneas, y por el otro permite distintos controladores que aseguran la conectividad de la aplicacin con diferentes bases de datos.

Ahora que ya sabemos qu es y para lo que sirve, procedamos a su instalacin: es un proceso sencillo, pero segn la base de datos elegida sea Access o SQL Server, cambian un poco, y como no poda ser menos, hay algunos trucos que conviene conocer. 3.1.2 Use el Administrador de orgenes de datos ODBC para crear y administrar los orgenes de datos ODBC. El Administrador de orgenes de datos ODBC es un componente de Windows.

Para abrir el Administrador de orgenes de datos ODBC en Windows Server 2003

En el men Inicio, seleccione Herramientas administrativas y, a continuacin, haga clic en Orgenes de datos (ODBC).

Para abrir el Administrador de orgenes de datos ODBC en Windows 2000 Server 1. En el men Inicio, seleccione Configuracin y, a continuacin, haga clic en Panel de control.

2. En el Panel de control, haga clic en Herramientas administrativas. 3. En Herramientas administrativas, haga clic en Orgenes de datos (ODBC). Para abrir el Administrador de orgenes de datos ODBC en Windows XP Professional 1. En el men Inicio, haga clic en Panel de control. 2. En el Panel de control (Vista por categoras), haga clic en Rendimiento y mantenimiento y, a continuacin, haga clic en Herramientas administrativas, o bien en el Panel de control (Vista clsica), haga clic en Herramientas administrativas. 3. En Herramientas administrativas, haga clic en Orgenes de datos (ODBC). 3.3.1 TERMINOLOGA La terminologa estudia la lengua, como la lingstica, pero se centra en los lenguajes especializados; es la base de la comunicacin especializada. La terminologa es una ciencia interdisciplinar, esto no significa que sea una rama de otra ciencia sino que toma elementos de diferentes disciplinas (lingstica, ciencias de especialidad, filosofa) y elabora su propio campo de trabajo. Terminologa es una palabra polismica: por una parte denomina la disciplina terica, pero tambin se usa para referirse a la prctica terminolgica, y adems, se llama terminologa al producto de esta prctica, es decir diccionarios, glosarios, bases de datos etc. Para algunos, es una disciplina independiente, sin embargo, otros opinan que se trata de una rama de la lingstica. En caso de considerarla como una rama de la lingstica, debemos situarla dentro de la lingstica aplicada y no de la terica. La terminologa estudia los trminos, los conceptos y su relacin. La terminografa es la prctica terminolgica: recopilar, clasificar y representar trminos. Los pasos preliminares y posteriores al trabajo terminogrfico se denominan prctica terminolgica: determinar a quin va dirigido, cmo se va a hacer, releer, etc. La terminologa trata nicamente los lenguajes especializados. La semntica estudia la relacin entre las palabras y su significado. La morfologa estudia cmo se forman las palabras. La lexicologa estudia el lxico de una manera diacrnica, a lo largo de la historia, la terminologa, sin embargo, estudia los trminos con un enfoque sincrnico, se interesa por el significado de los trminos en el presente. La lexicografa estudia los trminos y la terminologa, los conceptos. Los lexicgrafos elaboran diccionarios generales y los termingrafos, diccionarios terminolgicos. Los redactores tcnicos se encargan de redactar y corregir textos especializados. La terminologa naci con Eugen Wster que naci en 1898. Blampain opina que naci en Francia gracias a los lexicgrafos. Segn van apareciendo nuevas ciencias y conceptos, surgen nuevos trminos, los propios cientficos se ocupaban de recopilar los trminos relacionados con una ciencia determinada, por ejemplo, Limm recopilaba trminos zoolgicos. En 1931 el ingeniero austraco Eugen Wster hace una tesis sobre trminos electrotcnicos. En 1938 elabora el diccionario Machine Tool. Wster sostiene que la terminologa tiene varios padres: Schloman que elabor un diccionario sistemtico en seis lenguas, Ferdinand de Saussure, fundador de la lingstica estructuralista, E. Dressen que fue el impulsor de la ISA (International Standarization Asociation) que fue la primera organizacin de normalizacin, actualmente se llama ISO (International Standarization Organization), J. Holmstrom que dijo que deba crearse un centro de estudio terminolgico. Wster es el padre de la prctica terminolgica, Lotte es el padre de la teora terminolgica. ETAPAS DE LA TERMINOLOGA

1 1930-1960. Se empieza a caracterizar la terminologa. Wster, Lotte. 2 1960-1975. Nace la macroinformtica (grandes ordenadores para almacenar informacin) y los bancos de datos. Se fija la teora. 3 1975-1985. Expansin de la terminologa. Aparece la microinformtica (ordenador como herramienta). 4 1985-? Lingstica computacional. Para Rondeau la terminologa es un fenmeno socioeconmico: el avance de las ciencias crea nuevos conceptos a los que hay que dar nombre. Algunos conceptos se conocen con diferentes nombres. Esto crea problemas de comunicacin y se soluciona con la univocidad de los conceptos. Los medios de comunicacin necesitan equivalentes de inmediato. El comercio internacional tambin necesita de la terminologa. TESAUROS Para facilitar la recuperacin de la informacin los trminos deben ser unvocos, hay que evitar la sinonimia. Esto se consigue gracias a los tesauros. Los tesauros son listas de trminos en las que se especifica cuales son descriptores (trminos normalizados preferentes) y cuales no lo son. Un no descriptor debe remitir siempre a un nico descriptor. Sin embargo, a un descriptor le pueden corresponder varios no descriptores. Por ejemplo: Educacin No descriptor: enseanza, aprendizaje. Trmino genrico: formacin. Trmino especfico: formacin. La utilidad de los tesauros es facilitar la recuperacin de la informacin. Un trmino puede estar formado por una sola palabra (Internet) o por varias (mensaje de correo electrnico) y debe tener un nico significado, mientras que una palabra es un solo vocablo y puede tener varios significados. EXPANSIN DE LA TERMINOLOGA La terminologa surge en Austria, Unin Sovitica y Checoslovaquia sobre los aos 30. Se expande hacia el norte (Dinamarca, Blgica) y el oeste (Francia, Canad) durante los aos 60. Ms adelante llega al sur (Espaa, Sudamrica, Portugal) y al este (China y Japn). Tanto la escuela de Viena, fundada por Wster, como la de Mosc y Praga son de tendencia lingstico-terminolgica (normalizacin, sistemas de conceptos). Tambin est la escuela traduccionalista y la normalizadora. Normalizar es buscar la univocidad, fijar el concepto y buscar un solo trmino para referirse a l. Un diccionario prescriptivo o normativo es aquel que contiene palabras cuyo uso se considera correcto y rechaza las que considera incorrectas, mientras que un diccionario descriptivo o de uso es aquel que se basa en el uso de las palabras para su elaboracin, incluye todas aquellas palabras que formen parte de una lengua al margen de su correccin. ESCUELAS Escuela de Viena (Wster, Felber, Galinski) (orientacin lingstica). Escuela de Mosc (Lotte, Caplygin) (orientacin lingstica). Escuela de Praga (Drodz) (orientacin lingstica). Escuela de Canad (orientacin traduccionalista). Escuela de Quebec (orientacin normalizadora). LSP: Lenguages for Special Purpouses. (Lenguajes para fines especficos). ENTRADA DE UN DICCIONARIO TERMINOLGICO Nmero de ficha: 21 Dominio: 1.3.2. Trmino 1: cefalea. Trmino 2: dolor de cabeza. Marca gramatical: 1) sustantivo femenino singular. 2) locucin de sustantivo masculino singular. Definicin: Dolencia fsica que se produce en la cabeza. Referencia: DRAE, 1992.

Notas de uso: El primer trmino se usa en el mbito mdico, el segundo es ms coloquial. Equivalentes: Headache (ingls). Mal la tte (francs). Cada una de las secciones se denomina campo, el conjunto es un registro. La terminologa es la base de la comunicacin especializada que es precisa y concisa en oposicin a la comunicacin general que es rica y consta de palabras polismicas y sinnimos. El traductor especializado suele ayudarse de diccionarios terminolgicos a la hora de realizar sus traducciones. La terminologa se ha visto modificada por la informtica ya que esta ltima permite almacenar datos en soporte electrnico y trabajar con ellos de forma rpida. La lengua general se divide en lengua comn, no marcada, y lengua especializada, marcada por una temtica determinada, unos usuarios determinados y una terminologa especfica. La banalizacin o desterminologizacin consiste en el uso de trminos especializados en la lengua comn. La terminologizacin es lo contrario. El vocabulario jurdico, por ejemplo, consta de trminos que se usan exclusivamente en dicho campo (anticresis), trminos que en principio pertenecan exclusivamente al lenguaje jurdico pero que ahora se han banalizado (hipoteca) y trminos que en principio pertenecan al lenguaje comn y se han terminologizado. A su vez, estos ltimos trminos pueden dividirse en los que mantienen su significado original o similar (recurso) y los que tienen un significado en el mbito jurdico diferente del que tienen en la lengua comn (prescripcin). Todos los lenguajes especializados tienen caractersticas comunes, se sitan en un marco determinado, tienen un nmero de usuarios limitado que conoce ese lenguaje por voluntad propia y caractersticas peculiares a cada uno de ellos, reglas. FRASEOLOGA Es el conjunto de giros de un lenguaje especializado o su estudio. Los giros son una combinacin de dos o ms elementos pertenecientes al lxico especializado cuyo significado se basa en su relacin de combinacin. Emitir una accin es un giro ya que existe una combinacin de conceptos. Propiedad horizontal es un trmino ya que se trata de una combinacin de palabras. En el giro existe una relacin sintctica entre los conceptos (accin es el CD de emitir). En el trmino no hay relacin sintctica. Un tecnolecto es un lenguaje especializado, un tecnicismo es un trmino perteneciente a un campo de especialidad. TERMINOLOGA Y DOCUMENTACIN En primer lugar es necesario aclarar que la documentacin es un campo especializado con terminologa propia. La terminologa y la documentacin son dos ciencias que estn muy ligadas. Por una parte, es imprescindible que todo aquel que quiera llevar a cabo un trabajo terminolgico se documente previamente. El terminlogo no inventa los trminos que aparecen en los diccionarios especializados, por eso debe realizar un trabajo de investigacin previo a la redaccin del texto final apoyndose en los trabajos de los documentalistas. Existen diferentes fuentes de documentacin: 1 Documentacin textual (textos, tesis, publicaciones tcnicas, etc.) 2 Terminologa elaborada (diccionarios, glosarios, etc.) 3 Documentacin factogrfica (centros de documentacin, expertos, instituciones, etc.) Por otra parte, los documentalistas tambin se benefician del trabajo de los terminlogos a la hora de llevar a cabo su trabajo. Dicho trabajo incluye la indizacin de los textos, es decir, la extraccin de los descriptores que facilitarn la bsqueda de los documentos. Es en este punto en el que el documentalista se apoya en los trabajos de normalizacin realizados por los terminlogos para obtener los descriptores ms apropiados. Todo esto nos lleva a afirmar que estas dos disciplinas mantienen una relacin de intercambio. TERMINOLOGA Y LEXICOGRAFA Aunque algunos terminlogos opinan que la terminografa es una rama de la lexicografa, es necesario destacar que existen diferencias entre los mtodos de estas ciencias.

Los diccionarios generales elaborados por lexicgrafos constan de entradas organizadas segn el orden alfabtico de la palabra que definen, mientras que los artculos de los diccionarios terminolgicos elaborados por termingrafos estn ordenados conceptualmente mediante un sistema organizado jerrquicamente en el que se puede ver a qu rama de un determinado campo de especialidad pertenece cada trmino. Normalmente, se asigna un cdigo a cada artculo para facilitar su bsqueda. Los lexicgrafos se encargan de definir todas las acepciones de una palabra, los termingrafos, sin embargo, se centran en el significado que los trminos tienen en un campo de especialidad determinado e intentan eliminar la polisemia. Cada ficha de un diccionario terminolgico trata un concepto, no un trmino. Por eso, si alguno de los tecnicismos contenidos en la obra es polismico debe constar de una entrada diferente para cada uno de los significados; en los diccionarios de lengua general, en cambio, se definen todas las acepciones de una palabra en el mismo artculo. Los terminlogos trabajan con trminos que pertenecen a lenguajes de especialidad, y los definen segn su significado en un mbito especializado, mientras que los lexicgrafos definen palabras de la lengua general. Por eso, los diccionarios terminolgicos contienen principalmente sustantivos, verbos y algunos adjetivos, no como los lexicogrficos que se ocupan de cualquier palabra de uso generalizado. Los tecnicismos que estudian los termingrafos no suelen aparecer en los diccionarios generales a no ser que se hayan banalizado. Por otra parte, los lexicgrafos, a excepcin de los que elaboran diccionarios normativos, slo describen, o recomiendan, el uso de las palabras; los termingrafos, en cambio, intentan normalizar el uso de los tecnicismos priorizando los ms adecuados. Algunos diccionarios y glosarios especializados indican qu trminos se deben usar segn la legislacin lingstica vigente. Elementos Graficos en HTML COMO CREAR DIFERENTES ELEMENTOS GRFICOS DE CAPTURA DE DATOS EN HTML?

Applets Nada ms fcil que usar la etiqueta <APPLET>...</APPLET> que HTML tiene previsto para ello: <APPLET CODE="elapplet.class" WIDTH="200" HEIGHT="100"> (Contenido alternativo) </APPLET> Parece que ya es hora de poner un ejemplo, para ver si est claro el tema este. He buscado un pequeo applet en la web, y he encontrado uno bastante simple llamado NervousText.class que pongo en este ejemplo: <HTML> <HEAD><TITLE>NervousText.class</TITLE> </HEAD> <BODY> <H1>Applet: NervousText.class</H1> <P>Muestra un <I>insoportable</I> texto bailando como un hist&eacute;rico.</P> <P>Este applet solo tiene un par&aacute;metro, llamado <B>text</B>, que sirve para especificar el texto que quieres que aparezca en el applet.</P> <APPLET CODE="NervousText.class" WIDTH="250" HEIGHT="100" ALIGN=right ALT="Allan Psicobyte"> <PARAM NAME=text VALUE="Allan Psicobyte"> <P>Tu navegador no soporta Applets, de modo que has tenido la suerte de librarte de ver la soberana estupidez de un texto que pone <B>Allan Psicobyte</B> con cada una de sus letras moviendose como una loca.</P> </APPLET> </BODY> </HTML>.

Objets

<OBJECT DATA="archivo" TYPE="tipo mime"> Contenido alternativo </OBJECT> Por ejemplo, para escuchar un sonodo al cargarse la pgina deberamos usar, en principio, el siguiente cdigo: <HTML> <HEAD> <TITLE>Una primera aproximaci&oacute;n al sonido con OBJECT</TITLE> </HEAD> <BODY> <H1>Ejemplo no muy bueno</H1> <OBJECT DATA="t-rex.wav" TYPE="sound/wav"> (Sonido de un Tiranosaurio enfadado) </OBJECT> </BODY> </HTML> Utilizacin de la etiqueta <BUTTON> La etiqueta BUTTON se utiliza con una apertura de etiqueta <BUTTON> y una de cierre </BUTTON>. Entre las dos etiquetas, de apertura y cierre, se coloca el contenido que ir dentro del botn. Tiene la particularidad que se pueden colocar dentro del botn los contenidos que se desee, es decir, entre la etiqueta de apertura y cierre se puede colocar texto a voluntad, pero tambin otras etiquetas HTML, como imgenes, saltos de lnea, negritas o lo que podamos necesitar. Veamos un ejemplo: <button>Hola esto es un <b>botn</b><br><br>Puedo poner saltos de lnea en l!<hr>Y otras cosas<br><img src="http://www.desarrolloweb.com/images/logo_desarrollo_web.gif" width="261" height="35" alt=""></button> Que tendra este aspecto: Hola esto es un botn Puedo poner saltos de lnea en l! Instalacion de apache INSTALACION DE APACHE***

Comprobar si Apache est instalado Antes de empezar con la instalacin, podemos ver si ya lo tenemos instalado. Y si lo est qu versin de Apache es. Hay varias formas de hacerlo, por ejemplo ejecutando los siguientes comandos:

1. updatedb 2. locate apachectl

Para ver si se est ejecutando alguna instancia del servidor Apache podemos usar el comando ps para ver si hay algn proceso referente al servidor ps aux | grep httpd ps aux | grep httpd Tambin podemos usar el comando nmap en nuestro sistema (localhost) para ver si hay algun puerto http abierto. 1. nmap 127.0.0.1

Se puede obtener la versin instalada con el siguiente comando. La rutadeinstalacin puede ser la ruta que hemos encontrado en el paso anterior utilizando locate.

1. /rutadeinstalacion/apache2/bin/httpd -v JDBC JAVA DATABASE CONNECTIVITY Java Database Connectivity, ms conocida por sus siglas JDBC, es una API que permite la ejecucin de operaciones sobre bases de datos desde el lenguaje de programacin Java, independientemente del sistema operativo donde se ejecute o de la base de datos a la cual se accede, utilizando el dialecto SQL del modelo de base de datos que se utilice. JDBC es usado para enviar comandos SQL hacia una base de datos relacional, que puede ser Oracle, Infomix, SyBase, etc. Qu hace JDBC? Establece una conexin con una BD Enva sentencias SQL Procesa los resultados Connection con = DriverManager.getConnection ( "jdbc:odbc:wombat", "login", "password"); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1"); while (rs.next()) { int x = rs.getInt("a"); String s = rs.getString("b"); float f = rs.getFloat("c"); } El API JDBC se presenta como una coleccin de interfaces Java y mtodos de gestin de manejadores de conexin hacia cada modelo especfico de base de datos. Un manejador de conexiones hacia un modelo de base de datos en particular es un conjunto de clases que implementan las interfaces Java y que utilizan los mtodos de registro para declarar los tipos de localizadores a base de datos (URL) que pueden manejar. Para utilizar una base de datos particular, el usuario ejecuta su programa junto con la biblioteca de conexin apropiada al modelo de su base de datos, y accede a ella estableciendo una conexin, para ello provee el localizador a la base de datos y los parmetros de conexin especficos. A partir de all puede realizar con cualquier tipo de tareas con la base de datos a las que tenga permiso: consulta, actualizacin, creacin, modificacin y borrado de tablas, ejecucin de procedimientos almacenados en la base de datos, etc. JDBC es una API de bajo nivel para APIs de alto nivel Una integracin de SQL hacia Java, es decir que las sentencias SQL se puedan mezclar con Java, por ejemplo, que una variable de Java pueda ser usada en una sentencia SQL para recibir o dar valores. Un mapeo directo de las tablas de la BD hacia las clases de Java, donde cala fila de la tabla se convierte en una instancia de la clase, y donde cada columna se corresponde a un atrubuto de esa instancia. JDBC v/s ODBC y otras APIs ODBC no es apropiado para usar directamente con Java por que usa una interfaz en C. Una traduccin literal de la API ODBC en C, no es deseable. Por ejemplo Java no tiene punteros y la ODBC hace gran uso de ellos.

ODBC es muy difcil de aprender , hace una mezcla de acciones simples y avanzadas. Una API como JDBC es necesario para poder desarrollar una solucin puramente de Java Modelos de dos capas y tres capas

Conformacin de SQL El SQL es el idioma normal por acceder las bases de datos correlativas. Una dificultad es que aunque la mayora del DBMSs (los Sistemas de Direccin de Base de datos) use un formulario normal de SQL para la funcionalidad bsica, ellos no conforman la sintaxis de SQL normal ms recientemente definida para la funcionalidad ms avanzada. Por ejemplo no todas las BD soportar procedimientos almacenados. Una manera que el API de JDBC trata de este problema es permitir cualquier sentencia sea pasada a un driver de DBMS subyacente. Para las aplicaciones complejas, JDBC trata la conformacin de SQL de otra manera. Proporciona la informacin descriptiva sobre el DBMS por medio del DatabaseMetaData para que las aplicaciones puedan adaptar a los requisitos y capacidades de cada DBMS. El Armazn de JDBC JavaSoft proporciona tres componentes JDBC como la parte de la JDK: el JDBC driver manager, la JDBC driver test suite el puente JDBC-ODBC. El JDBC driver manager es el espinazo de la arquitectura de JDBC. Realmente es bastante pequeo y simple; su funcin primaria es conectar las aplicaciones de Java al chfer de JDBC correcto y entonces salir de la manera. La JDBC driver test suite proporciona un poco de confianza en que drivers de JDBC ejecutarn su programa. Pueden designarse slo drivers que pasan la JDBC driver test suite El Armazn de JDBC El puente de JDBC-ODBC les permite a los drivers de ODBC ser usado como drivers de JDBC. Y a largo plazo proporcionar una manera de acceder alguno del DBMSs menos popular si no se crean los drivers de JDBC para ellos.

Paquete java.sql JDBC ofrece el paquete java.sql, en el que existen clases muy tiles para trabajar con bases de datos. Clase Descripcin DriverManager Para cargar un driver Connection Para establecer conexiones con las bases de datos Statement Para crear consultas SQL y enviarlas a las BBDD ResultSet Para almacenar el resultado de la consulta Ejemplos JDBC ( Lado Cliente )

Se asume que se tiene instalado una DBMS Oracle 8i (versin 8.1.6) y que se puede conectar usando el driver de JDBC. Brevemente estos ejemplos muestran cmo conectarse a la Base de Datos y usar sentencias SQL simples como "select", "insert", "update" y "delete". JDBCARQUITECTURA LaAPIJDBC es compatible conlos modelos de procesamientotantode dosy tres capaspara el accesode base de datos.

Figura 1:Arquitecturade dos nivelesdeacceso a datos

Hasta hace poco,el nivel medioha sido a menudoescritasen lenguajes comoCoC+ +, que ofrecen un

rendimiento rpido.Sin embargo,con la introduccin decompiladores optimizadoresque traducenel bytecode de Javaenla mquinaeficientecdigo especficoy tecnologas tales comoEnterprise JavaBeans, la plataforma Javase est convirtiendo enla plataforma estndardenivel mediode desarrollo.Estaes una gran ventaja, por lo que esposible tomarventaja dela robustezde Java,multihilo,ylas funciones de seguridad.

Con las empresasutilizan cada vez msel lenguaje de programacinJavapara escribirel cdigo del servidor, la API de JDBCse est utilizandocada vez ms enel nivel mediode unaarquitectura de tres niveles. Algunas de las caractersticasque hacen queuna tecnologa de servidorJDBCsonsu apoyo ala agrupacin de conexiones, transacciones distribuidas,ylos conjuntos de filasdesconectado.LaAPIJDBCes tambin lo quepermite el accesoa una fuente dedatos de unnivelmediode Java. Una visin Base de Datos Relacional

Una base de datos es un medio de almacenamiento de informacin de tal manera que la informacin puede ser recuperada de la misma. En trminos sencillos, una base de datos relacional es aquella que presenta informacin en tablas con filas y columnas. Una tabla que se conoce como una relacin en el sentido de que es una coleccin de objetos del mismo tipo (filas). Datos en una tabla puede estar relacionado de acuerdo a las claves o conceptos comunes, y la capacidad de recuperar datos relacionados de una tabla es la base para la base de datos relacional a largo plazo. Un sistema de gestin de bases de datos (DBMS) se encarga de la manera que los datos se almacenan, mantienen y recuperan. En el caso de una base de datos relacional, un sistema de bases de datos relacionales (RDBMS) realiza estas tareas. DBMS que se utiliza en este libro es un trmino general que incluye RDBMS.

Reglas de integridad

Tablas relacionales seguir ciertas reglas de integridad para asegurar que los datos que contienen estancia precisa y siempre accesible. En primer lugar, las filas de una tabla relacional todos deben ser distintos. Si hay filas duplicadas, puede haber problemas para resolver cul de las dos selecciones posibles es la correcta. Para la mayora de los DBMS, el usuario puede especificar que las filas duplicadas no se les permite, y si se hace eso, el DBMS evitar la adicin de las filas que duplican un registro existente.

Una segunda regla de integridad del modelo relacional tradicional es que los valores de la columna no debe repetir los grupos o conjuntos. Un tercer aspecto de la integridad de los datos implica el concepto de un valor nulo. Una base de datos se encarga de las situaciones donde los datos pueden no estar disponibles mediante el uso de un valor nulo para indicar que un valor no est presente. No es lo mismo que un espacio en blanco o nulo. Un espacio en blanco se considera igual a otro en blanco, un cero es igual a otro cero, pero dos de los valores nulos no se consideran iguales.

Cuando cada fila de una tabla es diferente, es posible utilizar una o ms columnas para identificar una fila particular. Esta columna nica o un grupo de columnas se denomina clave principal. Una columna que forma parte de una clave principal no puede ser nulo, si lo fuera, la clave principal que lo contiene ya no sera un identificador completo. Esta regla se conoce como la integridad de entidad.

Tabla 1.2 ilustra algunos de estos conceptos de bases de datos relacionales. Cuenta con cinco columnas y seis filas, que cada fila representa un empleado diferente.

Seleccionar los enunciados

SQLes un lenguaje diseadopara ser utilizado conbases de datos relacionales. Hay unaserie decomandos bsicos deSQLque se considera estndary es utilizado portodos losRDBMS. Por ejemplo,todos losRDBMSutilizar la instruccinSELECT.

Una instruccin SELECT, tambin llamado una consulta,se utiliza para obtenerinformacin de una tabla. En l se especificauno o msttulos de las columnas, una o ms tablasde donde escoger, y algunoscriterios para la seleccin. ElRDBMSdevuelve las filasde lasentradas de la columnaque satisfacenlos requisitos establecidos.Una instruccin SELECTcomo la siguientedescargar losnombres y apellidosdelos empleados que tienenvehculos de la empresa: SELECT First_Name, Last_Name FROM Employees WHERE Car_Number IS NOT NULL El conjunto de resultados(el conjunto delas filas que cumplenel requisitode no tenernulos en la columnaCar_Number) siguiente. El nombrey el apellidose imprimen para cadafila quecumple con los requisitosdebido a que lasentencia SELECT(primera lnea) especifica elFIRST_NAMEcolumnas yApellido. La clusula FROM(la segunda lnea) da latabla de la quelas columnassern seleccionados. <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;">FIRST_NAME LAST_NAME</span></span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;">--------------------</span></span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;">Axel Washington</span></span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;">Florence Wojokowski</span></span> El cdigosiguiente produceun conjunto de resultadosque incluyetoda la tabla, ya que pidea todas las columnasenla tabla Empleadossin restricciones (no la clusula WHERE). Tenga en cuenta queSELECT *significa "seleccionartodas las columnas." <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;">SELECT *</span></span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;">FROM Employees</span></span> Clusulas WHERE <span style="text-align: justify;"> </span> <span style="text-align: justify;"> </span> La clusula WHERE de una instruccin SELECT proporciona los criterios para la seleccin de valores. Por ejemplo, en el siguiente fragmento de cdigo, los valores sern seleccionados slo si aparecen en una fila en la que la columna Apellido comienza con 'Washington' de la cadena.

<span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;">SELECT First_Name, Last_Name</span></span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;">FROM Employees</span></span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;">WHERE Last_Name LIKE 'Washington%'</span></span> Comn comandos SQL <span style="text-align: justify;"> </span> <span style="text-align: justify;"> </span> Comandos SQL se dividen en categoras, las dos principales son Lenguaje de manipulacin de datos (DML) y comandos de lenguaje de definicin de datos (DDL) comandos. Comandos DML frente a los datos, o bien recuperar o modificar para mantenerlo al da. Comandos DDL crear o modificar tablas y otros objetos de base de datos como las vistas e ndices. <span style="text-align: justify;"> </span> <span style="text-align: justify;"> </span> Una lista de los comandos DML ms comunes las siguientes: <span style="text-align: justify;"> </span> <span style="text-align: justify;"> </span> *SELECCIONAR - se utiliza para consultar y mostrar los datos de una base de datos. La instruccin SELECT especifica las columnas que se incluyen en el conjunto de resultados. La gran mayora de los comandos SQL en aplicaciones son declaraciones SELECT. <span style="text-align: justify;"> </span> *INSERT - aade nuevas filas a una tabla. Insertar se usa para rellenar una tabla de nueva creacin o para agregar una nueva fila (o filas) a una tabla ya existente. <span style="text-align: justify;"> </span> *Eliminar - elimina una fila especfica o un conjunto de filas de una tabla <span style="text-align: justify;"> </span> * UPDATE - cambia un valor existente en una columna o grupo de columnas de una tabla <span style="text-align: justify;"> </span> <span style="text-align: justify;"> </span> Los comandos DDL ms comunes son las siguientes: <span style="text-align: justify;"> </span> <span style="text-align: justify;"> </span> *CREATE TABLE - Crea una tabla con los nombres de las columnas que el usuario proporcione. El usuario tambin debe especificar un tipo de datos de cada columna. Los tipos de datos varan de un RDBMS a otro, por lo que un usuario podra necesitar el uso de metadatos para establecer los tipos de datos utilizados por una base de datos particular. CREATE TABLE se utiliza normalmente con menos frecuencia que los comandos de manipulacin de datos, porque se crea una tabla slo una vez, mientras que la adicin o eliminacin de filas o el cambio de los valores individuales por lo general ocurre con ms frecuencia. <span style="text-align: justify;"> </span> <span style="text-align: justify;"> </span> <span style="text-align: justify;"> </span>

* DROP TABLE - borra todos los registros y elimina la definicin de la tabla de la base de datos. Una implementacin de JDBC API es necesaria para apoyar el comando DROP TABLE como se especifica en SQL92, Nivel de Transicin. Sin embargo, el apoyo a la cascada y restringir las opciones de DROP TABLE es opcional. Adems, el comportamiento de DROP TABLE es definido por la implementacin cuando hay puntos de vista o las restricciones de integridad definidas que hacen referencia a la tabla que se cay. <span style="text-align: justify;"> </span> * ALTER TABLE - agrega o quita una columna de una tabla. Tambin agrega o quita las restricciones de tabla y los atributos altera columna Conjuntos de resultados y cursores <span style="text-align: justify;"> </span> Las filas que satisfacen las condiciones de una consulta se llama el conjunto de resultados. El nmero de filas devueltas en un conjunto de resultados puede ser cero, uno o muchos. Un usuario puede acceder a los datos en un conjunto de resultados de una fila a la vez, y un cursor proporciona los medios para hacerlo. Un cursor se puede considerar como un puntero en un archivo que contiene las filas del conjunto de resultados, y que el puntero tiene la capacidad de realizar un seguimiento de la fila que est siendo visitada. Un cursor permite al usuario procesar cada fila de un conjunto de resultados de arriba a abajo y por lo tanto pueden ser utilizados para el procesamiento iterativo. La mayora de los DBMS crear un cursor de forma automtica cuando un conjunto de resultados se genera. <span style="text-align: justify;"> </span> <span style="text-align: justify;"> </span> Anteriores versiones JDBC API aadido nuevas capacidades para el cursor un conjunto de resultados, lo que permite que se mueva hacia adelante y hacia atrs, y tambin permitiendo que se mueva a una fila determinada o en una fila cuya posicin es relativa a otra fila. <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;">import java.sql.*;</span></span> <span style="text-align: justify;"> </span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;">public class UpdateCar {</span></span> <span style="text-align: justify;"> </span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;"> public static void UpdateCarNum(int carNo, int empNo)</span></span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;"> throws SQLException {</span></span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;"> Connection con = null;</span></span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;"> PreparedStatement pstmt = null;</span></span> <span style="text-align: justify;"> </span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;"> try {</span></span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;"> con = DriverManager.getConnection("jdbc:default:connection");</span></span> <span style="text-align: justify;"> </span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;"> pstmt = con.prepareStatement(</span></span>

<span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;"> "UPDATE EMPLOYEES SET CAR_NUMBER = ? " +</span></span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;"> "WHERE EMPLOYEE_NUMBER = ?");</span></span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;"> pstmt.setInt(1, carNo);</span></span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;"> pstmt.setInt(2, empNo);</span></span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;"> pstmt.executeUpdate();</span></span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;"> }</span></span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;"> finally {</span></span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;"> if (pstmt != null) pstmt.close();</span></span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;"> }</span></span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;"> }</span></span> <span style="text-align: justify;"><span style="font-family: 'Arial','sans-serif'; font-size: 16px;">}</span></span> Metadatos <span style="text-align: justify;"> </span> <span style="text-align: justify;"> </span> Bases de datos almacenandatos del usuario,y tambinalmacenar informacin sobre lamismabase de datos.La mayora delos DBMStienen un conjunto detablas del sistema, que listalas tablasenla base de datos, nombres de columnas encada tabla, las claves primarias, claves forneas, procedimientos almacenados, y as sucesivamente.CadaDBMStiene sus propias funcionespara obtener informacinacerca de los diseosy caractersticas dela tablade base de datos. JDBC proporciona lainterfazDatabaseMetaData, que un escritorconductor debeponer en prcticaa fin de quesus mtodosdevuelven informacin sobreel conductor y /oDBMSpara el queel conductorest escrito.Por ejemplo,un gran nmero demtodos dedevolucinsi elcontrolador es compatible conuna funcionalidad particular. Esta interfazpermite a los usuariosy las herramientas deuna forma estandarizadapara obtener metadatos. <span style="text-align: justify;"> </span> <span style="text-align: justify;"> </span> En general, los desarrolladores de herramientas de escrituray los conductores sonlos ms propensosa preocuparse porlos metadatos. <span style="text-align: justify;"> </span> <span style="text-align: justify;"> </span> BIBLIOGRAFIA <span style="text-align: justify;"> </span> es.wikipedia.org/wiki/Java_Database_Connectivity www.dcc.uchile.cl/~lmateu/CC60H/Trabajos/jfernand/ <span style="text-align: justify;"> <span style="font-family: 'Arial','sans-serif'; font-size: 16px;">docs.oracle.com/jav</span></span>

You might also like