You are on page 1of 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

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:

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

{Ii}> Donde E es el nombre del esquema relacional. se piensa en él simplemente como ―la base de datos‖. S> Siendo R el nombre de la relación. con la que se accede.2. 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 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). donde una gran y central tabla tiene toda la información importante. 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. Permite acceder tanto a datos agregados como de detalle. Finalmente. y pueden ser usadas en una unión para crear informes detallados. 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. pero una base de datos puede contener más de un esquema. como la base de datos. una ocurrencia que cumple todas las restricciones descritas en el esquema. aquellas restricciones que afectan a cada uno de los elementos que forman parte del correspondiente esquema de relación (restricciones intraelementos). Por tanto. Esto se puede representar: E < {Ri}. permite reducir el número de joins entre tablas y deja a los usuarios establecer jerarquías y niveles entre las dimensiones. Esquema Snowflake La diferencia del esquema snowflake comparado con el esquema estrella.3 De edición para crear Esquemas y Consultas de Base de Datos Un esquema es un conjunto lógico de tablas. Por ejemplo. Este aspecto. un esquema estrella está compuesto de tablas. Una tabla fact o tabla de hechos es la tabla central de un esquema dimensional y contiene los valores de las medidas de negocio. está en la estructura de las tablas lock_up: las tablas lock_up en el esquema snowflake están normalizadas. Cada medida se toma mediante la intersección de las dimensiones que la definen. a tablas dimensionales. así como las restricciones de integridad que se deben cumplir para que la relación constituya una ocurrencia válida del esquema. intraelementos. podremos definir un esquema de relación como: R <A:D. 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. 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>…] . Usualmente. El esquema de la base de datos relacional será una colección de esquemas de relación y de restricciones de integridad ínter elementos. 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. 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. vía claves ajenas. D los dominios sobre los que están definidos los atributos y S las restricciones de integridad. es decir. Además.• SQL Server 11 1. A la lista de atributos. {Ri} es el conjunto de esquemas de relación. e {Ii} representa el conjunto de restricciones de integridad ínter elementos. las cuales tienen información de detalle. es decir.

tanto para el motor de base de datos. y estructurar tu sentencia SQL apropiadamente. considera una condición de igualdad de la columna de la clave primaria. 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. o simplemente. estar seguro de incluir todas las condiciones. monitoreo y estadísticas de acceso a bases de datos. Tercero. o viceversa. Diferencia entre una simple consulta de fila y una múltiple consulta de filas Primero. por otra parte. ID _ propietario. cualquier consulta escrita en SQL embebido debe necesitar ser construida para completar el programa lógico requerido. algún tipo de estructura de bucle para el procesamiento iterativo de las filas devueltas por la consulta. o Estadísticas de SQL . si quieres estar seguro que una consulta de la tabla Propietarios _ antigüedades devuelve sólo una fila. has aprendido algo nuevo sobre tus datos. o Detalles de Cache . deberás usar la sentencia Fetch. o  1. se estás usando una sentencia Update o Delete. devuelve múltiples filas.  Monitoreo Administra y garantiza el acceso pleno y óptimo a todos los datos expuestos por el servidor Microsoft SQL. Tres razones vienen inmediatamente a la mente de por qué esto es importante.<Cláusula de nombre del esquema> ::= <Nombre del esquema> | AUTHORIZATION <id. 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. o Estadística de Conexión . o Estadística del bloqueo de tablas. Primero. 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. Por ejemplo. Si su consulta. puede significar que la consulta es errónea. De control. como para cada una de las base de datos desplegadas en el sistema. Autorización Del esquema> Podríamos. estarás borrando o actualizando más filas de las que querías. así como notificar a través de mensajes de alerta. tener múltiples filas cuando tú sólo esperabas una. para cubrir lo obvio. o Detalles Latch . Como escritor de consultas.2. debes conocer el esquema. o Gestión de estadística de Buffer . recolectar datos.5 Utilerías diversas . por ejemplo. crear el siguiente esquema: CREATE SCHEMA biblioteca AUTHORIZATION uc3m. de forma que consigas el resultado deseado (aunque sea una o múltiples filas). 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. y muy probablemente. que la base de datos está incompleta. 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. Segundo. Autorización del esquema› | <Nombre del esquema› AUTHORIZATION <id.

el servidor RDBMS deberá estar instalado en un nodo gestionado. consulte la publicación Tivoli Enterprise Guía de instalación. por ejemplo: agrupar datos en el disco de alguna forma en particular o recuperar espacio en el disco por datos que se volvieron obsoletos. Para obtener información adicional acerca del host RIM. Oracle y Sybase).  Rutinas estadisticas: Para calcular diversas estadisticas desempeño. Informix. Nota: . Microsoft SQL Server. Algunos programas de utilerias operan en el nivel externo del sistema y que en realidad no son mas que aplicaciones de proposito especial.  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. En una configuración RDBMS de sólo servidor. como el tamaño de los archivos. 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. Instalación y configuración del RDBMS Para que el producto Tivoli Enterprise Console pueda funcionar dentro del entorno Tivoli. 1.UTILERIAS DIVERSAS Las utilerias son programas diseñados para ayudar a las DBA en susu numerosas tareas administrativas.para respaldar los datos almacenados y para recargar datos desde dichas copias de respaldo. El host RIM deberá estar en el mismo nodo gestionado. No es necesario que esté en un nodo gestionado.  Rutinas de analisis: Para analizar las estadisticas dicha mente mencionadas. etc. Los siguientes apartados incluyen información acerca de la instalación y configuración de las bases de datos RDBMS admitidas (DB2.3 Instalación y configuración del entorno operativo.  Rutinas de descarga/recarga: Para descargar la base de datos (o parte de ella). las distribuciones de valores. los contadores de E/S. 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.

consulte la publicación Tivoli Enterprise . En la mayoría de entornos Tivoli que utilizan el producto Tivoli Enterprise Console. Tenga en cuenta las siguientes consideraciones cuando seleccione qué sistema será el host RIM:     El host RIM deberá ser un nodo gestionado. La información contenida en los archivos readme puede incluir cambios de RIM que prevalecen sobre las publicaciones Tivoli Management Framework . 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. . el host RIM es un cliente de bases de datos. En el host RIM deberá instalarse un servidor DB2 o un cliente DB2.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. Elección del servidor RDBMS El servidor RDBMS alberga el esquema del depósito de eventos.Notas del release. Para obtener información adicional acerca de la cuenta tmersrvd. Por lo tanto. Instalación y configuración de DB2 Desde el punto de vista de 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. Por lo tanto. el host RIM deberá tener acceso a un servidor DB2. la ubicación más eficaz para el host RIM es el servidor de eventos. 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. 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. El host RIM deberá tener instalado el software servidor o cliente del RDBMS. la cuenta de usuario tmersrvd deberá estar definida en dicho sistema. Cuando el host RIM sea un sistema HP-UX o Windows. El proceso de instalación y las consideraciones sobre DB2 no forman parte de esta documentación.Guía de instalación.Guía del usuario y Tivoli Management Framework . pero debe encontrarse en la misma subred que la región de gestión Tivoli.es importante leer la publicación Tivoli Management Framework . independientemente de la base de datos. deberá seguir la información de instalación y configuración que se facilita en la documentación de IBM DB2. Este sistema no tiene que ser necesariamente un nodo gestionado en la región de gestión Tivoli.

utilice el procedimiento siguiente: 1. Configure el servidor DB2 para que pueda aceptar clientes TCP/IP.profiledel propietario de la instancia. el nombre de usuario de DB2 es el mismo que el nombre predeterminado de la instancia. 2. Agregue la variable de entorno DB2COMM con el valor tcpip. Configuración del servidor DB2 para el acceso del cliente remoto si el host RIM es el mismo sistema que el servidor DB2 . Nota: en el sistema operativo UNIX. Configure el cliente para que utilice el protocolo TCP/IP para conectarse al servidor. debe especificar el mismo nombre para el usuario DB2 que el utilizado para la instancia DB2. Para una base de datos DB2. Por ejemplo. las variables de entorno se crean en el archivo . Edite el archivo /etc/services y agregue una entrada para el puerto de conexión.Nota: cuando instala una base de datos DB2 en un sistema operativo UNIX. Si desea que los clientes DB2 remotos puedan acceder al servidor DB2. Edite el archivo /etc/services y agregue la entrada para el puerto de conexión. el nombre del usuario de DB2 deberá tener ocho caracteres o menos. utilice el procedimiento siguiente: 1. Bourne o Korn) o el script . Por ejemplo. agregue las siguientes líneas al archivo services: . En la línea de comandos. no será necesario realizar ninguna configuración adicional.db2cshrc (Shell C). Configuración del cliente DB2 para configurar el cliente DB2. Para RIM. agregue las siguientes líneas al archivo services: [[code format="xmp"]]   TEC 3700/tcp Puerto de servicio de conexión DB2 code 1. que es también el nombre de la instancia en este ejemplo.Estas variables se pueden configurar ejecutando el script .db2profile (shell bash. 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). Sin embargo. en Windows debe asegurarse de que existe un usuario con el mismo nombre que el de la instancia.

[[code format="xmp"]]   TEC 3700/tcp puerto de servicio de conexión DB2 code 1. db2 code Catalogue el nodo del servidor: [[code format="xmp"]] o o o catalog tcpip node nodo_db2 remote nombrehost \ server nombre_servicio code donde: nodo_db2 Especifica el nombre del sistema en el que se ha instalado el cliente DB2. compruebe los siguientes requisitos previos:   Informix Client debe estar instalado en el host RIM y el archivo . Bajo estas condiciones. La base de datos Tivoli Enterprise Console para Informix se crea con el registro sin colocación en el búfer. Este nombre debe ser único en la lista de directorios de nodo.nombre_servicio Especifica al nombre del puerto de conexión tal y como está definido en el archivo "services". Catalogue el nodo servidor y realice los pasos siguientes para actualizar la base de datos remota: 1. se recomienda utilizar el registro sin colocación en el búfer. ya que pueden surgir problemas de bloqueo de bases de datos y se podrían detener los programas de aplicación de Tivoli.nombrehost Especifica el nombre del sistema en el que se ha instalado el servidor DB2. Cuando se dan determinadas condiciones. la habilitación del .ini debe estar instalado en el directorio en el que esté instalado el software de Informix ($INFORMIXDIR). Inicie la utilidad SQL (lenguaje de consulta estructurada) interactiva de DB2especificando lo siguiente: [[code format="xmp"]] o o 3.odbc. 2. Agregue la variable de entorno DB2COMM con el valor tcpip. No utilice el registro cronológico en modo ANSI (American National Standards Institute). Con todas las bases de datos Informix. ajuste con cuidado el servidor Informix para evitar que surjan problemas de bloqueo que puedan provocar la pérdida de datos. Instalación y configuración de DB2 Antes de empezar a crear un depósito de eventos de Informix. 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.

. póngase en contacto con el administrador de bases de datos Informix. el ID de la instancia de Oracle. Seleccione un nodo gestionado para que sea el host RIM. 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. en el host RIM. complete los pasos que se indican a continuación. Para obtener más información acerca de la instalación. Para utilizar SQL Server de Microsoft para el depósito de eventos. copie el archivo tnsnames. Para obtener información de instalación adicional específica de Oracle. deberá seleccionar en la instalación la opción de orden de diccionario. consulte la documentación de Informix. Para obtener información de instalación adicional específica de Informix. 2. Para configurar el host RIM como un cliente de Oracle utilizando SQL*Plus. consulte la documentación de Oracle.ora del directorio %ORACLE_HOME %\network\admin del servidor RDBMS en el directorio %ORACLE_HOME%\network\admin del host RIM.ora se ha actualizado correctamente para que refleje su configuración. que incluye SQL* Plus. 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. Verifique si el archivo tnsnames. Instalación y configuración de Oracle Instale Oracle RDBMS y SQL*Plus en el servidor RDBMS. Instale el software del cliente Oracle. consulte la documentación de SQL Server de Microsoft. compruebe que sean correctos el nombre de host del servidor. 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 SQL Server de Microsoft. Consulte la documentación de Oracle si desea utilizar nombres de Oracle. 1. En el host RIM deberá instalarse el cliente SQL Server de Microsoft o SQL Server de Microsoft.bloqueo de filas podría solucionar los problemas de bloqueo relacionados con el producto Tivoli Enterprise Console. En otras palabras. Instalación y configuración de Microsoft SQL Server Instale SQL Server de Microsoft en el servidor RDBMS. Para determinar cuál es el mejor modo de bloqueo para su entorno. consulte la documentación de Oracle. 3. Para obtener más información acerca de la instalación. sensible a las mayúsculas y minúsculas Seleccione un nodo gestionado de Windows para que sea el host RIM. Si el servidor Oracle está en otro sistema que no es el cliente.

antes de poder proceder a la creación de las tablas. De esta manera. copie el archivo interfaces desde el servidor RDBMS al directorio del host RIM en el que esté instalado el software del cliente Sybase. lo que a menudo significa definir un espacio de nombres separado para cada conjunto de tablas. la creación de la base de datos consiste en la creación de las tablas que la componen. dicho sistema no se usa (o por lo menos no con los fines y el significado previstos por el estándar). El sistema previsto por el estándar para crear los espacios separados de nombres consiste en usar las instrucciones SQL "CREATE SCHEMA". realice las siguientes acciones: 1. Normalmente. normalmente hay que crear la base de datos. en el host RIM. no copie el archivo interfaces en el host RIM. Nota: si el servidor RDBMS se ejecuta en un sistema con un entorno operativo Solaris y el host RIM no es un sistema Solaris. A menudo. pero también por las DBMS más difundidas. siendo SYBASE la variable de entorno que equivale a la ruta de acceso al directorio en el que reside la instalación de Sybase. En realidad. consulte las instrucciones en la documentación de Sybase. del mismo modo que no se usa el término atributo. 2. La sintaxis empleada por PostgreSQL. Si el host RIM es un sistema UNIX. y viceversa. se amplía el lenguaje SQL introduciendo una instrucción no prevista en el estándar: "CREATE DATABASE". A continuación se usarán indistintamente ambas terminologías. Para obtener más información acerca de la instalación. sino de línea. pero sí la palabra columna. Prácticamente. que incluye isql. 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. Si el host RIM es un sistema Windows. Compruebe que el archivo SQL. 2. y no se habla de tupla. Compruebe que la variable PATH incluye el directorio en el que se han instalado los archivos DLL de Sybase. En la terminología usada en SQL no se alude a las relaciones.Instalación y configuración de Sybase Instale RDBMS de Sybase.El archivo interfaces de los entornos operativos Solaris no es compatible con otros sistemas operativos. por lo que tabla estará en lugar de relación. Instale el software del cliente Sybase.1 Creación de bases de datos Una base de datos en un sistema relacional está compuesta por un conjunto de tablas. 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. o viceversa. Consulte al administrador de la base de datos para obtener soporte. pero cada DBMS prevé un procedimiento propietario para crear una base de datos. 2. 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 . que corresponden a las relaciones del modelo relacional. columna en el de atributo y línea en el de tupla. Deberá crear un nuevo archivo interfaces que sea compatible.INI se encuentra en el directorio %SYBASE %\INI del host RIM.

Los nombres tienen que comenzar con un carácter alfabético. Se puede abreviar con INT. La precisión. REAL y DOUBLE PRECISION son sinónimo para un FLOAT con precisión concreta.q) Un número con coma fija de por lo menos p cifras y signo. depende de la implementación de la DBMS en cuestión. CHARACTER VARYING se puede abreviar con VARCHAR o CHAR VARYING. siempre que la precisión del primero no sea superior a la del segundo.      . [ vínculo_de tabla] .usado). empleando. las precisiones dependen de la implementación. Se puede usar FLOAT sin indicar la precisión. También en este caso. nombre_columna tipo_columna [ cláusula_defecto ] [ vínculos_de_columna ] .. Consúltese. puesto que SQL Entry Level prevé nombres con no más de 18 caracteres. El valor máximo de p depende de la implementación de la DBMS. la documentación de la base de datos específica. por tanto.. con q cifras después de la coma. de todos modos. ] ) nombre_columna: es el nombre de la columna que compone la tabla. se pueden crear las tablas que la componen. ] [ .. usaremos pues la orden: createdb biblio Una vez creada la base de datos. también ésta dependiente de la implementación. FLOAT(p) Un número con coma móvil y una precisión p. CHARACTER se puede abreviar con CHAR CHARACTER VARYING(n) Una cadena de longitud variable con un máximo de n caracteres. Los principales tipos previstos por el estándar SQL son:  CHARACTER(n) Una cadena de longitud fija con exactamente n caracteres. La instrucción SQL propuesta para este fin es: CREATE TABLE nombre_tabla ( nombre_columna tipo_columna [ cláusula_defecto ] [ vínculos_de_columna ] [ . SMALLINT Un número entero con signo y una precisión que no sea superior a INTEGER. es decir el tamaño del número entero que se puede memorizar en una columna de este tipo. DECIMAL(p.. Sería mejor no exagerar con la longitud de los identificadores de columna. tipo_columna: es la indicación del tipo de dato que la columna podrá contener. INTEGER Un número estero con signo. la precisión por defecto. que ejecuta la misma operación: createdb nombre_base de datos Para crear nuestra base de datos bibliográfica.

que indica que la columna no puede tomar el valor NULL. vínculos_de_columna: son vínculos de integridad que se aplican a cada atributo concreto..DEC es la abreviatura de DECIMAL. DECIMAL(p) es una abreviatura de DECIMAL(p. La sintaxis es la siguiente: REFERENCES nombre_tabla [ ( columna1 [ . Con TIME se pueden especificar la hora. Por ejemplo. La sintaxis que se usa es: CHECK (expresión_condicional) donde expresión_condicional es una expresión que ofrece verdadero o falso. con el que se permite o no asignar un valor a la columna en función del resultado de una expresión.  INTERVAL Un periodo de tiempo (años. El valor máximo de p depende de la implementación. el mes y el día. segundos y fracciones de segundo). los minutos y los segundos. horas. DATE permite indicar el año. minutos. SET DEFAULT: asignar a la columna referenziante su valor de defecto. 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. lo que permite especificar también fracciones de segundo. TIME y TIMESTAMP Un instante temporal preciso. con el siguiente control: CHECK ( COLUMNA1 < 1000 ) . Los segundos son un número con coma. si estamos definiendo la columna COLUMNA1. DATE. que indica que la columna es la llave primaria de la tabla.  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. en dichos casos en la columna referenciante (que es la que se está definiendo) podría haber valores inconsistentes. TIMESTAMP es la combinación de los dos anteriores. 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. De hecho.. ] ) ] [ 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. columna2 . Son:    NOT NULL. Las acciones pueden ser: o o 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). SET NULL: asignar a la columna referenciante el valor NULL.  un control de valor. días. meses.0). PRIMARY KEY.

La llave primaria es el atributo ID. Sobre los atributos title. ] ) definiciones_de_referencia La definición_de_referencia tiene la misma sintaxis y significado que la que puede aparecer como vínculo de columna. En el atributo type hay un vínculo de no nulidad. ] ) Véase que en este caso. series VARCHAR(160). . y type de tipo CHAR(18). a diferencia de la definición de la llave primaria como vínculo de columna. publisher y pub_year hay vínculos de no nulidad.  un control de valor. CREATE TABLE Book ( ID INTEGER PRIMARY KEY REFERENCES Publication(ID). Para aclarar mejor el uso de la instrucción CREATE TABLE. formada por las dos columna ID de tipo INTEGER. que es también una llave externa hacia la relación Publication. con la misma sintaxis y significado que el que se puede usar como vínculo de columna. ésta se puede formar con mas de un atributo. pub_month CHAR(3). title VARCHAR(160) NOT NULL. La instrucción anterior crea la tabla Publication. CREATE TABLE Publication ( ID INTEGER PRIMARY KEY. volume VARCHAR(16). publisher INTEGER NOT NULL REFERENCES Publisher(ID).. columna2 . veamos algunas órdenes que implementan la base de datos bibliográfica ejemplificada. el atributo publisher es una llave externa hacia la tabla Publisher. vínculo_de_tabla: son vínculos de integridad que se pueden referir a más columnas de la tabla.  las definiciones de las llaves externas: FOREIGN KEY ( columna1 [ . formada por nueve atributos. type CHAR(18) NOT NULL ). ID es la llave primaria de la relación..en dicha columna se podrán incluir sólo valores inferiores a 1000. Además. columna2 . pub_year INTEGER NOT NULL.. edition VARCHAR(16).. Crea la relación Book. note VARCHAR(255) ). Son:  la definición de la llave primaria: PRIMARY KEY ( columna1 [ .

personID) ). NOTA SOBRE POSTGRESQL En PotgreSQL. o Guardamos descripción (Idea de catalogos). Independencia de datos y tratamiento.CREATE TABLE Author ( publicationID INTEGER REFERENCES Publication(ID). La llave primaria en este caso está formada por la combinación de los dos atributos. El parser acepta.sql contiene todas las órdenes necesarias para crear la estructura de la base de datos bibliográfica ejemplificada.1. o Cambio en datos no implica cambio en programas y viceversa (Menor coste de mantenimiento). mientras que personID lo es hacia la relación Person. 3. .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. personID INTEGER REFERENCES Person(ID). 1. sino sólo un warning.5. Explicar Sus Orígenes Y Antecedentes Surgen desde mediados de los años sesenta la historia de las bases de datos. + Ni aplicaciones ni usuarios. Coherencia de resultados.. ahora se encuentran los modelos orientados a objetos. en 1970 Codd propuso el modelo relacional. Base de datos Definir el término base de datos  Definición de Bases de Datos. este modelo es el que ha marcado la línea de investigación por muchos años. PRIMARY KEY (publicationID. + Se evita inconsistencia.1 Creación de la estructura de la base de datos. PublicationID es una llave externa hacia la relación Publication. o Reduce redundancia : + Acciones logicamente unicas. 2.1. El archivo create_biblio. y por tanto los constructos FOREIGN KEY y REFERENCES no producen un error.1. 2. Describir las ventajas del uso de la base de datos en la organización Ventajas de las bases de datos. por lo menos hasta la versión 6. como está indicado por el vínculo de tabla PRIMARY KEY. las sintaxis SQL que le afectan. de todos modos. Mejora en la disponibilidad de datos o No hay dueño de datos (No igual a ser publicos). Crea la relación Author. compuesta por dos atributos: publicationID y personID. no se han implementado todavía los vínculos sobre las llaves externas.

5. El nivel conceptual presenta toda la base de datos. Cumplimiento de ciertas normas. Es el nivel real de los datos almacenados. componen lo que conocemos como arquitectura de base de datos a 3 niveles. Son partes del esquema conceptual. Es decir tratamos con la entidad u objeto representado. Representa al mundo real mediante tablas relacionadas entre sí por columnas comunes. + Accesos (Usuarios a datos).Nivel Conceptual. El esquema asociado a éste nivel es el Esquema de Visión. ya sea en registros. El nivel visión es el encargado de dividir estas parcelas. esto es. 2.Modelo Relacional de Datos. Describir La Artuitectura De Una Base De Datos Distintos Niveles de un SBD Los SBD pueden ser estudiados desde 3 niveles distintos: 1. Este nivel lleva asociado el Esquema Conceptual.Nivel Físico. La arquitectura a 3 niveles se puede representar como sigue: 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. Este nivel es usado por muy pocas personas que deben estar cualificadas para ello. Efecto sinergico. Un ejemplo sería el caso del empleado que no tiene porqué tener acceso al sueldo de sus compañeros o de sus superiores. sin importarnos como está representado o almacenado. que es lo que denominamos Esquema Físico. algunos de estos modelos son:    Modelo Relacional de Datos Modelo de Red Modelo Jerárquico 1. Ex. 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. Este nivel lleva asociada una representación de los datos.Nivel Visión. mientras que los usuarios por lo general sólo tienen acceso a pequeñas parcelas de ésta. Subesquema de Visión.. Subesquema de Visión... o como sea.: Num_empleado Nombre Sección 33 Pepe . Es el correspondiente a una visión de la base de datos desde el punto de visto del mundo real.. A menudo el nivel físico no es facilitado por muchos DBMS. + Operaciones (Operaciones sobre datos). Los 3 niveles vistos.4. o Restricciones de seguridad. Es decir como se almacenan los datos. Otras ventajas: o Más efiente gestión de almacenamiento. 3.

CUENTA Cuenta Entidad Relación Entidad Clasificar Las Bases De Datos Por Su Uso Y Aplicación . Nombre. Cliente Cuenta Cuenta Cliente Como ya se ha dicho esta duplicación sólo ocurriría a nivel esquemático. Ex.25 34 Juan 25 Num_sección Nombre 25 Textil 26 Pintura 2..Modelo de Red. si queremos representar que un cliente puede tener varias cuentas. Ex. Usando el modelo jerárquico tendríamos que recurrir a una duplicación de los datos en el esquema. Tiene forma de árbol invertido. Ex.: Tenemos dos entidades (cliente y cuenta). de red o jerárquico. Representamos al mundo real como registros lógicos que representan a una entidad y que se relacionan entre sí por medio de flechas. y por cuenta que relacionaríamos mediante varios punteros con todo lo necesario. y cada cuenta ésta en una sola sucursal. 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 EntidadRelación (E/R). Dirección. é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. recurriríamos a una duplicación de la información en el esquema. Define dos entidades y una forma de relación entre ellas. y que una cuenta pueda tener como titulares a varios clientes.: Nombre Dcción Num_Cli Num_cuenta Saldo CLIENTE Cliente . por lo tanto una vez hecho el diseño se puede llevar al modelo relacional. Un padre puede tener varios hijos pero cada hijo sólo puede tener un padre. pero a nivel físico existiría un único registro por cliente. Ex. Como se ha dicho el modelo jerárquico sólo admite relaciones 1 : 1 ó 1 : N. Este modelo sólo realiza el diseño.: 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. cada una de las cuáles sólo puede tener un titular.: 33 Pepe 25 Textil 34 Juan 3. En el modelo de red no existen restricciones. que por supuesto puede ser compartida por varias cuentas. queremos que un cliente pueda poseer varias cuentas.. no realiza la implementación. en cuanto a la capacidad de relacionarse que pueda tener cada entidad de ese modelo con el resto de entidades.Modelo Jerárquico. pero sólo a nivel esquemático. En caso de que tuviésemos la necesidad de otro tipo de asociaciones y queramos usar el esquema jerárquico.

pero cada conjunto de datos puede pertenecer a uno o más conjuntos. MODELO RELACIONAL. El modelo de red evita redundancia en la información. Bases de datos relacionales: las bases de datos que pertenecen a esta categoría se basan en el modelo relaciones. 2. Este modelo permite la representación de muchos a muchos. BASES DE DATOS DISTRIBUIDAS. pero un conjunto puede pertenecer sólo a otro conjunto. en las que un conjunto de datos puede tener otros conjuntos de datos. También en este modelo conjuntos de datos están unidos por relaciones de posesión. Informix. debido a que se encuentra diseminada en diferentes localidades geográficas. El uso de bases de datos facilitará y soportará en gran medida a los Sistemas de Información para la Toma de Decisiones. TENDENCIAS FUTURAS. es probable que el lenguaje usado para recuperar las informaciones que se nos muestran sea SQL (Structured Query Language). 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‖. que en terminología relacional se llama tupla. es decir una tabla bidimensional compuesta por líneas y columnas. Bases de datos reticulares: el modelo reticular es muy parecido al jerárquico.TIPOS DE MODELOS DE DATOS Existen fundamentalmente tres alternativas disponibles para diseñar las bases de datos: el modelo jerárquico. es decir descritas por el mismo conjunto de atributos. de tal forma que cualquier registro dentro de la base de datos puede tener varias ocurrencias superiores a él. Además. 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. los DBMS mas comunes son Oracle. Este modelo se está empleando con más frecuencia en la práctica. formarán parte de la misma relación. entre ellas. Entidades con características comunes. Cada línea. 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. Sql Server?. que se llaman atributos. el rápido entendimiento por parte de ususarios que no tienen conocimientos profundos sobre Sistemas de Bases de Datos. representa una entidad que nosotros queremos memorizar en la base de datos. 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. cuya estructura principal es la 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. Sysbase. debido a la ventajas que ofrece sobre los dos modelos anteriores. esta compuesto por: DDL: Lenguaje de Definición de Datos DML:Lenguaje de Manipulación de Datos SQL: Lenguaje de Consulta. el control de la información puede constituir una desventaja. La estructura resultante es un árbol de conjuntos de datos. Puede representar dos tipos de relaciones entre los datos: relaciones de uno a uno y relaciones de uno a muchos. a través de la incorporación de un tipo de registro denominado el conector. 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. y de hecho nace como una extensión de este último. 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). MODELO DE RED. las características de cada entidad están definidas por las columnas de las relaciones. el modelo de red y el modelo relacional. 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. La diferencia principal respecto a los modelos examinados . MODELO JERARQUICO.

Es lo que se conoce como base de datos propiamente dicha. 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. o registros con cierta condición… Aislamiento de Datos: Los datos pueden estar en varios archivos con distintos formatos.La definición de las estructuras para almacenar los datos. En efecto. Ej.: Calcular totales. 2. . 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. que un empleado no esté adscrito a un número de Depa rtamento 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 . 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. Son los encargados de manejar los datos. esto degeneraba en un sistema monolítico y de difícil mantenimiento.La manipulación de los datos. 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. 1. Los DBMS tienen dos funciones principales que son: . con una base de datos tradicional (entendiendo con este término cualquier base de datos no por objetos). Los datos. 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.. Con una base de datos object-oriented. En cierto sentido. al contrario. sin tener que apoyarse en aplicaciones externas. Ej.Los Programas. que complican la creación de programas nuevos. Falta de Integridad: Es complicado mantener ciertas condiciones en la información.hasta ahora es la no positividad de los datos. las operaciones que se tienen que efectuar en los datos se les piden a las aplicaciones que los usan. Para manejar estos datos utilizamos una serie de programas. no puede accederse a ella.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.: Que el saldo sea superior a cierta cantidad. son conocidos como DBMS (Data Base Management System) o también SGBD (Sistema Gestor de Base de Datos). 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.. los objetos memorizados en la base de datos contienen tanto los datos como las operaciones posibles con tales datos. A principios de su incorporación al ámbito empresarial.

: En una transferencia bancaria hay que dar de quitar dinero de una cuenta y añadirlo a la otra. evitando que se produzcan fallos en medio de dicha operación.. no habría razones para usar nada diferente. donde se llamo Posgres95. Ej.sybase. 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. Ej.una única operación. es decir que no pueden dos usuarios consultar una misma tabla al mismo tiempo. Un ejemplo de lo anterior es un sistema de .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. Procesamiento en linea: A diferencia del procesamiento por lotes o batch. esto es lo que se denomina obtención de redundancia mínima y de esta manera se podrá eliminar la inconsistencia de los datos. En un principio adoptado para el sistema UNIX. Mejorado en el 96 tomo su nuevo Postge SQL? y adopto las nuevas carácter del SQL . Algunas de las características son que existe solo una copia de los datos para que todos los programas trabajen con ella. 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. organizar la memoria en particiones fijas es simple y efectivo: cada trabajo se carga en la memoria cuando le toque su turno. 3. fue portado a Linux y modificado para utilizar el lenguaje de consultas SQL.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. 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. 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. 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. y se queda en memoria hasta que termine. Problemas de Seguridad: Dificultad para controlar que ciertos usuarios no accedan a ciertos datos 2. 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. lo que impide su adopción en un ambiente de trabajo de grandes dimensiones.com/products/anywhere/linuxbeta. 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.92. Si hay suficientes particiones para mantener a la CPU siempre ocupada. Actualmente posee ciertas limitaciones técnicas como el no permitir consultas paralelas. Problemas en el Acceso Concurrente: Si varios usuarios acceden a la vez a un dato pueden producirse errores. A este tipo de procesamiento se le conoce también como tiempo real.: Si se saca dinero de una misma cuenta desde dos sitios distintos.

Este lenguaje sigue siendo el mas popular. BASIC y demás ). o Lenguaje científicos. Se dividen en: o Lenguajes empresariales.. matemáticos y científicos. Pueden dividirse como sigue: Orientados a problemas A procedimientos A objetos 4GL (Generadores de aplicaciones que no dependen de una metodología). Hace uso de una ―tortuga‖ para enseñar a los niños ge ometría. Entre estos se incluyen los siguientes: o LISP ( List Processing [procesamiento de listas]. los programadores codifican o escriben las instrucciones en la secuencia en que deben ejecutar para solucionar el problema. Estos lenguajes del tipo de una formula algebraica están diseñado en particular para satisfacer las necesidades de procedimientos repetitivo. o Lenguajes de la cuarta generación orientados a la producción. Hay dos tipos de 4GL: Orientados a la produccion Al usuario 5. El análisis anterior de los lenguajes al procedimiento no pretende ser exhaustivo. + COBOL.  Son de alto nivel y amigables. 4. (A Programming Language un lenguaje de programación). Los 3GL orientados a las empresas se diseñan para ser instrumentos efectivos para desarrollar sistemas de información empresarial. el primer lenguaje de programación empresarial. Un tablero especial con símbolos ―taquigráficos‖ ayuda a la rapidez del proceso de cifrado.reservaciones en alguna línea aérea.. es un lenguaje de programación interactivo que es común entre los ingenieros. se introdujo en 1959. 1959). semántica). introducido en 1968. tales como símbolos y texto (se utiliza en el desarrollo de la inteligencia artificial y los compiladores). lenguajes común orientado a la empresa) era hacer que sus instrucciones se aproximan al inglés. esto es. sintaxis. o LOGO (1967). recuperar y manejar datos alfanuméricos. FORTRAN. el primer lenguaje orientado a procedimientos. el Natural 2 de Software AG y el Mantis de Cincom. La fuerza de la 3GL empresariales consiste en su capacidad de almacenar. third-generation languages) son los lenguajes propiamente como los conocemos (poseen instrucciones. funciones. se desarrollo en 1955. Un lenguaje de procesamiento de listas eficiente para el manejo de datos no numéricos.Ejemplificar las aplicaciones de los 3GL y los 4GL  Lenguajes orientados al procedimiento. La intención original del os 0creadores del COBOL (Common Bussines Oriented Language. Los lenguajes de la cuarta generación orientados a la producción están diseñados sobre todo para profesionales en la computación.Explicar los lenguajes de 3era y 4ª generación Los lenguajes de tercera generación (3GL.  Otros lenguajes orientados al procedimiento. + APL. + FORTRAN.Los lenguajes orientados al procedimiento requieren que los programadores resuelvan problemas de programación utilizando la lógica de programación tradicional. matemáticas y .. ya trascienden el uso de los términos nemotécnicos. quienes usan 4GL como el Ideal de ADR. los programadores profesionales que utilizan 4GL sostienen que experimentan incrementos en la productividad de 200 a 1. Una instrucción puede indicar 1 o más tareas para el computador. (Formula Translator).000% en comparación con los lenguajes orientados al procedimiento de la tercera generación (COBOL. la expresión y la solución de ecuaciones matemáticas y demás operaciones pertinentes. Fue y sigue siendo el lenguaje científico más popula.

o Prolog (Programming in Logic [programación en lógica]. 6. Lenguajes de la cuarta generación orientados al usuario. 4. 9.Otras ventajas : Más efiente gestión de almacenamiento.. Efecto sinergico 8. Desventajas: Requieren conocimientos especializados y su operación requiere personal calificado (lo cual es caro).Describir las ventajas de procesamiento de base de datos 1.. como su nombre lo indica... los datos se guardan en diversos archivos y muchas veces dichos archivos son de diferente formato.Coherencia de resultados. recuperar y actualizar los datos. Los lenguajes de la cuarta generación orientados al usuario incluyen el RAMIS II de Mathematica Products Group y el FOCUS de Information Builders.. Restricciones de seguridad.Independencia de datos y tratamiento.. Se evita inconsistencia. Se utiliza para aplicaciones de control de dispositivos. 5.. Permite combinar módulos independientes en un programa. Su precio como producto también es caro. diseño. Es capaz de manejar relaciones entre hechos ( se utiliza en el desarrollo de sistemas expertos).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. Ni aplicaciones ni usuarios. Accesos (Usuarios a datos).programación. Guardamos descripción (Idea de catalogos). 2. o FORTH (1971). y modelo de datos. Sisinf.. Progress.Cumplimiento de ciertas normas. Operaciones (Operaciones sobre datos).. Dicha redundancia también implica inconsistencias en lo que se tiene almacenado . 7. Reduce redundancia : Acciones logicamente unicas. Los usuarios escriben programas para consultar (extraer información ) de una base de datos y para crear sistemas de información personales o departamentales. o Modula-2 (1981). Cambio en datos no implica cambio en programas y viceversa (Menor coste de mantenimiento).Citar las diferentes estructuras de base de datos Objeto binario grande . juegos de video y robótica.Mejora en la disponibilidad de datos No hay dueño de datos (No igual a ser publicos).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. lo anterior se debe a que con los sistemas de procesamiento de archivos. Ejemplos: Informix. 3. ocasionando problemas como la redundancia que trae consigo almacenamiento y dificulta el acceso a los datos. 1972.

. XML en sí no posee mucha de la funcionalidad de sistemas de bases de datos múltiples como las indicadas en Donají. mixtas: combinan ambos tipos de información. entre: 1. como un disco duro de gran capacidad al que puede tener acceso el Agente de oficina postal (POA). en la estructura de red (―network structure‖). Dado ciertos datos de entrada. En este caso. Las Base de Datos son clasificadas como sigue: 1. directorios: aquellas cuyo contenido está referido a la descripción de otros recursos de información.1 TREE STRUCTURE: Por definición. PLEX STRUCTURE: La base de datos tiene al menos un encadenamiento muchos a muchos (―MANY-TO-MANY link‖). 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. Sin embargo. ―el web‖) como medio de publicación de documentos y como medio de intercambio de información. numéricas: contienen información de tipo numérico. 11. 2.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. de forma abrevia da. el diagrama esta orientado y se pueden definir varios niveles. Bases de datos fuente: serían aquellas bases de datos que ofrecen el documento completo. 2.2.Clasificar a las base de datos por su uso y aplicación 1. no una representación del mismo. Como resultado de esto. el inusitado éxito del World Wide Web (WWW o. . El WWW proporciona uno de los medios más heterogéneos y retadores en el campo de la interoperabilidad.. un objeto es un programa virtual. 2. También distinguen entre: 2. El reto es integrar esa funcionalidad en XML y aprovechar al máximo la información estratégica que podamos encontrar en el web. cada hijo (―child‖) tiene un solo padre (―parent‖).1. etc. 2. 2. datos geoeconómicos. Una de dichas tecnologías es XML [4] (eXtensible Markup Language). En la programación orientada a objetos todo se organiza en torno a los objetos. 1. sobre la cual la comunidad científica tiene muchas expectativas.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. bibliográficas: aquellas cuyo contenido son registros de tipo bibliográfico. Recientemente han surgido tecnologías y estándares enfocados a hacer del web una infraestructura escalable y manejable. En cierto sentido.Estructuras de base de datos en las que estan almacenados los documentos reales. como por ejemplo un directorio de bases de datos. como por ejemplo informes económicos de empresas. Dentro de éstas distinguen. TREE OR NETWORK: La base de datos no tiene ningún encadenamiento muchos a muchos (―ONE-TO-MANY link‖). 10. 2. En un mismo objeto binario grande se almacenan el documento. llamados objetos.2.2 NETWORK STRUCTURE: Por definición. sus versiones y los objetos relacionados. el objeto aplica los procedimientos sobre dichos datos y genera una salida.1. Los objetos binarios grandes estan comprimidos y encriptados. as su vez.. Bases de datos referenciales: son aquellas que ofrecen registros que su vez son representaciones de documentos primarios. 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. Una de ellas es que XML convierta a Internet en un sistema de bases de datos. Cada encadenamiento (―link‖) se une del nivel superior (―the parent‖) al sub nivel (―the child‖). en la estructura de árbol (―tree structure‖). Un objeto tiene un nombre y posee datos y procedimientos.3. 12. como un censo o indicadores cuantitativos. cada hijo (―child‖) puede tener varios padres (―parents‖). textuales: ofrecen el texto completo de un documento.

nombre de especialidad (cadena de 30 caracteres).Mediante conexión de terminales a través de puertos seriales 3. año de nacimiento (entero de 4 números). 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. La cantidad de programas que pueden ejecutarse depende de la memoria disponible. Actualmente se producen versiones de Unix para PC tales como The Santa Cruz Corporation Microport. Su sistema de archivos proporciona un método sencillo de organizar archivos y permite la protección de archivos. 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). Multiusuario Un SO multiusuario permite a mas de un solo usuario accesar una computadora. 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. de la velocidad de la CPU y de la eficiencia del sistema operativo. Casi todas las computadoras que tienen capacidad de multiproceso ofrecen una gran ventaja. Sin embargo. OS/2. Claro que. Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como: Multiproceso asimétrico: Una CPU principal retiene el control global de la computadora.3. Otros sistemas operativos multiusuario y multitarea son OS/2. Unix proporciona tres maneras de permitir a múltiples personas utilizar la misma PC al mismo tiempo. Multiproceso simétrico: En un sistema multiproceso simétrico.Mediante Módems 2. 1. Sus mayores beneficios se obtienen cuando se realizan tareas largas y complejas (como consultar una base de datos).y Sunsoft. Debido a que Unix fue originalmente diseñado para correr en una minicomputadora. Un sistema operativo multiproceso coordina las operaciones de la computadoras multiprocesadoras. ESPECIALIDAD: numero de especialidad (entero de 3 números). . para llevarse esto a cabo. La estructura de una base de datos es diseñada o descripta empleando algún tipo de modelo de datos. 4. Las extensiones de Unix. Windows NT de Microsoft soporta multiproceso simétrico. apellido (cadena de 30 caracteres).Unix . El UNIX y sus clones permiten múltiples tareas y múltiples usuarios. El sistema operativo multitarea de las computadoras Apple se denomina Macintosh OS. era multiusuario y multitarea desde su concepción. especialidad (entero de 3 números). desarrollado por Microsoft. Multiproceso Las computadoras que tienen mas de un CPU son llamadas multiproceso. Multitarea La ejecución de más de un programa a la vez en una computadora. SQL. Ya que cada CPU en una computadora de multiproceso puede estar ejecutando una instrucción. los vínculos o relaciones y las restricciones que deben cumplir esos datos (integridad de datos y redundancia de datos). Unix y otros) permiten que múltiples operaciones se ejecuten simultáneamente. Los sistemas operativos multitarea (Windows. que soportan multiproceso asimétrico ya están disponibles y las extensiones simétricas se están haciendo disponibles.Mediante Redes 5. nombre (cadena de 30 caracteres). IBM. Apple también produce una versión de Unix para la Machintosh llamada: A/UX. desarrollado inicialmente por Microsoft Corporation e International Business Machines (IBM) y Windows. Lenguajes que tienen estas características C. el SO también debe ser capaz de efectuar multitareas. Esix. las instrucciones del UNIX no son intuitivas. el otro procesador queda liberado para procesar otras instrucciones simultáneamente. así como el de los otros procesadores. La estructura de una base de datos hace referencia a los tipos de datos. Unix es el Sistema Operativo Multiusuario más utilizado. no existe una CPU controladora única. Al usar una computadora con capacidades de multiproceso incrementamos su velocidad de respuesta y procesos.

Esto produciria lo siguiente al ejecutarlo SELECT * FROM Nombre_vista. 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. CREATE VIEW <nombre_vista>AS(<sentencia_select>). 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. apellidos.1. CREATE VIEW vAlquileresAS(SELECT nombre. en la que se nos muestre el nombre y apellidos del cliente en lugar de su código. tClientes WHERE ( tAlquileres.codigo_cliente = tClientes. .2. debiendo proporcionar un nombre a la vista y una sentencia SQL SELECT válida. 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 . Ejemplo: Crear una vista sobre nuestra tabla alquileres.4 Creación de vistas de la base de datos (view). Una vista es ―una tabla temporal‖. Creación de vistas Para crear una vista debemos utilizar la sentencia CREATE VIEW. usu_nombre FROM usuario. matriculaFROM tAlquileres. Modificación de vistas Si queremos. En este caso queremos añadir los campos fx_alquiler y fx_devolucion a la vista.codigo ) 1. tener una vista nos simplifica esta tarea.

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.

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:

 

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.

controlar la correcta ejecución de las actualizaciones y recuperar la base de datos en caso de pérdida. Estas reglas son la de integridad de entidades y la de integridad referencial. 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 . restricción y validación de los datos a ingresar. 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.Dominio Un Dominio de valores posibles puede estar asociado a cada atributo. La Integridad conserva la seguridad en un sistema de bases de datos que permite el acceso a múltiples usuarios en tiempos paralelos. En vez de ello es una señal o un recordatorio de que el valor falta o es desconocido. Reglas de Integridad . posiblemente un tipo simple definido por el sistema o por el usuario. 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. A este tipo de restricciones se les denomina restricciones de dominio. Los límites de Dominio son la forma más elemental de restricciones de Integridad. El Dominio de un atributo define los valores posibles que puede tomar este atributo. Nulo: Es un indicador que le dice al usuario que el dato falta o no es aplicable. Un dominio no es más que un tipo de dato. 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). Reglas de Integridad Una vez definida la estructura de datos del modelo relacional (es decir. El DBMS tiene que asegurar que los datos se almacenan de acuerdo a las políticas previamente determinadas por el DBA. a este respecto.000 en compras promedio al año. Dominio: Posibles valores que puede tener un campo. se convierte en mecanismo de control. Además de los Dominios "naturales". pero el valor de Nulo no es un valor de dato real. Por conveniencia. La Integridad es el término utilizado para decir que la información almacenada tiene calidad. En otras palabras. comprobar las restricciones de integridad. Para que un cliente sea considerado especial. el administrador del sistema puede generar sus propios dominios definiendo el conjunto de valores permitidos. Antes de definirlas es preciso conocer el concepto de nulo y dominio. Esta característica. Al definir cada atributo sobre un dominio se impone una restricción sobre el conjunto de valores permitidos para cada atributo. un dato que falta normalmente se dice que tiene valor Nulo. el DBMS debe principalmente. deberá tener un mínimo de USD 1. Son fáciles de probar en el sistema siempre que se introduce un nuevo dato en el sistema. usados como tipos de datos. usada en forma correcta.

o un curso impartido por un profesor inexistente. Sus contrapartes en la base de datos también deben ser identificables. destinados al mercado doméstico (un Microsoft Access por ejemplo). por ejemplo. debe ser completamente nulo. Reglas de Integridad . Hemos de recordar que sólo los productos puramente relacionales implementan realmente estas dos reglas generales de Integridad relacional. Los valores de clave primaria no pueden ser nulos. Las razones de esta regla son:      Las tuplas en las relaciones base representan entidades en la realidad. Los valores de la clave primaria sirven como identificadores en la base de datos. Esta regla se aplica a las claves foráneas. Integridad de Entidad Las restricciones de entidades aseguran la integridad de las entidades que son modeladas por el sistema.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. la existencia de una clave principal es una restricción de entidad que impone la regla "cada entidad debe estar identificada de forma única". . Si en una relación hay alguna clave foránea. exista un profesor en un departamento inexistente. en una base de datos académica. se deben cumplir todo el tiempo. En otros. Las entidades en la realidad son identificables por definición. En esta no está permitido que algún componente de la clave primaria acepte valores nulos. Esta regla impide que. Integridad Referencial La regla de Integridad referencial define que la base de datos no debe contener valores de claves foráneas sin concordancia.Una definición bien adecuada de restricciones de dominio no sólo nos permite probar valores insertados en la base de datos. o bien. En el nivel más simple. es decir. entonces sus valores deben coincidir con los valores de la clave primaria a la que hace referencia. Estas dos reglas son generales y tienen relación con las llaves primarias y foráneas. También nos permite probar consultas para asegurarnos de que las comparaciones que se hacen tienen sentido. Existen básicamente dos reglas de Integridad asociadas con el modelo relacional: la Integridad de Entidad y la Integridad Referencial.

Por lo tanto. él considera un buen vendedor a aquel que iguale o supere los $100. 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. Regla de los nulos: ¿tiene sentido que la clave foránea acepte nulos? 2. Utilizando una vista en SQL podríamos decir: var BUEN_VENDEDOR view (V where venta >= 100000) { Clave.estas incongruencias son admitidas sin problemas. 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: . Nombre. Mecanismos de Vistas para la implementación de Integridad Las vistas son expresiones del álgebra relacional con un nombre determinado. Para hacerlo. para cada clave foránea en la base de datos habrá que contestar a dos preguntas: 1. Ciudad} Al ejecutar esta instrucción. 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). No se puede cambiar un valor de la clave primaria en la tabla principal si el registro tiene registros relacionados.000 en ventas. 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. Así que cuando se realiza una operación ilegal. Por ejemplo. No se puede eliminar un registro de una tabla principal si existen registros coincidentes en la tabla relacionada. Supongamos que el dueño del negocio quiere conocer a los mejores vendedores para premiarlos con un bono especial al final del año. existen dos opciones: rechazar la operación ilegal o bien aceptar la operación y realizar operaciones adicionales compensatorias que conduzcan a volverla legal. veamos la tabla siguiente que contiene información sobre los vendedores de una ferretería. la expresión del álgebra relacional no es evaluada. o Propagar: se borra la tupla referenciada y se propaga el borrado a las tuplas que hacen referencia mediante la clave foránea.

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. nada hace suponer que es así. es posible determinar si existen datos referenciados que pudieran comprometer la Integridad relacional. borrar y seleccionar datos. Las vistas tienen la misma estructura que una tabla: filas y columnas. mediante las vistas. No tiene absolutamente ningún dato. en lugar de la instrucción: Select Clave. claro está. pues como ya se mencionaba. . debe reproducir las reglas del origen de datos en las reglas que se crean para la vista remota. Si el usuario solamente tiene privilegios de lectura en una entidad. Es decir. si la clave de un vendedor está formada por cuatro dígitos y así lo establecen las restricciones de Integridad de la tabla Vendedores. Una base de datos se compone de muchas tablas. Creando una vista se hace visualmente todo más simple. se percibe como una tabla virtual. 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. Esto significa que una vista no contiene datos duplicados de una tabla de la base de datos. actualizar. Las vistas permiten ocultar la complejidad de los datos. entonces en la vista. no es una tabla real. La información de dos o más tablas puede recuperarse utilizando una combinación de tablas. tampoco podrá crear una vista con información proveniente de las mismas. Esto. 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. cuando un vendedor se dé de alta. no los datos. ¿Por qué utilizar vistas?    Las vistas pueden proporcionar un nivel adicional de seguridad. Por ejemplo. Las vistas ayudan a mantener unos nombres razonables para las consultas. Por ejemplo. y es precisamente así como una vista puede implementarse para garantizar la Integridad de la base de datos. Nombre.En otras palabras. Al igual que sucede con una tabla. De hecho. en relación con los privilegios que posea el usuario de la base de datos. también. La única diferencia es que sólo se almacena de ellas la definición. también se deberá cumplir con esa restricción. y estas combinaciones pueden resultar muy confusas. si el usuario no tiene acceso a determinadas tablas. en la vista tampoco podrá agregar o modificar información. Los datos que se recuperan mediante una consulta en una vista se presentarán igual que los de una tabla. Existen funciones en los DBMS para crear reglas para las vistas. se pueden insertar. si no se sabe que se está trabajando con una vista.

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. El código contenido en un disparador. debe disponer del privilegio CREATE TRIGGER.. inicios de sesión.2. Los disparadores de nivel de instrucción son el tipo predeterminado que se crea con el comando create trigger. 2. incluyendo errores. conexiones y desconexiones. 6.Disparadores de nivel de instrucción: se ejecutan una vez para cada intrucción DML. truncate y revoke.. Los disparadores de nivel de fila se crean utilizando la cláusula for each row en el comando create trigger.Disparadores de esquema: puede crear disparadores sobre operaciones en el nivel de esquema tales como create table. Por ejemplo.. Para crear un disparador (trigger) en una tabla. 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. audit... también para imponer reglas de negocio complejas o para auditar cambios en los datos. Además.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. teniendo así el privilegio ALTER para la tabla ó ALTER ANY TABLE. drop table. 3. 4. el usuario con el que accedamos a Oracle deberá ser propietario de la misma. dicho usuario. 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.Disparadores de nivel de fila: se ejecutan una vez para cada fila afectada por una instrucción DML.En primer lugar abriremos la Consola de Oracle Enterprise Manager: . alter table. La ejecución de disparadores es transparente al usuario.2. Existen varios tipos de disparadores.Disparadores en nivel de base de datos: puede crear disparadores que se activen al producirse sucesos de la base de datos.. Por ejemplo.. Puede utilizar este tipo de disparador para automatizar el mantenimiento de la base de datos o las acciones de auditoría. En su mayor parte. puede establecerse que se produzcan inmediatamente antes (before) o después (after) de dichos sucesos. denominado cuerpo del disparador. 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. Puede incluso crear disparadores para impedir que los usuarios eliminen sus propias tablas. rename. Los disparadores (triggers) pueden utilizarse para completar la integridad referencial.Disparadores Before y After: puesto que los disparadores son ejecutados por sucesos. dependiendo del tipo de transacción de disparo y el nivel en el que se ejecuta el disparador (trigger): 1. EJEMPLO DE CREACIÓN DE TRIGGER (DISPARADOR) DE NIVEL DE FILA 1.2 Creación de disparadores (Trigger‘s). está formado por bloques PL/SQL. 5.

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

En "Nombre" introduciremos el nombre del disparador y en "Cuerpo del Disparador" introduciremos el código PL/SQL que queramos que se ejecute.. marcaremos "Después" y marcaremos también en "Arrancar Disparador:" "Insertar": . 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".3.

tabla)  values ."INSERCIONNUMEROMAYOR1000" AFTER  INSERT ON "ALONSO". aviso."PRUEBA" FOR EACH ROW WHEN (new. Se pueden crear mediante SQL. La consulta SQL que crea el disparador anterior es la siguiente:  CREATE OR REPLACE TRIGGER "ALONSO".CAMPO2 > 1000)  BEGIN  insert into resultadodisparador (fecha. 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).Pulsaremos en "Crear" y.

Obviamente. puesto que es el propietario de dichos objetos. (Sysdate.  'PRUEBA'). La consulta SQL necesaria para crear la tabla "PRUEBA":  CREATE TABLE "ALONSO".  "CAMPO2" NUMBER) La consulta SQL necesaria para crear la tabla "resultadodisparador":  CREATE TABLE "ALONSO".   END. 'Registro con CAMPO2 superior a 1000'."PRUEBA" (  "CAMPO1" VARCHAR2(10) NOT NULL. Con este disparador. el aviso "Registro con CAMPO2 superior a 1000" y el nombre de la tabla origen del disparador "PRUEBA"."RESULTADODISPARADOR" ("FECHA" DATE NOT  NULL. . 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). "AVISO" VARCHAR2(100) NOT NULL. 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. "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.

resultadodisparador . 1500) Ahora comprobamos con un SELECT que la tabla "resultadodisparador" tiene una nueva fila: select * from alonso.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 ".resultadodisparador Ahora realizamos una inserción en la tabla PRUEBA con el valor del CAMPO2 superior a 1000: insert into alonso.prueba values ('PRUEBA 1'. 10) con esta inserción el disparador no se ejecutará pues CAMPO2 es inferior a 1000. realizamos una inserción en la tabla PRUEBA: insert into alonso." de más al final. para comprobarlo hacemos un SELECT a la tabla RESULTADODISPARADOR (no nos debería devolver ningún registro): select * from alonso. Para solucionarlo es suficiente con quitar los "END" y ".prueba values ('PRUEBA 2'." sobrantes y volver a compilar y guardar el disparador hasta que quede con el siguiente icono: Para comprobar que el disparador funciona adecuadamente.

3 Creación de procedimientos almacenados. Antes de crearlos.2. Puede crear procedimientos almacenados mediante la instrucción CREATE PROCEDURE de Transact-SQL.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. tenga en cuenta lo siguiente: .

la aplicación generará un error ya que el nombre se enlaza con el procedimiento del sistema. a fin de indicar que la operación se ha realizado correctamente o que se ha producido un error (y el motivo del mismo). SQL Server utiliza el prefijo sp_ para indicar procedimientos almacenados del sistema. EXEC dbo. En procedimientos almacenados CLR. no con el suyo.sp_who. LastName FROM Person. incluidas las llamadas a otros procedimientos. Cuando cree un procedimiento almacenado. Los procedimientos almacenados son objetos de ámbito de esquema y sus nombres deben ajustarse a las reglas para los identificadores. Un procedimiento almacenado definido por el usuario. Las funciones de control de errores tales como ERROR_LINE y ERROR_PROCEDURE se pueden especificar en el procedimiento almacenado. Las instrucciones de programación que realicen operaciones en la base de datos. deberá especificar lo siguiente:     Todos los parámetros de entrada y de salida del lote o del procedimiento que realiza la llamada. En el ejemplo siguiente se muestra este comportamiento. GO . 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. El valor de estado devuelto al lote o al procedimiento que realiza la llamada. Sólo puede crear un procedimiento almacenado en la base de datos actual. GO CREATE PROCEDURE dbo. 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. siempre se ejecutará el procedimiento almacenado del sistema. Para crear procedimientos. USE AdventureWorks2008R2. El nombre que elija puede entrar en conflicto con algún procedimiento futuro del sistema. GO EXEC sp_who.sp_who AS SELECT FirstName. debe ser propietario del ensamblado al que se hace referencia en <method_specifier> o disponer del permiso REFERENCES en dicho ensamblado.    Las instrucciones CREATE PROCEDURE no se pueden combinar con otras instrucciones SQL en el mismo lote.Person. debe disponer del permiso CREATE PROCEDURE en la base de datos y del permiso ALTER en el esquema donde se crea el procedimiento. Se recomienda que no cree procedimientos almacenados con el prefijo sp_. Las instrucciones de control de errores necesarias para detectar y administrar posibles errores.

Una vez cerrada la conexión que se utilizó para crear el procedimiento almacenado temporal. # denota un procedimiento almacenado temporal local. Sólo puede ejecutar un procedimiento temporal local la conexión que lo creó. Estos procedimientos dejan de existir cuando se cierra SQL Server. Las aplicaciones que se conecten a SQL Server 2000 y versiones posteriores deben utilizar el procedimiento almacenado del sistema sp_executesql. El procedimiento sp_executesql no almacena datos en las tablas del sistema y. 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. Se recomienda que utilice en su lugar sp_executesql.DROP PROCEDURE dbo. y hasta que se completan todas las versiones del procedimiento que se estuvieran ejecutando mediante otras conexiones. éste ya no se puede volver a ejecutar. Si se crea directamente en la base de datos tempdb un procedimiento almacenado sin el prefijo # o ##.sp_who. vea Ejecutar procedimientos almacenados (motor de base de datos). Los procedimientos creados directamente en tempdb existen incluso después de haber finalizado la conexión en que se crearon. Para obtener más información. los procedimientos almacenados temporales (tanto privados como globales) se pueden crear agregando los prefijos # y ## delante del nombre del procedimiento. evita el problema. 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. ya que tempdb se vuelve a crear cada vez que se inicia SQL Server. Los procedimientos almacenados CLR no se pueden crear como procedimientos almacenados temporales. De forma similar a las tablas temporales. por tanto. Éste existe hasta que se cierra la conexión que el usuario utilizó para crearlo. el procedimiento se elimina automáticamente cuando se cierra la conexión. . Cualquier conexión puede ejecutar un procedimiento almacenado temporal global. en vez de procedimientos almacenados temporales. el procedimiento en cuestión se eliminará automáticamente cuando se cierre SQL Server. ## denota un procedimiento almacenado temporal global. 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. GO Si se utiliza un calificador de esquema explícito también se consigue una ligera mejora del rendimiento. Sólo podrán finalizar las conexiones que hayan empezado a ejecutar el procedimiento almacenado.

SEGURIDAD 4.3 Definición del esquema de seguridad. El ejemplo muestra la utilización de varias instrucciones SELECT y varios parámetros OUTPUT. sociales y éticos Políticas de la empresa. 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. etc. Utilizar un procedimiento sencillo con una instrucción SELECT compleja El siguiente procedimiento almacenado devuelve todos los empleados (nombre y apellidos). Este procedimiento almacenado no utiliza ningún parámetro. retina del ojo. utiliza los valores predeterminados (apellidos que comienzan por la letra D). C. Este procedimiento almacenado acepta coincidencias exactas de los parámetros pasados. sus puestos y los nombres de sus departamentos a partir de una vista. INCLUYE ASPECTOS DE:      Aspectos legales. 2. Utilizar parámetros OUTPUT El siguiente ejemplo crea el procedimiento almacenado uspGetList.1. D. niveles de información publica y privada Controles de tipo físico. Este patrón de procedimiento almacenado coincide con los parámetros pasados o. sus puestos y los nombres de sus departamentos a partir de una vista. acceso a las instalaciones Identificación de usuarios: voz. Utilizar un procedimiento simple con parámetros El siguiente procedimiento almacenado sólo devuelve el empleado especificado (nombre y apellidos).A. B. su puesto y el nombre de su departamento a partir de una vista. que devuelve una lista de productos con precios que no superan un importe especificado. Se llama también privacidad. Concepto El objetivo es proteger la Base de Datos contra accesos no autorizados. Controles de sistema operativo . Los parámetros OUTPUT permiten a un procedimiento externo. Utilizar un procedimiento simple con parámetros comodín El siguiente procedimiento almacenado sólo devuelve los empleados especificados (nombre y apellidos). si éstos no se proporcionan.

restricciones de uso de vistas. etc Personal: Acceso sólo del personal autorizado. etc. etc. su tipo y los accesos y operaciones permitidas a éstos. conceder privilegios y establecer usuarios   Usuario con derecho a crear. Privilegios sobre los objetos. El problema de la seguridad consiste en lograr que los recursos de un sistema sean. Usuario con derecho a consultar. lo cual facilita la auditoría de la Base de Datos. Los sistemas operativos proveen algunos mecanismos de protección para poder implementar políticas de seguridad.      Identificar y autorizar a los usuarios: uso de códigos de acceso y palabras claves. alterar la estructura de los objetos. Perfiles de usuario. etc Autorización: usar derechos de acceso dados por el terminal. Las políticas definen qué hay que hacer (qué datos y recursos deben protegerse de quién. barrido de la retina. impresiones digitales. Diferentes tipos de cuentas: en especial del ABD con permisos para: creación de cuentas. También tienen un archivo de auditoria en donde se registran las operaciones que realizan los usuarios. 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. Los SGBD tienen opciones que permiten manejar la seguridad. están permitidas todas las operaciones. MEDIDAS DE SEGURIDAD     Físicas: Controlar el acceso al equipo. quien puede otorgar o revocar privilegios a otros usuarios en la forma de consulta (select). puesto que las políticas . TIPOS DE USUARIOS: · DBA. registros o campos en un modo determinado (consulta o modificación). etc. Uso de técnicas de cifrado: para proteger datos en Base de Datos distribuidas o con acceso por red o internet. Manejo de la tabla de usuarios con código y contraseña. borrar y modificar objetos y que además puede conceder privilegios a otros usuarios sobre los objetos que ha creado. y los mecanismos determinan cómo hay que hacerlo. y sin derecho a crear o borrar objetos. concesión y revocación de privilegios y asignación de los niveles de seguridad. o actualizar. por la operación que puede realizar o por la hora del día. reconocimiento de voz. Esta separación es importante en términos de flexibilidad. tal como GRANT. vistas. SO: Seguridad a nivel de SO SGBD: Uso herramientas de seguridad que proporcione el SGBD. 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. Evitar sobornos. Para eso se utilizan mecanismos de protección. El ABD asigna el propietario de un esquema. es un problema de administración). modificación o referencias. indexar. etc. A través del uso de la instrucción grant option se pueden propagar los privilegios en forma horizontal o vertical. debe mantener información de los usuarios. utilizados para los fines previstos. bajo toda circunstancia. control de las operaciones efectuadas en cada sesión de trabajo por cada usuario y anotadas en la bitácora. Discrecional: Se usa para otorgar y revocar privilegios a los usuarios a nivel de archivos. exámenes. Tarjetas de acceso. añadir nuevos campos. REVOKE.En relación al SGBD.

pero es posible hacer que resulte muy difícil eludir los controles.Los datos contenidos en una Base de Datos pueden ser individuales o de una Organización. La solución es una sola: mantener la información respaldada. Los datos deben poder ser sometidos a procesos de auditoria. . es el que tiene que ver con el uso no autorizado de los recursos: Lectura de datos. pueden usarse para implementar distintas políticas. Chequear permanentemente. la integridad y la disponibilidad de la información. Las acciones de los usuarios deben ser supervisadas. a no ser que su propietario lo autorice. Los siguientes siete requisitos son esenciales para la seguridad de la base de datos:      La base de datos debe ser protegida contra el fuego. . impresora. Si esta revelación es autorizada por dicho propietario la confidencialidad se mantiene. El sistema debe tener capacidad para verificar que sus acciones han sido autorizadas.Aparte del punto de vista de los SGBD. El concepto de seguridad. Los mismos mecanismos.pueden variar en el tiempo y de una organización a otra. autenticación y seguridad. guerras.Evitar pérdidas de datos por fallos hardware o software (fallo disco. El sistema debe diseñarse a prueba de intromisiones. LAS TRES PRINCIPALES CARACTERÍSTICAS DE LA SEGURIDAD Que se deben mantener en una base de datos son la confidencialidad. no deben ser desvelados.) . de preferencia en un lugar lejano. Modificación de datos.).A pesar de estos posibles fallos la base de datos debe quedar siempre en un estado consistente. según Date (1992). Principios básicos para la seguridad Suponer que el diseño del sistema es público. . de modo tal que pueda descubrirse cualquier acción indebida o errónea. Los datos deben ser reconstruibles. Sean de un tipo o de otro. Los mecanismos de protección deben ser simples. SERVICIOS DE SEGURIDAD Existen varios servicios y tecnologías relacionadas con la seguridad. asegurar la confidencialidad significa prevenir/ detectar/ impedir la revelación impropia de la información. Normalmente suelen ser fallos de disco o pérdida de memoria RAM. Ningún sistema puede evitar de manera absoluta las intromisiones malintencionadas. El defecto debe ser: sin acceso. porque por muchas precauciones que se tomen. SEGURIDAD: Fallos lógicos o físicos que destruyan los datos. etc. Es decir. alteración o destrucción no autorizados. Otro aspecto importante de la seguridad. la cual puede producirse por diversas causas: fenómenos naturales. se puede entender como la protección de los datos contra acceso. Uso de recursos: ciclos de CPU. errores de hardware o de software. o errores humanos. La falta de auditoria en los sistemas de computación ha permitido la comisión de grandes delitos. etc. Destrucción de datos. Un aspecto importante de la seguridad es el de impedir la pérdida de información. Los mecanismos deben ser aceptados sicológicamente por los usuarios. por ingeniosos que sean. intervienen otros niveles (ej: discos replicados. . si son flexibles. 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. Los programadores. siempre ocurren accidentes. no deben poder pasar por alto los controles. almacenamiento. uniformes y construidos en las capas más básicas del sistema. el robo y otras formas de destrucción.

El ABD asigna el propietario de un esquema. En un banco por ejemplo. modificación o referencias. etc. barrido de la retina. Tarjetas Inteligentes: se examinan los procesos de autenticación utilizando tarjetas inteligentes y los protocolos. lo cual facilita la auditoría de la BD. Ejemplo: grant select on Empleado to códigoUsuario revoke select on Empleado from códigoUsuario. 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. 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. . autenticación de red a nivel corporativo. así como el Editor de Políticas de Seguridad. se proporciona información sobre el interfaz Security Support Provider Interface (SSPI) para obtener servicios de seguridad integrados del sistema operativo. quien puede otorgar o revocar privilegios a otros usuarios en la forma de consulta (select). Servicios de seguridad en Windows 2000: se examinan los procedimientos relacionados con la gestión de cuentas. no todos los usuarios pueden visualizar alguna información.1 Creación de usuarios de la base de datos. aunque unos datos lo son más que otros. impresiones digitales. del Internet Engineering Task Force. 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. 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. 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. por tal motivo se debe considerar el control de acceso a los mismos.      Identificar y autorizar a los usuarios: uso de códigos de acceso y palabras claves. Discrecional: se usa para otorgar y revocar privilegios a los usuarios a nivel de archivos. concesión y revocación de privilegios y asignación de los niveles de seguridad. 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. A través del uso de la instrucción grant option se pueden propagar los privilegios en forma horizontal o vertical.3. exámenes. registros o campos en un modo determinado (consulta o modificación). Uso de técnicas de cifrado: para proteger datos en BD distribuidas o con acceso por red o internet. Kerberos es el protocolo por defecto en Windows 2000 para autenticación en red. proporciona a los administradores de redes un elemento estratégico de defensa para la protección de sus redes. por la operación que puede realizar o por la hora del día.Además. 2. 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. reconocimiento de voz. Autorización: usar derechos de acceso dados por el terminal. Seguridad IP: Windows IP Security. servicios y especificaciones asociadas. Diferentes tipos de cuentas: en especial la del ABD con permisos para: creación de cuentas.

o bien la transacción se lleve a cabo en su totalidad. 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.4. ANULAR: EXEC SQL ROLLBACK. Pero si el sistema maneja el procesamiento de transacciones. Supongamos. es imposible ofrecer tal garantía. Esta operación implica en realidad 2 modificaciones de la BD. 1000) a la BD: EXEC SQL WHENEVER SQLERROR GO TO ANUAR. Consideremos ahora la siguiente secuencia de operaciones. todas las modifi caciones efectuadas por esa unidad de trabajo. P#.3 Respaldar bases de datos. . se anularán esas modificaciones. EXEC SQL COMMIT.youtube. el valor de CANTTOTAL para una parte dada es igual a la suma de todos los valores SP. señala el término no exitoso de la transacción: dice al manejador de transacciones que algo salió mal. de una falla en el peor momento posible.2 Recuperación a partir de la bitácora. GO TO TERMINAR. siempre existe la posibilidad de una falla y. y que pueden ―comprometer‖. RECUPERACION DE TRANSACCIONES Una transacción es una unidad lógica de trabajo. Por desgracia. en cambio. la cual en esencia no es atómica.4.CANT correspondientes a esa parte. que la tabla P. nos gustaría tener una garantía absoluta de que se realizarán las 2 modificaciones. Así. EXEC SQL INSERT INTO SP (S#. La BD ni siquiera es consistente entre esas 2 modificaciones. cuya intención es añadir un nuevo envío (S5. 2. ‗P1‘.CANT de todos los registros SP correspondientes a esa parte.com/watch?v=tCHw_xBvnSM 2. EXEC SQL UPDATE P SET CANTTOTAL = CANTTOTAL + 100 WHERE P# = P1. que la BD está de nuevo en un estado consistente. La operación ROLLBACK. podrá ofrecer lo más cercano a esa garantía. De esta manera puede lograrse que una secuencia de operaciones. la de partes. 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. la proposición UPDATE (actualizar) pone al día en forma apropiada el campo CANTOTAL de la parte P1.http://www. En una situación ideal. El componente del sistema encargado de lograr la atomicidad se conoce como manejador de transacciones. TERMINAR: RETURN. o se cancela en su totalidad. contiene un campo adicional CANTTOTAL que representa la cantidad total enviada de la parte en cuestión. 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. y que todas las modificaciones efectuadas hasta el momento por la unidad lógica del trabajo deben ―retroceder‖ o anularse. P1. que la BD podría estar en un estado inconsistente. 1000). CANT) VALUES (‗S5‘. La proposición INSERT (insertar) agrega el nuevo envío a la tabla SP. aparente serlo desde un punto de vista externo. además.

su-dominio.Respaldar bases de datos MySQL A pesar de no ser comunes los errores en bases de datos MySQL. 1.com:8443. que esta en la seccion Dominios.. Respaldar una base de datos MySQL 3.. 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. .Haga click sobre el nombre de dominio al que pertenece la base de datos que quiere respaldar.Ingrese a su panel de control desde la direccion web https://www. la omision de un respaldo puede ocasionar severas perdidas de informacion para su empresa o negocio. 2.. Le recomendamos realizar respaldos regularmente de acuerdo a la cantidad de informacion y periodicidad de actualizacion de la misma.Pulse sobre el icono Bases de datos que se encuentra en la seccion Servicios.

el primero de la lista sera seleccionado por defecto para administrar la base de datos. Si hay varios usuarios. 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. Opera. Mozilla Firefox. Web-BD. Para poder utilizar este administrador de bases de datos debe de haber como minimo un usuario creado. etc. ..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.

(Puede consultar la documentacion oficial (en ingles) de phpmyadmin a traves del icono ? que se encuentra en la tercera posicion del menu lateral de la izquierda..) .Respaldar una base de datos MySQL 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.

Le sugerimos la seleccion del resto de las opciones como se muestra en la siguiente pantalla. .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"..

4.Respaldar una base de datos MySQL 7. 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. Archivos de bases de datos Concepto de base de datos relacional Sistema cliente-servidor 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. 2. Hay cuatro aspectos fundamentales de un servidor SQL (Structured Query Language): 1. Los archivos SQL o MDF son extremadamente complejos y con una gran organización interna. Le recomendamos guardar los archivos en un lugar seguro y conservar. El archivo está diseñado . como minimo.Con esto su base de datos habra quedado respaldada. 2.4 Recuperar bases de datos. 4. los dos ultimos. 3. Los demas podra borrarlos para ahorrar espacio en disco a menos que sean requeridos como historial. Pero el archivo es más que un contenedor de datos..

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. Un sistema de gestión de gases de datos interactúa y combina todos los elementos anteriores. la meta será hacer que el dispositivo vuelva a estar operativo y extraer los datos. 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. El DBMS de un servidor SQL es el corazón de su sistema. Aquí es donde Ontrack marca la diferencia al proporcionar una solución total de recuperación de datos. que puede ser un disco duro o una matriz de almacenamiento (o Array) SAN o RAID.de modo que el servidor SQL puede gestionar un gran número de transmisiones de datos de una sola vez.MDF. los ajustes o reparaciones deberán realizarse a nivel del sistema de archivos. Ontrack ha mejorado sus especificaciones técnicas para poder solucionar los problemas en este tipo de dispositivos. Estas herramientas hacen que el volumen sea accesible. El segundo nivel de **pérdida de datos** puede empezar a nivel sistema de archivos. 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. El sistema operativo contrala el sistema de archivos. Si el dispositivo de almacenamiento es una matriz de almacenamiento SAN o RAID. Soluciones de Ontrack para situaciones de pérdidas de datos . Las matrices de almacenamiento SAN y RAID añaden una nueva complejidad al trabajo. el DBMS también controla las bases de datos relacionales y organiza los datos. El sistema cliente-servidor se refiere a la parte del servidor SQL que se comunica con el sistema operativo. la meta de Ontrack es conseguir que la unidad vuelva a ser operativa para poder copiar los datos. Como hemos mencionado anteriormente. El sistema de archivos es un método de almacenamiento y organización de los archivos del sistema de los usuarios. La organización de datos es muy importante para mantener la velocidad del servidor de bases de datos. también pueden dañar permanentemente el flujo de datos del archivo.MDF son muy complejos. los archivos . las conexiones y la gestión de varias bases de datos al mismo tiempo. El tercer nivel de la pérdida de datos puede ocurrir en el archivo. La mayoría de los sistemas operativos dispone de una herramienta que automáticamente arregla el sistema de archivos. El primer nivel de pérdida de datos comienza en la unidad de almacenamiento. 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. La estructura interna puede estar corrupta hasta hacer que el DBMS no pueda utilizar la base de datos. Si la pérdida se produce a este nivel. Sin embargo. Pero no sólo gestiona la estructura interna del archivo . Esta parte del sistema necesita gestionar los recursos del servidor. 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. Una vez reparado el sistema de archivos se podrá acceder correctamente al flujo de datos de archivo.

MDF. incluidas las tablas y listas de información borradas. Sólo es necesario que el servidor SQL esté encendido.0 SQL 2000 Microsoft Igual que SQL 7. SQL 7. Los informes también muestran el número de listas de datos que se pueden recuperar.5 base de datos. En este punto entra en juego el conjunto de herramientas de SQL.MDF.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.5. Microsoft Igual que SQL 6. el conjunto de herramientas para SQL copiará los datos en otra base de datos de servidor de SQL. El conjunto de herramientas de recuperación interna para SQL de Ontrack ha sido diseñado para recuperar los datos contenidos en archivos . está borrado o truncado por problemas con el sistema de archivo. Ontrack da completa cobertura a esta versión. Base de datos eliminada Base de datos SQL que ha sido borrada.MDF y proporciona informes sobre qué tablas son recuperables. Funciones de recuperación . podemos realizar una copia de seguridad o guardar los datos recuperados. Al terminar esta fase. El proceso de una recuperación de SQL comienza con la localización del archivo de base de datos requerido.0 SQL 2005 Términos importantes Tabla eliminada Tabla en una base de datos SQL que ha sido borrada. La recuperación de datos a distancia es la solución más rápida para las recuperaciones de SQL. Una vez que se ha terminado el proceso de evaluación y se ha recibido la autorización para recuperar los datos. Si no se encuentra el archivo. Estas herramientas analizan la compleja estructura interna de un archivo .0 Microsoft Igual que SQL 7. Para obtener los mejores resultados recomendamos que el dispositivo de almacenamiento en el que se trabaja se encuentre conectado a un servidor SQL. La siguiente fase es trabajar sobre la misma base de datos. intentamos extraer los datos. los nombre de archivos de base de datos son generalmente . 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. Extraemos la tabla de Microsoft información de la base de datos con errores y creamos nuevas tablas en una nueva SQL 6. Versiones compatibles de SQL Generalmente uno o más archivos DAT de gran tamaño. intentamos ajustar o reparar el sistema de archivos para dirigirlo correctamente al flujo de datos del archivo. de este modo todo el tránsito de datos sucede en un solo equipo. buscamos en toda la unidad todos los datos SQL. Si finalmente el sistema de archivos no dispone en absoluto de vínculos hacia el archivo. Fila borrada Fila de información en una tabla de SQL que ha sido borrada. Si el archivo de base de datos no se encuentra accesible debido a problemas con el dispositivo de almacenamiento.

.Archivo corrupto Archivo borrado Objetos eliminados 2. Tablas eliminadas en SQL que son compatibles. Otras variables de este tipo son SQLCODE y SQLERR. . Base de datos que ha sido eliminada por el motor de la base de datos. EXEC SQL COMMIT RELEASE. CHAR user_name[7].. Se trata primeramente de una recuperación de archivo borrado. el C++. También le podíamos haber dicho que hiciera otras cosas como: Archivo de base de datos que el motor de la base de datos no puede abrir. que puede interactuar dentro de un lenguaje distinto como puede ser el cobol.1 Definición de transacciones en un lenguaje huésped. es decir. De esta forma se puede saber si se ha producido un error a la hora de manejar el oracle.. el visual Basic. etc. MAIN ( ) { EXEC SQL WHENEVER sqlerror DO sql_error (―Error Oracle‖) . .. } El oracle mantiene una variable llamada SQLSTATE en la cual guarda codigos de retorno cuando se interactua con el. Un ejemplo de esto en c sería: #include <stdio.. 2º Evaluación El lenguaje SQL como lenguaje Huésped El lenguaje SQL puede actuar como si fuera un lenguaje huésped. . . CHAR cod_cli[7]..msg) EXEC SQL ROLLBACK RELEASED EXIT(1).5. VOID sql_error ( ). EXEC SQL CONNECT :username IDENTIFY BY :password. CHAR password[8]. 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). Ya sea directamente por el cliente. después de que el archivo haya sido restaurado desde una recuperación de cinta. EXEC SQL SELECT cod_cli INTO :cod_cli FROM clientes WHERE dni = :dni. o después de que el archivo se haya copiado tras la recuperación de una unidad.5 2. EXIT(0) } VOID sql_error (CHAR *msg) { PRINTF (―\N%S‖. EXEC SQL END DECLARE SECTION.. CHAR dni[6]. 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. FLOAT cuota.h> EXEC SQL BEGIN DECLARE SECTION. Listas eliminadas en SQL que son compatibles..

Para ello tenemos la palabra INTO. El nombre de las variables que van a intervenir en las sentencias de SQL van siempre precedidas por el carácter `:'. @@TRANCOUNT INSERT INTO Test VALUES (3) COMMIT TRAN Tran Interna 2 — Reduce @@TRANCOUNT a 2. @@TRANCOUNT INSERT INTO Test VALUES (2) BEGIN TRAN Tran Interna 2? — @@TRANCOUNT ahora es 3. podemos empezar una nueva transacción sin haber terminado la anterior. es decir. — Pero no se guarda nada en la base de datos. pero no ―finaliza‖ ninguna transacción ni ―guarda‖ los cambios. — Pero no se guarda nada en la base de datos. SELECT ‗El nivel de anidamiento es‘.   CONTINUE GOTO etiqueta Función También se puede controlar con esta sentencia que cuando no halla error haga algo. 1 si hay una transacción anidada. con el cual le especificamos a donde va a ir el resultado del select. Otra de las posibilidades que nos ofrece el SQL Server es utilizar transacciones anidadas. cambiando SQLERROR por NOTFOUND después de la palabra WHENEVER. @@TRANCOUNT INSERT INTO Test VALUES (1) BEGIN TRAN Tran Interna 1? — @@TRANCOUNT ahora es 2. @@TRANCOUNT . CREATE TABLE Test (Columna int) GO BEGIN TRAN Tran Externa? — @@TRANCOUNT ahora es 1 SELECT ‗El nivel de anidamiento es‘. libera los recursos mantenidos por la conexión y reduce @@TRANCOUNT a 0. SELECT ‗El nivel de anidamiento es‘.3 Ejecución de transacciones anidadas. 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. 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. 2 si estamos en el segundo nivel de anidamiento… y así sucesivamente. Asociada a esta idea de anidamiento existe una variable global @@TRANCOUNT que tiene valor 0 si no existe ningún nivel de anidamiento. A la hora de hacer un select tenemos que especificarle a donde van a ir a parar las filas que son el resultado. @@TRANCOUNT COMMIT TRAN Tran Interna 1 — Reduce @@TRANCOUNT a 1. SELECT ‗El nivel de anidamiento es‘. SELECT ‗El nivel de anidamiento es‘.5. Esto quiere decir que podemos tener transacciones dentro de transacciones. 2. 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. COMMIT TRAN: Dentro de una transacción anidada esta sentencia únicamente reduce en 1 el valor de TRANCOUNT.

podemos empezar una nueva transacción sin haber terminado la anterior. 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‘. SELECT ‗El nivel de anidamiento es‘. 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. libera los recursos mantenidos por la conexión y reduce. SELECT ‗El nivel de anidamiento es‘. De todos modos. es decir. 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. @@TRANCOUNT SELECT * FROM Test Por cierto que lo de usar nombre para las transacciones es por claridad. 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. 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. 1 si hay una transacción anidada. pero no ―finaliza‖ ninguna transacción ni ―guarda‖ los cambios. puesto que COMMIT TRAN como ya hemos dicho solamente reduce en 1 el valor de @@TRANCOUNT. SELECT ‗El nivel de anidamiento es‘. Esto quiere decir que podemos tener transacciones dentro de transacciones. @@TRANCOUNT INSERT INTO Test VALUES (2) BEGIN TRAN Tran Interna 2 — @@TRANCOUNT ahora es 3. 2 si estamos en el segundo nivel de anidamiento… y así sucesivamente. Esta marca sirve para deshacer una transacción en curso sólo hasta ese punto.COMMIT TRAN Tran Externa — Reduce @@TRANCOUNT a 0. Otra de las posibilidades que nos ofrece el SQL Server es utilizar transacciones anidadas. Asociada a esta idea de anidamiento existe una variable global que tiene valor 0 si no existe ningún nivel de anidamiento. La manera de tratar las transacciones por el SQL Server es la que nos permite programar de manera natural los anidamientos. @@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. — Se lleva a cabo la transacción externa y todo lo que conlleva. COMMIT TRAN: Dentro de una transacción anidada esta sentencia únicamente reduce en 1 el valor de TRANCOUNT. @@TRANCOUNT INSERT INTO Test VALUES (1) BEGIN TRAN Tran Interna 1 — @@TRANCOUNT ahora es 2. 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 . @@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‘.

SELECT ‗El nivel de anidamiento es‘. 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. @@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.Comportamiento de ROLLBACK TRAN Como siempre un ejemplo es lo mejor para entender como funciona. 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 COMMIT TRAN Tran Externa — Reduce @@TRANCOUNT a 0. @@TRANCOUNT INSERT INTO Test VALUES (1) BEGIN TRAN Tran Interna 1 — @@TRANCOUNT ahora es 2. 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 (2) BEGIN TRAN Tran Interna 2 — @@TRANCOUNT ahora es 3. La manera de tratar las transacciones por el SQL Server es la que nos permite programar de manera natural los anidamientos. @@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. @@TRANCOUNT INSERT INTO Test VALUES (2) BEGIN TRAN Tran Interna 2? — @@TRANCOUNT ahora es3. — Pero no se guarda nada en la base de datos. Esta marca sirve para deshacer una transacción en curso sólo hasta ese punto. De todos modos. SELECT ‗El nivel de anidamiento es‘. @@TRANCOUNT COMMIT TRAN Tran Interna 1 — Reduce @@TRANCOUNT a 1. 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. @@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‘. — Se lleva a cabo la transacción externa y todo lo que conlleva. @@TRANCOUNT SELECT * FROM Test Por cierto que lo de usar nombre para las transacciones es por claridad. SELECT ‗El nivel de anidamiento es‘. SELECT ‗El nivel de anidamiento es‘. 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‘. SELECT ‗El nivel de anidamiento es‘.

Debido a que este elemento impone ciertas limitaciones.. SELECT ‗El nivel de anidamiento es‘. diseñada para un motor concreto. @@TRANCOUNT COMMIT TRAN Tran Interna 1 — Reduce @@TRANCOUNT a 1. @@TRANCOUNT INSERT INTO Test VALUES (2) SAVE TRAN Guadada BEGIN TRAN Tran Interna 2 — @@TRANCOUNT ahora es 3. Como podemos ver el uso de transacciones no es complicado. Nuestra aplicación.BEGIN TRAN Tran Externa — @@TRANCOUNT ahora es 1 SELECT ‗El nivel de anidamiento es‘. — Se lleva a cabo la transacción externa y todo lo que conlleva. 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. y por el otro sea capaz de dialogar con una DB concreta. conectividad abierta de bases de datos... @@TRANCOUNT INSERT INTO Test VALUES (1) BEGIN TRAN Tran Interna 1 — @@TRANCOUNT ahora es 2. no sabrá dialogar con el otro. utilice tablas de SQL Server u otra DB cualquiera? La respuesta es sencilla: no funcionará. y sin reescribir nada. solo tendríamos que ir cambiando este elemento. e incluso las transacciones anidadas si se tratan con cuidado son fáciles de manejar. 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. no tendríamos este problema. Como siempre si hay alguna duda la mejor fuente de ejemplos y soluciones son los BOL del SQL Server. Evidentemente. Si escribimos una aplicación para acceder a las tablas de una DB de Access.. — Pero no se guarda nada en la base de datos. como velocidad . aunque eso no es probable que ocurra nunca. SELECT ‗El nivel de anidamiento es‘. SELECT ‗El nivel de anidamiento es‘. 3. @@TRANCOUNT COMMIT TRAN Tran Externa — Reduce @@TRANCOUNT a 0. @@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. ¿Qué es el ODBC? Open Data Base Conectivity O lo que es lo mismo.. SELECT ‗El nivel de anidamiento es‘. Pero si hubiera un elemento que por un lado sea siempre igual. A esas piezas intercambiables las llamaremos orígenes de datos de ODBC Casi todas las DB actuales tienen un ODBC. @@TRANCOUNT INSERT INTO Test VALUES (3) ROLLBACK TRAN Guadada — se deshace lo hecho el punto guardado. ¿qué ocurrirá si después queremos que la misma aplicación. ya que no todo lo que la DB sabe hacer es compatible con la aplicación.1 ODBC. SELECT ‗El nivel de anidamiento es‘. si todas las DB funcionaran igual.

que lleva un IIS 5. haga clic en Panel de control. Igualmente es posible utilizar bases de datos de Access 2000 o 2003. etc. y también XP PRO.de proceso. En el menú Inicio. tiempos de espera. a continuación. pero aún le quedan muchos años de buen servicio. se utilizan ya en el nuevo Windows 2003. cambian un poco. El Option Pack 4 para actualizar el IIS y las extensiones ASP. Esta es la idea: por un lado el ODBC provee de unas caracteríisticas siempre homogéneas. SQL Server 6..5 y Access 97. 3. máxima longitud de registro. número máximo de registros. procedamos a su instalación: es un proceso sencillo.. Ahora que ya sabemos qué es y para lo que sirve. hay algunos trucos que conviene conocer. . Esas otras técnicas de programación antes mencionadas. Por supuesto. haga clic en Orígenes de datos (ODBC). versión de SQL. seleccione Herramientas administrativas y. Para abrir el Administrador de orígenes de datos ODBC en Windows Server 2003  En el menú Inicio. Office 2003 y SQL Server 2000.. también funciona con las versiones modernas de servidores como 2003 Server. y como no podía ser menos.0 con el Service Pack 4 o superior instalado (el último publicado es el 6). Para abrir el Administrador de orígenes de datos ODBC en Windows 2000 Server 1. pero esa es otra historia. Todo lo referido aquí funciona con Windows NT Server 4..2 Use el Administrador de orígenes de datos ODBC para crear y administrar los orígenes de datos ODBC.0 de serie. está cayendo en desuso a cambio de otras técnicas de programación. pero según la base de datos elegida sea Access o SQL Server. a continuación.1. que además de ODBC pueden utilizar. El Administrador de orígenes de datos ODBC es un componente de Windows. y por el otro permite distintos controladores que aseguran la conectividad de la aplicación con diferentes bases de datos. seleccione Configuración y.

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

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

Notas de uso: El primer término se usa en el ámbito médico. el conjunto es un registro. Dicho trabajo incluye la indización de los textos. expertos. Un tecnolecto es un lenguaje especializado. «Propiedad horizontal» es un término ya que se trata de una combinación de palabras. 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. reglas. Cada una de las secciones se denomina campo.) 3ª Documentación factográfica (centros de documentación. marcada por una temática determinada.) 2ª Terminología elaborada (diccionarios. . 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). tesis. es decir. 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. 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. instituciones. y lengua especializada. es necesario destacar que existen diferencias entre los métodos de estas ciencias. unos usuarios determinados y una terminología específica. TERMINOLOGÍA Y LEXICOGRAFÍA Aunque algunos terminólogos opinan que la terminografía es una rama de la lexicografía. 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. Por una parte. publicaciones técnicas. FRASEOLOGÍA Es el conjunto de giros de un lenguaje especializado o su estudio. La lengua general se divide en lengua común.) Por otra parte. se sitúan en un marco determinado. TERMINOLOGÍA Y DOCUMENTACIÓN En primer lugar es necesario aclarar que la documentación es un campo especializado con terminología propia. La banalización o desterminologización consiste en el uso de términos especializados en la lengua común. Todo esto nos lleva a afirmar que estas dos disciplinas mantienen una relación de intercambio. tienen un número de usuarios limitado que conoce ese lenguaje por voluntad propia y características peculiares a cada uno de ellos. En el giro existe una relación sintáctica entre los conceptos («acción» es el CD de «emitir»). no marcada. A su vez. Existen diferentes fuentes de documentación: 1ª Documentación textual (textos. etc. El terminólogo no inventa los términos que aparecen en los diccionarios especializados. es imprescindible que todo aquel que quiera llevar a cabo un trabajo terminológico se documente previamente. 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. un tecnicismo es un término perteneciente a un campo de especialidad. glosarios. Mal à la tête (francés). 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. etc. los documentalistas también se benefician del trabajo de los terminólogos a la hora de llevar a cabo su trabajo. etc. Todos los lenguajes especializados tienen características comunes. consta de términos que se usan exclusivamente en dicho campo (anticresis). la extracción de los descriptores que facilitarán la búsqueda de los documentos. Equivalentes: Headache (inglés). El vocabulario jurídico. «Emitir una acción» es un giro ya que existe una combinación de conceptos. La terminología y la documentación son dos ciencias que están muy ligadas. El traductor especializado suele ayudarse de diccionarios terminológicos a la hora de realizar sus traducciones. En el término no hay relación sintáctica. por ejemplo. La terminologización es lo contrario. el segundo es más coloquial.

class</TITLE> </HEAD> <BODY> <H1>Applet: NervousText. Cada ficha de un diccionario terminológico trata un concepto. los lexicógrafos. en cambio.</P> </APPLET> </BODY> </HTML>. 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. verbos y algunos adjetivos.metro. Por eso. y he encontrado uno bastante simple llamado NervousText. Por eso.. Objets . intentan normalizar el uso de los tecnicismos priorizando los más adecuados. que sirve para especificar el texto que quieres que aparezca en el applet.</P> <P>Este applet solo tiene un par&aacute. sin embargo.</APPLET> que HTML tiene previsto para ello: <APPLET CODE="elapplet. los terminógrafos. en los diccionarios de lengua general. Los lexicógrafos se encargan de definir todas las acepciones de una palabra. Los tecnicismos que estudian los terminógrafos no suelen aparecer en los diccionarios generales a no ser que se hayan banalizado.class" WIDTH="200" HEIGHT="100"> (Contenido alternativo) </APPLET> Parece que ya es hora de poner un ejemplo. los diccionarios terminológicos contienen principalmente sustantivos. el uso de las palabras. Normalmente. en cambio. mientras que los lexicógrafos definen palabras de la lengua general. se definen todas las acepciones de una palabra en el mismo artículo. se asigna un código a cada artículo para facilitar su búsqueda. Por otra parte. se centran en el significado que los términos tienen en un campo de especialidad determinado e intentan eliminar la polisemia.class</H1> <P>Muestra un <I>insoportable</I> texto bailando como un hist&eacute. no un término. 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. los terminógrafos. Algunos diccionarios y glosarios especializados indican qué términos se deben usar según la legislación lingüística vigente.class que pongo en este ejemplo: <HTML> <HEAD><TITLE>NervousText. Los terminólogos trabajan con términos que pertenecen a lenguajes de especialidad. a excepción de los que elaboran diccionarios normativos. y los definen según su significado en un ámbito especializado. para ver si está claro el tema este.</P> <APPLET CODE="NervousText. sólo describen. llamado <B>text</B>.class" WIDTH="250" HEIGHT="100" ALIGN=right ALT="Allan Psicobyte"> <PARAM NAME=text VALUE="Allan Psicobyte"> <P>Tu navegador no soporta Applets.. no como los lexicográficos que se ocupan de cualquier palabra de uso generalizado. He buscado un pequeño applet en la web. si alguno de los tecnicismos contenidos en la obra es polisémico debe constar de una entrada diferente para cada uno de los significados. o recomiendan.rico. 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>.Los diccionarios generales elaborados por lexicógrafos constan de entradas organizadas según el orden alfabético de la palabra que definen.

updatedb 2. como imágenes.<OBJECT DATA="archivo" TYPE="tipo mime"> Contenido alternativo </OBJECT> Por ejemplo. de apertura y cierre. se coloca el contenido que irá dentro del botón.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. pero también otras etiquetas HTML. podemos ver si ya lo tenemos instalado. 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. saltos de línea.n al sonido con OBJECT</TITLE> </HEAD> <BODY> <H1>Ejemplo no muy bueno</H1> <OBJECT DATA="t-rex. 1. Tiene la particularidad que se pueden colocar dentro del botón los contenidos que se desee. Y si lo está qué versión de Apache es. por ejemplo ejecutando los siguientes comandos: 1. Hay varias formas de hacerlo. el siguiente código: <HTML> <HEAD> <TITLE>Una primera aproximaci&oacute.com/images/logo_desarrollo_web. entre la etiqueta de apertura y cierre se puede colocar texto a voluntad.0. en principio.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>. es decir. nmap 127. 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. negritas o lo que podamos necesitar.0. para escuchar un sonodo al cargarse la página deberíamos usar.1 .desarrolloweb. Entre las dos etiquetas.

el usuario ejecuta su programa junto con la biblioteca de conexión apropiada al modelo de su base de datos. ResultSet rs = stmt. La rutadeinstalación puede ser la ruta que hemos encontrado en el paso anterior utilizando locate. . más conocida por sus siglas JDBC. A partir de allí puede realizar con cualquier tipo de tareas con la base de datos a las que tenga permiso: consulta. ejecución de procedimientos almacenados en la base de datos. Statement stmt = con. es una API que permite la ejecución de operaciones sobre bases de datos desde el lenguaje de programación Java. actualización.getConnection ( "jdbc:odbc:wombat".createStatement(). etc. Por ejemplo Java no tiene punteros y la ODBC hace gran uso de ellos. JDBC es usado para enviar comandos SQL hacia una base de datos relacional.Se puede obtener la versión instalada con el siguiente comando.getString("b"). /rutadeinstalacion/apache2/bin/httpd -v JDBC JAVA DATABASE CONNECTIVITY Java Database Connectivity. y accede a ella estableciendo una conexión. Un mapeo directo de las tablas de la BD hacia las clases de Java. String s = rs. JDBC v/s ODBC y otras API´s ODBC no es apropiado para usar directamente con Java por que usa una interfaz en C. "login". while (rs. modificación y borrado de tablas. independientemente del sistema operativo donde se ejecute o de la base de datos a la cual se accede. SyBase. JDBC es una API de bajo nivel para API´s de alto nivel Una integración de SQL hacia Java. y donde cada columna se corresponde a un atrubuto de esa instancia. etc. donde cala fila de la tabla se convierte en una instancia de la clase. float f = rs. Qué hace JDBC? Establece una conexión con una BD Envía sentencias SQL Procesa los resultados Connection con = DriverManager.next()) { int x = rs. no es deseable. 1. que una variable de Java pueda ser usada en una sentencia SQL para recibir o dar valores. Infomix. 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. es decir que las sentencias SQL se puedan mezclar con Java. creación. por ejemplo. "password"). Una traducción literal de la API ODBC en C. c FROM Table1"). Para utilizar una base de datos particular. que puede ser Oracle.getInt("a").getFloat("c"). b. } 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. utilizando el dialecto SQL del modelo de base de datos que se utilice. para ello provee el localizador a la base de datos y los parámetros de conexión específicos.executeQuery("SELECT a.

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. Por ejemplo no todas las BD soportar procedimientos almacenados. JDBC trata la conformación de SQL de otra manera. Para las aplicaciones complejas. Realmente es bastante pequeño y simple.ODBC es muy difícil de aprender . hace una mezcla de acciones simples y avanzadas. 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. 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. 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. . 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 manera que el API de JDBC trata de este problema es permitir cualquier sentencia sea pasada a un driver de DBMS subyacente. El JDBC driver manager es el espinazo de la arquitectura de JDBC. la JDBC driver test suite el puente JDBC-ODBC. Y a largo plazo proporcionará una manera de acceder alguno del DBMSs menos popular si no se crean los drivers de JDBC para ellos. El Armazón de JDBC JavaSoft proporciona tres componentes JDBC como la parte de la JDK: el JDBC driver manager. ellos no conforman la sintaxis de SQL normal más recientemente definida para la funcionalidad más avanzada.

"insert".sql. en el que existen clases muy útiles para trabajar con bases de datos. que ofrecen un . 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.Paquete java.sql JDBC ofrece el paquete java.1. "update" y "delete". Brevemente estos ejemplos muestran cómo conectarse a la Base de Datos y usar sentencias SQL simples como "select".el nivel medioha sido a menudoescritasen lenguajes comoCoC+ +. Figura 1:Arquitecturade dos nivelesdeacceso a datos Hasta hace poco. JDBCARQUITECTURA LaAPIJDBC es compatible conlos modelos de procesamientotantode dosy tres capaspara el accesode base de datos.6) y que se puede conectar usando el driver de JDBC.

En términos sencillos. Algunas de las característicasque hacen queuna tecnología de servidorJDBCsonsu apoyo ala agrupación de conexiones. si lo fuera. la plataforma Javase está convirtiendo enla plataforma estándardenivel mediode desarrollo. Una segunda regla de integridad del modelo relacional tradicional es que los valores de la columna no debe repetir los grupos o conjuntos.rendimiento rápido. Datos en una tabla puede estar relacionado de acuerdo a las claves o conceptos comunes. En primer lugar. DBMS que se utiliza en este libro es un término general que incluye RDBMS. 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. Esta columna única o un grupo de columnas se denomina clave principal. y si se hace eso.con la introducción decompiladores optimizadoresque traducenel bytecode de Javaenla máquinaeficientecódigo específicoy tecnologías tales comoEnterprise JavaBeans™. el usuario puede especificar que las filas duplicadas no se les permite. Un sistema de gestión de bases de datos (DBMS) se encarga de la manera que los datos se almacenan. la API de JDBCse está utilizandocada vez más enel nivel mediode unaarquitectura de tres niveles. En el caso de una base de datos relacional. pero dos de los valores nulos no se consideran iguales. 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.Sin embargo. Una columna que forma parte de una clave principal no puede ser nulo.multihilo. Cuando cada fila de una tabla es diferente. un sistema de bases de datos relacionales (RDBMS) realiza estas tareas. mantienen y recuperan.ylas funciones de seguridad. Esta regla se conoce como la integridad de entidad. una base de datos relacional es aquella que presenta información en tablas con filas y columnas. un cero es igual a otro cero. y la capacidad de recuperar datos relacionados de una tabla es la base para la base de datos relacional a largo plazo. Para la mayoría de los DBMS.Estaes una gran ventaja. Con las empresasutilizan cada vez másel lenguaje de programaciónJavapara escribirel código del servidor. Un espacio en blanco se considera igual a otro en blanco. las filas de una tabla relacional todos deben ser distintos. Un tercer aspecto de la integridad de los datos implica el concepto de un valor nulo. la clave principal que lo contiene ya no sería un identificador completo. Una tabla que se conoce como una relación en el sentido de que es una colección de objetos del mismo tipo (filas). por lo que esposible tomarventaja dela robustezde Java. No es lo mismo que un espacio en blanco o nulo. el DBMS evitar la adición de las filas que duplican un registro existente. Si hay filas duplicadas. es posible utilizar una o más columnas para identificar una fila particular.LaAPIJDBCes también lo quepermite el accesoa una fuente dedatos de unnivelmediode Java. puede haber problemas para resolver cuál de las dos selecciones posibles es la correcta. Reglas de integridad Tablas relacionales seguir ciertas reglas de integridad para asegurar que los datos que contienen estancia precisa y siempre accesible.ylos conjuntos de filasdesconectado. transacciones distribuidas. .

"><span style="font-family: 'Arial'. 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. Tenga en cuenta queSELECT *significa "seleccionartodas las columnas. Por ejemplo.">Florence Wojokowski</span></span> El códigosiguiente produceun conjunto de resultadosque incluyetoda la tabla. font-size: 16px. Por ejemplo.se utiliza para obtenerinformación de una tabla.">FIRST_NAME LAST_NAME</span></span> <span style="text-align: justify."><span style="font-family: 'Arial'. La cláusula FROM(la segunda línea) da latabla de la quelas columnasserán seleccionados. font-size: 16px.'sans-serif'.'sans-serif'. que cada fila representa un empleado diferente. Cuenta con cinco columnas y seis filas.'sans-serif'.'sans-serif'. font-size: 16px.">Axel Washington</span></span> <span style="text-align: justify. también llamado una consulta. Una instrucción SELECT.todos losRDBMSutilizar la instrucciónSELECT. los valores serán seleccionados sólo si aparecen en una fila en la que la columna Apellido comienza con 'Washington' de la cadena. y algunoscriterios para la selección. font-size: 16px.'sans-serif'. en el siguiente fragmento de código.">SELECT *</span></span> <span style="text-align: justify. ." <span style="text-align: justify. una o más tablasde donde escoger.2 ilustra algunos de estos conceptos de bases de datos relacionales.">FROM Employees</span></span> Cláusulas WHERE <span style="text-align: justify."> </span> <span style="text-align: justify. ya que pidea todas las columnasenla tabla Empleadossin restricciones (no la cláusula WHERE). font-size: 16px."><span style="font-family: 'Arial'. font-size: 16px."><span style="font-family: 'Arial'. En él se especificauno o mástítulos de las columnas.">--------------------</span></span> <span style="text-align: justify. <span style="text-align: justify. Hay unaserie decomandos básicos deSQLque se considera estándary es utilizado portodos losRDBMS.Una instrucción SELECTcomo la siguientedescargará losnombres y apellidosdelos empleados que tienenvehículos de la empresa: SELECT First_Name."><span style="font-family: 'Arial'. Seleccionar los enunciados SQLes un lenguaje diseñadopara ser utilizado conbases de datos relacionales."> </span> La cláusula WHERE de una instrucción SELECT proporciona los criterios para la selección de valores. ElRDBMSdevuelve las filasde lasentradas de la columnaque satisfacenlos requisitos establecidos.'sans-serif'."><span style="font-family: 'Arial'.Tabla 1. El nombrey el apellidose imprimen para cadafila quecumple con los requisitosdebido a que lasentencia SELECT(primera línea) especifica elFIRST_NAMEcolumnas yApellido.

"> </span> <span style="text-align: justify."> </span> <span style="text-align: justify."> </span> <span style="text-align: justify."> </span> . Insertar se usa para rellenar una tabla de nueva creación o para agregar una nueva fila (o filas) a una tabla ya existente. CREATE TABLE se utiliza normalmente con menos frecuencia que los comandos de manipulación de datos. o bien recuperar o modificar para mantenerlo al día.Crea una tabla con los nombres de las columnas que el usuario proporcione."> </span> <span style="text-align: justify."><span style="font-family: 'Arial'."><span style="font-family: 'Arial'.se utiliza para consultar y mostrar los datos de una base de datos. las dos principales son Lenguaje de manipulación de datos (DML) y comandos de lenguaje de definición de datos (DDL) comandos. font-size: 16px.">FROM Employees</span></span> <span style="text-align: justify. La instrucción SELECT especifica las columnas que se incluyen en el conjunto de resultados. El usuario también debe especificar un tipo de datos de cada columna. Comandos DML frente a los datos."> </span> Comandos SQL se dividen en categorías."> </span> *SELECCIONAR . 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.">WHERE Last_Name LIKE 'Washington%'</span></span> Común comandos SQL <span style="text-align: justify."> </span> *Eliminar ."><span style="font-family: 'Arial'. Comandos DDL crear o modificar tablas y otros objetos de base de datos como las vistas e índices."> </span> <span style="text-align: justify. <span style="text-align: justify.'sans-serif'.'sans-serif'. Los tipos de datos varían de un RDBMS a otro.">SELECT First_Name. <span style="text-align: justify. <span style="text-align: justify.'sans-serif'. porque se crea una tabla sólo una vez. Last_Name</span></span> <span style="text-align: justify."> </span> *CREATE TABLE .elimina una fila específica o un conjunto de filas de una tabla <span style="text-align: justify. font-size: 16px. <span style="text-align: justify."> </span> Una lista de los comandos DML más comunes las siguientes: <span style="text-align: justify."> </span> *INSERT ."> </span> Los comandos DDL más comunes son las siguientes: <span style="text-align: justify."> </span> * UPDATE .añade nuevas filas a una tabla."> </span> <span style="text-align: justify. 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> <span style="text-align: justify. La gran mayoría de los comandos SQL en aplicaciones son declaraciones SELECT.<span style="text-align: justify. font-size: 16px.cambia un valor existente en una columna o grupo de columnas de una tabla <span style="text-align: justify.

"> try {</span></span> <span style="text-align: justify. Una implementación de JDBC API es necesaria para apoyar el comando DROP TABLE como se especifica en SQL92."><span style="font-family: 'Arial'.*."> </span> <span style="text-align: justify. <span style="text-align: justify.sql."> </span> <span style="text-align: justify."><span style="font-family: 'Arial'. font-size: 16px.'sans-serif'."><span style="font-family: 'Arial'. el apoyo a la cascada y restringir las opciones de DROP TABLE es opcional."><span style="font-family: 'Arial'.'sans-serif'. Además.'sans-serif'. font-size: 16px. 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.</span></span> <span style="text-align: justify.</span></span> <span style="text-align: justify."> </span> <span style="text-align: justify."><span style="font-family: 'Arial'. font-size: 16px. font-size: 16px.">public class UpdateCar {</span></span> <span style="text-align: justify. También agrega o quita las restricciones de tabla y los atributos altera columna Conjuntos de resultados y cursores <span style="text-align: justify.prepareStatement(</span></span> . Un usuario puede acceder a los datos en un conjunto de resultados de una fila a la vez.'sans-serif'. font-size: 16px.</span></span> <span style="text-align: justify. font-size: 16px. y también permitiendo que se mueva a una fila determinada o en una fila cuya posición es relativa a otra fila."> public static void UpdateCarNum(int carNo."> </span> * ALTER TABLE . <span style="text-align: justify. font-size: 16px. Nivel de Transición. font-size: 16px."> </span> Anteriores versiones JDBC API añadido nuevas capacidades para el cursor un conjunto de resultados. El número de filas devueltas en un conjunto de resultados puede ser cero.</span></span> <span style="text-align: justify.'sans-serif'.'sans-serif'. int empNo)</span></span> <span style="text-align: justify."><span style="font-family: 'Arial'.'sans-serif'. <span style="text-align: justify."> pstmt = con."> throws SQLException {</span></span> <span style="text-align: justify. lo que permite que se mueva hacia adelante y hacia atrás. font-size: 16px."> </span> <span style="text-align: justify. uno o muchos."><span style="font-family: 'Arial'."> con = DriverManager.agrega o quita una columna de una tabla."> Connection con = null. y un cursor proporciona los medios para hacerlo.* DROP TABLE ."><span style="font-family: 'Arial'."> </span> <span style="text-align: justify. 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ó.'sans-serif'. Sin embargo.'sans-serif'."> PreparedStatement pstmt = null.">import java.borra todos los registros y elimina la definición de la tabla de la base de datos. Un cursor se puede considerar como un puntero en un archivo que contiene las filas del conjunto de resultados.getConnection("jdbc:default:connection")."><span style="font-family: 'Arial'."> </span> Las filas que satisfacen las condiciones de una consulta se llama el conjunto de resultados. y que el puntero tiene la capacidad de realizar un seguimiento de la fila que está siendo visitada. La mayoría de los DBMS crear un cursor de forma automática cuando un conjunto de resultados se genera.

"> "WHERE EMPLOYEE_NUMBER = ?"). font-size: 16px.executeUpdate(). font-size: 16px."> }</span></span> <span style="text-align: justify.wikipedia.'sans-serif'."> </span> Bases de datos almacenandatos del usuario."><span style="font-family: 'Arial'. empNo). claves foráneas."> </span> En general.'sans-serif'. Esta interfazpermite a los usuariosy las herramientas deuna forma estandarizadapara obtener metadatos. font-size: 16px.</span></span> <span style="text-align: justify. que listalas tablasenla base de datos."> </span> <span style="text-align: justify. font-size: 16px."> finally {</span></span> <span style="text-align: justify."><span style="font-family: 'Arial'."><span style="font-family: 'Arial'. <span style="text-align: justify."><span style="font-family: 'Arial'.<span style="text-align: justify. font-size: 16px.dcc.</span></span> <span style="text-align: justify."><span style="font-family: 'Arial'. JDBC proporciona lainterfazDatabaseMetaData.">}</span></span> Metadatos <span style="text-align: justify."> </span> BIBLIOGRAFIA <span style="text-align: justify. carNo)."><span style="font-family: 'Arial'."> pstmt.'sans-serif'. los desarrolladores de herramientas de escrituray los conductores sonlos más propensosa preocuparse porlos metadatos. font-size: 16px."> }</span></span> <span style="text-align: justify. las claves primarias.'sans-serif'."> if (pstmt != null) pstmt.'sans-serif'.</span></span> <span style="text-align: justify.uchile.'sans-serif'."> </span> <span style="text-align: justify.oracle.close()."><span style="font-family: 'Arial'."><span style="font-family: 'Arial'."><span style="font-family: 'Arial'."><span style="font-family: 'Arial'.'sans-serif'. font-size: 16px.CadaDBMStiene sus propias funcionespara obtener informaciónacerca de los diseñosy características dela tablade base de datos.'sans-serif'."> <span style="font-family: 'Arial'."> pstmt.</span></span> <span style="text-align: justify."> }</span></span> <span style="text-align: justify. font-size: 16px.setInt(1."><span style="font-family: 'Arial'."> </span> <span style="text-align: justify.">docs.org/wiki/Java_Database_Connectivity www.setInt(2.cl/~lmateu/CC60H/Trabajos/jfernand/ <span style="text-align: justify."> "UPDATE EMPLOYEES SET CAR_NUMBER = ? " +</span></span> <span style="text-align: justify.'sans-serif'. procedimientos almacenados. nombres de columnas encada tabla."> </span> es.y tambiénalmacenar información sobre lamismabase de datos.</span></span> <span style="text-align: justify.'sans-serif'.'sans-serif'. font-size: 16px. <span style="text-align: justify.Por ejemplo.'sans-serif'. y así sucesivamente."> pstmt.un gran número demétodos dedevoluciónsi elcontrolador es compatible conuna funcionalidad particular. font-size: 16px.La mayoría delos DBMStienen un conjunto detablas del sistema. font-size: 16px. font-size: 16px. que un escritorconductor debeponer en prácticaa fin de quesus métodosdevuelven información sobreel conductor y /oDBMSpara el queel conductorestá escrito.com/jav</span></span> .