taller de base de datos examen

73
1.1 Características del gestor Bases de Datos. Recordemos antes que: una Bases de Datos es una colección de datos organizados bajo normas establecidas en un modelo seleccionado. y que la base de datos es un conjunto de información almacenada bajo la estructura diseñada 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 colección de música. Generalmente nos referimos a los datos de los usuarios y de la organización, que apoyan el negocio modelado y soportado por el Sistema de Gestión de Bases de Datos. En la etapa de diseño lógico, la arquitectura de los datos es independiente del motor donde se montará finalmente. Ahora bien, debemos de tener en cuenta que la gestión de los datos implica: Definición de estructuras para almacenar información Mecanismos para manipulación de la información Sistema de Gestión de Bases de Datos (SGBD) en Español o Data Base Manager System (DBMS) en Ingles. Veamos una primera definición: Si existe una colección 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 características, 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 información de la base de datos. (KORTH, 1995) ―El sistema de gestión de la base de datos (SGBD) es una aplicación que permite a los usuarios definir, crear y mantener la base de datos, y proporciona acceso controlado a la misma. (MÁRQUES, 2001) Funciones Básicas de un SGBD Un SGBD debe incluir por lo menos las siguientes funciones (DATE, 1993): Definición de los Datos. El SGBD debe ser capaz de aceptar las definiciones de datos en versión fuente y convertirlas en la versión objeto. El SGBD debe incluir componentes procesadores para cada uno de los lenguajes de definición de datos (LDD). (DATE, 1993). Manipulación 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 manipulación 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). Recuperación y concurrencia de los datos. El principal objetivo de la implantación de una base de

Upload: diana-gonzalez

Post on 15-Feb-2015

136 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: Taller de Base de Datos Examen

1.1 Características del gestor

Bases de Datos.

Recordemos antes que: una Bases de Datos es una colección de datos organizados bajo normas establecidas en un modelo seleccionado. y que la base de datos es un conjunto de información almacenada bajo la estructura diseñada 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 colección de música. Generalmente nos referimos a los datos de los usuarios y de la organización, que apoyan el negocio modelado y soportado por el Sistema de Gestión de Bases de Datos. En la etapa de diseño lógico, la arquitectura de los datos es independiente del motor donde se montará finalmente. Ahora bien, debemos de tener en cuenta que la gestión de los datos implica:

Definición de estructuras para almacenar información Mecanismos para manipulación de la información

Sistema de Gestión de Bases de Datos (SGBD) en Español o Data Base Manager System (DBMS) en Ingles.

Veamos una primera definición: Si existe una colección 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 características, 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 información de la base de datos. (KORTH, 1995) ―El sistema de gestión de la base de datos (SGBD) es una aplicación que permite a los usuarios definir, crear y mantener la base de datos, y proporciona acceso controlado a la misma.” (MÁRQUES, 2001)

Funciones Básicas de un SGBD

Un SGBD debe incluir por lo menos las siguientes funciones (DATE, 1993): Definición de los Datos. El SGBD debe ser capaz de aceptar las definiciones de datos en versión fuente y convertirlas en la versión objeto. El SGBD debe incluir componentes procesadores para cada uno de los lenguajes de definición de datos (LDD). (DATE, 1993). Manipulación 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 manipulación 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). Recuperación y concurrencia de los datos. El principal objetivo de la implantación de una base de

Page 2: Taller de Base de Datos Examen

datos es poner a disposición de un gran numero de usuarios en conjunto integrado de datos, estos datos podrán ser manipulados por los diferentes usuarios y es ahora cuando se debe garantizar la coherencia de los datos después de las diversas manipulaciones. (DATE, 1993).

Diccionario de Datos. Desempeño. El SGBD debe ejecutar todas las funciones en la forma eficiente.

Componentes de un Sistema de Gestión de Base de Datos.

Un Sistema de Gestión de Base de Datos se divide en módulos que tratan cada una de las responsabilidades del sistema general. Los componentes funcionales de un SGBD (KORTH, 1995) incluyen:

1.2 HERRAMIENTAS

De creación de bases de datos.

Manejador de Bases de Datos El sistema manejador de bases de datos es la porción más importante del software de un sistema de base de datos. Un DBMS es una colección de numerosas rutinas de software interrelacionadas, cada una de las cuales es responsable de alguna tarea específica. Las funciones principales de un DBMS son:

Page 3: Taller de Base de Datos Examen

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 rápidamente. Manejar los datos de acuerdo a las peticiones de los usuarios. Registrar el uso de las bases de datos. Interacción con el manejador de archivos. Esto a través 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 recuperación. Consiste en contar con mecanismos implantados que permitan la recuperación fácilmente de los datos en caso de ocurrir fallas en el sistema de base de datos. Control de concurrencia. Consiste en controlar la interacción 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 también como Gestor de Base de datos. En sí, un sistema manejador de base de datos es el corazón de la base de datos ya que se encarga del control total de los posibles aspectos que la puedan afectar. Administración de bases de datos Rápidamente surgió la necesidad de contar con un sistema de administración para controlar tanto los datos como los usuarios. La administración de bases de datos se realiza con un sistema llamado DBMS (Database management system [Sistema de administración de bases de datos]). El DBMS es un conjunto de servicios (aplicaciones de software) para administrar bases de datos, que permite: • un fácil acceso a los datos • el acceso a la información por parte de múltiples usuarios • la manipulación de los datos encontrados en la base de datos (insertar, eliminar, editar) El DBMS puede dividirse en tres subsistemas: • El sistema de administración de archivos: para almacenar información en un medio físico • El DBMS interno: para ubicar la información en orden • El DBMS externo: representa la interfaz del usuario Los DBMS principales Los principales sistemas de administración 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

Page 4: Taller de Base de Datos Examen

• SQL Server 11 1.2.3 De edición para crear Esquemas y Consultas de Base de Datos Un esquema es un conjunto lógico 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 más de un esquema. Por ejemplo, un esquema estrella está compuesto de tablas, donde una gran y central tabla tiene toda la información importante, con la que se accede, vía claves ajenas, a tablas dimensionales, las cuales tienen información de detalle, y pueden ser usadas en una unión para crear informes detallados. Un esquema en estrella es aquel que tiene una tabla fact de hechos que contiene los datos de análisis, rodeada de las tablas lookup o de dimensiones. Este aspecto, de tabla de hechos (o central) más grande rodeada de radios o tablas más pequeñas 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 intersección de las dimensiones que la definen. Este esquema es ideal por su simplicidad y velocidad para ser usado para análisis: Data Marts? (Mercado de datos) y EIS (Sistemas de información ejecutiva). Permite acceder tanto a datos agregados como de detalle. Además, permite reducir el número de joins entre tablas y deja a los usuarios establecer jerarquías y niveles entre las dimensiones. Finalmente, es la opción 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 están normalizadas. Cada tabla lock_up contiene sólo el nivel que es clave primaria en la tabla y la foreign key de su parentesco del nivel más cercano del diagrama. Esquema de relación y esquema relacional En un esquema de relación debemos especificar los atributos y dominios sobre los que se define la relación, así como las restricciones de integridad que se deben cumplir para que la relación constituya una ocurrencia válida del esquema; es decir, aquellas restricciones que afectan a cada uno de los elementos que forman parte del correspondiente esquema de relación (restricciones intraelementos). Por tanto, podremos definir un esquema de relación como: R <A:D, S> Siendo R el nombre de la relación, A la lista de atributos, D los dominios sobre los que están definidos los atributos y S las restricciones de integridad, intraelementos. El esquema de la base de datos relacional será una colección de esquemas de relación 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 relación, e {Ii} representa el conjunto de restricciones de integridad ínter elementos. Podemos definir una base de datos relacional –―variable relacional‖ siguiendo la terminología de DATE (1995) –como un esquema relacional junto con una ocurrencia válida de dicho esquema, es decir, una ocurrencia que cumple todas las restricciones descritas en el esquema. La creación de esquemas se lleva a cabo mediante la sentencia: <Definición de esquemas>::= CREATE SCHEMA <cláusula de nombre del esquema> [<Especificación del conjunto de caracteres del esquema>] [<Elementos de esquemas>…]

Page 5: Taller de Base de Datos Examen

<Cláusula de nombre del esquema> ::= <Nombre del esquema> | AUTHORIZATION <id. Autorización del esquema› | <Nombre del esquema› AUTHORIZATION <id. Autorización Del esquema> Podríamos, por ejemplo, crear el siguiente esquema: CREATE SCHEMA biblioteca AUTHORIZATION uc3m; Diferencia entre una simple consulta de fila y una múltiple consulta de filas Primero, para cubrir lo obvio, una consulta de una sólo fila es una consulta que sólo devuelve una fila como resultado, y una consulta de múltiples filas es una consulta que devuelve más de una fila como resultado. Si una consulta devuelve una fila o más esto depende enteramente del diseño (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 múltiples filas). Por ejemplo, si quieres estar seguro que una consulta de la tabla Propietarios _ antigüedades devuelve sólo una fila, considera una condición 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 múltiples filas cuando tú sólo esperabas una, o viceversa, puede significar que la consulta es errónea, que la base de datos está incompleta, o simplemente, has aprendido algo nuevo sobre tus datos. Segundo, se estás usando una sentencia Update o Delete, debes de estar seguro que la sentencia que estás escribiendo va a hacer la operación en la fila (o filas) que tú quieres… o sino, estarás borrando o actualizando más filas de las que querías. Tercero, cualquier consulta escrita en SQL embebido debe necesitar ser construida para completar el programa lógico requerido. Si su consulta, por otra parte, devuelve múltiples filas, deberás usar la sentencia Fetch, y muy probablemente, algún tipo de estructura de bucle para el procesamiento iterativo de las filas devueltas por la consulta. De control, monitoreo y estadísticas 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 través de mensajes de alerta, si las propiedades de los sistemas de bases de datos van más allá de un umbral determinado UTILERIAS DIVERSAS

o Algunos de los componentes monitoreados en MS SQL son las siguientes: o Uso de memoria. o Gestión de estadística de Buffer . o Estadística de Conexión . o Detalles de Cache . o Estadística del bloqueo de tablas. o Estadísticas de SQL . o Detalles Latch . o

1.2.5 Utilerías diversas

Page 6: Taller de Base de Datos Examen

UTILERIAS DIVERSAS

Las utilerias son programas diseñados 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 comúnmente 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 reorganización: Para reordenar los datos en las bases de datos almacenada por distintas razones que normalmente tienen que ver con el desempeño; 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 desempeño, como el tamaño 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 Instalación y configuración del entorno operativo.

Instalación y configuración 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 configuración 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 configuración RDBMS de sólo servidor, el servidor RDBMS deberá estar instalado en

un nodo gestionado. El host RIM deberá estar en el mismo nodo gestionado.

Para obtener información adicional acerca del host RIM, consulte la publicación Tivoli Enterprise -

Guía de instalación.

Los siguientes apartados incluyen información acerca de la instalación y configuración de las bases

de datos RDBMS admitidas (DB2, Informix, Microsoft SQL Server, Oracle y Sybase).

Nota:

Page 7: Taller de Base de Datos Examen

es importante leer la publicación Tivoli Management Framework - Notas del release y los archivos

readme de los parches de Tivoli Management Framework para obtener información sobre los

requisitos de RIM del RDBMS. La información contenida en los archivos readme puede incluir

cambios de RIM que prevalecen sobre las publicaciones Tivoli Management Framework - Guía 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.

Elección del servidor RDBMS

El servidor RDBMS alberga el esquema del depósito de eventos. Tenga en cuenta las siguientes

consideraciones cuando seleccione qué sistema será el servidor RDBMS:

Este sistema deberá tener una conexión TCP/IP con el host RIM. Este sistema no tiene que ser necesariamente un nodo gestionado en la región de gestión

Tivoli, pero debe encontrarse en la misma subred que la región de gestión Tivoli. Este sistema deberá tener espacio en disco suficiente para soportar la cantidad de

información que tiene previsto almacenar en el depósito de eventos.

Elección del host RIM

El host RIM proporciona comunicación 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 mayoría de entornos Tivoli que utilizan el producto Tivoli Enterprise Console, la

ubicación más 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 información adicional acerca de la cuenta tmersrvd, consulte la publicación Tivoli Enterprise - Guía de instalación.

Instalación y configuración 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 información siguiente proporciona sólo una visión general de los pasos necesarios para la

configuración de una DB2 que se utilice con el host RIM. El proceso de instalación y las

consideraciones sobre DB2 no forman parte de esta documentación. Por lo tanto, deberá seguir la

información de instalación y configuración que se facilita en la documentación de IBM DB2.

Page 8: Taller de Base de Datos Examen

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.

Configuración 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

configuración 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 conexión. Por ejemplo, agregue las siguientes líneas al archivo services:

[[code format="xmp"]]

TEC 3700/tcp Puerto de servicio de conexión DB2 code

1. En la línea 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 conexión (TEC), que es

también el nombre de la instancia en este ejemplo.

Configuración 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 conexión. Por ejemplo, agregue las siguientes líneas al archivo services:

Page 9: Taller de Base de Datos Examen

[[code format="xmp"]]

TEC 3700/tcp puerto de servicio de conexión 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 db2 o code 3. Catalogue el nodo del servidor:

[[code format="xmp"]]

o catalog tcpip node nodo_db2 remote nombrehost \ o server nombre_servicio o 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 conexión tal y como está definido en el archivo "services".

Instalación y configuración de DB2

Antes de empezar a crear un depósito 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 colocación en el búfer. La base de datos Tivoli Enterprise Console para Informix se crea con el registro sin colocación en el búfer. No utilice el registro cronológico en modo ANSI (American National Standards Institute), ya que pueden surgir problemas de bloqueo de bases de datos y se podrían detener los programas de aplicación 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 volúmenes. Bajo estas

condiciones, ajuste con cuidado el servidor Informix para evitar que surjan problemas de bloqueo que

puedan provocar la pérdida de datos. Cuando se dan determinadas condiciones, la habilitación del

Page 10: Taller de Base de Datos Examen

bloqueo de filas podría solucionar los problemas de bloqueo relacionados con el producto Tivoli

Enterprise Console. Para determinar cuál es el mejor modo de bloqueo para su entorno, póngase en

contacto con el administrador de bases de datos Informix.

Para obtener información de instalación adicional específica de Informix, consulte la documentación

de Informix.

Instalación y configuración de Microsoft SQL Server

Instale SQL Server de Microsoft en el servidor RDBMS. Para obtener más información acerca de la

instalación, consulte la documentación de SQL Server de Microsoft.

Nota:

el cuadro de diálogo de opciones de instalación que aparece durante la instalación de SQL Server de

Microsoft incluye una opción de Orden de clasificación. Para utilizar SQL Server de Microsoft para el

depósito de eventos, deberá seleccionar en la instalación la opción de orden de diccionario, sensible

a las mayúsculas y minúsculas

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 información de instalación adicional específica de SQL Server de Microsoft, consulte la

documentación de SQL Server de Microsoft.

Instalación y configuración de Oracle

Instale Oracle RDBMS y SQL*Plus en el servidor RDBMS. Para obtener más información acerca de

la instalación, consulte la documentación 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 continuación. Consulte la documentación 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 instalación de cliente o servidor de Oracle.

3. Verifique si el archivo tnsnames.ora se ha actualizado correctamente para que refleje su configuración. 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 información de instalación adicional específica de Oracle, consulte la documentación

de Oracle.

Page 11: Taller de Base de Datos Examen

Instalación y configuración de Sybase

Instale RDBMS de Sybase. Para obtener más información acerca de la instalación, consulte las

instrucciones en la documentación 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 instalación 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 Creación 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 terminología usada en SQL no se alude a las relaciones, del mismo modo que no se usa el término atributo, pero sí la palabra columna, y no se habla de tupla, sino de línea. A continuación se usarán indistintamente ambas terminologías, por lo que tabla estará en lugar de relación, columna en el de atributo y línea en el de tupla, y viceversa. Prácticamente, la creación de la base de datos consiste en la creación de las tablas que la componen. En realidad, antes de poder proceder a la creación 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 estándar 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 estándar), pero cada DBMS prevé un procedimiento propietario para crear una base de datos. Normalmente, se amplía el lenguaje SQL introduciendo una instrucción no prevista en el estándar: "CREATE DATABASE". La sintaxis empleada por PostgreSQL, pero también por las DBMS más difundidas, es la siguiente: CREATE DATABASE nombre_base de datos Con PostgreSQL está a disposición una orden invocable por shell Unix (o por shell del sistema

Page 12: Taller de Base de Datos Examen

usado), que ejecuta la misma operación: createdb nombre_base de datos Para crear nuestra base de datos bibliográfica, usaremos pues la orden: createdb biblio Una vez creada la base de datos, se pueden crear las tablas que la componen. La instrucción SQL propuesta para este fin es: CREATE TABLE nombre_tabla ( nombre_columna tipo_columna [ cláusula_defecto ] [ vínculos_de_columna ] [ , nombre_columna tipo_columna [ cláusula_defecto ] [ vínculos_de_columna ] ... ] [ , [ vínculo_de tabla] ... ] ) nombre_columna: es el nombre de la columna que compone la tabla. Sería mejor no exagerar con la longitud de los identificadores de columna, puesto que SQL Entry Level prevé nombres con no más de 18 caracteres. Consúltese, de todos modos, la documentación de la base de datos específica. Los nombres tienen que comenzar con un carácter alfabético. tipo_columna: es la indicación del tipo de dato que la columna podrá contener. Los principales tipos previstos por el estándar 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 máximo de n caracteres. CHARACTER VARYING se puede abreviar con VARCHAR o CHAR VARYING.

INTEGER Un número estero con signo. Se puede abreviar con INT. La precisión, es decir el tamaño del número entero que se puede memorizar en una columna de este tipo, depende de la implementación de la DBMS en cuestión.

SMALLINT Un número entero con signo y una precisión que no sea superior a INTEGER.

FLOAT(p) Un número con coma móvil y una precisión p. El valor máximo de p depende de la implementación de la DBMS. Se puede usar FLOAT sin indicar la precisión, empleando, por tanto, la precisión por defecto, también ésta dependiente de la implementación. REAL y DOUBLE PRECISION son sinónimo para un FLOAT con precisión concreta. También en este caso, las precisiones dependen de la implementación, siempre que la precisión del primero no sea superior a la del segundo.

DECIMAL(p,q) Un número con coma fija de por lo menos p cifras y signo, con q cifras después de la coma.

Page 13: Taller de Base de Datos Examen

DEC es la abreviatura de DECIMAL. DECIMAL(p) es una abreviatura de DECIMAL(p,0). El valor máximo de p depende de la implementación.

INTERVAL Un periodo de tiempo (años, meses, días, horas, minutos, segundos y fracciones de segundo).

DATE, TIME y TIMESTAMP Un instante temporal preciso. DATE permite indicar el año, el mes y el día. Con TIME se pueden especificar la hora, los minutos y los segundos. TIMESTAMP es la combinación de los dos anteriores. Los segundos son un número con coma, lo que permite especificar también fracciones de segundo.

cláusula_defecto: indica el valor de defecto que tomará la columna si no se le asigna uno explícitamente en el momento en que se crea la línea. La sintaxis que hay que usar es la siguiente: DEFAULT { valor | NULL } donde valor es un valor válido para el tipo con el que la columna se ha definido. vínculos_de_columna: son vínculos 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 definición de referencia con la que se indica que la columna es una llave externa hacia la

tabla y los campos indicados en la definición. 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 cláusulas ON DELETE y ON UPDATE indican qué acción 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) podría haber valores inconsistentes. Las acciones pueden ser:

o CASCADE: eliminar la tupla que contiene la columna referenciante (en el caso de ON DELETE) o también actualizar la columna referenciante (en el caso de ON UPDATE).

o SET DEFAULT: asignar a la columna referenziante su valor de defecto. o 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 función del resultado de una expresión. La sintaxis que se usa es: CHECK (expresión_condicional) donde expresión_condicional es una expresión que ofrece verdadero o falso. Por ejemplo, si estamos definiendo la columna COLUMNA1, con el siguiente control: CHECK ( COLUMNA1 < 1000 )

Page 14: Taller de Base de Datos Examen

en dicha columna se podrán incluir sólo valores inferiores a 1000.

vínculo_de_tabla: son vínculos de integridad que se pueden referir a más columnas de la tabla. Son:

la definición de la llave primaria: PRIMARY KEY ( columna1 [ , columna2 ... ] ) Véase que en este caso, a diferencia de la definición de la llave primaria como vínculo 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 definición_de_referencia tiene la misma sintaxis y significado que la que puede aparecer como vínculo de columna.

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

Para aclarar mejor el uso de la instrucción CREATE TABLE, veamos algunas órdenes que implementan la base de datos bibliográfica ejemplificada. CREATE TABLE Publication ( ID INTEGER PRIMARY KEY, type CHAR(18) NOT NULL ); La instrucción 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 relación. En el atributo type hay un vínculo 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 relación Book, formada por nueve atributos. La llave primaria es el atributo ID, que es también una llave externa hacia la relación Publication. Sobre los atributos title, publisher y pub_year hay vínculos de no nulidad. Además, el atributo publisher es una llave externa hacia la tabla Publisher.

Page 15: Taller de Base de Datos Examen

CREATE TABLE Author ( publicationID INTEGER REFERENCES Publication(ID), personID INTEGER REFERENCES Person(ID), PRIMARY KEY (publicationID, personID) ); Crea la relación Author, compuesta por dos atributos: publicationID y personID. La llave primaria en este caso está formada por la combinación de los dos atributos, como está indicado por el vínculo de tabla PRIMARY KEY. PublicationID es una llave externa hacia la relación Publication, mientras que personID lo es hacia la relación Person. El archivo create_biblio.sql contiene todas las órdenes necesarias para crear la estructura de la base de datos bibliográfica ejemplificada. NOTA SOBRE POSTGRESQL En PotgreSQL, por lo menos hasta la versión 6.5.1, no se han implementado todavía los vínculos 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 sólo un warning.

2.1.1 Creación de la estructura de la base de datos. 1. Base de datos Definir el término base de datos

Definición de Bases de Datos.- Un conjunto de información 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 utilización y su implementación en máquina accesibles en tiempo real y compatibles con usuarios concurrentes con necesidad de información diferente y no predicable en tiempo. Explicar Sus Orígenes Y Antecedentes Surgen desde mediados de los años sesenta la historia de las bases de datos, en 1970 Codd propuso el modelo relacional, este modelo es el que ha marcado la línea de investigación por muchos años, ahora se encuentran los modelos orientados a objetos. Describir las ventajas del uso de la base de datos en la organización 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 dueño de datos (No igual a ser publicos). + Ni aplicaciones ni usuarios. o Guardamos descripción (Idea de catalogos).

Page 16: Taller de Base de Datos Examen

4. Cumplimiento de ciertas normas. o Restricciones de seguridad. + Accesos (Usuarios a datos). + Operaciones (Operaciones sobre datos). 5. Otras ventajas: o Más efiente gestión 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 Físico. 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 representación de los datos, que es lo que denominamos Esquema Físico. 2.- Nivel Conceptual. Es el correspondiente a una visión 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 Visión. Son partes del esquema conceptual. El nivel conceptual presenta toda la base de datos, mientras que los usuarios por lo general sólo tienen acceso a pequeñas parcelas de ésta. El nivel visión es el encargado de dividir estas parcelas. Un ejemplo sería el caso del empleado que no tiene porqué tener acceso al sueldo de sus compañeros o de sus superiores. El esquema asociado a éste nivel es el Esquema de Visión. Los 3 niveles vistos, componen lo que conocemos como arquitectura de base de datos a 3 niveles. A menudo el nivel físico no es facilitado por muchos DBMS, esto es, no permiten al usuario elegir como se almacenan sus datos y vienen con una forma estándar de almacenamiento y manipulación de los datos. La arquitectura a 3 niveles se puede representar como sigue: Subesquema de Visión, Subesquema de Visión, Subesquema de Visión, … Esquema Conceptual Esquema Físico Citar Las Diferentes Estructuras De Bases De Datos Modelos de Datos Para representar el mundo real a través de esquemas conceptuales se han creado una serie de modelos: Mundo Real Esq‘s Conceptuales Modelización 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 Jerárquico

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

Page 17: Taller de Base de Datos Examen

25 34 Juan 25 Num_sección Nombre 25 Textil 26 Pintura 2.- Modelo de Red. Representamos al mundo real como registros lógicos que representan a una entidad y que se relacionan entre sí por medio de flechas. Ex.: 33 Pepe 25 Textil 34 Juan 3.- Modelo Jerárquico. Tiene forma de árbol invertido. Un padre puede tener varios hijos pero cada hijo sólo puede tener un padre. Ex.: Empresa 25 Textil 26 Pintura 27 Construcción 33 Pepe 34 Juan 36 Perico Al llegar a este punto adoptaremos una convención 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 jerárquico sólo admite relaciones 1 : 1 ó 1 : N. En caso de que tuviésemos la necesidad de otro tipo de asociaciones y queramos usar el esquema jerárquico, recurriríamos a una duplicación de la información en el esquema, pero sólo a nivel esquemático. 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 jerárquico tendríamos que recurrir a una duplicación de los datos en el esquema. Cliente Cuenta Cuenta Cliente Como ya se ha dicho esta duplicación sólo ocurriría a nivel esquemático, pero a nivel físico existiría un único registro por cliente, y por cuenta que relacionaríamos 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 cuáles sólo puede tener un titular, y cada cuenta ésta en una sola sucursal, que por supuesto puede ser compartida por varias cuentas, éste sería el esquema: Cliente Cuenta Sucursal Con el modelo relacional podríamos tener ambas entidades definidas de la siguiente forma: Cliente = (Nº Cliente: Acceso Principal; Nombre, Dirección, Nº Cuenta: Acceso Ajeno) Cuenta = (Nº Cuenta: Acceso Principal; Saldo) Se podría hablar de otro modelo que está un nivel más arriba y que se denomina Modelo Entidad-Relación (E/R). Este modelo sólo realiza el diseño, no realiza la implementación, por lo tanto una vez hecho el diseño se puede llevar al modelo relacional, de red o jerárquico. Define dos entidades y una forma de relación entre ellas. Ex.: Nombre Dcción Num_Cli Num_cuenta Saldo CLIENTE Cliente - CUENTA Cuenta Entidad Relación Entidad Clasificar Las Bases De Datos Por Su Uso Y Aplicación

Page 18: Taller de Base de Datos Examen

TIPOS DE MODELOS DE DATOS Existen fundamentalmente tres alternativas disponibles para diseñar las bases de datos: el modelo jerárquico, 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 representación 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 información, a través de la incorporación de un tipo de registro denominado el conector. MODELO RELACIONAL. Este modelo se está empleando con más frecuencia en la práctica, debido a la ventajas que ofrece sobre los dos modelos anteriores, entre ellas, el rápido 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 están utilizando cada vez más 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 tecnología 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. Además, el control de la información puede constituir una desventaja, debido a que se encuentra diseminada en diferentes localidades geográficas. TENDENCIAS FUTURAS. En el futuro la mayoría de las organizaciones cambiarán la forma convencional de manejo de la información 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 tecnología de comunicación de datos brinde más facilidades para ello. El uso de bases de datos facilitará y soportará en gran medida a los Sistemas de Información 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 creación y todos los accesos a las bases de datos, esta compuesto por: DDL: Lenguaje de Definición de Datos DML:Lenguaje de Manipulación 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 continuación 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 jerárquicos: los datos se organizan en grupos unidos entre ellos por relaciones de ―posesión‖, en las que un conjunto de datos puede tener otros conjuntos de datos, pero un conjunto puede pertenecer sólo a otro conjunto. La estructura resultante es un árbol de conjuntos de datos. Bases de datos reticulares: el modelo reticular es muy parecido al jerárquico, y de hecho nace como una extensión de este último. También en este modelo conjuntos de datos están unidos por relaciones de posesión, pero cada conjunto de datos puede pertenecer a uno o más conjuntos. Bases de datos relacionales: las bases de datos que pertenecen a esta categoría se basan en el modelo relaciones, cuya estructura principal es la relación, es decir una tabla bidimensional compuesta por líneas y columnas. Cada línea, que en terminología relacional se llama tupla, representa una entidad que nosotros queremos memorizar en la base de datos. las características de cada entidad están definidas por las columnas de las relaciones, que se llaman atributos. Entidades con características comunes, es decir descritas por el mismo conjunto de atributos, formarán parte de la misma relación. 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 características y el comportamiento de los objetos que poblarán la base de datos. La diferencia principal respecto a los modelos examinados

Page 19: Taller de Base de Datos Examen

hasta ahora es la no positividad de los datos. En efecto, con una base de datos tradicional (entendiendo con este término 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 inyección de inteligencia que les permite saber cómo 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 colección de archivos interrelacionados almacenados en conjunto sin redundancia y la dbms es un conjunto de númerosas rutinas de software interrelacionadas cada una de ellas es responsable de una determinada tarea. Mencionar la importancia de una apropiada elección 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 Máquinas 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 también SGBD (Sistema Gestor de Base de Datos). Los DBMS tienen dos funciones principales que son: - La definición de las estructuras para almacenar los datos. - La manipulación de los datos. 1.- Describir los sistemas de procesamiento de archivos La información 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 incorporación 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 monolítico y de difícil mantenimiento. Sistema de Procesamiento de Archivos: Tiene una serie de inconvenientes que son reducidos en los SGBD: Dificultad de Acceso a ciertos datos o información: Si no existen programas para acceder o calcular cierta información, no puede accederse a ella. Ej.: Calcular totales, o registros con cierta condición… Aislamiento de Datos: Los datos pueden estar en varios archivos con distintos formatos, que complican la creación de programas nuevos. Falta de Integridad: Es complicado mantener ciertas condiciones en la información. Ej.: Que el saldo sea superior a cierta cantidad, que un empleado no esté adscrito a un número de Departamento que no exista… Problemas de Atomicidad en las operaciones: A veces es esencial que para la consistencia de la BD se efectúen varias operaciones como si fueran

Page 20: Taller de Base de Datos Examen

una única operación, evitando que se produzcan fallos en medio de dicha operación. Ej.: En una transferencia bancaria hay que dar de quitar dinero de una cuenta y añadirlo 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 evolución histórica Viendo la necesidad de mejorar este estándar se desarrollaron los ―Sistemas gestores de Base de Datos Relacionales‖(SGBDR) cuyas características hacen al sistema mucho mas eficiente que los sistemas de manejos de archivos. Algunas de las características son que existe solo una copia de los datos para que todos los programas trabajen con ella, esto es lo que se denomina obtención de redundancia mínima 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 podrían estar trabajando al mismo tiempo. Estas son solo algunas de las características 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 SGBDR‘s como Oracle e Informix pero la mas conocida por su carácter gratuito para el uso personal y la inclusión 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 carácter del SQL - 92. Actualmente posee ciertas limitaciones técnicas como el no permitir consultas paralelas, es decir que no pueden dos usuarios consultar una misma tabla al mismo tiempo, lo que impide su adopción 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 múltiples plataformas y también así para su utilización 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 bibliografía que trate este tema antes de trabajar en el diseño de una base de datos con el. No estaría bien terminar sin nombrar otros sistemas de base de datos como el Sybase SQL Anywhere Studio de la empresa Sybase cuya versión beta se encuentra disponible en el web site de la compañía 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 adopción en las grandes y medianas empresas. 3.- Describir los sistemas de procesamiento en línea 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 habría razones para usar nada diferente. Procesamiento en linea: A diferencia del procesamiento por lotes o batch, el procesamiento en línea 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 también 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 día y se consultan en forma casi inmediata con las modificaciones que se efectuaron. Un ejemplo de lo anterior es un sistema de

Page 21: Taller de Base de Datos Examen

reservaciones en alguna línea aérea. 4.- Explicar los lenguajes de 3era y 4ª generación Los lenguajes de tercera generación (3GL; third-generation languages) son los lenguajes propiamente como los conocemos (poseen instrucciones, funciones, sintaxis, semántica); ya trascienden el uso de los términos nemotécnicos. Una instrucción puede indicar 1 o más tareas para el computador. Pueden dividirse como sigue: Orientados a problemas A procedimientos A objetos 4GL (Generadores de aplicaciones que no dependen de una metodología).

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 comparación con los lenguajes orientados al procedimiento de la tercera generación (COBOL, FORTRAN, BASIC y demás ). 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 programación utilizando la lógica de programación 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 diseñan para ser instrumentos efectivos para desarrollar sistemas de información empresarial. La fuerza de la 3GL empresariales consiste en su capacidad de almacenar, recuperar y manejar datos alfanuméricos. + COBOL, el primer lenguaje de programación empresarial, se introdujo en 1959. Este lenguaje sigue siendo el mas popular. La intención original del os 0creadores del COBOL (Common Bussines Oriented Language; lenguajes común orientado a la empresa) era hacer que sus instrucciones se aproximan al inglés. o Lenguaje científicos. Estos lenguajes del tipo de una formula algebraica están diseñado en particular para satisfacer las necesidades de procedimientos repetitivo, la expresión y la solución de ecuaciones matemáticas y demás operaciones pertinentes. + FORTRAN. (Formula Translator), el primer lenguaje orientado a procedimientos, se desarrollo en 1955. Fue y sigue siendo el lenguaje científico más popula. + APL. (A Programming Language un lenguaje de programación), introducido en 1968, es un lenguaje de programación interactivo que es común entre los ingenieros, matemáticos y científicos. Un tablero especial con símbolos ―taquigráficos‖ ayuda a la rapidez del proceso de cifrado. o Lenguajes de la cuarta generación orientados a la producción. Los lenguajes de la cuarta generación orientados a la producción están diseñados sobre todo para profesionales en la computación, 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 análisis 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 numéricos, tales como símbolos y texto (se utiliza en el desarrollo de la inteligencia artificial y los compiladores). o LOGO (1967). Hace uso de una ―tortuga‖ para enseñar a los niños geometría, matemáticas y

Page 22: Taller de Base de Datos Examen

programación. o FORTH (1971). Se utiliza para aplicaciones de control de dispositivos, juegos de video y robótica. o Prolog (Programming in Logic [programación en lógica], 1972. Es capaz de manejar relaciones entre hechos ( se utiliza en el desarrollo de sistemas expertos). o Modula-2 (1981). Permite combinar módulos independientes en un programa. Lenguajes de la cuarta generación orientados al usuario. Los usuarios escriben programas para consultar (extraer información ) de una base de datos y para crear sistemas de información personales o departamentales. Los lenguajes de la cuarta generación 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 también 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 dueño de datos (No igual a ser publicos). Ni aplicaciones ni usuarios. Guardamos descripción (Idea de catalogos). 4.- Cumplimiento de ciertas normas. Restricciones de seguridad. Accesos (Usuarios a datos). Operaciones (Operaciones sobre datos). 5.- Otras ventajas : Más efiente gestión de almacenamiento. Efecto sinergico 8.- Describir los 4GL‘s 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 programación del código Debe poseer herramientas para la fácil documentación de análisis, diseño, y modelo de datos.

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

Page 23: Taller de Base de Datos Examen

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 ningún encadenamiento muchos a muchos (―ONE-TO-MANY link‖). En este caso, los encadenamientos de uno a muchos (―ONE-TO-MANY links‖) están 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 definición, en la estructura de árbol (―tree structure‖), cada hijo (―child‖) tiene un solo padre (―parent‖). 2.2 NETWORK STRUCTURE: Por definición, 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 aplicación 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. bibliográficas: aquellas cuyo contenido son registros de tipo bibliográfico. 1.2. directorios: aquellas cuyo contenido está referido a la descripción de otros recursos de información, como por ejemplo un directorio de bases de datos. 2. Bases de datos fuente: serían aquellas bases de datos que ofrecen el documento completo, no una representación del mismo. También distinguen entre: 2.1. numéricas: contienen información de tipo numérico, como un censo o indicadores cuantitativos. 2.2. textuales: ofrecen el texto completo de un documento. 2.3. mixtas: combinan ambos tipos de información, como por ejemplo informes económicos de empresas, datos geoeconómicos, etc. 11.- Describir las base de datos orientadas a objetos

La Orientación a Objetos puede describirse como el conjunto de disciplinas (ingeniería) que desarrollan y modelizan software que facilita la construcción de sistemas complejos a partir de componentes, llamados objetos.

En la programación 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 sería el futuro de las base de datos Dentro del panorama futuro de las bases de datos múltiples hay un aspecto importante que considerar, el inusitado éxito del World Wide Web (WWW o, de forma abreviada, ―el web‖) como medio de publicación de documentos y como medio de intercambio de información. El WWW proporciona uno de los medios más heterogéneos y retadores en el campo de la interoperabilidad. Recientemente han surgido tecnologías y estándares enfocados a hacer del web una infraestructura escalable y manejable. Una de dichas tecnologías es XML [4] (eXtensible Markup Language), sobre la cual la comunidad científica 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 máquinas de búsqueda. Sin embargo, XML en sí no posee mucha de la funcionalidad de sistemas de bases de datos múltiples como las indicadas en Donají. El reto es integrar esa funcionalidad en XML y aprovechar al máximo la información estratégica que podamos encontrar en el web.

Page 24: Taller de Base de Datos Examen

3. Multitarea La ejecución de más de un programa a la vez en una computadora. Los sistemas operativos multitarea (Windows, OS/2, Unix y otros) permiten que múltiples operaciones se ejecuten simultáneamente. 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 también debe ser capaz de efectuar multitareas. Unix es el Sistema Operativo Multiusuario más utilizado. Debido a que Unix fue originalmente diseñado para correr en una minicomputadora, era multiusuario y multitarea desde su concepción. Actualmente se producen versiones de Unix para PC tales como The Santa Cruz Corporation Microport, Esix, IBM,y Sunsoft. Apple también produce una versión de Unix para la Machintosh llamada: A/UX.Unix , Unix proporciona tres maneras de permitir a múltiples personas utilizar la misma PC al mismo tiempo. 1.Mediante Módems 2.Mediante conexión de terminales a través 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 instrucción, el otro procesador queda liberado para procesar otras instrucciones simultáneamente. 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 asimétrico: 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 dirección ideal a seguir ya que la CPU principal podía convertirse en un cuello de botella. Multiproceso simétrico: En un sistema multiproceso simétrico, no existe una CPU controladora única. La barrera a vencer al implementar el multiproceso simétrico es que los SO tienen que ser rediseñados o diseñados desde el principio para trabajar en u n ambiente multiproceso. Las extensiones de Unix, que soportan multiproceso asimétrico ya están disponibles y las extensiones simétricas se están haciendo disponibles. Windows NT de Microsoft soporta multiproceso simétrico. Lenguajes que tienen estas características C, SQL, El UNIX y sus clones permiten múltiples tareas y múltiples usuarios. Su sistema de archivos proporciona un método sencillo de organizar archivos y permite la protección 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 vínculos 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 diseñada o descripta empleando algún tipo de modelo de datos. Un ejemplo a modo de descripción de la estructura de una base de datos puede ser: ALUMNO: numero de alumnno (entero de 6 números), nombre (cadena de 30 caracteres), apellido (cadena de 30 caracteres), año de nacimiento (entero de 4 números), especialidad (entero de 3 números). ESPECIALIDAD: numero de especialidad (entero de 3 números), nombre de especialidad (cadena de 30 caracteres).

Page 25: Taller de Base de Datos Examen

2.1.4 Creación de vistas de la base de datos (view). Una vista es ―una tabla temporal‖, que a través 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 información que existe Comodidad: el modelo relacional no es cómodo para visualizar ,

tener una vista nos simplifica esta tarea. Creación de vistas Para crear una vista debemos utilizar la sentencia CREATE VIEW, debiendo proporcionar un nombre a la vista y una sentencia SQL SELECT válida. 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 código. CREATE VIEW vAlquileresAS(SELECT nombre, apellidos, matriculaFROM tAlquileres, tClientes WHERE ( tAlquileres.codigo_cliente = tClientes.codigo )

1. Modificación de vistas Si queremos, modificar la definición de nuestra vista podemos utilizar la sentencia ALTER VIEW, de forma muy parecida a como lo hacíamos con las tablas. En este caso queremos añadir los campos fx_alquiler y fx_devolucion a la vista.

Page 26: Taller de Base de Datos Examen

ALTER VIEWvAlquileresAS(SELECT nombre, apellidos, matricula, fx_alquiler, fx_devolucion FROMtAlquileres, tClientes WHERE ( tAlquileres.codigo_cliente = tClientes.codigo ))

2. Eliminación de vistas Por último podemos eliminar la vista a través de la sentencia DROP VIEW. Para eliminar la vista que hemos creado anteriormente se utilizaría: 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; también se le puede considerar una tabla virtual. Tienen la misma estructura que una tabla: filas y columnas. Sólo almacenan la definición, no los datos. Los datos que se recuperan mediante una consulta a una vista se presentarán igual que los de una tabla. Se especifican a través de una expresión de consulta (una sentencia SELECT) que la calcula y que puede realizarse sobre una o más tablas. La mayoría de los DBMS soportan la creación y manipulación de vistas.

5. Aplicaciones: En general: información derivada de consultas complejas a la que se accede con frecuencia. Obtención de información derivada de la relación entre varias tablas y estadísticas. Como mecanismo de seguridad: creación de vistas con, únicamente, los atributos de las tablas a los cuales se desea permitir acceder a determinados usuarios. Para la creación de esquemas externos

6. Sintaxis: Existen 3 comandos principales: Creación o modificación de vistas con CREATE VIEW o ALTER VIEW Eliminación de vistas con DROP VIEW Obtención de información de definición 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 cláusula 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 definición 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 más vistas de la base de datos. Se debe poseer el privilegio DROP en cada vista a eliminar.

Page 27: Taller de Base de Datos Examen

2.2 Definición del esquema de integridad. La seguridad de los datos implica protegerlos de operaciones indebidas que pongan en peligro su definición, existencia, consistencia e integridad independientemente de la persona que los accede. Esto se logra mediante mecanismos que permiten estructurar y controlar el acceso y actualización de los mismos sin necesidad de modificar o alterar el diseño del modelo de datos; definido de acuerdo a los requisitos del sistema o aplicación software.

1. Integridad Las restricciones de integridad proporcionan un medio de asegurar que las modificaciones hechas en la base de datos no provoquen la pérdida de la consistencia de los

datos. En el modelo Entidad – relación existen dos restricciones: Declaración de claves

(Regla de la Entidad) Forma de la relación (Regla de Integridad Referencial) 2. Claves Primarias Es el mínimo subconjunto no vacío de atributos que permiten identificar en

forma unívoca una tupla dentro de la relación. Si existen varios conjuntos que cumplan esta condición 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 definición determina que para un valor llave primaria solo existirá una tupla o registro en la tabla. Esta situación garantiza que no se tendrá información repetida o discordante para un valor de clave y puede ser usada como control, para evitar la inclusión de información inconsistente en las tablas.

3. Integridad Referencial La condición de Integridad Referencial se refiere a que si un valor que aparece en una relación para un conjunto de atributos determinado entonces aparece también en otra relación para un cierto conjunto de atributos. es un sistema de reglas que utilizan la mayoría de las bases de datos relacionales para asegurarse que los registros de tablas relacionadas son válidos y que no se borren o cambien datos relacionados de forma accidental produciendo errores de integridad.

4. ¿Cuándo se pueden producir errores en los datos? Cuando insertamos una nueva fila en la

tabla secundaria y el valor de la clave foránea 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 foránea, 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 Definición de una base de datos Una base de datos es una colección de datos relacionados. Con la palabra "datos" nos referimos a los hechos conocidos que se pueden grabar y que tienen un significado implícito. Por ejemplo, los nombres, números de teléfono y direcciones de un grupo de personas. Esta colección de datos relacionados con un significado implícito es una base de datos. Sin embargo, la definición anterior es muy genérica. No obstante, el uso común del término "Base de datos" es normalmente más restringido. Una base de datos tiene las siguientes propiedades implícitas:

Page 28: Taller de Base de Datos Examen

Una base de datos representa algún 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 colección de datos lógicamente coherente con algún tipo de significado inherente. No es correcto denominar base de datos a un surtido aleatorio de datos.

Una base de datos se diseña, construye y rellena con datos para un propósito específico. Dispone de un grupo pretendido de usuarios y algunas aplicaciones preconcebidas en las que esos usuarios están interesados.

En otras palabras, una base de datos tiene algún origen del que se derivan los datos, algún grado de interacción con eventos del mundo real y un público 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 tamaño y complejidad. Y además esta puede mantenerse manualmente o de forma automática. Definición de DBMS Un DBMS (DataBase Management System) es una colección de programas que permite a los usuarios crear y mantener una base de datos. El DBMS es un sistema de software de propósito general que facilita los procesos de definición, construcción, manipulación y compartición 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 almacenarán en la base de datos. La definición o información descriptiva de una base de datos también se almacena en esta última en forma de catálogo o diccionario de la base de datos; es lo que se conoce como metadatos. La construcción de la base de datos es el proceso consistente en almacenar los datos en algún medio de almacenamiento controlado por el DBMS. La manipulación de una base de datos incluye funciones como la consulta de la base de datos para recuperar datos específicos, 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 simultánea. Otras funciones importantes ofrecidas por el DBMS son la protección de la base de datos y su mantenimiento durante un largo período. La protección incluye la protección del Sistema contra el funcionamiento defectuoso del hardware o el software (caídas) y la protección de la seguridad contra el acceso no autorizado o malintencionado. Una gran base de datos típica puede tener un ciclo de vida de muchos años, por lo que el DBMS debe ser capaz de mantener el sistema de bases de datos permitiendo que este evolucione según cambian los requisitos en el tiempo. Definición de Integridad La integridad en una base de datos se refiere a la corrección y exactitud de la información contenida. Una base de datos determinada podría estar sujeta a cualquier cantidad de restricciones de integridad (en general) de una complejidad arbitraria. En la mayoría de los sistemas actuales, la verificación de la integridad se realiza mediante códigos de procedimientos escritos por los usuarios. Algunos ejemplos de restricciones de integridad serían:

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

Page 29: Taller de Base de Datos Examen

Para que un cliente sea considerado especial, deberá tener un mínimo de USD 1.000 en compras promedio al año.

La Integridad es el término utilizado para decir que la información almacenada tiene calidad. El DBMS tiene que asegurar que los datos se almacenan de acuerdo a las políticas previamente determinadas por el DBA. En otras palabras, el DBMS debe principalmente, a este respecto, comprobar las restricciones de integridad, controlar la correcta ejecución de las actualizaciones y recuperar la base de datos en caso de pérdida. La Integridad conserva la seguridad en un sistema de bases de datos que permite el acceso a múltiples usuarios en tiempos paralelos. Un control de integridad o restricción es aquel que nos permite definir con precisión el rango de valores válidos para un elemento y/o las operaciones que serán consideraciones válidas en la relación 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 restricción sobre el conjunto de valores permitidos para cada atributo. A este tipo de restricciones se les denomina restricciones de dominio. Hay además 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 señal o un recordatorio de que el valor falta o es desconocido. Dominio: Posibles valores que puede tener un campo. Un dominio no es más 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. Además 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 característica, usada en forma correcta, se convierte en mecanismo de control, restricción y validación de los datos a ingresar. Reglas de Integridad - Dominio Un Dominio de valores posibles puede estar asociado a cada atributo. Los límites de Dominio son la forma más elemental de restricciones de Integridad. Son fáciles de probar en el sistema siempre que se introduce un nuevo dato en el sistema. Por ejemplo:

Tipos de datos en SQL

Dato Longitud Descripción

Bit 1 byte Valores true/false

Byte 1 byte Entero entre 0 y 255

Counter 4 bytes Campo ID (long)

Currency 8 bytes Numérico

Datetime 8 bytes Fecha

Text 1 byte/caracter De 0 a 255 caracteres

Page 30: Taller de Base de Datos Examen

Una definición bien adecuada de restricciones de dominio no sólo nos permite probar valores insertados en la base de datos. También nos permite probar consultas para asegurarnos de que las comparaciones que se hacen tienen sentido. Reglas de Integridad - Relación Las reglas de Integridad de relación 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 básicamente dos reglas de Integridad asociadas con el modelo relacional: la Integridad de Entidad y la Integridad Referencial. Estas dos reglas son generales y tienen relación con las llaves primarias y foráneas. Integridad de Entidad Las restricciones de entidades aseguran la integridad de las entidades que son modeladas por el sistema. En el nivel más simple, la existencia de una clave principal es una restricción de entidad que impone la regla "cada entidad debe estar identificada de forma única". En esta no está permitido que algún 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 definición. Sus contrapartes en la base de datos también 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 foráneas sin concordancia. Esta regla se aplica a las claves foráneas. Si en una relación hay alguna clave foránea, 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 académica, exista un profesor en un departamento inexistente, o un curso impartido por un profesor inexistente. Hemos de recordar que sólo los productos puramente relacionales implementan realmente estas dos reglas generales de Integridad relacional. En otros, destinados al mercado doméstico (un Microsoft Access por ejemplo),

Page 31: Taller de Base de Datos Examen

estas incongruencias son admitidas sin problemas. Así que cuando se realiza una operación ilegal, existen dos opciones: rechazar la operación ilegal o bien aceptar la operación y realizar operaciones adicionales compensatorias que conduzcan a volverla legal. Por lo tanto, para cada clave foránea en la base de datos habrá que contestar a dos preguntas:

1. Regla de los nulos: ¿tiene sentido que la clave foránea acepte nulos? 2. Regla de borrado: ¿Qué ocurre si se intenta borrar la tupla referenciada por la clave foránea?

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 foránea. o Anular: se borra la tupla referenciada y las tuplas que la referenciaban indicando un

valor nulo a la clave foránea (sólo si acepta nulos).

La Integridad referencial también 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 implementación de Integridad Las vistas son expresiones del álgebra relacional con un nombre determinado. Por ejemplo, veamos la tabla siguiente que contiene información sobre los vendedores de una ferretería.

Supongamos que el dueño del negocio quiere conocer a los mejores vendedores para premiarlos con un bono especial al final del año. Para hacerlo, él considera un buen vendedor a aquel que iguale o supere los $100.000 en ventas. Utilizando una vista en SQL podríamos decir: var BUEN_VENDEDOR view (V where venta >= 100000) { Clave, Nombre, Ciudad} Al ejecutar esta instrucción, la expresión 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 continuación:

Page 32: Taller de Base de Datos Examen

En otras palabras, una vista es una ventana a través de la cual se puede consultar o cambiar información de la tabla a la que está asociada. Esto, claro está, en relación 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 información; si el usuario no tiene acceso a determinadas tablas, tampoco podrá crear una vista con información proveniente de las mismas. Las vistas tienen la misma estructura que una tabla: filas y columnas. La única diferencia es que sólo se almacena de ellas la definición, no los datos. Los datos que se recuperan mediante una consulta en una vista se presentarán 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 ningún 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 información de dos o más tablas puede recuperarse utilizando una combinación de tablas, y estas combinaciones pueden resultar muy confusas. Creando una vista se hace visualmente todo más simple.

Las vistas ayudan a mantener unos nombres razonables para las consultas. Por ejemplo, en lugar de la instrucción:

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

En las vistas remotas y en las vistas sin conexión 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 envíe 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 dígitos y así lo establecen las restricciones de Integridad de la tabla Vendedores, entonces en la vista, cuando un vendedor se dé de alta, también se deberá cumplir con esa restricción.

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; también, mediante las vistas, es posible determinar si existen datos referenciados que pudieran comprometer la Integridad relacional.

Page 33: Taller de Base de Datos Examen

2.2.2 Creación de disparadores (Trigger‘s). CONCEPTO Un disparador define una acción que la base de datos debe llevar a cabo cuando se produce algún suceso relacionado con la misma. Los disparadores (triggers) pueden utilizarse para completar la integridad referencial, también para imponer reglas de negocio complejas o para auditar cambios en los datos. El código contenido en un disparador, denominado cuerpo del disparador, está formado por bloques PL/SQL. La ejecución 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. Además, dicho usuario, debe disponer del privilegio CREATE TRIGGER. Existen varios tipos de disparadores, dependiendo del tipo de transacción 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 instrucción DML. Los disparadores de nivel de fila se crean utilizando la cláusula for each row en el comando create trigger. 2.- Disparadores de nivel de instrucción: se ejecutan una vez para cada intrucción DML. Por ejemplo, si una única intrucción INSERT inserta 500 filas en una tabla un disparador de nivel de instrucción para dicha tabla sólo se ejecutará una vez. Los disparadores de nivel de instrucción 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 después (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, podría usar un disparador INSTEAD OF en una vista para gestionar las inserciones en una tabla o para actualizar múltiples 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 sesión, conexiones y desconexiones. Puede utilizar este tipo de disparador para automatizar el mantenimiento de la base de datos o las acciones de auditoría. EJEMPLO DE CREACIÓN DE TRIGGER (DISPARADOR) DE NIVEL DE FILA 1.- En primer lugar abriremos la Consola de Oracle Enterprise Manager:

Page 34: Taller de Base de Datos Examen

seleccionaremos "Iniciar en Modo Autónomo" y pulsaremos en "Aceptar":

Selecionaremos la Base de Datos del árbol e introduciremos un usuario y contraseña 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 continuación seleccionaremos el usuario propietario de la tabla en la que crearemos el trigger, en nuestro caso "ALONSO". Después pulsaremos en "Tablas", seleccioremos la tabla a la que queramos aplicarle el disparador y, sobre la carpeta "Disparadores" pulsaremos con el botón derecho del ratón, nos aparecerá un menú emergente, pulsaremos "Crear...":

Page 35: Taller de Base de Datos Examen

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

En la pestaña "Evento" de la ventana de "Crear Disparador" marcaremos "Disparador en Tabla", marcaremos "Después" y marcaremos también en "Arrancar Disparador:" "Insertar":

Page 36: Taller de Base de Datos Examen

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

Nota: también se pueden crear disparadores sin necesidad de utilizar la interfaz gráfica (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

Page 37: Taller de Base de Datos Examen

(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á automáticamente (transparente para el usuario) otro registro en la tabla "resultadodisparador" con la fecha de la inserción (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 deberán existir las tablas PRUEBA (origen del disparador) y "resultadodisparador" (donde se insertará el registro si se cumple la condición 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 creación del disparador y de las tablas, puesto que es el propietario de dichos objetos.

Page 38: Taller de Base de Datos Examen

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

En ocasiones Oracle introduce algún "END" y ";" de más 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 inserción en la tabla PRUEBA: insert into alonso.prueba values ('PRUEBA 1', 10) con esta inserción el disparador no se ejecutará pues CAMPO2 es inferior a 1000, para comprobarlo hacemos un SELECT a la tabla RESULTADODISPARADOR (no nos debería devolver ningún registro): select * from alonso.resultadodisparador Ahora realizamos una inserción 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

Page 39: Taller de Base de Datos Examen

AjpdSoft Administración 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 función): 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 Creación de procedimientos almacenados.

Puede crear procedimientos almacenados mediante la instrucción CREATE PROCEDURE de

Transact-SQL.

Antes de crearlos, tenga en cuenta lo siguiente:

Page 40: Taller de Base de Datos Examen

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.

Sólo puede crear un procedimiento almacenado en la base de datos actual.

Cuando cree un procedimiento almacenado, deberá especificar lo siguiente:

Todos los parámetros de entrada y de salida del lote o del procedimiento que realiza la llamada.

Las instrucciones de programación 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 operación 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 algún procedimiento futuro del sistema. Si la aplicación 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 aplicación 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

Page 41: Taller de Base de Datos Examen

DROP PROCEDURE dbo.sp_who;

GO

Si se utiliza un calificador de esquema explícito también se consigue una ligera mejora del

rendimiento. La resolución de nombres es un poco más rápida si Motor de base de datos no tiene

que buscar en varios esquemas para encontrar el procedimiento. Para obtener más información, 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 ejecución 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. Sólo puede ejecutar un procedimiento temporal local la conexión que lo

creó; el procedimiento se elimina automáticamente cuando se cierra la conexión.

Cualquier conexión puede ejecutar un procedimiento almacenado temporal global. Éste existe hasta

que se cierra la conexión 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 conexión que se utilizó para crear el procedimiento almacenado temporal, éste ya no se

puede volver a ejecutar. Sólo podrán 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 cuestión se eliminará automáticamente 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 después de haber finalizado la conexión 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.

Page 42: Taller de Base de Datos Examen

A. Utilizar un procedimiento sencillo con una instrucción 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 ningún parámetro.

B. Utilizar un procedimiento simple con parámetros

El siguiente procedimiento almacenado sólo 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 parámetros pasados.

C. Utilizar un procedimiento simple con parámetros comodín

El siguiente procedimiento almacenado sólo devuelve los empleados especificados (nombre y

apellidos), sus puestos y los nombres de sus departamentos a partir de una vista. Este patrón de

procedimiento almacenado coincide con los parámetros pasados o, si éstos no se proporcionan,

utiliza los valores predeterminados (apellidos que comienzan por la letra D).

D. Utilizar parámetros 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 utilización de

varias instrucciones SELECT y varios parámetros OUTPUT. Los parámetros OUTPUT permiten a un

procedimiento externo, un proceso por lotes o más de una instrucción Transact-SQL tener acceso a

un conjunto de valores durante la ejecución del procedimiento.

2.3 Definición del esquema de seguridad. SEGURIDAD 4.1. Concepto El objetivo es proteger la Base de Datos contra accesos no autorizados. Se llama también privacidad. INCLUYE ASPECTOS DE:

Aspectos legales, sociales y éticos Políticas de la empresa, niveles de información publica y privada Controles de tipo físico, acceso a las instalaciones Identificación de usuarios: voz, retina del ojo, etc. Controles de sistema operativo

Page 43: Taller de Base de Datos Examen

En relación al SGBD, debe mantener información de los usuarios, su tipo y los accesos y operaciones permitidas a éstos. TIPOS DE USUARIOS: · DBA, están permitidas todas las operaciones, conceder privilegios y establecer usuarios

Usuario con derecho a crear, borrar y modificar objetos y que además 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, añadir nuevos campos, indexar, alterar la estructura de los objetos, etc. Los SGBD tienen opciones que permiten manejar la seguridad, tal como GRANT, REVOKE, etc. También tienen un archivo de auditoria en donde se registran las operaciones que realizan los usuarios. MEDIDAS DE SEGURIDAD

Físicas: Controlar el acceso al equipo. Tarjetas de acceso, etc Personal: Acceso sólo 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 autorización 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 códigos de acceso y palabras claves, exámenes, impresiones digitales, reconocimiento de voz, barrido de la retina, etc

Autorización: usar derechos de acceso dados por el terminal, por la operación que puede realizar o por la hora del día.

Uso de técnicas 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: creación de cuentas, concesión y revocación de privilegios y asignación de los niveles de seguridad.

Manejo de la tabla de usuarios con código y contraseña, control de las operaciones efectuadas en cada sesión de trabajo por cada usuario y anotadas en la bitácora, lo cual facilita la auditoría 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 modificación). El ABD asigna el propietario de un esquema, quien puede otorgar o revocar privilegios a otros usuarios en la forma de consulta (select), modificación o referencias. A través del uso de la instrucción grant option se pueden propagar los privilegios en forma horizontal o vertical. Ejemplo: grant select on Empleado to códigoUsuario revoke select on Empleado from códigoUsuario 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 protección. Los sistemas operativos proveen algunos mecanismos de protección para poder implementar políticas de seguridad. Las políticas definen qué hay que hacer (qué datos y recursos deben protegerse de quién; es un problema de administración), y los mecanismos determinan cómo hay que hacerlo. Esta separación es importante en términos de flexibilidad, puesto que las políticas

Page 44: Taller de Base de Datos Examen

pueden variar en el tiempo y de una organización a otra. Los mismos mecanismos, si son flexibles, pueden usarse para implementar distintas políticas. Un aspecto importante de la seguridad es el de impedir la pérdida de información, la cual puede producirse por diversas causas: fenómenos naturales, guerras, errores de hardware o de software, o errores humanos. La solución es una sola: mantener la información 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. Modificación de datos. Destrucción de datos. Uso de recursos: ciclos de CPU, impresora, almacenamiento. Principios básicos para la seguridad Suponer que el diseño del sistema es público. El defecto debe ser: sin acceso. Chequear permanentemente. Los mecanismos de protección deben ser simples, uniformes y construidos en las capas más básicas del sistema. Los mecanismos deben ser aceptados sicológicamente por los usuarios. SEGURIDAD: Fallos lógicos o físicos que destruyan los datos. - Evitar pérdidas de datos por fallos hardware o software (fallo disco, etc.). Normalmente suelen ser fallos de disco o pérdida 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, según Date (1992), se puede entender como la protección de los datos contra acceso, alteración o destrucción no autorizados. LAS TRES PRINCIPALES CARACTERÍSTICAS DE LA SEGURIDAD Que se deben mantener en una base de datos son la confidencialidad, la integridad y la disponibilidad de la información. - Los datos contenidos en una Base de Datos pueden ser individuales o de una Organización. Sean de un tipo o de otro, a no ser que su propietario lo autorice, no deben ser desvelados. Si esta revelación es autorizada por dicho propietario la confidencialidad se mantiene. Es decir, asegurar la confidencialidad significa prevenir/ detectar/ impedir la revelación impropia de la información. 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 destrucción. 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 computación ha permitido la comisión de grandes delitos. El sistema debe diseñarse a prueba de intromisiones. Los programadores, por ingeniosos que

sean, no deben poder pasar por alto los controles. Ningún sistema puede evitar de manera absoluta las intromisiones malintencionadas, pero es

posible hacer que resulte muy difícil 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 acción indebida o errónea.

SERVICIOS DE SEGURIDAD Existen varios servicios y tecnologías relacionadas con la seguridad. Accede a cada una de ellas para conocer qué tecnologías son las más interesantes: Autenticación: Se examinan las capacidades de logon único a la red, autenticación y seguridad.

Page 45: Taller de Base de Datos Examen

Además, se proporciona información 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 autenticación en red. Sistema de Archivos Encriptado: El Sistema de Archivos Encriptado (Encrypted File System - EFS) proporciona la tecnología principal de encriptación 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 estratégico de defensa para la protección de sus redes. Servicios de seguridad en Windows 2000: se examinan los procedimientos relacionados con la gestión de cuentas, autenticación de red a nivel corporativo, así como el Editor de Políticas de Seguridad. Tarjetas Inteligentes: se examinan los procesos de autenticación utilizando tarjetas inteligentes y los protocolos, servicios y especificaciones asociadas. Tecnologías de Clave Pública: se revisa la infraestructura de clave pública incluida en los sistemas operativos de Microsoft y se proporciona información sobre criptografía. Un SMBD cuenta con un subsistema de seguridad y autorización 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 códigos de acceso y palabras claves, exámenes, impresiones digitales, reconocimiento de voz, barrido de la retina, etc.

Autorización: usar derechos de acceso dados por el terminal, por la operación que puede realizar o por la hora del día.

Uso de técnicas 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: creación de cuentas, concesión y revocación de privilegios y asignación de los niveles de seguridad.

Manejo de la tabla de usuarios con código y contraseña, control de las operaciones efectuadas en cada sesión de trabajo por cada usuario y anotadas en la bitácora, lo cual facilita la auditoría 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 modificación). El ABD asigna el propietario de un esquema, quien puede otorgar o revocar privilegios a otros usuarios en la forma de consulta (select), modificación o referencias. A través del uso de la instrucción grant option se pueden propagar los privilegios en forma horizontal o vertical. Ejemplo: grant select on Empleado to códigoUsuario revoke select on Empleado from códigoUsuario. Obligatoria: sirve para imponer seguridad de varios niveles tanto para los usuarios como para los datos. Problemas de seguridad. La información de toda empresa es importante, aunque unos datos lo son más que otros, por tal motivo se debe considerar el control de acceso a los mismos, no todos los usuarios pueden visualizar alguna información, por tal motivo para que un sistema de base de datos sea confiable debe mantener un grado de seguridad que garantice la autenticación y protección de los datos. En un banco por ejemplo, el personal de nóminas sólo necesita ver la parte de la base de datos que tiene información acerca de los distintos empleados del banco y no a otro tipo de información.

2.3.1 Creación de usuarios de la base de datos.

Page 46: Taller de Base de Datos Examen

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

2.4.2 Recuperación a partir de la bitácora. RECUPERACION DE TRANSACCIONES Una transacción es una unidad lógica 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 cuestión; 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 intención es añadir un nuevo envío (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 proposición INSERT (insertar) agrega el nuevo envío a la tabla SP, la proposición UPDATE (actualizar) pone al día en forma apropiada el campo CANTOTAL de la parte P1. Esta operación implica en realidad 2 modificaciones de la BD. La BD ni siquiera es consistente entre esas 2 modificaciones; viola en forma temporal el requerimiento según 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 situación ideal, nos gustaría tener una garantía absoluta de que se realizarán las 2 modificaciones. Por desgracia, es imposible ofrecer tal garantía; siempre existe la posibilidad de una falla y, además, de una falla en el peor momento posible. Pero si el sistema maneja el procesamiento de transacciones, podrá ofrecer lo más cercano a esa garantía. Garantizará que si la transacción ejecuta algunas modificaciones y después presenta una falla antes de que llegue el término normal de la transacción, se anularán esas modificaciones. Así, o bien la transacción 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 atómica, 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 operación COMMIT señala el término exitoso en la transacción: le dice al manejador de transacciones que se ha finalizado l con éxito una unidad lógica de trabajo, que la BD está de nuevo en un estado consistente, y que pueden ―comprometer‖, todas las modificaciones efectuadas por esa unidad de trabajo.

La operación ROLLBACK, en cambio, señala el término no exitoso de la transacción: dice al manejador de transacciones que algo salió mal, que la BD podría estar en un estado inconsistente, y que todas las modificaciones efectuadas hasta el momento por la unidad lógica del trabajo deben ―retroceder‖ o anularse.

2.4.3 Respaldar bases de datos.

Page 47: Taller de Base de Datos Examen

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 español 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.

Page 48: Taller de Base de Datos Examen

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.

Page 49: Taller de Base de Datos Examen

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.)

Page 50: Taller de Base de Datos Examen

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.

Page 51: Taller de Base de Datos Examen

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.

Recuperación 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. Archivos de bases de datos 2. Concepto de base de datos relacional 3. Sistema cliente-servidor 4. Sistema de gestión de bases de datos (DBMS)

Por archivo de base de datos nos referimos físicamente al archivo que contiene los datos que el servidor SQL gestiona. Pero el archivo es más que un contenedor de datos. Los archivos SQL o MDF son extremadamente complejos y con una gran organización interna. El archivo está diseñado

Page 52: Taller de Base de Datos Examen

de modo que el servidor SQL puede gestionar un gran número de transmisiones de datos de una sola vez. El concepto de bases de datos relacionales es el método empleado para organizar los datos y se encuentra separado de la organización interna del archivo. Los sistemas de concepto de bases de datos relacionales utilizan un conjunto de teorías matemáticas para organizar los datos del modo más eficiente. La organización 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 gestión de varias bases de datos al mismo tiempo. Un sistema de gestión de gases de datos interactúa y combina todos los elementos anteriores. Pero no sólo gestiona la estructura interna del archivo .MDF, el DBMS también controla las bases de datos relacionales y organiza los datos. El DBMS de un servidor SQL es el corazón de su sistema.

Qué hacer en una situación de pérdida de datos

Las situaciones de pérdidas de datos pueden darse en un gran número de niveles. El primer nivel de pérdida 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 pérdida 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 habitación limpia de Ontrack trabajan a nivel electrónico y mecánico 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 añaden una nueva complejidad al trabajo. Ontrack ha mejorado sus especificaciones técnicas para poder solucionar los problemas en este tipo de dispositivos. El segundo nivel de **pérdida de datos** puede empezar a nivel sistema de archivos. El sistema de archivos es un método de almacenamiento y organización de los archivos del sistema de los usuarios. El sistema operativo contrala el sistema de archivos. Si la información acerca de la ubicación de los archivos de datos se encuentra en el volumen que está dañado o perdido, los ajustes o reparaciones deberán 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 mayoría de los sistemas operativos dispone de una herramienta que automáticamente arregla el sistema de archivos. Estas herramientas hacen que el volumen sea accesible. Sin embargo, también pueden dañar permanentemente el flujo de datos del archivo. El tercer nivel de la pérdida 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 solución total de recuperación de datos.

Soluciones de Ontrack para situaciones de pérdidas de datos

Page 53: Taller de Base de Datos Examen

Ontrack tiene la solución para los archivos de bases de datos corruptos o dañados y disponemos de la tecnología **Remote Data Recovery** para recuperar los datos a distancia tan pronto como sea posible. El conjunto de herramientas de recuperación interna para SQL de Ontrack ha sido diseñado para recuperar los datos contenidos en archivos .MDF. El proceso de una recuperación de SQL comienza con la localización 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 vínculos 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 también muestran el número de listas de datos que se pueden recuperar. Una vez que se ha terminado el proceso de evaluación y se ha recibido la autorización 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 recuperación de datos a distancia es la solución más rápida para las recuperaciones de SQL. Los procesos de recuperación de datos a distancia copiarán los datos recuperados en un servidor SQL que esté instalado en su sitio o en el de su cliente. Sólo 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 tránsito de datos sucede en un solo equipo.

Versiones compatibles de SQL

Microsoft SQL 6.5

Generalmente uno o más archivos DAT de gran tamaño. Extraemos la tabla de información de la base de datos con errores y creamos nuevas tablas en una nueva base de datos. Ontrack da completa cobertura a esta versión, incluidas las tablas y listas de información borradas.

Microsoft SQL 7,0

Igual que SQL 6.5, los nombre de archivos de base de datos son generalmente .MDF.

Microsoft SQL 2000

Igual que SQL 7.0

Microsoft SQL 2005

Igual que SQL 7.0

Términos 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 información en una tabla de SQL que ha sido borrada.

Funciones de recuperación

Page 54: Taller de Base de Datos Examen

Archivo corrupto

Archivo de base de datos que el motor de la base de datos no puede abrir. Ya sea directamente por el cliente, después de que el archivo haya sido restaurado desde una recuperación de cinta, o después de que el archivo se haya copiado tras la recuperación de una unidad.

Archivo borrado

Base de datos que ha sido eliminada por el motor de la base de datos. Se trata primeramente de una recuperación de archivo borrado. Si el archivo no se encuentra después de la recuperación se trata de una recuperación de página perdida (Lost Page recovery).

Objetos eliminados

Tablas eliminadas en SQL que son compatibles. Listas eliminadas en SQL que son compatibles.

2.5 2.5.1 Definición de transacciones en un lenguaje huésped. 2º Evaluación El lenguaje SQL como lenguaje Huésped El lenguaje SQL puede actuar como si fuera un lenguaje huésped, 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 sería: #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 función SQL_ERROR. También le podíamos haber dicho que hiciera otras cosas como:

Page 55: Taller de Base de Datos Examen

CONTINUE GOTO etiqueta Función

También se puede controlar con esta sentencia que cuando no halla error haga algo, cambiando SQLERROR por NOTFOUND después de la palabra WHENEVER. El nombre de las variables que van a intervenir en las sentencias de SQL van siempre precedidas por el carácter `:'. 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 Ejecución 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 transacción sin haber terminado la anterior. Asociada a esta idea de anidamiento existe una variable global @@TRANCOUNT que tiene valor 0 si no existe ningún nivel de anidamiento, 1 si hay una transacción 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 transacción anidada esta sentencia deshace todas las transacciones internas hasta la instrucción BEGIN TRANSACTION más externa. COMMIT TRAN: Dentro de una transacción anidada esta sentencia únicamente reduce en 1 el valor de TRANCOUNT, pero no ―finaliza‖ ninguna transacción ni ―guarda‖ los cambios. En el caso en el que TRANCOUNT=1 (cuando estamos en la última transacción) COMMIT TRAN hace que todas las modificaciones efectuadas sobre los datos desde el inicio de la transacción sean parte permanente de la base de datos, libera los recursos mantenidos por la conexión y reduce @@TRANCOUNT a 0. Quizás estos dos gráficos 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

Page 56: Taller de Base de Datos Examen

COMMIT TRAN Tran Externa — Reduce @@TRANCOUNT a 0. — Se lleva a cabo la transacción 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 transacción 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 transacción 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 transacción más externa y además hace @@TRANCOUNT=0 ¿Supone este funcionamiento asimétrico 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 más lejos hay una cuarta sentencia para trabajar con transacciones: SAVE TRAN SAVE TRAN Esta sentencia crea un punto de almacenamiento dentro de una transacción. Esta marca sirve para deshacer una transacción en curso sólo hasta ese punto. Por supuesto nuestra transacción 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 transacción sin haber terminado la anterior. Asociada a esta idea de anidamiento existe una variable global que tiene valor 0 si no existe ningún nivel de anidamiento, 1 si hay una transacción 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 transacción anidada esta sentencia deshace todas las transacciones internas hasta la instrucción BEGIN TRANSACTION más externa. COMMIT TRAN: Dentro de una transacción anidada esta sentencia únicamente reduce en 1 el valor de TRANCOUNT, pero no ―finaliza‖ ninguna transacción ni ―guarda‖ los cambios. En el caso en el que TRANCOUNT=1 (cuando estamos en la última transacción) COMMIT TRAN hace que todas las modificaciones efectuadas sobre los datos desde el inicio de la transacción sean parte permanente de la base de datos, libera los recursos mantenidos por la conexión y reduce. Quizás estos dos gráficos nos ayuden a entender el comportamiento de estas sentencias cuando hay varios niveles de anidamiento Comportamiento del COMMIT TRAN

Page 57: Taller de Base de Datos Examen

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 transacción 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 transacción 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 transacción 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 transacción más externa y además hace @@TRANCOUNT=0 ¿Supone este funcionamiento asimétrico 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 más lejos hay una cuarta sentencia para trabajar con transacciones: SAVE TRAN SAVE TRAN Esta sentencia crea un punto de almacenamiento dentro de una transacción. Esta marca sirve para deshacer una transacción en curso sólo hasta ese punto. Por supuesto nuestra transacción 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.

Page 58: Taller de Base de Datos Examen

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 transacción se lleva a cabo —o se deshace completamente —Para deshacerla un ROLLBACK bastará como hemos visto —Pero para guardar la transacción 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 transacción 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 transacción más 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 fáciles 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 aplicación para

acceder a las tablas de una DB de Access, ¿qué ocurrirá si después queremos que la misma

aplicación, y sin reescribir nada, utilice tablas de SQL Server u otra DB cualquiera? La respuesta es

sencilla: no funcionará. Nuestra aplicación, diseñada para un motor concreto, no sabrá dialogar con

el otro. Evidentemente, si todas las DB funcionaran igual, no tendríamos 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 tendríamos que ir cambiando este elemento, y nuestra aplicación siempre

funcionaría sin importar lo que hay al otro lado... algo así como ir cambiando las boquillas de una

manguera. A esas piezas intercambiables las llamaremos orígenes 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 aplicación, como velocidad

Page 59: Taller de Base de Datos Examen

de proceso, tiempos de espera, máxima longitud de registro, número máximo de registros, versión de

SQL, etc., está cayendo en desuso a cambio de otras técnicas de programación, pero aún le quedan

muchos años 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, también funciona con las versiones modernas de servidores

como 2003 Server, y también XP PRO, que lleva un IIS 5.0 de serie. Igualmente es posible utilizar

bases de datos de Access 2000 o 2003.

Esas otras técnicas de programación antes mencionadas, se utilizan ya en el nuevo Windows 2003,

Office 2003 y SQL Server 2000, que además de ODBC pueden utilizar.... pero esa es otra historia.

Esta es la idea: por un lado el ODBC provee de unas caracteríisticas siempre homogéneas, y por el

otro permite distintos controladores que aseguran la conectividad de la aplicación con diferentes

bases de datos.

Ahora que ya sabemos qué es y para lo que sirve, procedamos a su instalación: es un proceso

sencillo, pero según la base de datos elegida sea Access o SQL Server, cambian un poco, y como

no podía ser menos, hay algunos trucos que conviene conocer.

3.1.2

Use el Administrador de orígenes de datos ODBC para crear y administrar los orígenes de datos

ODBC. El Administrador de orígenes de datos ODBC es un componente de Windows.

Para abrir el Administrador de orígenes de datos ODBC en Windows Server 2003

En el menú Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Orígenes de datos (ODBC).

Para abrir el Administrador de orígenes de datos ODBC en Windows 2000 Server

1. En el menú Inicio, seleccione Configuración y, a continuación, haga clic en Panel de control.

Page 60: Taller de Base de Datos Examen

2. En el Panel de control, haga clic en Herramientas administrativas. 3. En Herramientas administrativas, haga clic en Orígenes de datos (ODBC).

Para abrir el Administrador de orígenes 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 categorías), haga clic en Rendimiento y mantenimiento y, a

continuación, haga clic en Herramientas administrativas, o bien en el Panel de control (Vista clásica), haga clic en Herramientas administrativas.

3. En Herramientas administrativas, haga clic en Orígenes de datos (ODBC).

3.3.1

TERMINOLOGÍA La terminología estudia la lengua, como la lingüística, pero se centra en los lenguajes especializados; es la base de la comunicación especializada. La terminología es una ciencia interdisciplinar, esto no significa que sea una rama de otra ciencia sino que toma elementos de diferentes disciplinas (lingüística, ciencias de especialidad, filosofía) y elabora su propio campo de trabajo. Terminología es una palabra polisémica: por una parte denomina la disciplina teórica, pero también se usa para referirse a la práctica terminológica, y además, se llama terminología al producto de esta práctica, 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 lingüística. En caso de considerarla como una rama de la lingüística, debemos situarla dentro de la lingüística aplicada y no de la teórica. La terminología estudia los términos, los conceptos y su relación. La terminografía es la práctica terminológica: recopilar, clasificar y representar términos. Los pasos preliminares y posteriores al trabajo terminográfico se denominan práctica terminológica: determinar a quién va dirigido, cómo se va a hacer, releer, etc. La terminología trata únicamente los lenguajes especializados. La semántica estudia la relación entre las palabras y su significado. La morfología estudia cómo se forman las palabras. La lexicología estudia el léxico de una manera diacrónica, a lo largo de la historia, la terminología, sin embargo, estudia los términos con un enfoque sincrónico, se interesa por el significado de los términos en el presente. La lexicografía estudia los términos y la terminología, los conceptos. Los lexicógrafos elaboran diccionarios generales y los terminógrafos, diccionarios terminológicos. Los redactores técnicos se encargan de redactar y corregir textos especializados. La terminología nació con Eugen Wüster que nació en 1898. Blampain opina que nació en Francia gracias a los lexicógrafos. Según van apareciendo nuevas ciencias y conceptos, surgen nuevos términos, los propios científicos se ocupaban de recopilar los términos relacionados con una ciencia determinada, por ejemplo, Limmé recopilaba términos zoológicos. En 1931 el ingeniero austríaco Eugen Wüster hace una tesis sobre términos electrotécnicos. En 1938 elabora el diccionario Machine Tool. Wüster sostiene que la terminología tiene varios padres: Schloman que elaboró un diccionario sistemático en seis lenguas, Ferdinand de Saussure, fundador de la lingüística estructuralista, E. Dressen que fue el impulsor de la ISA (International Standarization Asociation) que fue la primera organización de normalización, actualmente se llama ISO (International Standarization Organization), J. Holmstrom que dijo que debía crearse un centro de estudio terminológico. Wüster es el padre de la práctica terminológica, Lotte es el padre de la teoría terminológica. ETAPAS DE LA TERMINOLOGÍA

Page 61: Taller de Base de Datos Examen

1ª 1930-1960. Se empieza a caracterizar la terminología. Wüster, Lotte. 2ª 1960-1975. Nace la macroinformática (grandes ordenadores para almacenar información) y los bancos de datos. Se fija la teoría. 3ª 1975-1985. Expansión de la terminología. Aparece la microinformática (ordenador como herramienta). 4ª 1985-? Lingüística computacional. Para Rondeau la terminología es un fenómeno socioeconómico: 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 comunicación y se soluciona con la univocidad de los conceptos. Los medios de comunicación necesitan equivalentes de inmediato. El comercio internacional también necesita de la terminología. TESAUROS Para facilitar la recuperación de la información los términos deben ser unívocos, hay que evitar la sinonimia. Esto se consigue gracias a los tesauros. Los tesauros son listas de términos en las que se especifica cuales son descriptores (términos 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: Educación No descriptor: enseñanza, aprendizaje. Término genérico: formación. Término específico: formación. La utilidad de los tesauros es facilitar la recuperación de la información. Un término puede estar formado por una sola palabra (Internet) o por varias (mensaje de correo electrónico) y debe tener un único significado, mientras que una palabra es un solo vocablo y puede tener varios significados. EXPANSIÓN DE LA TERMINOLOGÍA La terminología surge en Austria, Unión Soviética y Checoslovaquia sobre los años 30. Se expande hacia el norte (Dinamarca, Bélgica) y el oeste (Francia, Canadá) durante los años 60. Más adelante llega al sur (España, Sudamérica, Portugal) y al este (China y Japón). Tanto la escuela de Viena, fundada por Wüster, como la de Moscú y Praga son de tendencia lingüístico-terminológica (normalización, sistemas de conceptos). También está la escuela traduccionalista y la normalizadora. Normalizar es buscar la univocidad, fijar el concepto y buscar un solo término 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 elaboración, incluye todas aquellas palabras que formen parte de una lengua al margen de su corrección. ESCUELAS Escuela de Viena (Wüster, Felber, Galinski) (orientación lingüística). Escuela de Moscú (Lotte, Caplygin) (orientación lingüística). Escuela de Praga (Drodz) (orientación lingüística). Escuela de Canadá (orientación traduccionalista). Escuela de Quebec (orientación normalizadora). LSP: Lenguages for Special Purpouses. (Lenguajes para fines específicos). ENTRADA DE UN DICCIONARIO TERMINOLÓGICO Número de ficha: 21 Dominio: 1.3.2. Término 1: cefalea. Término 2: dolor de cabeza. Marca gramatical: 1) sustantivo femenino singular. 2) locución de sustantivo masculino singular. Definición: Dolencia física que se produce en la cabeza. Referencia: DRAE, 1992.

Page 62: Taller de Base de Datos Examen

Notas de uso: El primer término se usa en el ámbito médico, el segundo es más coloquial. Equivalentes: Headache (inglés). Mal à la tête (francés). Cada una de las secciones se denomina campo, el conjunto es un registro. La terminología es la base de la comunicación especializada que es precisa y concisa en oposición a la comunicación general que es rica y consta de palabras polisémicas y sinónimos. El traductor especializado suele ayudarse de diccionarios terminológicos a la hora de realizar sus traducciones. La terminología se ha visto modificada por la informática ya que esta última permite almacenar datos en soporte electrónico y trabajar con ellos de forma rápida. La lengua general se divide en lengua común, no marcada, y lengua especializada, marcada por una temática determinada, unos usuarios determinados y una terminología específica. La banalización o desterminologización consiste en el uso de términos especializados en la lengua común. La terminologización es lo contrario. El vocabulario jurídico, por ejemplo, consta de términos que se usan exclusivamente en dicho campo (anticresis), términos que en principio pertenecían exclusivamente al lenguaje jurídico pero que ahora se han banalizado (hipoteca) y términos que en principio pertenecían al lenguaje común y se han terminologizado. A su vez, estos últimos términos pueden dividirse en los que mantienen su significado original o similar (recurso) y los que tienen un significado en el ámbito jurídico diferente del que tienen en la lengua común (prescripción). Todos los lenguajes especializados tienen características comunes, se sitúan en un marco determinado, tienen un número de usuarios limitado que conoce ese lenguaje por voluntad propia y características peculiares a cada uno de ellos, reglas. FRASEOLOGÍA Es el conjunto de giros de un lenguaje especializado o su estudio. Los giros son una combinación de dos o más elementos pertenecientes al léxico especializado cuyo significado se basa en su relación de combinación. «Emitir una acción» es un giro ya que existe una combinación de conceptos. «Propiedad horizontal» es un término ya que se trata de una combinación de palabras. En el giro existe una relación sintáctica entre los conceptos («acción» es el CD de «emitir»). En el término no hay relación sintáctica. Un tecnolecto es un lenguaje especializado, un tecnicismo es un término perteneciente a un campo de especialidad. TERMINOLOGÍA Y DOCUMENTACIÓN En primer lugar es necesario aclarar que la documentación es un campo especializado con terminología propia. La terminología y la documentación son dos ciencias que están muy ligadas. Por una parte, es imprescindible que todo aquel que quiera llevar a cabo un trabajo terminológico se documente previamente. El terminólogo no inventa los términos que aparecen en los diccionarios especializados, por eso debe realizar un trabajo de investigación previo a la redacción del texto final apoyándose en los trabajos de los documentalistas. Existen diferentes fuentes de documentación: 1ª Documentación textual (textos, tesis, publicaciones técnicas, etc.) 2ª Terminología elaborada (diccionarios, glosarios, etc.) 3ª Documentación factográfica (centros de documentación, expertos, instituciones, etc.) Por otra parte, los documentalistas también se benefician del trabajo de los terminólogos a la hora de llevar a cabo su trabajo. Dicho trabajo incluye la indización de los textos, es decir, la extracción de los descriptores que facilitarán la búsqueda de los documentos. Es en este punto en el que el documentalista se apoya en los trabajos de normalización realizados por los terminólogos para obtener los descriptores más apropiados. Todo esto nos lleva a afirmar que estas dos disciplinas mantienen una relación de intercambio. TERMINOLOGÍA Y LEXICOGRAFÍA Aunque algunos terminólogos opinan que la terminografía es una rama de la lexicografía, es necesario destacar que existen diferencias entre los métodos de estas ciencias.

Page 63: Taller de Base de Datos Examen

Los diccionarios generales elaborados por lexicógrafos constan de entradas organizadas según el orden alfabético de la palabra que definen, mientras que los artículos de los diccionarios terminológicos elaborados por terminógrafos están ordenados conceptualmente mediante un sistema organizado jerárquicamente en el que se puede ver a qué rama de un determinado campo de especialidad pertenece cada término. Normalmente, se asigna un código a cada artículo para facilitar su búsqueda. Los lexicógrafos se encargan de definir todas las acepciones de una palabra, los terminógrafos, sin embargo, se centran en el significado que los términos tienen en un campo de especialidad determinado e intentan eliminar la polisemia. Cada ficha de un diccionario terminológico trata un concepto, no un término. Por eso, si alguno de los tecnicismos contenidos en la obra es polisémico 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 artículo. Los terminólogos trabajan con términos que pertenecen a lenguajes de especialidad, y los definen según su significado en un ámbito especializado, mientras que los lexicógrafos definen palabras de la lengua general. Por eso, los diccionarios terminológicos contienen principalmente sustantivos, verbos y algunos adjetivos, no como los lexicográficos que se ocupan de cualquier palabra de uso generalizado. Los tecnicismos que estudian los terminógrafos no suelen aparecer en los diccionarios generales a no ser que se hayan banalizado. Por otra parte, los lexicógrafos, a excepción de los que elaboran diccionarios normativos, sólo describen, o recomiendan, el uso de las palabras; los terminógrafos, en cambio, intentan normalizar el uso de los tecnicismos priorizando los más adecuados. Algunos diccionarios y glosarios especializados indican qué términos se deben usar según la legislación lingüística vigente.

Elementos Graficos en HTML ¿COMO CREAR DIFERENTES ELEMENTOS GRÁFICOS DE CAPTURA DE DATOS EN HTML?

Applets

Nada más fácil 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 pequeño 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

Page 64: Taller de Base de Datos Examen

<OBJECT DATA="archivo" TYPE="tipo mime"> Contenido alternativo </OBJECT> Por ejemplo, para escuchar un sonodo al cargarse la página deberíamos usar, en principio, el siguiente código: <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> Utilización 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 botón. Tiene la particularidad que se pueden colocar dentro del botón los contenidos que se desee, es decir, entre la etiqueta de apertura y cierre se puede colocar texto a voluntad, pero también otras etiquetas HTML, como imágenes, saltos de línea, negritas o lo que podamos necesitar. Veamos un ejemplo: <button>Hola esto es un <b>botón</b><br><br>Puedo poner saltos de línea 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 tendría este aspecto: Hola esto es un botón Puedo poner saltos de línea en él!

Instalacion de apache INSTALACION DE APACHE***

Comprobar si Apache está instalado

Antes de empezar con la instalación, podemos ver si ya lo tenemos instalado. Y si lo está qué versión 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 algún proceso referente al servidor ps aux | grep httpd ps aux | grep httpd También podemos usar el comando nmap en nuestro sistema (localhost) para ver si hay algun puerto http abierto.

1. nmap 127.0.0.1

Page 65: Taller de Base de Datos Examen

Se puede obtener la versión instalada con el siguiente comando. La rutadeinstalación 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, más conocida por sus siglas JDBC, es una API que permite la ejecución de operaciones sobre bases de datos desde el lenguaje de programación 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 conexión con una BD Envía 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 colección de interfaces Java y métodos de gestión de manejadores de conexión hacia cada modelo específico 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 métodos 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 conexión apropiada al modelo de su base de datos, y accede a ella estableciendo una conexión, para ello provee el localizador a la base de datos y los parámetros de conexión específicos. A partir de allí puede realizar con cualquier tipo de tareas con la base de datos a las que tenga permiso: consulta, actualización, creación, modificación y borrado de tablas, ejecución de procedimientos almacenados en la base de datos, etc. JDBC es una API de bajo nivel para API´s de alto nivel Una integración 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 API´s ODBC no es apropiado para usar directamente con Java por que usa una interfaz en C. Una traducción literal de la API ODBC en C, no es deseable. Por ejemplo Java no tiene punteros y la ODBC hace gran uso de ellos.

Page 66: Taller de Base de Datos Examen

ODBC es muy difícil de aprender , hace una mezcla de acciones simples y avanzadas. Una API como JDBC es necesario para poder desarrollar una solución ―puramente de Java‖ Modelos de dos capas y tres capas

Conformación de SQL El SQL es el idioma normal por acceder las bases de datos correlativas. Una dificultad es que aunque la mayoría del DBMSs (los Sistemas de Dirección de Base de datos) use un formulario normal de SQL para la funcionalidad básica, ellos no conforman la sintaxis de SQL normal más recientemente definida para la funcionalidad más 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 conformación de SQL de otra manera. Proporciona la información descriptiva sobre el DBMS por medio del DatabaseMetaData para que las aplicaciones puedan adaptar a los requisitos y capacidades de cada DBMS. El Armazón 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 pequeño y simple; su función primaria es conectar las aplicaciones de Java al chófer de JDBC correcto y entonces salir de la manera. La JDBC driver test suite proporciona un poco de confianza en que drivers de JDBC ejecutarán su programa. Pueden designarse sólo drivers que pasan la JDBC driver test suite El Armazón 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.

Page 67: Taller de Base de Datos Examen

Paquete java.sql

JDBC ofrece el paquete java.sql, en el que existen clases muy útiles para trabajar con bases de datos.

Clase Descripción

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 (versión 8.1.6) y que se puede conectar usando el driver de JDBC. Brevemente estos ejemplos muestran cómo 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

Page 68: Taller de Base de Datos Examen

rendimiento rápido.Sin embargo,con la introducción decompiladores optimizadoresque traducenel bytecode de Javaenla máquinaeficientecódigo específicoy tecnologías tales comoEnterprise JavaBeans™, la plataforma Javase está convirtiendo enla plataforma estándardenivel mediode desarrollo.Estaes una gran ventaja, por lo que esposible tomarventaja dela robustezde Java,multi-hilo,ylas funciones de seguridad. Con las empresasutilizan cada vez másel lenguaje de programaciónJavapara escribirel código del servidor, la API de JDBCse está utilizandocada vez más enel nivel mediode unaarquitectura de tres niveles. Algunas de las característicasque hacen queuna tecnología de servidorJDBCsonsu apoyo ala agrupación de conexiones, transacciones distribuidas,ylos conjuntos de filasdesconectado.LaAPIJDBCes también lo quepermite el accesoa una fuente dedatos de unnivelmediode Java. Una visión Base de Datos Relacional Una base de datos es un medio de almacenamiento de información de tal manera que la información puede ser recuperada de la misma. En términos sencillos, una base de datos relacional es aquella que presenta información en tablas con filas y columnas. Una tabla que se conoce como una relación en el sentido de que es una colección 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 gestión 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 término 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 cuál de las dos selecciones posibles es la correcta. Para la mayoría de los DBMS, el usuario puede especificar que las filas duplicadas no se les permite, y si se hace eso, el DBMS evitar la adición 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 más 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 sería un identificador completo. Esta regla se conoce como la integridad de entidad.

Page 69: Taller de Base de Datos Examen

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 diseñadopara ser utilizado conbases de datos relacionales. Hay unaserie decomandos básicos deSQLque se considera estándary es utilizado portodos losRDBMS. Por ejemplo,todos losRDBMSutilizar la instrucciónSELECT. Una instrucción SELECT, también llamado una consulta,se utiliza para obtenerinformación de una tabla. En él se especificauno o mástítulos de las columnas, una o más tablasde donde escoger, y algunoscriterios para la selección. ElRDBMSdevuelve las filasde lasentradas de la columnaque satisfacenlos requisitos establecidos.Una instrucción SELECTcomo la siguientedescargará losnombres y apellidosdelos empleados que tienenvehículos 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 línea) especifica elFIRST_NAMEcolumnas yApellido. La cláusula FROM(la segunda línea) da latabla de la quelas columnasserán 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 códigosiguiente produceun conjunto de resultadosque incluyetoda la tabla, ya que pidea todas las columnasenla tabla Empleadossin restricciones (no la cláusula 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> Cláusulas WHERE <span style="text-align: justify;"> </span> <span style="text-align: justify;"> </span> La cláusula WHERE de una instrucción SELECT proporciona los criterios para la selección de valores. Por ejemplo, en el siguiente fragmento de código, los valores serán seleccionados sólo si aparecen en una fila en la que la columna Apellido comienza con 'Washington' de la cadena.

Page 70: Taller de Base de Datos Examen

<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> Común comandos SQL <span style="text-align: justify;"> </span> <span style="text-align: justify;"> </span> Comandos SQL se dividen en categorías, las dos principales son Lenguaje de manipulación de datos (DML) y comandos de lenguaje de definición de datos (DDL) comandos. Comandos DML frente a los datos, o bien recuperar o modificar para mantenerlo al día. 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 más 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 instrucción SELECT especifica las columnas que se incluyen en el conjunto de resultados. La gran mayoría de los comandos SQL en aplicaciones son declaraciones SELECT. <span style="text-align: justify;"> </span> *INSERT - añade nuevas filas a una tabla. Insertar se usa para rellenar una tabla de nueva creación o para agregar una nueva fila (o filas) a una tabla ya existente. <span style="text-align: justify;"> </span> *Eliminar - elimina una fila específica 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 más 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 también debe especificar un tipo de datos de cada columna. Los tipos de datos varían de un RDBMS a otro, por lo que un usuario podría 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 manipulación de datos, porque se crea una tabla sólo una vez, mientras que la adición o eliminación de filas o el cambio de los valores individuales por lo general ocurre con más frecuencia. <span style="text-align: justify;"> </span> <span style="text-align: justify;"> </span> <span style="text-align: justify;"> </span>

Page 71: Taller de Base de Datos Examen

* DROP TABLE - borra todos los registros y elimina la definición de la tabla de la base de datos. Una implementación de JDBC API es necesaria para apoyar el comando DROP TABLE como se especifica en SQL92, Nivel de Transición. Sin embargo, el apoyo a la cascada y restringir las opciones de DROP TABLE es opcional. Además, el comportamiento de DROP TABLE es definido por la implementación 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. También 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 número 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 mayoría de los DBMS crear un cursor de forma automática cuando un conjunto de resultados se genera. <span style="text-align: justify;"> </span> <span style="text-align: justify;"> </span> Anteriores versiones JDBC API añadido nuevas capacidades para el cursor un conjunto de resultados, lo que permite que se mueva hacia adelante y hacia atrás, y también permitiendo que se mueva a una fila determinada o en una fila cuya posición 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>

Page 72: Taller de Base de Datos Examen

<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 tambiénalmacenar información sobre lamismabase de datos.La mayoría delos DBMStienen un conjunto detablas del sistema, que listalas tablasenla base de datos, nombres de columnas encada tabla, las claves primarias, claves foráneas, procedimientos almacenados, y así sucesivamente.CadaDBMStiene sus propias funcionespara obtener informaciónacerca de los diseñosy características dela tablade base de datos. JDBC proporciona lainterfazDatabaseMetaData, que un escritorconductor debeponer en prácticaa fin de quesus métodosdevuelven información sobreel conductor y /oDBMSpara el queel conductorestá escrito.Por ejemplo,un gran número demétodos dedevoluciónsi 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 más 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>

Page 73: Taller de Base de Datos Examen