Sie sind auf Seite 1von 88

Base de Datos

UNIDAD I. Fundamentos de Base de Datos Resea Histrica.


Antes, De la aparicin de las Bases de Datos, cada aplicacin era propietaria de ciertos ficheros de datos que eran actualizados exclusivamente por ellos. Como mucho podan ser prestados a otra aplicacin, pero el trmino propiedad era siempre muy rgido. Al ampliarse las aplicaciones y desarrollarse otras nuevas muy ligadas a los mismos ficheros utilizados para las aplicaciones antiguas y al implementarse sistemas operativos muy potentes que permitan la multiprogramacin, es decir, que en el mismo instante se podan ejecutar distintos programas que actan con los mismos ficheros, aumentaron netamente los problemas para la gestin de los tradicionales ficheros. Por un lado las caractersticas exigidas al fichero variaban segn la aplicacin que lo utilizaba y por otro lado, el poder ejecutar simultneamente dos programas que actualizaran un mismo fichero, las operaciones que ejecutaba uno, solan y podan ser incompatibles con los que necesitaba el otro. La situacin lleg a un punto insostenible dado que ninguna de las dos opciones a elegir resultaba satisfactoria. Si se optaba para satisfacer ficheros independientes para cada aplicacin, resultaba que ciertos datos deban estar repetidos en muchos ficheros, con lo que se utilizaba mucha mas memoria de almacenamiento de la estrictamente necesaria y por otra parte, al tener copias del mismo datos en ms de un fichero, supona la necesidad de efectuar mltiples actualizaciones cada vez que se quisiera modificar, con lo que dificultaba mucho la labor de mantenimiento. La otra situacin era igualmente mala ya que si se unificaban todos los ficheros similares de las distintas aplicaciones en un nico fichero, se llegaba a conflictos irresolubles en cuanto a su utilizacin conjunta. Ficheros Propiedad de la Aplicacin 1 (Entrada)
Aplicacin 1

Ficheros Propiedad de la Aplicacin 1 (Salida)

Aplicacin 2

Ficheros Propiedad de la Aplicacin 2 (Entrada)

Ing. Mariuxi Paola Zea Ordoez

-1-

Ahora, Con la aparicin de la Bases de Datos, los ficheros dejan de ser propiedad de las aplicaciones pasando a ser compartidas por todos los usuarios.

Base de Datos

Aplicacin 1

Aplicacin 2

En casi todos los sectores de actividad humana, cuando se llega a un punto no satisfactorio, se concentran los esfuerzos de investigacin hasta que el problema es obviado; en este caso, el resultado de esos esfuerzos fue un producto altamente novedoso y que supuso un gran salto en la informtica de gestin: los sistemas de Bases de Datos.

Sistema de Base de Datos.


Cuando en el principio de la dcada de los 60 se puso de moda el trmino de Base de Datos, muchos centros de clculos se limitaron a cambiar de nombres a sus archivos y en vez de seguir llamndolos ficheros, comenzaron a llamarlos Bases de Datos. Evidentemente este cambio slo de nombre no aportaba ms ventajas que una simple mejora de imagen. Para que un fichero pueda dejar de denominarse como tal y pase a ser una Base de Datos, se deben verificar algunas condiciones obligatoriamente. Estas condiciones son las que caracterizan totalmente a las Bases de Datos y pueden ser consideradas como parte de su definicin.

Definicin de Base de Datos.


Se llama Base de Datos a un conjunto de datos relacionados entre s, que se encuentran almacenados en una nica coleccin, sin redundancias innecesarias y que cumplen las siguientes condiciones. 1. Los datos estn almacenados en diversos soportes de informacin de tal forma que son independiente de los programas que lo manejan. 2. Su utilizacin no est restringida a una nica aplicacin, siendo posible su acceso por varias aplicaciones, incluso simultneamente. 3. Para gestionar la informacin contenida en la Base de Datos, es decir, para incluir nuevos datos, borrar ya existentes, o modificarlos, se emplean procedimientos especialmente diseados para optimizar el funcionamiento del sistema. Estos procedimientos no slo se encargan de la actualizacin, si no que tambin permiten la obtencin de datos para su utilizacin mediante programas.

Ing. Mariuxi Paola Zea Ordoez

-2-

Estas bases segn su diseo, se renen para facilitar su manejo al realizarlo de forma integral, se dice que el conjunto de todas las bases reunidas, es un Sistema de Base de Datos. Colectivo De Usuarios A Base de Datos 1

Colectivo De Usuarios B

Base de Datos 2

Mediante la unin de dos o ms Bases de Datos se consigue formar un sistema de bases que permite a distintos colectivos utilizar conjuntamente toda la informacin del sistema.

Qu es una Base de Datos?


El centro de cualquier sistema de gestin de informacin es una base de datos: un conjunto de informacin relacionada agrupada como un todo. (gestin de base de datos), es un trmino informtico, tambin es aplicable al modo que la informacin se cataloga, almacena y utiliza manualmente. Apellido Armijos Correa Nombre Mara Ada Ciudad Quito Machala Provincia 10 04 N. Cliente 0001 0002

Son bases de datos: un archivador de metal que contienen los registros de los clientes, un archivador de tarjetas con nombres y nmeros de telfono, una agenda que tenga escrito un inventario de almacn. Sin embargo el archivador o la agenda no constituyen por si mismo una base de datos; la forma en que est organizada la informacin da origen a la base de datos. Los archivadores y las agendas ayudan a organizar la informacin; Fox Pro es otra ayuda. La informacin contenida en una base de datos; est organizada y almacenada en tablas, por filas y columnas. Por ejemplo: en la lista de direcciones a las que se enva informacin peridicamente, (en el ejemplo) cada fila contiene el nombre, domicilio y el nmero de cliente. Cada fila se relaciona con las dems ya que contiene el mismo tipo de informacin y dispuesta en un orden seleccionado, este ejemplo constituye una tabla. Apellido Armijos Correa Nombre Mara Ada Ciudad Quito Machala Provincia 10 04 N. Cliente 0001 0002

Una base de datos est constituida por una o ms tablas que contienen la informacin ordenada de una forma organizada, como vimos en el ejemplo anterior. Las filas de un archivo de base de datos se denominan registros, y las columnas campos.
Ing. Mariuxi Paola Zea Ordoez -3-

Registros

Campos

Nombre: Domicilio: Ciudad: Telfono: C.P.: Estado:

Comparamos una base de datos con este ejemplo de tarjetas. Puesto que cada tarjeta del archivo tiene el mismo tipo de informacin, el archivo de tarjeta constituye una base de datos. Cada una de las tarjetas es un registro, y cada una de las informaciones contenidas en las tarjetas es un campo. Los campos pueden contener cualquier tipo de informacin que pueda clasificarse en categora.

Utilizacin de la Base de Datos.


Probablemente una de las diferencias ms importantes entre los ordenadores actuales y los de hace apenas unas dcada de aos, estaba en que los equipos modernos deben estar preparados para la utilizacin masiva de los datos. La importancia dada a la informacin, como recurso vital para la toma de decisiones, hacen que se queden pequeas las Bases de Datos. En teora, cualquier base de dato est ordenada de forma tal que la informacin pueda encontrarse fcilmente. Ejemplo: Si quiere encontrar el nmero de telfono de un cliente, simplemente debe localizar el nombre y leer en ese registro el nmero de telfono correspondiente. Una base de datos manual puede ser difcil de modificar. Ejemplo: Aadir un nuevo nmero de telfono a la lista puede significar su ordenacin. Si la compaa de telfono asignara un nuevo cdigo de zona, alguien tendra que buscar todos los nmeros de telfonos que tiene el cdigo de zona antigua y reemplazarlo con el nuevo. Cuando una base de datos se encuentra asociada a una computadora, se eliminan muchos de estos problemas: *0 Una base de datos informatizada proporciona rapidez: encontrar un nmero de telfono de entre miles de entradas, u ordenar el archivo alfabticamente, tarda pocos segundos. *1 Una base de datos informtica es compacta: una base de datos con miles de registros pueden almacenarse en poco espacio.

Ing. Mariuxi Paola Zea Ordoez

-4-

*2

Una base de datos informatizada tambin es flexible: Tiene la posibilidad de examinar la informacin desde varias puntos de vistas, de modo que, por ejemplo: podra buscar el nombre por el telfono o por el domicilio.

Las tareas que consumen gran cantidad de tiempo cuando se realizan manualmente son ms prcticas con una computadora. En principio una base de dato de una computadora, no es diferente a una base de datos registrada en papel y almacenadas en archivador. Sin embargo la realidad es que la computadora hace el trabajo tedioso de mantener y acceder a la base de datos, y adems, mucho ms rpido. Una base de datos informatizada que pueda hacer todo esto se denomina Sistema de Gestin de Base de Datos o de forma abreviada SGBD (en ingles Data Base Management System, DBMS).

Componentes de una Base de Datos.


Dentro de una base de datos podemos encontrar los siguientes objetos (que sern analizados ms adelante): Tablas. ndices. Vistas. Diccionario de Datos. Procedimientos Usuarios

Importancia Central en este esquema del Diccionario de Datos.


Una de las partes ms importantes de la base de datos es el diccionario de datos. Que es un conjunto de referencias acerca de la base de datos, esta informacin puede estar en tablas que sean usadas como slo de lectura. Por ejemplo: El nombre de todos los usuarios. Derechos y privilegios de ellos. Nombre de los objetos de la b/d (tablas, vistas, ndices, sinnimos, secuencias, y clusters). Informacin sobre la primera y siguientes llaves. Valores por omisin de las columnas. Otra informacin general de la base de datos. Informacin de auditora, tal como quien ha accesado o actualizado varios objetos de la b/d. Cuantos espacios ha utilizado, por quien es utilizado actualmente un objeto de base de datos.

El diccionario de datos es estructurados en tablas y vistas, al igual que cualquier base de datos. Para accesar a l, se lo realiza igualmente con un lenguaje denominado SQL. El diccionario de datos es creado cuando una base de datos es creada. Dentro de Oracle y la mayora de manejador de base de datos este diccionario es actualizado cuando la base de datos est en operacin y en respuesta a cada sentencia ejecutada.

Ing. Mariuxi Paola Zea Ordoez

-5-

A toda hora est disponible como referencia a cualquier usuario, halla o no realizado creado un objeto de base de datos. El diccionario de datos es un recurso de informacin para el usuario final, los diseadores de aplicacin. Es tambin crtico para la operacin de la base de datos, el cual verifica en el diccionario para grabar, verificar, y conducir el trabajo. Debido a que todo cambio en el diccionario es ejecutado por la base en s, en respuestas a las sentencias, ningn dato de ningn diccionario debe ser borrado o alterado por ningn usuario, entonces, se debe definir estas tablas como slo de lectura.

Cmo es utilizado el Diccionario de Datos dentro de una Base de Datos?


Los datos en las tablas base de los diccionarios de datos, no solamente son tiles para los usuarios y los desarrolladores de aplicaciones para la base de datos; si no que tambin es necesario para el funcionamiento de la base de datos. Adems, slo la base de datos debe escribir o cambiar la informacin del diccionario de datos.

La Vista al Diccionario.
Lista los objetos del diccionario de datos con una breve descripcin, es decir que provee una lista de los objetos que contiene. Por ejemplo: Si usted olvida el nombre de la tabla que quiere, en algunos manejadores de base de datos puede comenzar con dictionary o alguna otra sentencia para poder ver la lista de objetos, y por ende el nombre de la tabla que necesita. En la columna COMMENTS en la Vista Dictionary; cuando los nuevos objetos son creados, los comentarios son cargados automticamente para cada vista y columna, proveyendo explicacin documentada en lnea de estos objetos y columnas.

El Administrador de la Base de Datos (DBA, Data Base Administrator).


A la hora de disear una base de datos puede surgir varios problemas, pero al superarlos y cuando la base de datos ya ha sido diseada e implementada surgen otros problemas de los que vamos a tratar. Aunque se trate de la base de datos particular de una empresa, es de suponer que van a ser varios los usuarios de la misma que lo utilicen e incluso varias las aplicaciones por cada usuario. Para controlar y coordinar la estructura de todos los datos, surge una nueva figura, el Administrador de Datos. De alguna manera se puede afirmar que es un intermediario entre los datos de la base y los usuarios que la utilizan. Ejemplo grfico: Base de Datos

Administrador de la Base

Usuarios
-6-

Ing. Mariuxi Paola Zea Ordoez

Es importante destacar que el administrador (puede ser un grupo de personas aunque nos referimos a l en singular) no es el propietario de los datos, estos pertenecen a los usuarios finales, si no el gestor que se encarga de facilitar la utilizacin comunitaria de los mismos. El DBA juega un papel muy importante en el xito de una base de datos. Como el gerente primario de un sistema de base de datos, el DBA es responsable de ver que el software y el Hardware conjuntamente con las base de datos satisfagan la necesidad de los usuarios de la base de datos. De esta forma, las funciones generales del DBA que deben incluir son: Instalacin y mantenimiento del software. Diseo de la base de datos. Seguridad de la base de datos. Almacenamiento de los datos. Disponibilidad de los datos. Recuperacin de datos.

El DBA debe tener buen entendimientos de la base de datos, por ej.: Quienes son los usuarios, cuales son los datos que se almacenan y a cuales se accesan, y cuan a menudo, que tipos de transacciones estn ocurriendo, etc. ESQUEMA 1: Tradicional. Fichero A Aplicacin A Fichero B Aplicacin B Fichero C Aplicacin C Fichero D ESQUEMA 2: Base de Datos. Aplicacin A C e n t. d e C l c Administrador De Datos
-7-

C e n tr o d e C l c u l o

Usuario A

Usuario B

Usuario C

Aplicacin B Base De Datos


Ing. Mariuxi Paola Zea Ordoez

Aplicacin C

Entonces podramos definir que las funciones de administrado de datos son: 1. DEFINICION Y ORGANIZACION:

Las estructuras lgicas de los datos. La estructura de los registros. Relacin entre los registros. Criterios de bsqueda. El almacenamiento fsico. Prever futuras necesidades. Establecer prioridades de usuario y programas. Generar esquemas y subesquemas correspondientes. Cargar la base de datos.

2. DIMENSIONADO: Asignar el tamao de los registros. Calcular el nmero y el tamao de los pointer. Calcular el volumen de los registros. Calcular los niveles de actualizacin y de consulta. Calcular los niveles de cancelaciones. Calcular el requerimiento de tiempo de respuestas. Calcular las posibles expansiones.

3. SUPERVISION Y CONTROL: Proteger los datos en cuanto a su acceso. Proteger los datos en cuanto a su modificacin. Controlar los tiempos de respuestas del sistema.

4. PROTECCION Y SEGURIDAD. Establecer el sistema de recuperacin. Crear sistema de deteccin de errores.

5. REORGANIZACION Y DOCUMENTACION: Maximizar el rendimiento en cuanto a tiempo y espacio. Segn las prioridades, el tiempo de respuesta del sistema deber ser muy concreto. Si no se cumplen estos tiempos ser una necesaria reorganizacin. Documentar el esquema de la Base de Datos para la Administracin. Documentar el diccionario de los datos para los usuarios. Controlar las estadsticas con todo lo que sucede en la base de datos.

Ing. Mariuxi Paola Zea Ordoez

-8-

Nota: Un defecto muy extendido entre las empresas que utilizan base de datos, es precisamente este, el administrador se convierte en un tirano que, en vez de facilitar una utilizacin a gusto del usuario. Esta posibilidad deber ser entrad en todos lo casos. Es importante destacar que el administrador de la base de datos debe servir para ayudar al resto de usuarios.

Clasificacin de las Bases de Datos.


Las Bases de Datos pueden clasificar en dos tipos: Por la forma de Acceso.- Existen dos tipos bsicos de base de datos de acuerdo a la forma de acceso por parte de los usuarios, o el lugar donde se encuentran ubicados: Base de Datos Distribuidas Base de Datos Centralizadas Por el modelo (estructura) utilizado.- Existen tres tipos bsicos de base de datos con una estructuracin lgica, es decir por medio de su diseo fsico, que considera la forma de almacenamiento de los datos y de sus interrelaciones, as como la mecnica del acceso. Tenemos: Base de Datos Jerrquicas Base de Datos en Red Base de Datos Relacional.

Base de Datos Distribuidas y Centralizadas.


Antes de ver que son las bases de datos distribuidas o centralizadas, vamos a ver los tipos de procesos que existen. Proceso distribuido.- Este proceso se realiza cuando las tareas son compartidas (distribuidas) entre el Servidor y los usuarios. Ocurre cuando una aplicacin en el CPU accesa en una base de datos en otro CPU, otro ejemplo sera, que en cada uno de los terminales (usuarios) se ejecuten cada una de las aplicaciones que se necesitan, y en el servidor se ejecutan slo aquellas que necesitan ser compartidas por todos los usuarios. Algunos de los beneficios son: Usted puede utilizar el mayor hardware apropiado para el trabajo a la mano, es decir, una computadora personal puede ser usada para procesos rpidos, mientras que computadoras mini o mainframes, con rpido I/O y virtualmente limitado en espacio en disco puede almacenar los datos centrales, para accesar con el CPU. Pueden accesar ms usuarios con hardware ms barato. La mayora de procesos pueden ocurrir en PCs, y la capacidad puede ser incrementada comprando partes (adicionar) para el PC que hardware para el mainframe. Tanto el proceso departamental y la administracin central son posibles. El compartir datos puede ser administrado centralmente por un DBA, mientras que las aplicaciones y las herramientas de proceso pueden ser controladas localmente por los usuarios. Proceso Centralizado.- Este proceso se realiza cuando las tareas son realizadas exclusivamente en el Servidor. Ocurre cuando cada uno de los terminales (usuarios) tienen que accesar obligatoriamente al servidor para que se ejecutan las tareas que necesitan. En los terminales (usuarios) no se pueden ejecutar
Ing. Mariuxi Paola Zea Ordoez -9-

tareas independientes, necesitan del servidor tanto para ejecutar las aplicaciones como para accesar a la Base de Datos.

Qu es una Base de Datos Distribuida?


Es un conjunto de bases de datos almacenadas en ms de un CPU en las cuales el modo que los usuarios la ven es como una simple gran base de datos, cuando en realidad son pequeas bases de datos. Cada base de datos local puede ser controlada localmente por su DBA (mantenimiento, inicializacin, respaldos y as). Es importante notar que cada CPU corre el Software para accesar a otra base de dato; no hay un software central el cual coordina todas las bases participantes. Esta provee la ventaja de sitios autnomos y evita un potencial punto central de errores. Un sistema de base de datos distribuidos incluye una base de datos distribuidas y herramientas de aplicacin que pueden localizarse en CPUs separados de la base de datos. La diferencia a simple vista es que las aplicaciones estn en diferentes CPUs que los datos que se requieren. As las redes son usadas para que las aplicaciones accedan a los datos.

Qu es una Base de Datos Centralizada?


Como podemos notar al igual que en los procesos, la Base de datos Centralizada sera aquella en la cual existe una sola base de datos localizada en un nico lugar, controlada por un nico DBA (para el mantenimiento, inicializacin, etc.), ubicacin al cual deben acceder todos los usuarios para realizar las respectivas tareas con la Base de Datos.

Modelos de Base de Datos.


La base de datos segn el modelo se clasifican en: Bases de datos Jerrquicas.- Una de las aplicaciones mas importantes de los sistemas de gestin de base de datos permitidos era el planeamiento de la produccin para empresas e facturacin. Si un fabricante de automviles decida producir 10000 unidades de un modelo de coche y 5000 unidades de otro modelo, necesitaba saber cuantas piezas pedir a sus suministradores. Para responder a la cuestin, el producto (un coche) tena que descomponerse en ensamblajes (motor, chasis,) que a su vez se descomponen en subensamblajes (vlvulas, cilindros) y luego en subensamblajes, etc. El manejo de estas listas de piezas, conocidos como una cuenta de materiales, era un trabajo a la medida para las computadoras. Coche Motor Cuerpo Chasis

Puerta Izq.

Puerta Der.

Capota

Techo

Tirador

Ventana

Seguro
- 10 -

Ing. Mariuxi Paola Zea Ordoez

La cuenta de materiales para un producto tena una estructura jerrquica natural. Para almacenar estos datos, se desarrollo el modelo de datos jerrquico, en este modelo, cada registro de la base de datos representa una pieza especfica. Los registros tienen relaciones padre/hijo, que ligaba cada pieza a su subpieza , y as sucesivamente. Las estructuras jerrquicas en ocasiones se denominan rboles, porque los subordinados conectados a las entidades a las cuales pertenecen se asemejan a las ramas de un rbol, aunque curiosamente dibujadas hacia abajo, como se puede apreciar en la figura anterior. Para acceder a la base de datos jerrquica, un programa podra: Hallar una pieza particular mediante su nmero (ej.: la puerta izquierda). Descender al primer hijo.(el tirador de la puerta) Ascender hasta su padre ( el cuerpo). Moverse de todo hasta el siguiente hijo (la puerta derecha).

La recuperacin de los datos en una base de datos jerrquica requera, por tanto, navegar a travs de los registros, movindose hacia arriba, hacia abajo y hacia los lados un registro cada vez. Uno de los sistemas de gestin de base de datos jerrquicos ms populares fue la information Managament System (IMS) de IBM, introducido primeramente en 1968. Las ventajas del IMS y su modelo jerrquico son: Estructura Simple.- La organizacin de una base de datos IMS era fcil de entender. La jerarqua de la base de datos se asemejaba al diagrama de organizacin de una empresa o a un rbol familiar.

Organizacin Padre/hijo.- Una base de datos IMS era excelente para representar relaciones padre/hijo, tales cmo << A es una pieza de B >>, o << A es propiedad de B >>.

Rendimiento.- IMS almacenaba las relaciones padre/hijo como punteros fsicos de un registro de datos a otro, de modo que el movimiento a travs de la base de datos era rpida. Puesto que la estructura era sencilla, IMS poda colocar los registros padre e hijo cercanos unos a otros en el disco, minimizando la entrada / salida de disco.

IMS sigue siendo el DBMS ms ampliamente instalado en las maxicomputadoras IBM. Se utiliza en el 25% de las instalaciones de maxicomputadores IBM. Base de datos en Red.- La estructura sencilla de una base de datos jerrquica se converta en una desventaja cuando los datos tenan una estructura ms compleja. En una base de datos de procesamiento de pedidos, por ejemplo, un simple pedido podra participar en tres relaciones padre/hijo diferentes ligando el pedido al cliente, al vendedor que lo acept y al producto ordenado, tal como se muestra en al figura: Clientes
Acme

Vendedores

Productos

Bill

A.

Art. 4

Nro 123 Ing. Mariuxi Paola Zea Ordoez - 11 -

Pedidos La estructura de este tipo de datos simplemente no se ajustara a la jerarquiza estricta de IMS. Para manejar aplicaciones tales como el procesamiento de pedidos, se desarrollo un nuevo modelo de datos en red. El modelo de datos en red extenda el modelo jerrquico permitiendo que un registro participara en mltiples relaciones padre/hijo. Clientes Ame 1st. Coa. Productos Art. 4 Art. 5

Nro. 1

Nro. 2

Nro. 3

Nro. 4 Pedidos

Nro. 5

Nro. 6

Estas relaciones eran conocidas como conjuntos en el modelo de datos en red en 1971 la conferencia sobre lenguajes de sistema de datos public un estndar oficial para base de datos en red, que se hizo conocido como el modelo CODASYL. IBM nunca desarroll un DBMS en red por s mismo, eligiendo en su lugar extender el IMS a lo largo de los aos. Pero durante los aos 70, compaas de software independientes se apresuraron en adoptar el modelo en red, creando productos tales como el IBMS de Cullinet, el total de Cincom y el DBMS Adabas que se hizo muy popular. Para un programador, acceder a una base de datos en red era muy similar a acceder a una base de datos jerrquicos. Un programador podra: Hallar un registro padre especfico mediante clave (como por ejemplo un nmero de cliente). Descender al primer hijo en un conjunto particular ( el pr mer pedido remitido por este cliente). Moverse actualmente de un hijo al siguiente dentro del conjunto (la orden siguiente remitida por el mismo cliente). Ascender desde un hijo a su padre en otro conjunto( el vendedor que acepto el pedido o el articulo). Una vez mas el programador tena que recorrer la base de datos registro a registro, especificando cada vez que relacin recorrer adems de indicar la direccin. Flexibilidad.- Las mltiples relaciones padre/hijo permitan a una base de datos en red representar datos que no tuvieran una estructura jerrquica sencilla. Normalizacin.- El estndar CODASYL reforz la popularidad del modelo de red, y los vendedores de minicomputadores tales como Digital Equipment Corporation y Duta General implementaron estas bases. Rendimiento.- A pesar de su superior complejidad, las bases de datos en red reforzaron el rendimiento aproximndolo al de las bases de datos jerrquicos. Los conjuntos se representaron

Ing. Mariuxi Paola Zea Ordoez

- 12 -

mediante punteros o registros de datos Fsicos, y en algunos sistemas, el administrador de la base de datos poda especificar la agrupacin de datos basadas en una relacin de conjuntos. Las bases de datos en red tenan sus desventajas tambin. Igual que las bases de datos jerrquicas, resultaban muy dirigidas. Las relaciones de conjunto y la estructura de los registros tenan que ser especificadas de antemano. Modificar la estructura de la base de datos requera tpicamente la reconstruccin de la base de datos completa. Tanto las bases jerrquicas como las bases en red eran herramientas para programadores. Para responder a una cuestin tal como: Cul es el producto ms popular ordenado por Acme Manufacturing? un programador tenia que escribir un programa que recorriera su camino a travs de la base de datos. La anotacin de las peticiones para informes a medida duraba con frecuencia semanas o meses y para el momento en que el programa estaba escrito la informacin que se entregaba con frecuencia ya no mereca la pena. Base de datos Relacional.- Las desventajas de los modelos jerrquicos y en red condujo a un intenso inters en el nuevo modelo de datos relacional, cuando fue escrito por primera vez por el DR. Codd en 1970. El modelo relacional era un intento de simplificar la estructura de base de datos. Eliminaba las estructuras explcitas padre/hijo de la base de datos anteriores, y en su lugar representaba todos los datos en la base de datos como sencillas tablas bidimensionales, las cuales contienen fila (registros) / columna (atributos) de valores de datos. Una versin relacional de la base de datos en red para procesamiento de pedidos sera: Tabla Productos Desc. Precio Art. 3 107 Art. 4 117 Art. 5 350 Tabla Pedidos No. Ped Empresa 001 Acme 002 Uno 003 Dos Tabla Clientes Empresa Rep-Cli Acme 105 Uno 103 Existencia 207 139 14

Producto Art. 4 Art. 3 Art. 5

Cantidad 28 6 35

Limite Crdito 50.000 50.000

Los sistemas primeros de gestin de bases de datos relacionales fallaron en implementar algunas partes clave del modelo Codd, que solo ahora estn encontrando su acomodo en productos comerciales. Definicin.- Una base de datos relacional es una base de datos en donde todos los datos visibles al usuario estn organizados estrictamente como tablas de valores y en donde todas las operaciones de la base de datos operan sobre estas tablas.

Ing. Mariuxi Paola Zea Ordoez

- 13 -

La definicin est destinada especficamente a eliminar estructura tales como los punteros incorporados de una base jerrquica o en red. Un DBMS relacional puede representar relaciones padre/hijo, pero estas se representan estrictamente por los valores contenidos en las tablas de las bases de datos.

Integridad Transaccional.
Antes de comenzar a hablar sobre la integridad transaccional, debemos primero saber que es una transaccin. Transaccin.-Es un hecho completo desde el punto de vista computacional, en el que se puede hacer actualizaciones, borrados independientes o en conjunto. Ejemplo: Pedidos en una factura, Depsitos, Retiros de fondeos, Cajeros Automticos en los Bancos, etc. Adems se puede hacer consultas sin que ocurran desastres si hay algn percance. Hasta ahora se ha considerado el empleo de seguros para proteger la Base de datos. Una incongruencia temporal, introducida por una transaccin de actualizacin, tambin puede crear respuestas errneas en transacciones que entreguen respuestas a los usuarios. Sin embargo, un sistema que produzca resultados errneos con cualquier frecuencia pronto perder la confianza de los usuarios. Por lo tanto, en este caso tambin es adecuado emplear un seguro. La transaccin de actualizacin ya debera estar asegurada para impedir interferencias de actualizacin. Las transacciones slo de lectura que necesitan ser correctas; esto es, deben ser capaces de soportar una auditora, y en su caso seguros para protegerse de actualizaciones simultneas. Se ha llegado a la conclusin, segn observaciones, que los resultados errneos solo se crean debido a actualizaciones que interfieren, las cuales modifican mltiples elementos datos relacionados.

Especificacin de un seguro.
Es necesario que exista una forma de avisar al sistema de apoyo a la Base de Datos que se ha solicitado el seguro de un objeto. Sera de esperarse que el usuario final, el vendedor o el oficinista, solicitar la accin de aseguramiento. Cuando se logra el acceso a los objetos reclamados se colocan seguros. Puede haber retrasos, pero eventualmente una transaccin que espere en la lnea correspondiente a un objeto tendr el acceso al objeto reclamado y podr proceder. La transaccin coloca un seguro para lograr as el acceso exclusivo al objeto, y este seguro se conservar hasta que la transaccin se ejecute, para luego liberar el objeto. Las reclamaciones conservadas por una transaccin tambin se liberan cuando la transaccin se concluye o aborta. Las transacciones que concluyan sin liberar sus seguros se consideran defectuosas. Si el sistema tiene la capacidad de eliminar los efectos de transacciones defectuosas y restaurar la base de datos, esta restauracin se recomienda. A nivel mnimo, el administrador de sistema deber ser informado cuando las transacciones se detienen sin liberar todos sus seguros sobre los recursos. Si los seguros no se liberan, una parte del sistema no est disponible.

Regiones que deben asegurarse.


Ing. Mariuxi Paola Zea Ordoez - 14 -

Se deben asegurar ciertas regiones en el que los datos obtenidos por una transaccin de lectura son inconsistentes debido a una secuencia de actualizaciones necesarias para realizar una transferencia de fondos. A fin de garantizar que otras transacciones sean correctas es necesario asegurar una regin constituida por los dos objetos asegurados por la transaccin de actualizacin. Resultar necesario asegurar una regin para impedir la interferencia, tanto de transacciones de lectura como de actualizaciones.

Interacciones entre seguros.


Es necesario proporcionar aseguramiento entre transacciones de actualizacin y entre consulta slo de lectura que requieran resultados que puedan soportar una auditora y transacciones de actualizacin. El empleo de aseguramiento vuelve inaccesible a una parte de la Base de Datos.

Base de Datos Orientada a Objetos.


Gran parte de la investigacin en el rea de bases de datos durante los ltimos aos se ha concentrado en nuevos modelos de datos posrelacionales. Al igual que el modelo relacional proporciona claras ventajas sobre los punteros modelos jerrquicos y de red el objetivo de esta investigacin es desarrollar nuevos modelos de datos que puedan superar algunas ventajas del modelo relacional. Hoy en da la mayora de la investigacin sobre nuevos modelos de datos est centrada en las llamadas bases de datos orientadas a objetos. Los entusiastas defensores de las bases de datos orientadas a objetos proclama que son la generacin siguiente a los sistemas de bases de datos y se supone que serian una verdadero reto a las bases de datos relacionales hacia el final del siglo. No existe un acuerdo sobre que es una base orientada a objetos. Cuando los investigadores utilizan el trmino estn generalmente describiendo una base de datos que utiliza los mismos principios organizativos que la programacin orientada a objetos estos principios son: OBJETOS.- En una base de datos orientada a objetos cualquier cosa es un objeto y se manipula como tal la organizacin tabular de fila/columna de una base de datos relacional es sustituida por la nocin de colecciones de objetos. En general, una coleccin de datas es ella misma un objeto y puede ser manipulada del mismo modo que se manipulan los restantes objetos. CLASES.- Las bases de datos orientados a objetos sustituyen la nocin relacional de tipo de datos atmicos con una nocin jerrquica de clases y subclases. Por ejemplo. Vehculos podra ser una clase de objeto, y los miembros individuales (instancias) de esa clase incluiran un coche, una bicicleta, un tren, o un bote. La clase vehculos podra incluir subclases denominadas coches y botes representada una forma ms especializada de vehculo. Anlogamente, la clase coches podra incluir una subclase denominada convertible, etc. HERENCIA. Los objetos heredan las caractersticas de sus clases y de todas las clases de nivel superior a la que pertenecen. Por ejemplo, una de las caractersticas de un vehculo podra ser el # de pasajeros . Todos los miembros de las clases coches, botes y convertibles, tendran tambin el atributo # de puertas, y la clases convertibles heredara este atributo, sin embargo, la clase bote no hereda el atributo. MENSAJES Y METODOS. Los objetos se comunican unos con otros mediante el envo y recepcin de mensajes. Cuando recibe un mensaje, un objeto responde ejecutando un mtodo, un programa almacenado dentro del objeto que determina cmo se procesa el mensaje. Por tanto un objeto incluye un conjunto de

Ing. Mariuxi Paola Zea Ordoez

- 15 -

comportamientos descritos por sus mtodos. Generalmente un objeto comparte muchos de los mismos mtodos con otros objetos de su clase. Estos principios y tcnicas hacen que las bases de datos orientadas a objetos estn bien adecuadas a aplicaciones que implican tipo de datos complejos, tales como documentos compuestos o de diseos asistidos por computador que combinan texto, grfico y hoja de clculo. La base de los datos proporciona un modo natural de representar la jerarquas que aparecen en los datos complejos. Por ejem: Un documento entero puede presentarse como nico objeto, compuesto de objetos ms pequeos (secciones) compuestos de objetos an mas pequeos (prrafos, grficos, etc.). La jerarqua de clases permiten a la base de datos seguir la pista del tipo de cada objeto en el documento (prrafos, grficos, ilustraciones, ttulos, pies, etc.) . Finalmente el mecanismo de mensajes ofrece soporte natural para una interfaz de usuario grfica. El programa de aplicacin puede enviar un mensaje extrigalo Ud. mismo a cada parte del documento pidiendo que se extraiga de la pantalla. Si el usuario cambia la forma de la ventana que visualiza el documento, el programa de aplicacin puede responder enviando un mensaje modifica tu tamao a cada parte del documento, etc. Cada objeto del documento tiene la responsabilidad de su propia visualizacin por lo que los nuevos objetos pueden ser aadidos fcilmente a la arquitectura del documento.

Modelo Relacional. - Esquema Conceptual.


Sea una empresa o entidad de cualquier tipo, estas desean almacenar datos que reflejan informacin sobre sus actividades. Hay que empezar acotando que parcela del mundo exterior nos interesa representar en los datos. Estar formada por los objetos y acontecimientos cuyo conocimiento nos permita una mejor gestin de nuestras actividades. El diseador o analista de datos debe aprehender, comprender y conceptualizar este mundo, transformndolos en un conjunto de ideas y definiciones, que formen una imagen fiel del comportamiento del mundo real. A esta imagen del mundo exterior la llamaremos modelo conceptual. Para construir un buen modelo, el analista debe utilizar una gran dosis de procesos mentales de abstraccin, anlisis y sntesis. Necesitar adems de la colaboracin de personal directivo. Una vez definido el modelo conceptual, el analista lo transforma en una descripcin de datos, atributos y tablas, incluyendo las posibles interrelaciones entre estos elementos y su significado. A esta descripcin la llamaremos esquema conceptual de datos. A la operacin de transformar el modelo conceptual en un esquema conceptual la llamaremos diseo lgico de datos ( por ello, al esquema conceptual tambin lo llamaremos a veces esquema de diseo). Una vez definido el esquema conceptual, hay que traducirlos a estructuras almacenables en soportes fsicos controlados por el ordenador, normalmente discos magnticos. Esta transformacin se suele llamar diseo fsico de datos. (Ver Dibujo 1) Un buen diseo lgico debe producir un esquema conceptual que sea una imagen fiel y completa del modelo conceptual, incluyendo algunas interrelaciones y condiciones semnticas, es decir, aquellas que son consecuencia del significado de los datos. Por ello vamos a explorar en los siguientes captulos algunos tipos de condiciones semnticas y cmo expresarla en el esquema conceptual. En los ltimos captulos propondremos un mtodo y una serie de reglas que sirven de ayuda al analista en el proceso de diseo lgico.
Ing. Mariuxi Paola Zea Ordoez - 16 -

Empezaremos en los apartados siguientes, definiendo los objetos con los que se construye el esquema conceptual: atributos, tablas, dominios. Etc.

Modelo Relacional de Datos.


Un modelo de datos es un sistema formal y abstracto que permite describir los datos de acuerdo con unas reglas y convenios predefinidos. Es formal en el sentido de que los objetos del sistema se manipulan siguiendo unas reglas perfectamente definidas, y utilizando exclusivamente los operadores definidos en el sistema, independientemente de lo que estos objetos y operadores pueden significar. Por el contrario el modelo conceptual de datos, que como ya se ha dicho, es el conjunto de concepto e interrelaciones que en la mente del analista forman una imagen del mundo real, no es un sistema formal. El modelo de datos es el lenguaje en el que le analista describe el modelo conceptual que su mente ha concebido, llamndose esta descripcin, como ya se ha dicho, esquema conceptual. Un modelo de datos es tanto mejor cuanto ms capacidad expresiva tengan para producir fielmente en el esquema conceptual el comportamiento del modelo conceptual, que a su vez deben ser imagen fiel del mundo real si est bien concebido. Un modelo de datos tiene tres componentes. Estructura de datos: Es una coleccin de objetos abstractos por datos. Operadores entre las estructuras: Conjunto de operadores, con reglas bien definidas , que permiten manipulas la estructura de datos. Definicin de integridad: Coleccin de conceptos y reglas que permiten expresar que valores de datos pueden aparecer vlidamente en nuestro esquema. Existen varios modelos de datos generalmente aceptados. Entre ellos los ms utilizados son el jerrquico, el modelo de red y el relacional. Este ultimo es el que aqu nos interesa. La definicin del modelo relacional de datos generalmente aceptada en la literatura sobre el tema generalmente incluye las posibilidades de nulo, lo que lleva a redefinir los conceptos de clave, dominio, etc. En la forma en que se ha establecido en el apartado anterior. Sin embargo, no suelen incluirse en l las operaciones algebraicas extendidas (por ejemplo, yuncin externa y unin externa). Este ser el modelo de datos al que nos referimos de ahora en adelante. En resumen, tiene los componentes siguientes: Estructura de datos: Dominio, relaciones, atributos, tuplas. Operadores: Los primitivos del lgebra relacional, es decir unin, diferencia, producto cartesiano, proyeccin y seleccin. Definicin de integridad: Los conceptos de claves y la posibilidad de valores nulos. Tambin se incluyen aqu dos reglas de integridad, llamadas:
Ing. Mariuxi Paola Zea Ordoez - 17 -

a) Integridad de claves primarias. b) Integridad referencial.

Conceptos de los Componentes de la Base de Datos.


Realidad, datos y metadato.- Antes de considerar los componentes de la Base de datos, es importante entender como se presentan los datos. Solamente el mundo real en s puede ser mencionado como la realidad. Aquellos datos que se obtienen de las personas, de lugares o de eventos de la realidad, eventualmente sern almacenados en base de datos. Con el fin de comprender la forma y la estructura de los datos, se requiere de informacin acerca de los datos mismos. Aquella informacin descriptiva de los datos se denomina como metadato.

Qu es una Entidad?
Una entidad es cualquier objeto o evento, acerca del cual, se recolectan datos, o tambin se puede decir que es una cosa con una existencia independiente. Una entidad con existencia fsica puede ser una persona, un lugar o un objeto. Por ejemplo: un vendedor, una ciudad o un producto. Una entidad con existencia conceptual puede ser un evento o unidad de tiempo, tal como la descompostura de una mquina, una venta, un mes o un ao, una compaa, trabajo o universidad, etc. Observacin: Quiere decir que todas las entidades pueden contener (describir) varios tipos de datos, por ejemplo el precio de un producto no sera una entidad, porque ya no podra contener otros tipos de datos, sino que slo contiene el valor del producto.

Qu son Relaciones?
Las relaciones son asociaciones entre entidades (y algunas se refieren como asociaciones de datos). Existen 3 tipos de relaciones o asociaciones:

Asociacin uno a uno (1:1).- Son aquellas en las cuales solo interviene un objeto de cada entidad. Ejemplo: Producto 1 Se lista para 1 Empaque del Producto 2) Empleado 1 Se le asigna 1 Oficina

1)

Ing. Mariuxi Paola Zea Ordoez

- 18 -

Descripcin: El diagrama nmero 1 muestra que para cada PRODUCTO existe un slo EMPAQUE. La segunda relacin de uno a uno muestra que cada EMPLEADO tiene una OFICINA nica. Nota: Observe que todas estas entidades pueden describirse an ms (el Precio de un producto no sera una entidad, tampoco lo sera una extensin telefnica).

Asociacin uno a muchos (1:M o M:1).- Son aquellas en las cuales interviene un objeto de una de las entidades asociadas a varios objetos de la otra entidad. Ejemplo: Medico 1 Trata al M Paciente 2) Empleado M pertenece a 1 Departamento

1)

Descripcin: Como se muestra en la figura, en el primer grfico de este tipo de relacin muestra a un MEDICO dentro de una organizacin de cuidados mdicos se le asignan muchos PACIENTES, pero un PACIENTE es asignado slo a un MEDICO. El otro ejemplo (grfico No. 2) muestra que un EMPLEADO es un miembro de slo un DEPARTAMENTO, pero cada DEPARTAMENTO tiene numerosos EMPLEADOS.

Asociacin muchos a muchos (M:N). Son aquellas en las cuales intervienen varios objetos de una de las entidades asociadas a varios objetos de la otra entidad, es decir que describe la posibilidad de que las entidades puedan tener numerosas asociaciones en cualquier direccin. Ejemplo: Estudiante M Toma 2) Vendedor M Atiende a

1)

Cursos

Ciudad

Descripcin: En el ejemplo nmero 1 muestra que un ESTUDIANTE puede tener o tomar muchos CURSOS, mientras que al mismo tiempo, un CURSO puede tener muchos ESTUDIANTES inscritos. El segundo ejemplo nos muestra cmo un VENDEDOR puede cubrir muchas ciudades, y una CIUDAD puede ser un rea de ventas para muchos VENDEDORES.

Qu es un atributo?
Un atributo es una caracterstica de una entidad, es decir que cada entidad tiene propiedades particulares que la describen. Puede haber muchos atributos para cada entidad. Por ejemplo, un paciente (entidad) puede
Ing. Mariuxi Paola Zea Ordoez - 19 -

tener numerosos atributos, tales como el apellido, nombre, direccin, ciudad, estado, etc. Otro ejemplo es: la entidad libro debe ser descrita por el titulo de la obra, autor, editorial, ao de edicin. La palabra atributo tambin se la puede utilizarse de manera intercambiable con la de dato. Los datos de hecho son las unidades ms pequeas en un base de datos.

Tipos de atributo
Existen Seis tipos de atributos (de acuerdo a los datos que lo componen) los cuales son:
1.

SIMPLES.- Aquellos atributos que son indivisibles, son llamados atributos simples o atmicos. Ejemplo: Ttulo de la Obra, en el caso de la entidad Libro. COMPUESTOS.- Estos atributos pueden ser divididos en subpartes ms pequeas las cuales representan ms atributos bsicos, con significados independientes del concepto bsico. La concatenacin de atributos simples conforman un atributo compuesto. Ejemplo: La fecha, esta compuesta por Da, Mes y Ao. SIMPLE VALOR.- Son los que tienen un valor simple para una entidad particular. Ejemplo: IVA, siempre es 10. MULTIVALOR.- Un atributo multivalor debe tener un lmite superior e inferior en el nmero de valores para cada entidad individual. Ejemplo: Edad mayor a 18 y menor a 85. DERIVADO.- Es cuando el valor de un atributo puede ser determinado en base a otro. Ejemplos: El total de un articulo es calculado en base a la Cantidad por el Precio Unitario, la edad de una persona, es en base a la Fecha de Nacimiento de esa persona. ALMACENADO.- En base a este atributo se puede obtener atributos derivados. Ejemplo: La cantidad o el Precio Unitario sirven para obtener el Total.

2.

3.

4.

5.

6.

En algunos casos una entidad particular, puede no tener un valor aplicable para un atributo, para tal situacin un valor especial denominado nulo es creado. La categora de los valores nulos pueden ser adicionalmente creadas en dos casos. El primer caso cuando se conoce que el valor del atributo existe pero es desconocido, y el segundo caso cuando no se conoce si el valor del atributo existe.

Qu son los Dominios?


Un dominio es un conjunto, finito o infinito, de palabras formadas con un alfabeto finito entre las que existe un criterio de orden. Este criterio de orden puede ser comn para varios dominios, por lo que stos pueden participar unos con otros en ciertas operaciones que impliquen comparacin y orden. Por ejemplo, tiene sentido hablar de unin, interseccin, etc. , entre ellos. Por ejemplo: D1: Conjunto de fechas de nacimiento. D2: Conjunto de los sueldos en sucres de los empleados. D3: Conjunto de los nombres de los empleados. Entonces se podra restringir las operaciones de comparacin y orden a elementos y subconjuntos de un mismo dominio. As se asegurara evitar hacer operaciones sin sentido, como por ejemplo comparar fechas con sueldos.
Ing. Mariuxi Paola Zea Ordoez - 20 -

A un dominio se le especifica nombre, tipo de dato y formato, es posible que varios atributos tengan el mismo dominio, el atributo indica diferentes roles o interpretaciones para el dominio.

Qu son las Tuplas?


Cada elemento de una relacin se llama tupla, y tambin se las conoce con el nombre de registros, que es una coleccin de datos elementales que tienen algo en comn con la entidad descrita, es decir est compuesta por los atributos de una entidad. Se llama grado de una tupla al nmero de componentes que tiene. El grado de una relacin es el de sus tuplas. Como las entidades son conjuntos, todas sus tuplas deben ser diferentes. Es decir, en una relacin no puede haber tuplas repetidas. Adems, no hay un criterio de orden definido entre ellas. Una tupla puede representarse o bien como una lista ordenada de valores: T=<t1, t2, t3, t4, ......, tn>, donde: T1= Valor del primer dominio T2= Valor del segundo domino T3= Valor del tercer dominio T4= Valor del cuarto dominio O bien como una lista desordenada de valores identificados por sus nombres de atributos: T=<Atr3=t3, Atr2=t2, Atr1=t1, ....., Atrn=tkn>.

Qu son las Tablas?


Si colocamos todas las tuplas de una relacin una debajo de otra, alineando los componentes correspondientes de cada atributo en una columna, y colocamos en la cabecera de cada columna el nombre de sus atributos, obtenemos una representacin de la relacin a la que designaremos con el nombre de TABLA. Dentro del Esquema Conceptual, las tablas provienen de las Entidades, y compuestas por los atributos de la misma que pasan a conformar un registro. Las tablas estn compuestas de registros, y estos de atributos. Una tabla es parecida a una matriz que esta compuesta de filas y columnas, en donde las filas forman los registros y las columnas los datos. Dentro de las tablas y atributos encontramos las denominadas Claves o Llaves Primarias.

Qu son las Claves?


Una clave es un dato elemental en un registro que se utiliza como criterio de identificacin para ste, tambin se le conoce con el nombre de llave. Cuando una llave identifica de manera exclusiva a un registro se le denomina llave primaria (o criterio primario). Por ejemplo: un # de Orden, puede ser una llave primaria porque slo hay un nmero asignado a cada orden o pedido del cliente, es decir que no puede tomar valores repetidos. De esta manera, la llave primaria identifica la entidad del
Ing. Mariuxi Paola Zea Ordoez - 21 -

mundo real (orden del cliente). Toda entidad tiene al menos una clave, pero puede tener ms de una. Esto depende del significado de la relacin. Una llave puede denominarse llave secundaria ( o criterio secundario) si no identifica de manera exclusiva a un registro. Las llaves secundarias se utilizan para seleccionar a un grupo de registros que pertenecen a un conjunto, por ejemplo: las rdenes que provienen de determinada ciudad. Cuando no es posible identificar de manera exclusiva un registro utilizando uno de los elementos dato presentes en el registro, la llave puede construirse mediante la eleccin de dos o ms elementos dato combinndolos entre s. A este criterio se le denomina llave concatenada. Cuando se utiliza un elemento dato en un registro como criterio (llave secundaria), es recomendable subrayarlo (__________), por el contrario si el atributo es una llave presente en otro archivo (llave ajena), debe subrayarse con una lnea punteada ( _ _ _ _ _ _ ).

Integridad de claves primarias.


Al definir el concepto de claves se dijo que estas pueden utilizarse como identificadores de las tuplas de una relacin, puesto que a cada valor de una clave corresponde una sola tupla y viceversa. En el modelo relacional, la nica manera de encontrar una tupla determinada en una relacin, es conociendo el valor de una clave. Una relacin puede tener varias claves, pero suele aceptarse la conveniencia de usar siempre la misma como identificador. A esta clave se la suele llamar clave primaria. Las restantes se las llama claves alternativas. Puesto que la clave primaria es el identificador designado para una relacin, no debera de tomar valores nulos para evitar ambigedades. Esta condicin es la que hemos llamado regla de integridad de claves primarias. Podra pensarse que en el caso de tener varias claves, podramos emplear como identificador unas veces a una y otras veces a otra, con lo que tendramos una nica clave primaria y ambas podran tomar valores nulos. Esto no es as y podra crear problemas de ambigedad. En conclusin en toda relacin deber de designarse a una clave como primaria y sus atributos no deben tomar valores nulos. Si una relacin tiene varias claves cualquiera de ellas puede ser designada a priori como primarias. Para elegir la ms conveniente, el diseador de la base de datos deber tener en cuenta el significado de la relacin y sus atributos, y sopesar diversos factores. Pueden considerarse los siguientes. *3 Estabilidad. Considerar si algunas claves son menos propensas a sufrir modificaciones en sus valores.
*4

Facilidad de uso.

Ing. Mariuxi Paola Zea Ordoez

- 22 -

Ser, por ejemplo, ms fcil de usar una clave numrica corta que otra alfanumrica con otros caracteres. *5 Fiabilidad. Ver si alguna clave contiene dgitos de validacin u otros mecanismos de autodeteccin o correccin de errores.. *6 Universalidad. Puede haber claves cuyo uso y conocimiento est muy extendido (por ejemplo el nmero de Documento Nacional de Identidad, cdula).

Integridad Referencial.
La integridad referencial es una propiedad muy agradable de la base de datos relacional para fortificar el sistema de manejo de datos. Especialmente la integridad referencial asegura que las relaciones representadas por las llaves primarias y secundarias sean mantenidas. Se podra decir entonces que es una regla que refuerza una relacin dentro de un sistema. Cuando en el esquema conceptual se designa un atributo como llave ajena (secundaria, en las que sobrecae la responsabilidad de la relacin), conviene tambin especificar las acciones a tomar en caso de intentar actualizarlo con los valores invlidos. Estas acciones dependern de los valores de los datos, esta es una de las reglas de integridad relacional, entonces tenemos ejemplo: Ejemplo para realizar las validaciones de Integridad: Departamento Tabla Departamento Cdigo 01 02 03 04 Nombre Ventas Contabil. Estadist. Administ. Extensin 205 190 135 146 Empleados

Tabla Empleados Cdigo 01 02 03 04 Nombre Juan Luis Mara Carla Departamento 03 03 02 04


- 23 -

Ing. Mariuxi Paola Zea Ordoez

05 06

Jos. Pedro

01 02

Reglas de Insercin: En funcin de como se asignan los empleados a departamentos.


a) Insercin en Dpto.

no hay que comprobar nada.


b) Insercin emp

Hay que comprobar que el dpto. de este nuevo empleado en la tabla Dpto. Si as no fuere se rechazara la peticin de insercin en Emp. Reglas de Actualizacin.
a) Actualizacin en Dep modificando el atributo principal .

Hay que comprobar que el dpto. que modificamos no tiene empleados. Si as no fuere, la accin a tomar para mantener los datos en un estado vlido de acuerdo con la integridad referencial podra ser la siguiente: Rechazar la peticin de actualizar. Aceptada y propagada a Emp, es decir, actualizar en Emp todos los registros que hagan al departamento modificado poniendo el nuevo valor en la tabla EMP campos NomDept. Aceptarla y anularla referencia es decir, actualizar todas las tuplas de Emp que hagan referencia al departamento poniendo nulo en el atributo Emp.Nomdpto.
b) Actualizacin en emp modificando el atributo Departamento.

Hay que comprobar si el nuevo valor de Emp. Departamento no es nulo, existe en Dep. Si as no fuere, se rechazar la peticin de actualizacin. Reglas de Borrado.
a) Borrado de un registro en Dpto.

Hay que comprobar que le dpto. que borramos no tiene empleados. Si as no fuere, la accin a tomar para mantener los datos en un estado vlido de acuerdo a la integridad referencial podra ser una de las siguientes: Rechazar la peticin de borrado. Aceptada y propagada a Emp, es decir, borrar en Emp todos los registros que hagan referencia al departamento borrado. Este borrado podra propagarse a su vez a otras relaciones que hagan referencia a Emp.
Ing. Mariuxi Paola Zea Ordoez - 24 -

Aceptarla y anularla referencia es decir, actualizar todas las tuplas de Emp que hagan referencia al departamento poniendo nulo en el atributo Emp.Nomdpto.
b) Borrado de un registro de emp.

No hay que comprobar nada. En conclusin en la tabla Emp no puede ser asignado un Dpto. que no exista en la tabla dpto. Al borra o actualizar la tupla Dpto. debe verificarse en la tabla Emp. El primer beneficio de la integridad relacional es la consistencia de los datos. Dentro de Oracle, como en la mayora de DBMS, esta integridad se almacena en un archivo conjuntamente con la Base de Datos. Es decir que puede ser definida en el momento de la creacin de las tablas y sus relaciones. Refuerza el descuido de las aplicaciones o herramientas que accesan a las tablas. La llave ajena es el mecanismo para soportar la integridad referencial.

Diseo Conceptual de la Base de Datos


Para entender mejor como realizar el diseo conceptual (Modelo Relacional de Datos), utilizaremos un ejemplo prctico, en el cual se desarrollarn cada uno de los pasos a seguir para conseguir reflejar la informacin de las actividades. Como se mencion anteriormente, lo primero que se debe hacer es entender el mundo exterior, para ello hay que elegir la parcela que nos interesa representar los datos. Es decir investigar los objetos y acontecimientos cuyos conocimientos nos permita una mejor gestin de nuestras actividades.

Descripcin de la Parcela Investigada (Ejemplo).


La parcela que vamos a investigar son los procesos realizados en la Biblioteca de la Universidad Tcnica de Machala, ubicada en la Facultad de Ingeniera Civil. Es decir vamos a realiza un Control de Biblioteca. Dentro de este departamento se realizan dos procesos: a) Proceso de Prestacin de Libros. El proceso se puede resumir en los siguientes pasos: 1. El cliente se acerca a pedir un determinado libro. 2. La encargada le atiende el pedido preguntando cual es el autor y tema del texto a investigar. Como requisito le pide la cdula a la persona particular o carnet al estudiante, si el texto de consulta se encuentra disponible, la encargada proceder al siguiente control. 3. Se registrar el ttulo del libro, el autor o autores, el nombre de la persona que requiri el libro, el cdigo del libro y la firma del estudiante, y se procede a la entrega del libro. Esto se da al momento que se realiza el prstamo solamente interno, es decir, para un determinado perodo de tiempo en el mismo da, y en el mismo lugar. Es decir que el
Ing. Mariuxi Paola Zea Ordoez - 25 -

cliente hace uso del libro tomndose el tiempo necesario para realizar sus investigaciones dentro de la sala. 4. Si se requiere el texto para varios das, se realiza el mismo proceso anterior, registrando adems la fecha de prstamo y la fecha de entrega como campos adicionales, y por el mismo motivo solo pueden realizarlo los estudiantes que pertenezcan a una de las facultades de la Universidad Tcnica de Machala y no a personas particulares. La fecha de devolucin la da a conocer la encargada de la Biblioteca. 5. Al momento de la devolucin, la encargada revisa el libro, si no existe desperfectos en el mismo, se devuelve la cdula al estudiante, de no ser as la encargada toma las medidas necesarias. (Ejem. Multa o pago del valor del libro, devolucin de un libro igual, etc.). 6. Si el plazo fijado en la fecha de entrega se sobrepasa, los estudiantes se acogen a las siguientes sanciones: Si no hay devolucin del texto, se negar la matricula al estudiante para el prximo ao. El estudiante que no realice la devolucin estar objeto a no presentarse a exmenes; por lo consiguiente no podr volver a confirsele otro libro de consulta. b) Proceso para Inventario de Libros. Cuando se recibe (como donacin) o adquiere (compra) un libro o texto, se procede a realizar el inventario correspondiente de los datos, como se describe a continuacin: Nmero del inventario, Clasificacin, Fecha de Ingreso del libro, Autor (es), Ttulo, Cantidad, Pgina, Ingreso, Precio, Nmero de Pginas, Observaciones acerca del libro. A continuacin se detallan los datos ms importantes del libro o texto en la ficha bibliogrfica. Se procede a llenar la ficha de identificacin de la misma que consta adicionalmente de los siguientes datos: Fecha de Ingreso, Nmero de entrada, Nmero ordinal. Luego esta ficha ser adherida al libro o texto respectivo.

Documentos utilizados dentro de los procesos.


Para completar la descripcin de estos procesos, nos avalizamos en los documentos utilizados en los procesos. Estos documentos son:

Ing. Mariuxi Paola Zea Ordoez

- 26 -

a) Ficha de Prstamo:
Universidad Tcnica de Machala Facultad de Ingeniera Civil BIBLIOTECA Ttulo: ........................................................................................... ........................................................................................................ Autor: ............................................................................................. Prstamo: ........................................ Entrega: ............................... Facultad: ........................................ Curso: ................................... Domicilio: ...................................................................................... Nombre del Estudiante: ................................................................. ........................................ Firma

b) Ficha del Libro (Adjunto al libro)


Universidad Tcnica de Machala Facultad de Ingeniera Civil BIBLIOTECA
Fecha de Ingreso: .......................................................................... Clasificacin: ................................................................................. No. De Entrada: ............................................................................. No. Ord. : .......................................................................................

c) Ficha Bibliogrfica
Algebra Lineal y Teora de Matrices
512. 5 Herstein, I. N. Algebra lineal y teora de matrices / I. N. Herstein y David J. Winter; traductor Eduardo M. Ojeda Pea, revisor tcnico Francisco Paniagua Bocanegra. Mxico: Edit. Iberoamrica, 1989. XV, 555 p.: grf., il. Incluye Smbolos e ndices alfabtico ISBN 968-7270-52-7 ............................................................................................................. 512. 5 Herstein, I. N. Algebra lineal y teora de matrices / I. N. Herstein y David J. Winter; traductor Eduardo M. Ojeda Pea, revisor tcnico Francisco Paniagua Bocanegra. Mxico: Edit. Iberoamrica, 1989. XV, 555 p.: grf., il. Incluye lgebra lineal ISBN 968-7270-52-7

Ing. Mariuxi Paola Zea Ordoez

- 27 -

d) Inventario de Libros
Universidad Tcnica de Machala Facultad de Ingeniera Civil BIBLIOTECA
Clas 310 728 625.8 5 No. Inv. 927 942 945 Fec. Ing. 1-1-97 3-7-97 1-4-98 Autor William A. Nash Anselmo Rodrguez Federal Highway Titulo Resistencia de materiales 62 Modelos de chalets Hot-Mix bituminous Paving Manual Cant 2 1 1 Pag. 304 Ingreso Compra Compra Donacin Prec. 50000 680000 100000 Obs. C/u 4 tomo

e) Registro Diario de Lectores.


Universidad Tcnica de Machala Facultad de Ingeniera Civil BIBLIOTECA Registro Diario de Lectores:
Ordinal Autor Titulo Nombre Firma Entrega

Desarrollo del Esquema Conceptual


Una vez que conocemos el mundo exterior, y nos formamos una idea de este mundo (Modelo Conceptual), debemos pasar a desarrollar el Esquema Conceptual, es decir a definir cada uno de los componentes de la Base de Datos, para lo cual lo realizamos siguiendo los pasos descritos a continuacin:

1. Definir Entidades.Podramos acotar, que segn el concepto estudiado anteriormente, podremos encontrar los siguientes tipos de Entidades: De tipo Persona, Objeto, Lugar, Evento o Unidad de Tiempo. En este paso, debemos encontrar dentro de los procesos o parcela del mundo exterior, que nosotros hemos conceptualizado, todas las entidades que se necesita para reflejar lo que ocurre en la realidad, siempre y cuando respetemos su respectivo concepto. En el ejemplo que hemos expuesto, encontramos las siguientes entidades de acuerdo a su respectiva clasificacin:
Ing. Mariuxi Paola Zea Ordoez - 28 -

De tipo Persona: De tipo Objeto: De tipo evento:

Los Alumnos (que van a realizar la peticin del prstamo). Los Libros (que van a ser prestado a los alumnos para investigacin) El Registro (de los libros prestados a los alumnos)

Por el momento son todas las entidades (o datos) que necesitamos utilizar para reflejar lo que ocurre en el mundo exterior.

2. Definir Relaciones.Una vez que nosotros hemos descrito o encontrado las entidades principales del Esquema Conceptual. Debemos proceder a ubicar o describir las relaciones que existen entre estas entidades. Para ello debemos tomar encuentra el concepto de relacin, y adicionalmente debemos conocer ciertas reglas para su creacin: No debe existir o no se puede relacionar entidades Externas y entidades Internas. Las entidades Externas son aquellas que no pertenecen directamente a la parcela del mundo exterior, pero de alguna forma intervienen en los procesos. En cambio las entidades Internas son aquellas que pertenecen directamente a la parcela, e intervienen de una forma activa. Las relaciones que se crean, van encaminadas en cierta forma, a explicar las posibles pertenencias (o dependencias) que existen entre estas entidades. Para poder verificar si existe o no debemos comparar cada una de las entidades con todas las que existan en el esquema conceptual. Se debe hacer esta comparacin, solamente entre dos entidades a la vez. Cada relacin tiene que estar sustentada, por medio de frases que indican el porqu de la existencia de esa relacin. Si no existe relacin se debe indicar este estado. De acuerdo a esto, hemos encontrado las siguientes relaciones:
Alumnos Alumnos Libros

1
No hay Const a en

=1

1
Se regist ra

N = N

N
Libros

= N

=M

Registros

Registros

Ing. Mariuxi Paola Zea Ordoez

- 29 -

Nota: Como podemos observar, siempre debemos ver las relaciones que existen entre dos entidades a la vez, y adems debemos examinar por los dos lados de la relacin. Ejemplo: Primero desde Alumnos hacia Registros, y luego desde Registros hacia Alumnos, para obtener una visin global de lo que ocurre.

3. Definir Esquema Inicial.Una vez que hayamos terminado de describir las relaciones existentes entre las entidades, procedemos a realizar el esquema inicial, que no es ms que graficar mediante recuadros y flechas las relaciones existentes entre las entidades. De esta forma el esquema inicial del ejemplo expuesto es el siguiente:
Alumnos Registro Libros

Una vez que nosotros hayamos terminado de graficar este esquema, debemos revisarlo con el fin de encontrar Relaciones Terciarias, estas relaciones son aquellas en las que estn implicadas tres entidades que al estar relacionadas, forman un tringulo (figurativamente representa a un crculo entre estas). En el ejemplo expuesto no existen este tipo de relaciones, pero en el caso de que se den, estas deben ser eliminadas. Ejemplo de una relacin terciaria:
Entidad 1 Entidad 2 Entidad 3

En este ejemplo aunque no lo parezca, (debemos tratar de conceputalizarlo en nuestra mente), estas entidades forman un tringulo por medio de sus relaciones. Es decir que las relaciones terciarias son aquellas que mediante las relaciones unen o enlazan a tres entidades a la vez. Dentro del esquema conceptual, debemos eliminar, o al menos tratar de que no se den este tipo de relacin, para lo cual debemos revisar las relaciones existentes entre estas entidades y quedarnos solamente con aquellas que son vitales para el funcionamiento y reflejo de la realidad. Para ello, debemos realizarnos preguntas de tipo consulta, de tal manera que podamos identificar la relacin con menos prioridad, esta relacin que no es de mucha importancia, deber ser eliminada para que desaparezca la relacin terciaria.

4. Asignar Atributos.Una vez que hayamos terminado de depurar el esquema inicial, y las relaciones existentes entre las entidades estn bien, procedemos a definir o asignar cada uno de los atributos que van a tener las entidades.

Ing. Mariuxi Paola Zea Ordoez

- 30 -

Estos atributos los definimos de acuerdo a los procesos que hemos investigado, es decir que del Modelo conceptual tomamos la informacin que va a ser almacenada, conviertindose esta en las caractersticas o atributos de las entidades, para el Esquema Conceptual. De esta forma tenemos: Entidad Alumnos: Cdula, apellidos, nombres, direccin, telfono, facultad, escuela, curso. Entidad Libro: Numero_inventario, codigo_materia, nombre_libro, autor, cantidad, precio, observaciones, ingreso, fecha_de_ingreso, pginas. Entidad Registro: Num_registro, fecha_pedido, fecha_entrega. Nota: Debemos tener en cuenta de que no exista redundancia, por este motivo, una de las principales reglas para definir atributos es, que no puede existir el mismo atributo en ms de dos entidades, es decir, no se pueden repetir los atributos.

5. Definir Dominios.Ahora que ya hemos definido los atributos de cada entidad, es necesario definir los dominios que se utilizarn. Para ello debemos recordar que a cada dominio se le debe asignar un nombre, este nombre puede ser cualquiera, solo hay que establecer uno que sea fcil de recordar y nos ayude a organizar y comprender su significado; adems tenemos que tener en cuenta que un dominio podra agrupar varios atributos, as que tenemos que tratar que estos dominios agrupen esa informacin. De acuerdo a lo mencionado anteriormente encontramos: Nombre D1 Conjunto de nombres : D2 Conjunto de ttulos : D3 Conjunto de telfonos : D4 Conjunto de observaciones: D5 Conjunto de Fecha : D6 Conjunto de Cdigos : D7 Conjunto de cdulas : D8 Conjunto de datos : D9 Conjunto de valores : Tipo de Dato Caracter(30) Caracter(100) Caracter(10) Caracter(30) Fecha Numrico Caracter(11) Caracter(15) Numrico Formato

mm/dd/aa 9999 9,999,999.99

6. Definir Tuplas.En este momento debemos definir las tuplas, utilizando el nombre de sus atributos, de esta manera estaremos diseando como quedar el registro de las Entidades, (cabe recalcar que las entidades se
Ing. Mariuxi Paola Zea Ordoez - 31 -

convertirn en las tablas), y el orden de sus atributos (los atributos pasarn a ser los campos de las tablas). Entidad Alumnos.- Reg_Alumnos: Cdula, apellidos, nombre, direccin, telfono, facultad, escuela, curso Entidad Libros.- Reg_libro: Numero_inventario, codigo_materia, nombre_libro, autor, cantidad, precio, observaciones, ingreso, fecha_de_ingreso, pginas. Entidad Registro.- Reg_registro: Num_registro, fecha_pedido, fecha_entrega.

7. Asignacin de atributos a los dominios.Una vez que ya tenemos los atributos, y en que orden van a quedar en las tuplas, debemos definir qu dominio le corresponde a cada uno de los atributos, de esta forma estaremos definiendo el tipo de dato de cada atributo. Para realizarlo de una manera organizada, ya que esto debe quedar documentado, pondremos el dominio y a continuacin los atributos que le pertenecen, de esta forma tenemos: D1 Apellidos, nombre, facultad, escuela, direccin, ingreso, autor. D2 Nombre_libro. D3 Telfono. D4 Observaciones D5 Fecha_ped, Fecha_ent, fecha_de_ingreso. D6 Num_registro, numero_inventario, codigo_materia, cantidad, paginas. D7 Cdula. D8 Curso. D9 Precio.

8. Definicin de Llaves.A veces no toda relacin tendr un nico atributo que sirva como llave, pero siempre habr una combinacin de atributos que tomados en conjunto posean la caracterstica de unicidad, a esta unin se la denomina llave compuesta. El otro caso es en el cual, dentro de la entidad existen varios atributos que pueden ser llave primaria, a estas se las conoce con el nombre de llave candidata. Para saber si una llave candidata puede escogerse como llave primaria, podemos hacer algunas preguntas como: Si quitamos cualquier elemento de una entidad. Sigue siendo nica la llave? Existe una posible situacin en que la llave pudiera ser no nica? Existe alguna parte de la llave que no este definida?

Ing. Mariuxi Paola Zea Ordoez

- 32 -

Es decir, debemos hacer una exhaustiva investigacin sobre cada una de las llaves candidatas, de tal forma que escojamos la que mejor represente al registro. Una vez que escogemos una de ellas, el resto de llaves pasan a ser llaves secundarias. Dentro de nuestro esquema conceptual tenemos las siguientes llaves: Llaves principales: Alumnos: *Cdula Libros: *Numero_inventario Registro: *Num_registro Llaves secundarias: Alumnos: No Hay Libros: No hay Registro: No hay

Nota: Al lado de cada llave principal se ha colocado el smbolo asterisco (*). De esta forma, se podr identificar claramente que esa ser la llave principal. 9. Definicin de Reglas Generales (De relacin).Hasta el momento ya se ha definido las entidades, sus atributos, los dominios, las llaves, y las relaciones. Con respecto a las relaciones encontramos que existen tres tipos de relaciones: de 1 a 1, de 1 a N, y de N a M. Pero hasta el momento slo hemos descrito las relaciones que existen dentro de nuestro esquema conceptual, pero segn la teora de las bases de datos relacionales, las relaciones se las efecta por medio de un valor dentro de las tablas. Para poder asignarle realmente las relaciones a las tablas, nosotros encontramos una regla para cada tipo de relacin. De esta forma tenemos: Relaciones de 1 a 1:
Entidad 1 Entidad 2

Si nosotros encontramos relaciones de 1 a 1, debemos tratar de que estas desaparezcan. Es decir que se crear una sola entidad que contenga a las dos anteriores. Tomando el nombre que ms le indique el contenido.
Entidad Unificada

Como toda regla tiene su excepcin, vamos a encontrar casos en que se necesite dejar estas dos entidades separadas. Entonces la relacin 1 a 1 se convierte automticamente en relacin 1 a N, es decir debemos buscar cual de estas dos entidades, en un futuro se puede convertir en una entidad relacin N. (Ver regla relacin 1 a N). En el esquema conceptual del ejemplo que estamos realizando no existen relaciones 1 a 1. Relaciones 1 a N: Si en nuestro esquema conceptual existen relaciones de 1 a N, debemos hacer lo siguiente:
Entidad 1 Entidad 2

*cdigo
Ing. Mariuxi Paola Zea Ordoez

cdigo
- 33 -

La Llave principal (completa) de la entidad relacin 1, debe pasar a formar parte de la entidad relacin N. A esta se le conoce con el nombre de Llave Ajena. En el ejemplo del grfico anterior, estamos tomando en cuenta que la llave principal de la entidad 1 es cdigo, y este pasa a formar parte de la Entidad 2 como llave ajena. En el esquema conceptual que estamos realizando existe una relacin 1 a N.
Alumnos Registro

* Cdula

Cdula

En este caso como cdula es la llave principal de la entidad Alumnos que tiene la relacin 1, pasa a formar parte de la Entidad Registro (Relacin N) como llave ajena. Relaciones de M a N: Cuando encontramos dentro de nuestro esquema conceptual relaciones de M a N debemos ejecutar la siguiente regla: Se crear una nueva entidad, que contendr las llaves principales de las dos entidades en mencin. Entonces esta nueva entidad tendr la relacin N y las dos anteriores se convertirn en relacin 1. Ejemplo:

Ing. Mariuxi Paola Zea Ordoez

- 34 -

Entidad 1 Entidad 1

Entidad 2 Entidad Nueva Entidad 2

*Cdigo

Cdigo Cdula

*Cdula

En este ejemplo, vemos creada una nueva entidad que contiene tanto el cdigo que es llave principal de la Entidad 1, como la cdula que es la llave principal de Entidad 2. Esta nueva entidad ahora pasa a ser relacin N, mientras que la Entidad 1 y la Entidad 2 ahora tienen relacin 1. En el esquema del ejemplo que estamos realizando tambin encontramos una relacin de M a N:
Registro Libros

* Num_registro

*Numero_inventario

Ahora debemos crear una nueva entidad, y en esta colocar las llaves principales (completas) tanto de la entidad Registro como de la Entidad Libros, y el resultado es el siguiente:
Registros Detalle_Registro Libros

*Num_registro

Num_registro numero_inventario

* Numero_inventario

Debemos notar que la relacin N a M entre las entidades Registros y Libros se transforma en Relacin de 1 a N entre Registros y Detalle_Registro, y otra relacin de 1 a n entre Libros y Detalle_Registro.
10.

Definir grfico segn las reglas.-

Como habremos notado, al ejecutar las reglas generales sobre las relaciones pueden existir algunos cambios en las entidades y sus componentes, por lo tanto se hace necesario que, despus de haber ejecutado cada una de estas reglas debamos realizar un grfico para mostrar el nuevo estado del esquema conceptual. El grfico del esquema conceptual despus de las reglas generales para nuestro ejemplo es:
Alumnos Registros Detalle_Registro Libros

Normalizacin de Datos.
Qu es la Normalizacin?
La normalizacin es una actividad colectiva encaminada a establecer soluciones a situaciones respectivas. En particular, esta actividad consiste en la elaboracin, difusin y aplicacin de normas.
Ing. Mariuxi Paola Zea Ordoez - 35 -

La normalizacin en general, ofrece importantes beneficios, como consecuencia de adaptar los productos, procesos y servicios a los fines a los que se destinan, proteger la salud y el medio ambiente, prevenir los obstculos al comercio y facilitar la cooperacin tecnolgica.

Qu es una Norma?
Las normas son documentos tcnicos con las siguientes caractersticas: Contienen especificaciones tcnicas de aplicacin voluntaria. Son elaborados por consenso de las partes interesadas. Estn basados en los resultados de la experiencias y el desarrollo tecnolgico. Son aprobados por un Organismo Nacional / Regional / Internacional de Normalizacin reconocido. Estn disponibles al pblico. Las normas ofrecen un lenguaje comn de comunicacin entre las empresas, la Administracin, los usuarios y consumidores. Se podra decir que establecen un equilibrio socioeconmico entre los distintos agentes que participan en las transacciones comerciales, base de cualquier economa de mercado, y son un patrn necesario de confianza entre cliente y proveedor.

Ventajas de la Normalizacin.
Entre las ventajas que encontramos de normalizacin (en un plano general, ms especfico en el comercio), estn: Mejora la gestin y el diseo Facilita la comercializacin de los productos y su exportacin Establece niveles de calidad y seguridad de los productos y servicios Informa las caractersticas del producto Facilita la comparacin entre las diferentes ofertas. Simplifica la elaboracin de textos legales. Establece polticas de calidad, medioambientales y de seguridad. Agiliza el comercio.

Qu se Normaliza?
El campo de actividad de las normas es tan amplio como la propia diversidad de productos o servicios, incluidos sus procesos de elaboracin. As, se normalizan los Materiales (plsticos, acero, papel, etc.), los Elementos y Productos (tornillos, televisores, herramientas, tuberas, etc.), Mtodos de Ensayo, Temas Generales ( Medio ambiente, calidad del agua, reglas de seguridad, estadstica, unidades de medida, etc.), Gestin y Aseguramiento de la Calidad, Gestin medioambiental (gestin, auditora, anlisis del ciclo de vida, etc.), Gestin de prevencin de riesgos en el trabajo (gestin y auditoria), etc.
Ing. Mariuxi Paola Zea Ordoez - 36 -

Clases de Normas que existen.


Los documentos normativos pueden ser de diferentes tipos dependiendo del organismo que los haya elaborado. En la clasificacin tradicional de normas se distinguen entre: Las normas nacionales, son elaboradas, sometidas a un perodo de informacin pblica y sancionadas por un organismo reconocido legalmente para desarrollar actividades de normalizacin en un mbito nacional. En Espaa, estas normas son las normas UNE, aprobadas por AENOR, que es el organismo reconocido por la Administracin Pblica espaola para desarrollar la actividades de normalizacin. Normas regionales, son elaboradas en el marco de un organismo de normalizacin regional, normalmente de mbito continental, que agrupa a un determinado nmero de Organismos Nacionales de Normalizacin. Las ms conocidas, aunque no las nicas, son las normas europeas elaboradas por los Organismos Europeos de Normalizacin (CEN, CENELEC, ETSI), y preparadas con la participacin de representantes acreditados de todos los pases miembros. AENOR es el organismo nacional de normalizacin espaol, miembro de CEN y CENELEC y, por lo tanto, la organizacin a travs del cual se canalizan los intereses y la participacin de los agentes socioeconmicos de Espaa en la normalizacin europea. Normas Internacionales, tienen caractersticas similares a las normas regionales en cuanto a su elaboracin, pero se distinguen de ellas en que su mbito es mundial. Las ms representativas por su campo de actividad son las normas CEI/IEC (Comit Electrotcnico Internacional) para el rea elctrica, las UIT/IUT (Unin Internacional de Telecomunicaciones) para el sector de las telecomunicaciones y las normas ISO (Organizacin Internacional de Normalizacin) para el resto. AENOR, tambin es miembro de ISO y CEI y, por lo tanto, es la organizacin a travs de la cual se canalizan los intereses y la participacin de los agentes socioeconmicos de Espaa en la normalizacin Internacional.

Modelo de Normalizacin para Bases de Datos Relacionales.


La teora que vamos a describir fue diseada por Codd en 1970 y persigue reducir las anomalas en la gestin de una base de datos relacional. La Normalizacin es el proceso de transformacin de las complejas presentaciones de usuarios y los almacenamientos de datos en conjuntos estables de estructuras de datos de menor tamao. Adems de ser ms sencillas, tales estructuras son ms estables. Las estructuras de datos normalizados son ms fciles de mantener.

Ing. Mariuxi Paola Zea Ordoez

- 37 -

Al comenzar, ya sea con la presentacin del usuario o con el almacenamiento de datos diseados para un diccionario de datos, el analista normaliza una estructura de datos en tres (o cinco) pasos. Cada paso involucra un importante procedimiento de simplificacin de la estructura de datos. La relacin (estructura) derivada de la presentacin del usuario o del almacenamiento de datos, generalmente se encontrar no normalizada. Base no normalizada.- Inicialmente se parte de un diseo de relaciones que no cumple ninguna condicin de antemano. A la base formada por estas relaciones se la denomina base no normalizada. Los pasos o reglas de los cuales est compuesto la Normalizacin de datos se denominan Formas Normales y son:

Primera Forma Normal.Esta primera etapa del proceso incluye la eliminacin de grupos repetidos. Se dice que una base de datos relacional est en la primera forma normal cuando todas sus relaciones cumplen la propiedad de que cada tupla no contiene elementos que sean conjuntos. Es decir, cada dato de la relacin es elemental. En otras palabras podramos decir que una tabla est en primera forma normal si y solo si todos los atributos que la componen son atmicos. Ejemplos: Tabla Clientes: Cdula Nombres
0702801597 0706874654 0702589635 Ariana Camila Mara Isabel Juan Carlos

Apellidos
Lara Zea Maldonado Cruz Vega Alvarez

Nombre Madre
Andy Zea Mara Cruz Nancy Alvarez

Ocupacin M Telfono
Abogada Profesora Secretaria 915427, 912043 04431735 094598695, 912861

En la tabla anterior podemos observar, que el campo telfono contiene grupos de datos, en este caso la tabla clientes no se encuentra en primera forma normal. Tabla Uno: SN Status Ciudad PN Cantidad S1 20 Veracruz P1 300 S1 20 Veracruz P2 200 S1 20 Veracruz P3 400 S1 20 Veracruz P4 200 S2 10 Colima P1 300 S2 10 Colima P2 400 S3 10 Colima P3 200 S4 20 Veracruz P1 200 S4 20 Veracruz P2 100 Esta tabla contiene grupos de datos repetidos, por lo tanto tampoco est en primera forma normal Para corregir las tablas que no se encuentran en la primera forma normal, debemos:
Ing. Mariuxi Paola Zea Ordoez - 38 -

Crear una nueva entidad, que contendr todos los atributos de la entidad que no cumplen con la primera forma normal. Esta nueva entidad (tabla) tendr la relacin N, por lo tanto se debe aplicar la regla general y se pasar a la nueva entidad la llave principal de la tabla que tiene la relacin 1. Las tablas del ejemplo anterior quedarn, para el caso del primer ejemplo: Clientes Telfonos

La tabla Clientes tendr los siguientes campos: *Cdula, Nombres, Apellidos, Nombre Madre, OcupacinM. Cdula 0702801597 0706874654 0702589635 Nombres Ariana Camila Mara Isabel Juan Carlos Apellidos Lara Zea Maldonado Cruz Vega Alvarez Nombre Madre Andy Zea Mara Cruz Nancy Alvarez Ocupacin M Abogada Profesora Secretaria

La tabla telfonos contendr: Telfono, Cdula Cdula 0702801597 0702801597 0706874654 0702589635 0702589635 Telfonos 915427 912043 04431735 094598695 912861

En el caso del otro ejemplo tenemos: UNO SP

La tabla Uno estar conformada por: *SN, Status, Ciudad SN S1 S2 S4 Status Ciudad 20 Veracruz 10 Colima 20 Veracruz La tabla SP estar constituida por: PN, Cantidad, SN PN P1 P2 P3 P4 Cantidad 300 200 400 200
- 39 -

SN S1 S1 S1 S1

Ing. Mariuxi Paola Zea Ordoez

S2 P1 300 S2 P2 400 S3 P3 200 S4 P1 200 S4 P2 100 Observemos que pasa ahora que la tabla est normalizada, y en la tabla que no esta normalizada, al: Insertar S5 Eliminar el embarque S3/P3 Cambiar la ciudad de S1, de Veracruz a Tampico

Segunda Forma Normal.El segundo paso asegura que todos los atributos no-llave, o sin llave, sean completamente dependientes de la llave del criterio primario. Se dice que una base de datos relacional est en segunda forma normal cuando todas sus relaciones cumplen las siguientes propiedades: Esta en primera forma normal, y todo atributo de cada tupla depende fundamentalmente de cada clave posible. Es decir, cuando todos los datos de cada tupla se pueden identificar cmodamente. En otras palabras se podra decir que, una relacin est en la segunda forma normal (2FN) si y solo si esta en 1FN, y cada atributo que no es llave depende funcionalmente de la llave primaria completa. Ejemplos: Tabla Clientes: Cdula Nombres 0702801597 Ariana Camila 0706874654 Mara Isabel 0702589635 Juan Carlos Apellidos Lara Zea Maldonado Cruz Vega Alvarez Nombre Madre Andy Zea Mara Cruz Nancy Alvarez OcupacinM Abogada Profesora Secretaria

La tabla clientes est en primera forma normal. En esta tabla encontramos que la clave o llave principal completa es el campo cdula, y adicionalmente tenemos que los campos nombre madre y ocupacin no dependen funcionalmente de la llave primaria, por lo tanto la tabla no esta en segunda forma normal. Si verificamos y estudiamos estos dos campos veremos que, el campo ocupacin M corresponde al trabajo que desempea la madre del cliente y no el cliente en s, por lo tanto, en este caso depende del nombre de la madre Tabla SN: SN S1 S2 S4 Status 20 10 20 Ciudad Veracruz Colima Veracruz

Ing. Mariuxi Paola Zea Ordoez

- 40 -

La tabla SN est en primera forma normal. Para tener una idea ms clara de lo que podra se una dependencia funcional, observemos que sucede en esta tabla si: Queremos tener registrado que a la ciudad de Monterrey le corresponde un Status 50. Queremos borrar la entidad para S5 en la Relacin (Tabla) Uno Deseamos Cambiar el Status de Veracruz de 20 a 30. Para el ltimo caso, nos vemos en la obligacin de buscar todas los registros en cuyo campo ciudad est Veracruz, lo cual indica que el campo Status depende del campo ciudad y no de la llave principal de la tabla SN que es el campo SN. En este caso la tabla SN no est en segunda forma normal. En el caso de que una tabla no se encuentre en 2FN, tenemos que el siguiente paso sera eliminar todas las dependencias parciales y colocarlas en otra entidad (o tabla). Esta nueva entidad tendr la relacin 1, y la entidad anterior la relacin N. Las tablas del ejemplo quedara de la siguiente manera: Tabla clientes: Madre Cliente

En donde la tabla Madre tendr los siguientes campos: Nombre Madre, Ocupacin. (Definimos la llave principal a Nombre Madre). Nombre Madre Andy Zea Mara Cruz Nancy Alvarez OcupacinM Abogada Profesora Secretaria

La tabla Cliente tiene: Cdula, Nombres, Apellidos, Nombre Madre (como Llave ajena), Cdula 0702801597 0706874654 0702589635 Tabla SN: Ciudad SN Nombres Ariana Camila Mara Isabel Juan Carlos Apellidos Lara Zea Maldonado Cruz Vega Alvarez Nombre Madre Andy Zea Mara Cruz Nancy Alvarez

La nueva tabla ciudad contiene los siguientes campos: Ciudad y Status (El campo Ciudad pasa a ser llave principal)

Ing. Mariuxi Paola Zea Ordoez

- 41 -

Status 10 20

Ciudad Colima Veracruz La tabla SN queda as: SN y Ciudad (como llave ajena)

SN S1 S2 S4

Ciudad Veracruz Colima Veracruz

Tercera Forma Normal.El tercer paso elimina cualquier dependencia transitoria. Una dependencia transitoria es aquella en la cual sus atributos no-llave son dependientes de otros atributos no-llave. Decimos que una base de datos relacional est en tercera forma normal cuando todas sus tablas verifican las siguientes propiedades: Esta en segunda forma normal, todo atributo de cada tupla no es transitivamente dependiente de cada clave posible. Con ello se elimina el riesgo de que, al actualizar un atributo, no se actualice los que dependen transitivamente de l. Entonces, podramos decir, que una tabla est en la tercera forma normal si y slo s esta en 2FN y cada atributo que no sea llave (atributos no fundamentales) depende funcionalmente, en forma directa de la llave primaria (Independencia Mutua). Con ello se elimina el riesgo de que, al actualizar un atributo, no se actualice los que dependen transitivamente de l. Nota: Los dos ejemplos anteriores ya estn en tercera forma normal, por ello vamos a utilizar otro ejemplo: La tabla Embarque. CustNo. CustName E118 Jhon Smith A021 Jane Williams OrdNo. 030 130 090 290 800 810 OrDate 24/01/97 16/05/97 27/01/98 10/02/98 20/02/98 12/05/98 Shipto CA MI WA CA WA MI ShipDate CustZip 02/02/97 21/05/97 11030 29/01/98 15/02/98 21/05/98 27/05/98 96090

Como podemos observar en el ejemplo, la tabla contiene algunos atributos o campos que tienen longitud variable, es decir que estos atributos dependen transitivamente de la llave primaria de la tabla (en el ejemplo la llave primaria es OrdNo.).
Ing. Mariuxi Paola Zea Ordoez - 42 -

Para poner a la tabla en 3FN, hay que eliminar los atributos transitorios, esto lo podemos conseguir descomponiendo la tabla en dos: Clientes Embarque

Tabla clientes: Esta tabla contendr los siguientes atributos: CustNo., CustName, CustZip (en donde CustNo ser la llave principal). CustNo. E118 A021 CustName Jhon Smith Jane Williams CustZip 11030 96090

Tabla Embarque: Estar compuesta por: OrdNo, OrDate, Shipto, ShipDate, CustNo (como llave ajena) OrdNo. 030 130 090 290 800 810 OrDate 24/01/97 16/05/97 27/01/98 10/02/98 20/02/98 12/05/98 Shipto CA MI WA CA WA MI ShipDate 02/02/97 21/05/97 29/01/98 15/02/98 21/05/98 27/05/98 CustNo. E118 E118 A021 A021 A021 A021

Como podemos observar, la nueva tabla contendr los atributos transitorios, y tendr la relacin 1, la tabla de donde provienen estos atributos tendr la relacin N.

Cuarta Forma Normal.El cuarto paso elimina dependencias de valores mltiples. Las dependencias de valores mltiples conducen a anomalas de modificacin. Se dice que una base de datos est en 4FN slo y solo si est en 3FN, y cada uno de los atributos de la tupla no poseen dependencias de valores mltiples con la llave principal. Vamos a considerar el siguiente ejemplo: Tenemos Estudiantes, y supongamos que los estudiantes pueden inscribirse en varias especialidades y de la misma forma participar en distintas actividades. Para ello hemos considerado establecer las siguiente entidad, atributos. En donde la nica clave es la combinacin de los atributos (SID, Especialidad, Actividad). Tabla Estudiantes: SID Especialidad 100 Msica 100 Contabilidad 100 Msica 100 Contabilidad
Ing. Mariuxi Paola Zea Ordoez

Actividad Natacin Natacin Tenis Tenis


- 43 -

150

Matemticas

Carrera

En los datos de la tabla tenemos que, la estudiante 100 tiene su especialidad en Msica y Contabilidad y tambin participa en Natacin y Tenis. El estudiante 150 slo tiene especialidad en Matemticas y participa en Carrera. Cul es la relacin entre SID y Especialidad? No es una dependencia funcional, porque los estudiantes pueden tener distintas especialidades. Un valor nico de SID puede poseer muchos valores de Especialidad. Esto tambin se aplica a la relacin entre SID y Actividad. Podemos observar adicionalmente en la tabla de ejemplo que existe redundancia en los datos. (por eso se dijo anteriormente que puede conllevar a errores o anomalas en la modificacin). La estudiante 100 tiene 4 registros, cada uno de los cuales muestra una de sus especialidades junto con una de sus actividades. Si los datos se almacenaran con menos hileras: si hubiera slo dos tuplas, uno para msica y natacin, y otro para contabilidad y tenis, las implicaciones seran engaosas. Parecera que la Estudiante 100 slo nad cuando tena msica como especialidad y jug tenis slo cuando tena Contabilidad como especialidad, esa interpretacin no es lgica. Sus especialidades y sus actividades son independientes entre s. Para prevenir tales engaosas conclusiones se almacenan todas las combinaciones de especialidades y actividades. Entonces podramos decir que, existe una dependencia de valores mltiples cuando una afinidad (tabla) tiene al menos tres atributos, dos de los cuales poseen valores mltiples y sus valores dependen slo del tercer atributo. En otras palabras en la afinidad R (A,B,C) existe una dependencia de valores mltiples si A determina valores mltiples de B, A determina valores mltiples de C, y B y C son independientes entre s. Para evitar tales anomalas, se deben eliminar las dependencias de valores mltiples. Esto se hace construyendo dos afinidades (tablas), donde cada una almacena datos para solamente uno de los atributos de valores mltiples. Ejemplo: Tabla Especialidad: SID Especialidad 100 Msica 100 Contabilidad 150 Matemticas Tabla Actividad: SID Actividad 100 Esqu 100 Natacin 100 Tenis 150 Carrera Nota: Observe, que ahora la tabla Actividad contiene un nuevo registro que es, la estudiante 100 hace Esqu. Y este registro no interviene o no causa anomalas en las modificaciones, ni redundancias.

Ing. Mariuxi Paola Zea Ordoez

- 44 -

Quinta Forma Normal.La Quinta forma normal se refiere a dependencia que son extraas. Tiene que ver con afinidades (tablas) que pueden dividirse en subafinidades (como se ha venido haciendo), pero que no pueden reconstruirse. La condicin bajo la cual surge esta situacin, no tiene un significado intuitivo preciso. No se sabe cuales son las consecuencias de tales dependencias, incluso si tiene consecuencias prcticas. Conclusin: Cada una de las formas normales que se han analizado, fueron identificadas por investigadores que encontraron anomalas con algunas afinidades que estaban en una forma normal inferior: la deteccin de anomalas de modificacin con afinidades en la segunda forma normal condujeron a la definicin de la tercera forma normal. Aunque cada forma normal resolva algunos de los problemas identificados, con la forma normal anterior; nadie poda saber cules problemas todava no haban sido identificadas. Con cada paso, se avanzaba a una definicin estructurada de las bases de datos, nadie poda garantizar que no se encontraran ms anomalas. Existe una forma normal que garantiza que no habr anomalas de ningn tipo. Cuando se ponen las afinidades en esta forma, se sabe que no pueden ocurrir ni siquiera las extraas anomalas asociadas con la quinta forma normal, esta forma normal se denomina Dominio / Clave.

Historia de SQL
La historia de lenguaje de SQL est ntimamente interrelacionada con el desarrollo de la base de datos relacional fue desarrollado originalmente por el Dr. Ef T. Codd quien era un investigador de IBM. En 1970 el Dr. Codd public un articulo titulado "Un modelo relacional de datos para grandes bancos de datos compartidos". Que esquematizaba una teora matemtica de cmo los datos podan ser manipulados y almacenados utilizando una teora tabular. El articulo desencaden una racha de investigaciones basado en los datos incluyendo importantes proyectos de investigacin de IBM el objetivo de este proyecto denominado SYSTEM/R fue demostrar la operatibilidad del concepto relacional y proporcionar alguna experiencia a la implementacin efectiva de una DBMS relacional, el trabajo comenz en 1978 en Sta. Teresa de IBM en San Jos California. En 1974-75 la primera fase del proyecto produjo un mnimo prototipo de un DBMS relacional a ms de este prototipo el proyecto inclua trabajos sobre lenguaje de consulta, unos de estos lenguajes fue denominado SEQUEL que es un acrnimo de STRUCTURE ENGLISH QUERY LANGUAJE. En 1976-77 este prototipo fue reescrito desde principio, la nueva implementacin soportaba consultas multitablas y permita que varios usuarios compartieran el acceso a los datos.

Ing. Mariuxi Paola Zea Ordoez

- 45 -

En 1978-79 IBM realiz instalaciones para clientes para evaluacin, esta primera instalaciones de usuarios proporcionaron cierta experiencia efectiva en el uso de SYSTEM/R y de un lenguaje de base de datos en que haba sido renombrado como SQL. En 1979 el proyecto de investigacin lleg al final e IBM concluy que esta base de datos no solamente era factible sino que poda ser una base de datos comercial y til.

Primeros Productos Relacionales


La publicidad referente al SYSTEM/R atrajo la atencin de un grupo de ingenieros en Mom la Park California que decidi que las investigaciones de IBM presagiaban un mercado comercial para la base de datos relacional y en 1977 formaron una compaa llamada RELATIONAL SOFTWARE INC. para construir un DBMS basado en SQL, el producto de nombre ORACLE apareci en 1979 y se convirti en el primer DBMS comercialmente disponible y se ejecutaba en minicomputadores.

SQL
Es una herramienta para organizar gestionar y recuperar datos almacenados en una base de datos informtica. El nombre SQL es una abreviatura de Structured Query Languaje que significa Lenguaje de Estructura de consulta. Como su nombre lo indica SQL es un lenguaje que se puede utilizar para interaccionar con una base de datos. En efecto SQL trabaja con un tipo especifico de base de datos llamada Base de Datos Relacionada. El sistema de Gestin de Base de datos. DBMS El nombre SQL es realmente y en cierta medida inapropiado ya que es mucho ms que una herramienta de Peticin consulta aunque ese fue su propsito original ya que el recuperar datos sigue siendo SQL una de sus funciones ms importantes. SQL se utiliza para controlar todas la funciones que Base de proporciona a sus usuarios incluyendo: Datos DEFINICION DE DATOS.- Es decir que permite a los usuarios definir la estructura y la organizacin de los datos almacenados y las relaciones entre ellos. RECUPERACION DE DATOS.- Permite a un usuario o a un programa de aplicacin recuperar los datos almacenados en la base de datos y utilizarlos. MANIPULACION DE DATOS.- Permite a un usuario o a un programa de aplicacin actualizar la base de datos aadiendo nuevos datos, suprimiendo datos antiguos y modificando datos previamente almacenado. CONTROL DE ACCESO.- SQL puede ser utilizado para restringir la capacidad de un usuario para recuperar aadir y modificar datos protegiendo asilos datos almacenados frente a accesos no autorizados. CONPARTICION DE DATOS.- Se utiliza para coordinar la comparticin de datos por parte de usuarios concurrentes asegurando que no interfieran uno con otro.
Datos

DBMS

Ing. Mariuxi Paola Zea Ordoez

- 46 -

INTEGRIDAD DE DATOS.- SQL define restricciones de integridad en la base de datos protegindola. contra corrupciones de integridad ocasionadas por actualizaciones indebidas o fallos inconsistentes. Por tanto SQL es un lenguaje completo de control, interactualizacin con sistemas de gestin de la base de datos. SQL no es realmente un lenguaje informtico completo tal como Cobol, Fortran o C ya que no dispone de las sentencias GO TO para bifurcaciones ni de las sentencia DO o FOR para interacciones en vez de ello SQL es un sublenguaje de base de datos consistentes en mas de 30 sentencias especializadas para tareas de gestin de base de datos. Estas sentencias se incorporaran a otros lenguajes como Cobol, Fortran o C para extender ese lenguaje y permitir el acceso a la base de datos. Actualmente SQL se ha convertido en el lenguaje de base de datos estndar y aproximadamente 100 productos de gestin de base de datos soportan SQL. SQL no es un lenguaje estructurado en vez de ello sus sentencias se asemejan a frases en ingles completadas con palabras de relleno que no aaden nada al significado de la frase pero que hace que se lea mas naturalmente, es un potente lenguaje y relativamente fcil de aprender:

El Papel De SQL
SQL no es un producto autnomo, tampoco es en si mismo un sistema de gestin de base de datos. SQL es parte integral de el Sistema manejador de Base de Datos, es decir un lenguaje o una herramienta que pueden comunicarse con el DBMS. La mquina de base de datos es el corazn del DBMS responsable de estructurar, almacenar y recuperar realmente los datos en el disco. Acepta peticiones SQL de otras consulta interactivas desde los programas escritos por el usuario e incluso de otros sistemas informticos. SQL juega muchos papeles diferentes: SQL COMO LENGUAJE DE CONSULTAS INTERACTIVAS.- Los usuarios escriben ordenes SQL dentro de un programa SQL interactivo para recuperar datos y mostrarlos a la pantalla proporcionando una herramienta fcil de utilizar para realizar las consultas. SQL COMO UN LENGUAJE DE PROGRAMACION DE BASE DE DATOS.Las programadores insertan ordenes SQL en sus programas de aplicacin para acceder a los datos de la base tanto los programas escritos por el usuario como los programas de utilidades de la base de datos tales como los escritores de informes y las herramientas de entradas de datos utiliza esta tcnica para el acceso de la base de datos. SQL COMO LENGUAJE ADMINISTRADOR DE LA BASE DE DATOS.- El administrador de base de datos responsable de gestionar en una minicomputadora o un maxicomputador utiliza SQL para definir la estructura de la base de datos y para controlar el acceso de los datos almacenados. SQL ES UN LENGUAJE DE CLIENTE SERVIDOR.- Los programas de computador personal utiliza los SQL para comunicarse sobre una red de rea local con servidores de base de datos que almacena los datos compartidos.

Ing. Mariuxi Paola Zea Ordoez

- 47 -

SQL ES UN LENGUAJE DE BASE DE DATOS DISTRIBUIDAS.- Los sistemas de gestin de la Base de datos distribuida utiliza SQL para ayudar a distribuir datos a travs de muchos sistemas informticos conectados. Se puede conectar a varios servidores. SQL COMO LENGUAJE DE PASARELA DE LA BASE DE DATOS.- En una red informtica con una mezcla de diferentes productos DBMS se conecta con otro producto. SQL es una herramienta potente y til para enlazar Personas y sistemas informticos a los datos almacenados en una base de datos relacional.

Caractersticas Y Beneficios De SQL


SQL es a la vez un lenguaje fcil de aprender y un lenguaje completo para gestionar datos. Entre las principales colocamos: 1. Independencia de Vendedores. 2. Portabilidad a travs del sistema 3. Los estndares SQL 4. EL apoyo de IBM 5. Fundamento Relacional 6. Estructura de alto nivel en Ingles. Estas son una de las razones por lo que SQL se ha convertido como la herramienta estndar para gestionar datos en minicomputadoras, computadoras personales o maxicomputadoras. 1. INDEPENDENCIA DE VENDEDORES.- SQL es ofertado por los principales vendedores de DBMS y ningn nuevo producto de base de datos puede tener xito sin el soporte de SQL. Una base de datos basada en SQL y los programas que la utilizan transferirse de un DBMS a DBMS de otro vendedor con mnimo esfuerzo de conversacin y poco reentrenamiento de personal. 2. POTABILIDAD A TRAVES DEL SISTEMA INFORMATICO.- Las aplicaciones basadas en SQL que comienzan en sistemas monousuarios pueden ser transportados a sistemas mayores de minicomputadores y maxicomputadores cuando crecen los datos procedentes de la base de datos corporativa pueden ser extrados y remitidos a base de datos departamentales o personales Y finalmente los computadores personales pueden ser utilizados para construir prototipos de aplicaciones basados en SQL antes de transferir a un sistema multiusuario. 3. ESTNDARES SQL.- El ANSI o American National Standard Institute y la 150 International Estndar Organization. Han publicado conjuntamente un estndar oficial para SQL tambin es un estndar del US federal information procesing estndar o tambin conocido como fits lo que lo convierte en un requerimiento esencial para los grandes contratos informticos. En Europa x/open que es un standard para un entorno de aplicacin por cable basado en UNIX, han aadido a SQL como el standard para accesar a la base de datos. La OPEN SOFTWARE FUNDATION (0SF). Que sea un grupo de vendedores de UNIX. Tiene a SQL como un estndar de acceso de base de datos. Estos estndares sirven como sello oficial de aplicacin. 4. APOYO DE IBM.- SQL fue inventado originalmente por investigadores de IBM y desde entonces se convirti en su producto estratgico. SQL es un componente esencial del SYSTEM
Ing. Mariuxi Paola Zea Ordoez - 48 -

APLICATION ARCHITECTURE (SAA), la marca de IBM para la compatibilidad & sus diversos lneas de productos. El soporte de SQL est disponible a todos sus cuatro lneas o familias de sistemas que estn incluidos en SAA como: - los computadores personales - los sistemas & media rango AS/400 y los maxicomputadores que ejecutan los sistemas operativos MVS y VM. 5. FUNDAMENTO RELACIONAL.- SQL es un lenguaje de base de datos que se ha popularizado con este modelo. La estructura tabular de filas y columnas de una base de datos relacional es intuitiva para los usuarios y hace que el lenguaje de SQL se mantenga simple y fcil de entender.
7.

ESTRUCTURA DE ALTO NIVEL EN INGLES.- La sentencia de lenguaje son fases sencillas en ingls que lo hace fcil de entender.

SQL Y La Conexin En Red


La creciente popularidad de conexin de computadores por red durante los aos anteriores tuvo un fuerte impacto en la gestin de base de datos y ha dado a SQL una nueva prominencia. Conforme las redes pasan ha ser ms comunes las aplicaciones se han convertido tradicionalmente en un Minicomputador o en un maxicomputador central se estn transfiriendo a redes de rea local con estaciones de trabajo de sobremesa y servidores. En estas redes SQL juega un papel esencial como vinculo entre una aplicacin que corre en una estacin de trabajo y el DBMS que gestiona los datos comparativos en el servidor.

Arquitectura Centralizada
Esta arquitectura es la mas tradicional y es utilizada por DB2 (manejador de datos) o SQL/DS y las bases de datos sobre minicomputadores tales como Oracle o Ingres cuya arquitectura es:

Ing. Mariuxi Paola Zea Ordoez

- 49 -

Termina l

Teclas
Aplicacin

DBM S

Base de Datos

Caracteres (Datos)

En esta arquitectura el DBMS y los datos fsicos residen ambos en un sistema maxicomputador central junto con el programa de aplicacin que acepta entradas desde el terminal de usuarios y muestra los datos en la pantalla del usuario. Ejemplo: Supongamos que el usuario teclea una consulta explora la base de datos para acceder a cada uno de los registros de datos del disco, calcula el promedio y muestra los resultados en la pantalla del terminal. Tanto el procesamiento de la aplicacin como el procesamiento de la base de datos se produce en el computador central y como el sistema es compartido por muchos usuarios, cada usuario experimenta una degradacin del rendimiento cuando el sistema tiene una carga fuerte.

Arquitectura de Servidor de Archivos


La introduccin de las computadoras personales y las redes de rea local condujo al desarrollo de la arquitectura servidora de archivos. En esta arquitectura una aplicacin que se ejecuta en un computador personal puede acceder de forma transparente a datos localizados en un servidor de archivos que almacena los archivos compartidos. Cuando una aplicacin en el computador personal solicita datos de un archivo compartido, el software de la red recupera automticamente el bloque solicitado del archivo en el servidor. Varias bases de datos de entre las que se incluye DBASE III, RBASE y PARADOX, soportan esta estrategia servidora de archivos, donde cada computador personal ejecuta su propia copia del software DBMS. Esta arquitectura es la siguiente:
PC

Aplicaci n

DBMS Peticin de E/S de disco

Software de red

Base de Dato s

Bloques de disco (Datos)

Para consultas tpicas, estas arquitecturas proporcionan facilidad ya que el usuario dispone de la potencia completa de un computador personal, ejecutando su propia copia del DBMS. Sin embargo, considerando la consulta que requiere una exploracin secuencial de la base de datos, el DBMS solicita respectivamente bloques de datos de la base de datos, la cual est localizada fsicamente a
Ing. Mariuxi Paola Zea Ordoez - 50 -

travs de la red, en el servidor de archivos, eventualmente todos los bloques de archivos estn solicitados y enviados a travs de la red. Obviamente esta arquitectura provee un trfico fuerte de red y un bajo rendimiento para consultas de este tipo.

Arquitectura Cliente Servidor


En los noventa, una nueva clase de computacin conquist a la empresa de hoy y el futuro en todas las industrias, pequeas o grandes. La tecnologa cliente/servidor de proceso distribuido. Debido a que la tecnologa cliente/servidor integra islas de tecnologa existentes (mainframes, minis, PCs, Macs, Estaciones de Trabajo, etc.) para darles ms utilidad y proporcionar a la organizacin informacin precisa a nivel personal, departamental, empresarial, local y global. En esta arquitectura los computadores personales estn combinados en una red de rea local junto con un servidor de base de datos que almacena las base de datos compartidas y tiene la siguiente arquitectura
PC

DBMS Aplicacin Peticin de SQL

Base de Datos

Datos

Se denomina arquitectura cliente, donde el cliente es la mquina solicitante (computador personal, estacin de trabajo) y el servidor es la mquina proveedora. El cliente suministra la interfase del usuario y realiza una o la mayor parte del procesamiento de aplicacin, el servidor mantiene las bases de datos y procesa las solicitudes del cliente para extraer o actualizar los datos de la base correspondiente. El servidor adems controla la integridad y seguridad de la aplicacin. (Advirtase la diferencia con procesamiento centralizado, donde los terminales no inteligentes, no procesamiento, se conectan a un mini o un mainframe). La arquitectura cliente servidor reduce el trfico de red y divide la carga de trabajo de la base de datos. Las funciones de intensiva relacin con el usuario tales como el manejo de la entrada y visualizacin de los datos se concentran en el PC; las funciones intensivas en el proceso de datos tales como la entrada y salida de archivos, se concentran en el servidor de la base de datos, as mismo como el procedimiento de consulta en el servidor que es lo mas importante en el grfico.

Ing. Mariuxi Paola Zea Ordoez

- 51 -

La arquitectura cliente/servidor a recibido gran atencin con la introduccin a las redes PC basadas en 0S2, SQL SERVER, servidor ORACLE para OS/2, DBASE IV, DB2, Delphi, PowerBuilder, SQL Microsoft, FoxPro y SQL BASE. Las funciones del DBMS estn divididas en dos partes Los frontales.- tambin denominados FRONT END de base de datos, deben contener aplicaciones tales como herramientas de consultas interactivas, escritores de informes y de programas de aplicacin, Herramientas Case, Lenguajes de 4ta. Generacin (4GLs como Cobol, Pascal, etc.), Usuarios finales, estos se ejecutan en el computador personal. La Maquina de Soporte.- o BACK END de la base de datos que almacena y gestiona los datos, se ejecuta en el servidor, es en esencia el DBMS, sus componentes y algunos otros modelos ms, aqu se realiza las siguientes funciones: compactacin de memoria, Tcnicas de acceso, Seguridad, Operaciones Directas. SQL es un lenguaje de dase de datos estndar y permite la comunicacin entre las herramientas frontales y la mquina de soporte que constituye esta arquitectura. Adems, SQL proporciona interfaces bien definidos entre los problemas frontales y de soporte, comunicando las peticiones de acceso a la base de datos de una manera diferente. Consideramos una vez ms la consulta que solicita el nmero medio de pedidos, en la arquitectura cliente servidor, la consulta, viaja a travs de la red hasta el servidor de base de datos como una peticin SQL la mquina de base de datos enva de vuelta a travs de la red una nica contestacin en la peticin inicial y la aplicacin frontal la muestra en la pantalla del PC.

Principales Comandos SQL


CREATE TABLE .- Crea una tabla que tiene los campos especificados.
Sintaxis CREATE TABLE NombreTabla1 (NombreCampo1 TipoCampo [(nAnchoCampo [, nPrecisin])] [NULL | NOT NULL] [, NombreCampo2 ...] ) Argumentos NombreTabla1 Especifica el nombre de la tabla que desea crear. (NombreCampo1 TipoCampo [(nAnchoCampo [, nPrecisin])] Especifica el nombre, el tipo, el ancho y la precisin del campo (el nmero de lugares decimales), respectivamente. Una tabla puede contener hasta 255 campos (250 campos dependiendo del DBMS). Si hay uno o ms campos que permiten valores nulos, el lmite se reduce a 254 campos.
Ing. Mariuxi Paola Zea Ordoez - 52 -

TipoCampo es una sola letra que indica el tipo de datos del campo (dependiendo del DBMS, puede variar, algunos podran necesitar que se escribiera el nombre completo del tipo de dato). Algunos tipos de datos de campo necesitan que especifique nAnchoCampo o nPrecisin, o ambos. La siguiente tabla enumera los valores para TipoCampo y si se necesita indicar nAnchoCampo y nPrecisin (la tabla hace referencia a algunos tipos de datos de Visual FoxPro). Tipo C D T N F I L nAncho n n n nPrecisin d d Descripcin Campo de caracteres de ancho n Date DateTime Campo numrico de ancho n con d decimales Numrico flotante de ancho n con d decimales Integer Logical

nAnchoCampo y nPrecisin se pasan por alto para los tipos D, T, I, L. nPrecision tiene como valor predeterminado cero (ningn lugar para decimales) si no se incluye nPrecision para los tipos N o F. NULL Admite valores nulos en el campo. Si uno o ms campos pueden contener valores nulos, el nmero mximo de campos que puede contener la tabla disminuye en uno, de 255 a 254. NOT NULL Impide valores nulos en el campo. Ejemplo de CREATE TABLE - SQL (Comando) En estos ejemplos, se utiliza el comando CREATE TABLE para crear las tablas llamadas (Salesman, Customer, y Orders). * Crear una tabla llamada salesman con dos campos CREATE TABLE salesman ; (SalesID c(6) , SaleName C(20)) * Crear una tabla customer con 4 campos, en donde se incluye el campo SalesID de la tabla Salesman CREATE TABLE customer ; (SalesID c(6), ; CustId i , ; CustName c(20) , ; SalesBranch c(3)) * Crear una tabla Orders con 4 campos en donde se incluye el campo CustID de la tabla customer CREATE TABLE orders ; (OrderId i , ; CustId i, ; OrderAmt n(4), ; OrderQty i )

Ing. Mariuxi Paola Zea Ordoez

- 53 -

Nota: Todas las sentencias SQL deben ser escritas en una sola lnea, por motivos de apreciacin o de orden, se puede dividir la sentencia en varias lneas, siempre y cuando todas las lneas lleven al final el punto y coma (;) excepto la ltima lnea de la sentencia. Este punto y coma indica al DBMS, que no ejecute an el comando debido a que contina en la siguiente lnea.

SELECT .- Formato Bsico.- Recupera datos de una o ms tablas.


Sintaxis SELECT [ALL | DISTINCT] [Alias.] Elemento_Seleccin [AS Nombre_Columna] [, [Alias.] Elemento_Seleccin [AS Nombre_Columna] ...] FROM [NombreBaseDatos!]Tabla [Local_Alias] Argumentos SELECT Especifica los campos, constantes y expresiones que se mostrarn en el resultado de la consulta. ALL Forma predeterminada, se muestran todas la filas del resultado de la consulta. DISTINCT Excluye duplicados de cualquier fila del resultado de la consulta. Nota Puede utilizar DISTINCT nicamente una vez por clusula SELECT. Alias. Califica nombres de elementos coincidentes. Cada elemento que especifique con Elemento_Seleccin genera una columna de los resultados de la consulta. Si dos o ms elementos tienen el mismo nombre, incluya el alias de la tabla y un punto antes del nombre del elemento para impedir la duplicacin de las columnas. Elemento_Seleccin especifica un elemento a incluir en el resultado de la consulta. Un elemento puede ser uno de los siguientes: El nombre de un campo de una tabla de la clusula FROM. Una constante especificando que el mismo valor constante ha de aparecer en cada fila del resultado de la consulta. Una expresin que puede ser el nombre de una funcin definida por el usuario (FDU). AS Nombre_Columna Especifica el ttulo de una columna en el resultado de la consulta. Esta opcin resulta muy til cuando Elemento_Seleccin es una expresin o contiene una funcin de campo y desea dar un nombre significativo a la columna. Nombre_Columna puede ser una expresin pero no puede contener caracteres (por ejemplo, espacios) que no estn permitidos para nombres de campos de tablas. FROM Enumera las tablas que contienen los datos que obtuvo la consulta. Ejemplos de SELECT - SQL (Comando)

Ing. Mariuxi Paola Zea Ordoez

- 54 -

Los siguientes ejemplos ilustran la utilizacin de las funciones definidas por el usuario con SELECT - SQL: SELECT * FROM salesman Dentro de este ejemplo el asterisco (*) representa a todos los campos de los cuales est compuesto una tabla, por lo tanto muestra todos los campos de la tabla salesman permitiendo ver la informacin que estos contienen. SELECT customer.company ; FROM customer En el Ejemplo se muestran los nombres de todas las compaas en customer (un campo de una tabla). SELECT DISTINCT customer.company ; FROM customer En este Ejemplo se muestran los nombres de todas las compaas en customer, sin que existan registros duplicados. SELECT UPPER(CustName) AS NameList, CustID ; FROM customer El ejemplo muestra los nombres de customer en maysculas y llama NameList a la columna de salida. UPPER es una funcin de Visual Fox Pro, as mismo podemos utilizar cualquier tipo de funcin dentro del comando SELECT. SELECT cedula, nombre, Suel+(Com*10/100) AS SueldoNeto FROM empleados Visualizar los campos nombre, cdula y una columna que contendr la suma del campo sueldo y el 10 % de las comisiones de la tabla empleados. SELECT SUM(OrderAmt) AS TotAmt, AVG(OrderQyt) AS ProQyt, ; COUNT(*) AS CantOrd, MAX(OrderAmt) AS MaxAmt, MIN(OrderAmt) AS MinAmt FROM Orders El ejemplo utiliza las funciones estadsticas SUM (Sumar una columna), AVG (Obtener el promedio de una columna), MAX (Obtener el valor mximo de una columna), MIN (Obtener el valor mnimo de una columna), COUNT (La cantidad de registros que posee esa columna) para presentar la informacin de la tabla orders ALTER TABLE - SQL (Comando).- Modifica mediante programa la estructura de una tabla. Sintaxis ALTER TABLE NombreTabla1 ADD | ALTER [COLUMN] NombreCampo1 TipoCampo [(nAnchoCampo [, nPrecisin])] [NULL | NOT NULL]
Ing. Mariuxi Paola Zea Ordoez - 55 -

O bien ALTER TABLE NombreTabla1 [DROP [COLUMN] NombreCampo3] [RENAME COLUMN NombreCampo4 TO NombreCampo5] Argumentos NombreTabla1 Especifica el nombre de la tabla cuya estructura se desea modificar. ADD [COLUMN] NombreCampo1 Especifica el nombre del campo que se desea agregar. ALTER [COLUMN] NombreCampo1 modificar. Especifica el nombre de un campo existente que se desea

TipoCampo [(nAnchoCampo [, nPrecisin])] Especifica el tipo de campo, el ancho de campo y la precisin (nmero de lugares decimales) de un campo nuevo o modificado. NULL | NOT NULL Admite valores nulos en el campo. Si uno o ms campos pueden contener valores nulos, el nmero mximo de campos que puede contener la tabla se reduce en uno, de 255 a 254. DROP [COLUMN] NombreCampo3 Especifica un campo que se desea eliminar de la tabla. RENAME COLUMN NombreCampo4 TO NombreCampo5 Permite cambiar el nombre de un campo de la tabla. NombreCampo4 especifica el campo cuyo nombre ha sido cambiado. NombreCampo5 especifica el nombre nuevo para este campo. Precaucin: Tenga cuidado al cambiar el nombre de los campos de la tabla; es posible que las expresiones de ndice, las reglas de validacin, los comandos, las funciones, etc. hagan referencia a los nombres originales de los campos. Comentarios ALTER TABLE puede regenerar la tabla creando un nuevo encabezado de tabla y anexando registros en este encabezado. Por ejemplo, modificar el tipo o el ancho de un campo pueden originar la regeneracin de una tabla. Ejemplos de ALTER TABLE - SQL (Comando) ALTER TABLE customer ; ADD COLUMN fax2 c(20) NOT NULL Este ejemplo agrega una nueva columna (campo) a la tabla customer, que se denomina fax2, va a ser de tipo carcter con un tamao de 20, no aceptar valores nulos. ALTER TABLE customer ALTER COLUMN cust_id c(11) ;

Ing. Mariuxi Paola Zea Ordoez

- 56 -

Este ejemplo modifica el tamao del campo cust_id que se encuentra en la tabla customer ALTER TABLE customer; ALTER COLUMN fax2 NULL; ALTER COLUMN fax2 c(15). En el ejmplo se est cambiando 2 caractersticas del campo fax2, primero modifica este campo para que acepte valores nulos, y despus cambia el tamao del mismo campo, note que para cada caracterstica de un campo necesita una Clusula ALTER COLUMN. ALTER TABLE customer; RENAME COLUMN fax2 TO telfax En este ejemplo, estamos modificando el nombre del campo de fax2 a telfax ALTER TABLE customer ; DROP COLUMN telfax Con esta sentencia estamos borrando el campo telfax de la tabla customer.

INSERT - SQL (Comando) .- Aade un registro al final de una tabla que contiene los valores de
campo especificados. Sintaxis INSERT INTO nombre_dbf [(fnombre1 [, fnombre2, ...])] VALUES (eExpresin1 [, eExpresin2, ...]) Argumentos INSERT INTO nombre_dbf Especifica el nombre de la tabla a la que se aadir un registro. nombre_dbf puede incluir una ruta de acceso y puede ser una expresin de nombre. [(fnombre1 [, fnombre2 [, ...]])] Especifica los nombres de los campos del nuevo registro donde se insertan los valores. VALUES (eExpresin1 [, eExpresin2 [, ...]]) Especifica los valores de campo que se insertan en el nuevo registro. Si omite los nombres de los campos, debe especificar los valores de campo en el orden definido por la estructura de la tabla. Ejemplos de INSERT - SQL (Comando) En los siguientes ejemplos se agrega un registro en la tabla employee y salesman. INSERT INTO employee (emp_no, fname, lname, officeno) ; VALUES (3022, "John", "Smith", 2101) INSERT INTO salesman VALUES (123, Jane With B.)
Ing. Mariuxi Paola Zea Ordoez - 57 -

Nota: Con la sentencia INSERT INTO, se puede agregar un registro a la vez, cabe recalcar que al momento de colocar los valores en la clusula VALUES, debemos seguir las reglas de acuerdo al tipo de dato que estemos utilizando, por ejemplo: si el campo es de tipo carcter debemos colocar comillas o apostrofes alrededor del dato, as: texto, si el dato es de tipo numrico simplemento colocamos la informacin: 93, si el dato es de tipo lgico podr contener dos valores: verdadero (.V.) o falso (.F.), si es de tipo Fecha o FechaHora, este dato debe ir entre llaves: {01/05/99}. Estas reglas pueden varias de acuerdo al DBMS que estemos utilizando.

UPDATE - SQL (Comando).- Actualiza registros de una tabla con nuevos valores.
Sintaxis UPDATE [NombreBaseDatos1!]NombreTabla1 SET Nombre_Columna1 = eExpresin1 [, Nombre_Columna2 = eExpresin2 ...] WHERE CondicinFiltro1 [AND | OR CondicinFiltro2 ...]] Argumentos [NombreBaseDatos1!]NombreTabla1 valores nuevos. Especifica la tabla en la que se actualizan registros con

NombreBaseDatos1! Especifica el nombre de base de datos no actual en la que se encuentra la tabla. Es necesario incluir el nombre de la base de datos en la que se encuentra la tabla si no es la base de datos actual. Incluya el delimitador signo de exclamacin (!) despus del nombre de base de datos y antes del nombre de tabla. SET Nombre_Columna1 = eExpresin1 [, Nombre_Columna2 = eExpresin2] Especifica qu columnas estn actualizadas y sus nuevos valores. Si se omite la clusula WHERE, se actualizar cada fila de la columna con el mismo valor. WHERE CondicinFiltro1 [AND | OR CondicinFiltro2 ...]] actualizan con valores nuevos. Especifica los registros que se

CondicinFiltro Especifica los criterios que deben satisfacer los registros para actualizarse con nuevos valores. Puede incluir tantas condiciones de filtro como desee, conectndolas con el operador AND o con OR. Tambin puede emplear el operador NOT para invertir el valor de una expresin lgica, o utilizar EMPTY( ) para comprobar si hay campos vacos. Comentarios UPDATE - SQL slo puede actualizar registros en una sola tabla. Ejemplo de UPDATE - SQL (Comando) Observacin: Despus de ejecutar cada uno de las sentencias UPDATE, consulte la tabla con el comando SELECT para comprobar los cambios que se realizan en la misma.

Ing. Mariuxi Paola Zea Ordoez

- 58 -

UPDATE orders; SET OrderAmt = 100 Este ejemplo modifica el valor de la columna OrderAmt (todos los registros) a 100 dentor de la tabla orders UPDATE orders; SET OrderAmt = 80, ; OrderQty = 20 Con esta sentencia modificamos el valor de las columnas OrderAmt y OrderQty a 80 y 20 respectivamente, en todos los registros de la tabla orders. UPDATE orders; SET OrderAmt = 90; WHERE CustID = 123 El comando del ejemplo anterior, modificar en la tabla orders, el valor de la columna OrderAmt, pero slo en aquellos registros cuyo campo CustID contiene el valor de 123. UPDATE orders; SET OrderQty=OrderAmt*2; WHERE OrderID = 146 OR CustID = 143 El ejemplo anterior modificar la columna OrderQty colocando el valor de OrderAmt por 2, en aquellos registros cuyo campo Order ID es igual a 146 o si el campo CustId es igual a 143.

DELETE - SQL (Comando) .- Marca registros para eliminarlos (en otros DBMS se borra
directamente). Sintaxis DELETE FROM [NombreBaseDatos!]NombreTabla [WHERE CondicinFiltro1 [AND | OR CondicinFiltro2 ...]] Argumentos FROM [NombreBaseDatos!]NombreTabla eliminar. Especifica la tabla en la que se marcan registros para

NombreBaseDatos! especifica el nombre de una base de datos. Incluya el delimitador signo de exclamacin (!) despus del nombre de base de datos y antes del nombre de tabla. WHERE CondicinFiltro1 [AND | OR CondicinFiltro2 ...] marca algunos registros para eliminar. Especifica que Visual FoxPro slo

CondicinFiltro especifica los criterios que deben satisfacer los registros para marcarlos para eliminacin. Puede incluir tantas condiciones como desee, conectndolas con el operador AND u

Ing. Mariuxi Paola Zea Ordoez

- 59 -

OR. Tambin puede emplear el operador NOT para invertir el valor de una expresin lgica o utilizar EMPTY( ) para comprobar si hay campos vacos. Comentarios En Visual Fox Pro, los registros marcados para eliminacin no se eliminan fsicamente de la tabla hasta que se emita el comando PACK. Los registros marcados para eliminacin pueden recuperarse (quitarles la marca) con RECALL. Ejemplo de DELETE - SQL (Comando) Observacin: Despus de ejecutar cada uno de las sentencias DELETE, consulte la tabla con el comando SELECT para comprobar los cambios que se realizan en la misma. DELETE FROM orders Este ejemplo marcar todos los registros de la tabla, para borrardo. DELETE FROM orders WHERE OrderAmt = 0 El ejemplo marcar para borrado todos los registros cuyo campo OrderAmt contenga el valor de 0. Nota: Observe que al hacer un SELECT a la tabla, en los registros que fueron marcados, al lado izquierdo de la ventana aparece rellenado con el color negro.

SELECT - SQL (Comando) - Clusulas Adicionales.


La sentencia SQL, SELECT tiene clusulas adicionales que permiten optimizar el funcionamiento del comando y de esta forma realizar una recuperacin de la informacin ptima. Sintaxis Completa SELECT [Alias.] Elemento_Seleccin [AS Nombre_Columna] [, [Alias.] Elemento_Seleccin [AS Nombre_Columna] ...] FROM [NombreBaseDatos!]Tabla [Local_Alias] [[INNER | LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER] JOIN NombreBaseDatos!]Tabla [Alias_Local] [ON CondicinCombinacin ] [[INTO Destino] | [TO FILE NombreArchivo [ADDITIVE] | TO PRINTER [PROMPT] | TO SCREEN]] [WHERE CondicinCombinacin [AND CondicinCombinacin ...] [AND | OR CondicinFiltro [AND | OR CondicinFiltro ...]]] [GROUP BY ColumnaGrupo [, ColumnaGrupo ...]] [HAVING CondicinFiltro] [UNION [ALL] SELECTCommand] [ORDER BY Elemento_Orden [ASC | DESC] [, Elemento_Orden [ASC | DESC] ...]] Argumentos

Ing. Mariuxi Paola Zea Ordoez

- 60 -

INNER JOIN Especifica que el resultado de la consulta contenga slo filas para una tabla con la que coincidan una o varias filas en otra tabla. LEFT [OUTER] JOIN Especifica que el resultado de la consulta contenga todas las filas de la tabla a la izquierda de la palabra clave JOIN y slo las filas que concuerden procedentes de la tabla a la derecha de la palabra clave JOIN. La palabra clave OUTER es opcional; se puede incluir para resaltar que se ha creado una combinacin externa. RIGHT [OUTER] JOIN Especifica que el resultado de la consulta contenga todas las filas desde la tabla hasta la derecha de la palabra clave JOIN y slo las filas que concuerden desde la tabla hasta la izquierda de la palabra clave JOIN. La palabra clave OUTER es opcional; puede incluirse para resaltar la creacin de una combinacin externa. FULL [OUTER] JOIN Especifica que el resultado de la consulta contenga todas las filas, concuerden o no, de ambas tablas. La palabra clave OUTER es opcional; se puede incluir para resaltar que se ha creado una combinacin externa. ON CondicinCombinacin Especifica las columnas segn las cuales se combinan las tablas. Ejemplos (JOIN): Use Left Outer Join Este ejemplo une dos tablas en el campo custid y preserva las filas que no concuerden de la tabla a la izquierda. La tabla customers es unida con la tabla orders en la columna custid de cada tabla. Todos los clientes (customers) aparecen en el conjunto resultante, hayan o no hayan realizado una orden. SELECT customers.custid, customers.custname,orders.orderid,orders.orderamt; FROM customers LEFT OUTER JOIN orders; ON customers.custid = orders.custid Use Inner Join Utilizaremos el ejemplo anterior con la clusula Inner Join, lo que har es unir las dos tablas en el campo custid, mostrar registros de una tabla que contengan uno o ms registros en la otra. SELECT customers.custid, customers.custname,orders.orderid,orders.orderamt; FROM customers INNER JOIN orders; ON customers.custid = orders.custid Use Full Outer Join Este ejemplo mostrar todos los clientes y sus respectivas ordenes, tambin mostrar cualquier cliente as no haya realizado ninguna orden. SELECT customers.custid, customers.custname,orders.orderid,orders.orderamt;
Ing. Mariuxi Paola Zea Ordoez - 61 -

FROM customers FULL OUTER JOIN orders; ON customers.custid = orders.custid Use Right Outer Join Este ejemplo une dos tablas en el campo custid, y preserva las filas que no concuerdan con la tabla a la derecha. La tabla clientes es unida a la tabla orders en la columna custid de cada tabla. Todas las ordenes aparecen en el conjunto resultante, pertenezcan o no a un cliente. SELECT customers.custid, customers.custname,orders.orderid,orders.orderamt; FROM customers RIGHT OUTER JOIN orders; ON customers.custid = orders.custid INTO Destino Determina donde se almacenan los resultados de la consulta. Si incluye una clusula INTO y una clusula TO en la misma consulta, la clusula TO se pasar por alto. Si no incluye la clusula INTO, los resultados de la consulta se mostrarn en una ventana (En visual Fox Pro). Los resultados de la consulta pueden dirigirse tambin a la impresora o a un archivo mediante la clusula TO. Destino puede ser uno de los siguientes: CURSOR NombreCursor, que almacena los resultados de la consulta en un cursor. Si especifica el nombre de una tabla abierta, Visual FoxPro generar un mensaje de error. Despus de que se ejecute SELECT, el cursor temporal permanecer abierto y estar activo pero solamente para lectura. Una vez que cierre este cursor temporal, se borrar. Ejemplo: SELECT * FROM customers INTO CURSOR myquery Nota: El comando SELECT por omisin envia el resultado a una tabla temporal en memoria (cursor) denominada Consulta. DBF | TABLE NombreTabla [DATABASE NombreBaseDatos [NAME NombreLargoTabla]] que almacena el resultado de la consulta en una tabla (queda almacenado fsicamente en el disco). Si no ha especificado ninguna extensin, Visual FoxPro dar una extensin .DBF a la tabla. La tabla permanecer abierta y activa despus de ejecutar SELECT. Incluya DATABASE NombreBaseDatos para especificar una base de datos a la que se agregar la tabla. Incluya NAME NombreLargoTabla para especificar un nombre largo para la tabla. Los nombres largos pueden contener un mximo de 128 caracteres y pueden utilizarse en lugar de nombres cortos en la base de datos. Ejemplo: SELECT * FROM customers INTO CURSOR temp

Ing. Mariuxi Paola Zea Ordoez

- 62 -

TO FILE NombreArchivo Si incluye una clusula TO pero no una clusula INTO, podr dirigir el resultado de la consulta a un archivo de texto ASCII llamado NombreArchivo. Ejemplo: Select * from customers TO FILE listaclientes ADDITIVE aade la salida de la consulta al contenido existente del archivo de texto especificado en TO FILE NombreArchivo. Ejemplo: Select * from customers TO FILE listaclientes En este ejemplo se aadir el resultado del segundo select al archivo que contena el resultado del primer select. TO PRINTER [PROMPT] Dirige la salida de la consulta a una impresora. Utilice la clusula PROMPT opcional para que aparezca en pantalla un cuadro de dilogo antes de que empiece la impresin. En este cuadro de dilogo podr modificar la configuracin de la impresora. Los valores de la impresora modificables dependen del controlador de impresora instalado en este momento. Site la palabra clave PROMPT inmediatamente despus de TO PRINTER. Ejemplo: Select * from customers TO PRINTER TO SCREEN Dirige la salida de la consulta a la ventana principal de Visual FoxPro o a una ventana definida por el usuario que est activa. Ejemplo: Select * from customers TO SCREEN WHERE Indica a Visual FoxPro que incluya nicamente ciertos registros en el resultado de la consulta. WHERE es necesario para recuperar datos de varias tablas. CondicinCombinacin, especifica los campos que vinculan las tablas de la clusula FROM. Si incluye ms de una tabla en una consulta, deber especificar una condicin de combinacin para cada tabla despus de la primera. Las condiciones de combinacin mltiple deben conectarse mediante el operador AND. Cada condicin de combinacin tiene la forma siguiente: NombreCampo1 Comparacin NombreCampo2 NombreCampo1 es el nombre de un campo de una tabla, NombreCampo2 es el nombre de un campo de otra tabla y Comparacin es uno de los operadores siguientes:

Ing. Mariuxi Paola Zea Ordoez

- 63 -

Operador = == LIKE <>, !=, # > >= < <=

Comparacin Igual Exactamente igual SQL LIKE Distinto de Mayor que Mayor o igual que Menor que Menor o igual que

CondicinFiltro Especifica los criterios que deben cumplir los registros para que se incluyan en el resultado de la consulta. Una consulta puede incluir tantas condiciones de filtro como se deseen, conectadas con el operador AND y OR. Tambin puede utilizar el operador NOT para invertir el valor de una expresin lgica o utilizar EMPTY( ) para comprobar si un campo est vaco. CondicinFiltro puede presentar una de estas formas:

Ejemplo 1 En el Ejemplo 1 se muestra la CondicinFiltro en el formato de NombreCampo1 Comparacin NombreCampo2 customer.custid = orders.custid Este tipo de filtro se utiliza cuando vamos a presentar informacin de dos o ms tablas. El ejemplo completo sera: SELECT * from customer,orders; WHERE customer.custid = orders.custid Ejemplo 2 En el Ejemplo 2 se muestra CondicinFiltro en el formato de NombreCampo Comparacin Expresin payments.amount >= 1000 Si desearamos buscar todas las ordenes en donde se haya vendido ms de 1000. El ejemplo se presentaria as: SELECT * FROM orders WHERE orderamt >= 1000 Ejemplo 3

Ing. Mariuxi Paola Zea Ordoez

- 64 -

En el Ejemplo 3 se muestra CondicinFiltro en el formato de NombreCampo Comparacin ALL (Subconsulta) Cuando la condicin de filtro incluye ALL (Todos), el campo debe cumplir la condicin de comparacin para todos los valores generados por la subconsulta antes de que se incluya el registro en el resultado de la consulta. El siguiente fragmento de un comando SELECT, busca comparar el contenido del campo company sea igual con todos los resultados de la subconsulta obtenida por el SELECT dentro de los parentesis. company < ALL ; (SELECT company FROM customer WHERE country = "Reino Unido") Nota: No debemos olvidarnos que el resultado obtenido de la subconsulta debe coincidir en el tipo de datos con el campo al que se lo est comparando. Con la comparacin ALL se puede utilizar cualquier operador de relacin: =, <, >, >=, <=, <>. Cuando estamos utilizando Subconsultas dentro de un comando SELECT, lo primero que se ejecuta son estas subconsultas. Podemos crear una Subconsulta dentro de otra Subconsulta. Como podemos observar, cada subconsulta debe estar entre parentesis, estos parentesis son los que dan la prioridad de ejecucin, por lo tanto siempre se ejecutan los parentesis ms internos hasta llegar al primer parentesis, igual que en una expresin matemtica. Cada subconsulta puede ser una sentencia SELECT completa, es decir utilizar todas sus clusulas. Ejemplo 4 En el Ejemplo 4 se muestra CondicinFiltro en el formulario de NombreCampo Comparacin ANY | SOME (Subconsulta) Cuando la condicin de filtro incluye ANY o SOME, el campo debe cumplir la condicin de comparacin en al menos uno de los valores generados por la subconsulta. El siguiente fragmento de un comando SELECT, pretende comparar que el valor del campo company sea menor a cualquiera de los valores obtenidos en la subconsulta que se encuentra entre parentesis para que la condicin de cmo resultado verdadera. company < ANY ; (SELECT company FROM customer WHERE country = "Reino Unido") Ejemplo 5

Ing. Mariuxi Paola Zea Ordoez

- 65 -

En el Ejemplo 5 se muestra CondicinFiltro en el formulario de NombreCampo [NOT] BETWEEN Inicio_Rango AND Fin_Rango Este ejemplo comprueba si los valores del campo estn dentro de un intervalo (rango) de valores especificado. customer.postalcode BETWEEN 90000 AND 99999 Si deseamos mostrar todos los registros en donde se hayan realizado ventas (orderamt) de 1000 a 1500 productos, el comando SELECT podra ser: SELECT * FROM orders; WHERE ordersamt BETWEEN 1000 AND 1500 Ejemplo 6 En el Ejemplo 6 se muestra CondicinFiltro en el formulario de [NOT] EXISTS (Subconsulta) Este ejemplo comprueba si al menos una lnea cumple los criterios de la subconsulta. Cuando la condicin de filtro incluye EXISTS, la condicin de filtro se evala como verdadera (.T.) a no ser que la subconsulta sea un conjunto vaco. EXISTS ; (SELECT * FROM orders WHERE customer.postalcode = orders.postalcode) Este ejemplo muestra los nombres de todas las empresas de CLIENTES.DBF con un cdigo postal que coincida con el cdigo postal de la tabla FACTURAS. SELECT empresa FROM clientes a WHERE ; EXISTS (SELECT * FROM oficinas b WHERE a.cp = b.cp) Ejemplo 7 En el Ejemplo 7 se muestra CondicinFiltro en el formulario de NombreCampo [NOT] IN Conjunto_Valor Cuando una condicin de filtro incluye IN, el campo debe contener uno de los valores antes de que el registro se incluya en los resultados de la consulta. customer.postalcode NOT IN ("98052","98072","98034") Si deseamos mostrar las ordenes emitidas a los clientes 01,05,09 y 14; podramos ejecutar la siguiente sentencia: SELECT * FROM orders WHERE custid IN (01,05,09,14) Ejemplo 8

Ing. Mariuxi Paola Zea Ordoez

- 66 -

En el Ejemplo 8 se muestra CondicinFiltro en el formulario de NombreCampo [NOT] IN (Subconsulta) Aqu, el campo debe contener uno de los valores devueltos por la subconsulta antes de que su registro se incluya en los resultados de la consulta. El siguiente fragmento, compara el campo custid de la tabla customer, con los valores resultantes de la consulta entre parentesis, si el valor de custid coincide con alguno de los valores en la subconsulta, devuelve el valor de verdadero. customer.cust_id IN ; (SELECT orders.cust_id FROM orders WHERE orders.city="Seattle") Si necesitamos obtener los clientes que hayan hecho ordenes por ms una cantidad mayor a 15000, la sentencia SELECT podra ser: SELECT * FROM custemers; WHERE custid IN; (SELECT custid FROM orders WHERE orderamt > 15000) Ejemplo 9 En el Ejemplo 9 se muestra CondicinFiltro en el formulario de NombreCampo [NOT] LIKE cExpresin customer.country NOT LIKE "Reino Unido" Esta condicin de filtro busca cada uno de los campos que coinciden con cExpresin. Puede utilizar el signo de porcentaje (%) y subrayado ( _ ) como parte de cExpresin. El signo de porcentaje representa a cualquier secuencia de caracteres desconocidos en la cadena. El subrayado representa un solo carcter desconocido en la cadena. Este ejemplo muestra todos los registros de CLIENTES que tengan un que comience por una C mayscula y tenga cualquier longitud. SELECT * FROM customers a; WHERE a.custname LIKE "C%" Este ejemplo muestra todos los registros de CLIENTES que tengan un salesbranch que comience por MA mayscula seguido de un carcteres desconocido. SELECT * FROM clientes a; WHERE a.estado LIKE "MA _"

Ing. Mariuxi Paola Zea Ordoez

- 67 -

La clusula WHERE acepta el operador ESCAPE para la CondicinCombinacin, lo que le permite realizar consultas significativas sobre datos que contengan caracteres comodn _ y % de SELECT - SQL. La clusula ESCAPE le permite especificar que se traten los caracteres comodn de SELECT - SQL como si fueran caracteres literales. En la clusula ESCAPE se especifica un carcter, el cual, cuando se sita inmediatamente antes del carcter comodn, indica que se tratar al carcter comodn como a un carcter literal. En el Ejemplo demuestra cmo se puede realizar una consulta de datos que contenga signos de porcentaje (%). Se colocar una barra inversa (\) antes del signo de porcentaje para indicar que tendra que ser tratado como un literal, y la barra inversa se especifica como el carcter de escape en la clusula ESCAPE. SELECT * FROM customer WHERE custname LIKE "%\%%" ESCAPE "\" En el siguiente Ejemplo se demuestra cmo se puede realizar una consulta de datos que contenga signos de subrayado (_). Se colocar una barra inversa (\) antes del signo de subrayado para indicar que debera ser tratado como un literal, y se especificar la barra inversa como el carcter de escape en la clusula ESCAPE. SELECT * FROM customer WHERE custname LIKE "%\_%" ESCAPE "\" En el ejemplo, el carcter Escape se utiliza a s mismo como un literal. El guin es tanto el carcter escape como un literal. La consulta devuelve todas las filas en las que el nombre del cliente contiene un signo de porcentaje seguido de un guin. SELECT * FROM customer WHERE company LIKE "%-%--%" Escape "-" GROUP BY ColumnaGrupo [, ColumnaGrupo ...] Agrupa las filas de la consulta basndose en los valores de una o ms columnas. ColumnaGrupo puede ser el nombre de un campo normal de una tabla, o un campo que incluya una funcin de campo SQL, o una expresin numrica indicando la posicin de la columna en la tabla resultado (la columna ms a la izquierda tiene el nmero 1). Ejemplo: SELECT * FROM order GROUP BY custid Este ejemplo muestra los registros agrupados por el campo custid, es decir que mostrar un registro por cada agrupacin. El ejemplo descrito a continuacin mostrar el valor del campo custid, la suma de orderamt y orderqty de todos los registros agrupados por custid. SELECT custid, SUM(orderamt), SUM(orderqty) FROM order; GROUP BY custid HAVING CondicinFiltro Especifica una condicin de filtro que los grupos deben satisfacer para quedar incluidos en el resultado de la consulta. HAVING debe utilizarse con GROUP BY. Puede
Ing. Mariuxi Paola Zea Ordoez - 68 -

incluir tantas condiciones de filtro como se deseen, conectadas con el operador AND u OR. Tambin puede utilizar NOT para invertir el valor de una expresin lgica. CondicinFiltro no puede contener una subconsulta. Puede utilizar alias locales y funciones de campo en la clusula HAVING. Utilice una clusula WHERE para acelerar el rendimiento si su clusula HAVING no contiene funciones de campo. No olvide que la clusula HAVING debera de aparecer antes de una clusula INTO porque, de lo contrario, se producir un error de sintaxis. Ejemplo: SELECT custid, SUM(orderamt), SUM(orderqty) FROM order; GROUP BY custid HAVING orderamt > 10000 ORDER BY Elemento_Orden Ordena el resultado de la consulta basndose en los datos de una o varias columnas. Cada Elemento_Orden debe corresponder a una columna del resultado de la consulta, y puede ser uno de los siguientes: Un campo de una tabla FROM que tambin es un elemento de seleccin en la clusula principal SELECT (no en una subconsulta). Una expresin numrica que indica la ubicacin de la columna en la tabla resultante. (La columna de la izquierda es la nmero 1.) ASC Especifica un orden ascendente para los resultados de la consulta, de acuerdo con el elemento o los elementos de orden, y es el valor predeterminado para ORDER BY. DESC Especifica un orden descendente para los resultados de la consulta. Los resultados de la consulta aparecern desordenados si no especifica un orden con ORDER BY. Ejemplo: SELECT Custid, Custname FROM Customer; ORDER BY custname DESC. [UNION [ALL] ComandoSELECT] Combina el resultado final de una SELECT con el resultado final de otra SELECT. De forma predeterminada, UNION comprueba el resultado combinado y elimina las filas duplicadas. Puede utilizar parntesis para combinar mltiples clusulas UNION. Utilice la palabra clave opcional ALL para impedir que UNION elimine filas duplicadas de los resultados combinados. Las clusulas UNION siguen las reglas siguientes: No puede utilizar UNION para combinar subconsultas.
Ing. Mariuxi Paola Zea Ordoez - 69 -

La salida de ambos SELECT debe tener el mismo nmero de columnas. Cada columna de los resultados de la consulta de un SELECT debe tener el mismo tipo de dato y anchura que su columna correspondiente en el otro SELECT. nicamente el SELECT final puede tener una clusula ORDER BY, que debe referirse a las columnas de salida por su nmero. Si se incluye otra clusula ORDER BY, afectar al resultado completo. Tambin puede usar la clusula UNION para simular una combinacin externa. Cuando combina dos tablas en una consulta, solamente se incluyen en la salida los registros que tengan valores coincidentes en los campos de combinacin. Si un registro de la tabla primaria no tiene un registro correspondiente en la tabla secundaria, el registro de la tabla primaria no se incluye en la salida. Una combinacin externa le permite incluir todos los registros de la tabla primaria en la salida, junto con los registros coincidentes de la tabla secundaria. Para crear una combinacin externa en Visual FoxPro, necesita utilizar un comando SELECT anidado, como en el siguiente: Ejemplo: SELECT customer.company, orders.order_id, orders.emp_id ; FROM customer, orders ; WHERE customer.cust_id = orders.cust_id ; UNION ; SELECT customer.company, " ", " " ; FROM customer ; WHERE customer.cust_id NOT IN ; (SELECT orders.cust_id FROM orders) Nota Asegrese de incluir el espacio que aparece justo delante de cada punto y coma. De lo contrario, recibir un error. La seccin del comando situada antes de la clusula UNION selecciona los registros de ambas tablas que contienen valores coincidentes. Las empresas cliente que no tengan facturas asociadas no se incluyen. La seccin del comando situada tras la clusula UNION selecciona los registros de la tabla customer que no tienen registros coincidentes en la tabla orders. En lo que respecta a la segunda seccin del comando, observe lo siguiente: La instruccin SELECT incluida entre parntesis se procesa en primer lugar. Esta instruccin da como resultado una seleccin de todos los nmeros de clientes de la tabla orders. La clusula WHERE busca todos los nmeros de cliente de la tabla customer que no estn en la tabla orders. Puesto que la primera seccin del comando proporcion todas las empresas que tenan un nmero de cliente en la tabla orders, todas las empresas de la tabla customer estn incluidas en los resultados de la consulta.

Ing. Mariuxi Paola Zea Ordoez

- 70 -

Puesto que las estructuras de las tablas incluidas en UNION deben ser idnticas, hay dos marcadores de posicin en la segunda instruccin SELECT para representar orders.order_id y orders.emp_id de la primera instruccin SELECT. Nota: Los marcadores de posicin deben ser del mismo tipo que los campos que representan. Si el campo es de tipo Date, el marcador de posicin deber ser { / / }. Si el campo es de tipo Character, el marcador de posicin deber ser la cadena vaca (""). Comentarios SELECT es un comando SQL que est incorporado en Visual FoxPro como cualquier otro comando de Visual FoxPro. Cuando utiliza SELECT para componer una consulta, Visual FoxPro interpreta la consulta y recupera los datos especificados de las tablas. Puede crear una consulta SELECT: En la ventana Comandos En un programa Visual FoxPro (como cualquier otro comando de Visual FoxPro) El Diseador de consultas Una subconsulta, a la que se hace referencia en los argumentos siguientes, es un comando SELECT dentro de otro SELECT y debe incluirse entre parntesis. Puede tener mltiples subconsultas al mismo nivel (es decir no anidadas, esto ocurre dentro de Visual FoxPro) en la clusula WHERE. Las subconsultas pueden contener mltiples condiciones de combinacin. Cuando se obtiene el resultado de una consulta, las columnas se denominarn segn las siguientes reglas: Si un elemento seleccionado es un campo con un nombre nico, el nombre de la columna de resultado es el nombre del campo. Si hay ms de un elemento seleccionado con el mismo nombre, se aadirn un signo de subrayado y una letra al nombre de la columna. Por ejemplo, si una tabla llamada Cliente tiene un campo llamado CALLE, y una tabla llamada Empleados tambin tiene un campo llamado CALLE, las columnas de resultado se llamarn Extensin_A y Extensin_B (CALLE _A y CALLE _B). En el caso de un elemento seleccionado con un nombre de 10 caracteres, se truncar el nombre para aadir el smbolo de subrayado y la letra. Por ejemplo, DEPARTMENT se convertira en DEPARTME_A. Si un elemento seleccionado es una expresin, su columna de resultado se llamar EXP_A. Cualquier otra expresin recibir el nombre de EXP_B, EXP_C, y as sucesivamente. Si un elemento seleccionado contiene una funcin de campo como, por ejemplo, COUNT( ), la columna de resultado se llamar CNT_A. Si otro elemento seleccionado contiene SUM( ), su columna de resultado se llamar SUM_B.

Ing. Mariuxi Paola Zea Ordoez

- 71 -

Dado que SQL se basa en la teora de conjuntos matemtica, se puede representar a cada tabla con un crculo. La clusula ON que especifica las condiciones de la combinacin determina el punto de interseccin, el cual representa el conjunto de filas que coinciden. En el caso de una combinacin interna, la interseccin tendr lugar en el interior o en una parte interna de los dos crculos. Una combinacin externa incluye tanto las filas coincidentes que se han encontrado en la seccin de interseccin interna de las tablas, como las filas de la parte externa del crculo a la izquierda, o a la derecha, de la interseccin. Importante: combinacin: Tenga presente la siguiente informacin a la hora de crear condiciones de

Si incluye dos tablas en una consulta y no especifica una condicin de combinacin, cada registro de la primera tabla se combinar con cada registro de la segunda tabla hasta que surtan efecto las condiciones del filtro. Una consulta tal puede producir unos resultados interminables. Sea prudente al utilizar, en condiciones de combinacin, funciones tales como DELETED( ), EOF( ), FOUND( ), RECCOUNT( ), y RECNO( ), que aceptan un rea de trabajo o un alias opcional. La inclusin de un alias o de un rea de trabajo en dichas funciones puede producir resultados inesperados. SELECT no utiliza sus reas de trabajo; realiza lo equivalente a USE ... AGAIN. Las consultas de una nica tabla que utilizan estas funciones sin un rea de trabajo o un alias opcional, tendrn resultados correctos. De todas formas, las consultas de varias tablas que utilicen dichas funciones (incluso sin un rea de trabajo o un alias opcional) pueden tener resultados inesperados. Sea prudente al combinar tablas que contengan campos vacos porque Visual FoxPro concuerda campos vacos. Por ejemplo: Si combina CUSTOMER.ZIP e INVOICE.ZIP, y CUSTOMER contiene 100 cdigos postales vacos e INVOICE contiene 400 cdigos postales vacos, el resultado de la consulta contendr 40.000 registros ms, como resultado de los campos vacos. Use la funcin EMPTY( ) para eliminar los registros vacos del resultado de la consulta.

SQL Server.- Caractersticas:


Es un RDBMS (Relational Database Management System) de alto nivel en perfomance y escalabilidad . Integracin con Windows NT, uniendo y fijando servicios como el Monitor de Tareas, el Visor de Eventos. Un simple login de Windows NT para ambos, para la red y para SQL Server, simplifica el manejo de los usuarios. Se puede programar el servidor para resolver problemas comunes.
Ing. Mariuxi Paola Zea Ordoez - 72 -

Soporta bases de datos muy grandes (250 campos por tabla y hasta 2.000.000 de tablas por base de datos). Provee replicacin de datos a travs del sistema. Uno de los mejores desafos para lo s usuarios de la arquitectura Cliente/Servidor es el manejo central de mltiples servidores a travs de empresa. SQL Server 6.5, maneja estos desafos con un sistema empresarial, un armazn administrativo llamado Distributed Management Framework (DMF).

Herramientas de Administracin de SQL Server.


SQL Server provee un numero de herramientas administrativas. Las herramientas son provistas dependiendo en donde se realiz la instalacin de SQL Server, en el cliente o en el servidor, y el sistema operativo del computador. Estas herramientas son: Herramientas Descripcin SQL Enterprise Provee facilidad, para realizar un amplio manejo de la empresa, Manager desde un servidor o un cliente. Permite que usted ejecute tareas de administracin del sistema utilizando una interfaz grfica. Usted puede configurar servicios, manejar la base de datos y los objetos de las bases de datos, fijar eventos, configurar y manejar replicaciones, y hacer muchas cosas mas. SQL Service Usado para comenzar (Start), detener (Pause), continuar (Continue) Manager o finalizar (Stop) servicios de SQL Server (SQL Server y SQL Excecutive) ISQL/w Permite ingresar sentencias de transaccin SQL y procedimientos del sistema almacenados en una interfaz de consulta grfica. ISQL/w provee la capacidad para analizar consultas grficamente. SQL Security Permite manejar las cuentas de usuarios de SQL Server que estn Manager utilizando seguridad integrada con Windows NT. SQL Trace Monitorea y graba la actividad de las bases de datos. Puede mostrar o grabar un registro cronolgico de todas las actividades del servidor en tiempo real. Alternativamente, crea filtros que enfocan las acciones de un usuario en particular, aplicaciones, o servidores husped. Puede visualizar cualquier sentencia SQL y llamada de procedimientos remotos (Remote Procedure calls, RPC) que son enviadas a cualquier servidor. SQL Client Configura el default de Net-Library y la informacin de conexin Configuration de los clientes al servidor . Tambin visualiza el nmero de versin Utility de DB-Library y Net-Library en su path. SQL Integra el Monitor de Performance de Windows NT con SQL Perfomance Server, proporcionando sobre el minuto de actividad y esttica de Monitor ejecucin. Microsoft Permite al usuario, construir grficamente consultas SELECT en Query cualquier base de datos ODBC, incluyendo SQL Server. MS Query puede visualizar un esquema bsico de informacin acerca de una
Ing. Mariuxi Paola Zea Ordoez - 73 -

base de datos. Es una herramienta de slo lectura. SQL Server Genere archivos con estndar HTML desde los datos de SQL Web Assistant Server, utilizando consultas SELECT, stored procedures, o extended stored procedures. La pagina Web generada puede ser vista con cualquier Visor (Browser) HTML

El propietario (Owner) de la Base de Datos.


El propietario de la base de datos o Database Owner (DBO), es el creador de una base de datos. El DBO tiene todos los privilegios en esa base de datos y determina el acceso y capacidades que son proporcionadas a otros usuarios para esa base de datos. Cuando un DBO est dentro de otra base de datos, el DBO es conocido por su nombre de usuario de base de datos. Es estado de DBO puede ser reasignado a diferentes usuarios, sin embargo, solo un DBO puede existir. Solamente un login de identificacin puede ser el login de identificacin DBO. Aunque otra identificacin de login puede ser apodado el DBO.

Estructura del Sistema utilizado en SQL Server (System Catalog).


Hay dos tipos de bases de datos: del sistema y de los usuarios. Ambos almacenan datos, pero SQL Server utiliza las bases de datos del sistema para operar y manejar el sistema. El catalogo del sistema consiste de tablas del sistema encontradas solamente en la base de datos master. Bases de datos del Sistema.- Cuando instalamos SQL Server, cuatro bases de datos del sistema son creadas: Master, model, tempdb y msdb. Bases de datos del usuario.- Bases de datos que son creadas por el usuario. La base de datos pubs, un ejemplo de base de datos que viene con el producto SQL Server, es un ejemplo de base de datos del usuario.

Base de Datos Master.-

Controla las bases de datos de los usuarios y la operacin de SQL Server como un conjunto. El tamao por omisin de esta base de datos es 25 MB. Debido a la naturaleza crtica de sus datos, a ningn usuario le es permitido accesar directamente a ella, es importante siempre tener un respaldo actualizado de esta base de datos.

La base de datos master almacena los siguientes registros: Cuentas de login Procesos de ejecucin Mensajes de Error del sistema Base de datos almacenadas en el servidor Ubicacin del almacenamiento de cada base de datos Bases de datos disponibles y dispositivos de respaldos Procedimientos almacenados del sistema, los cuales son utilizados primordialmente para la administracin del sistema

Ing. Mariuxi Paola Zea Ordoez

- 74 -

Base de Datos Model.- Esta base de datos provee una plantilla o prototipo de nuevas bases de datos.
(Esta es la base de datos que SQL Server copia cuando crea una nueva base de datos de usuario). De esta forma, la base de datos model contiene las tablas del sistema (diccionario) que son utilizadas en cada base de datos de los usuarios. Aqu es donde se colocan los tems que usted quiere que aparezcan en todas las subsiguientes bases de datos creadas. Algunos de los cambios hechos comnmente a model son:

Adicin de tipos de datos definidos por el usuario, reglas, valores por omisin o procedimientos almacenados. Adicin de Usuarios, quienes estarn accesando a todas las bases de datos en un Servidor SQL. Privilegios por omisin, particularmente para cuentas husped, son establecidas en model. Opciones de configuracin de la base de datos. El tamao por omisin es 1 MB, para las bases de datos.

Base de datos tempdb.- Provee almacenamiento para tablas temporales y otros almacenamientos
temporales necesarios tales como resultados inmediatos de GROUP BY, ORDER BY, DISTINCT, y cursores. Es creado automticamente en el dispositivo Master durante la instalacin de SQL Server. No se necesitan permisos especiales para utilizar tempdb. Tiene las siguientes caractersticas:

Los contenidos son borrados cuando el usuario cierra la conexin a SQL Server, excepto para tablas globales temporales. Cuando SQL Server es detenido, cada cosa de tempdb es borrada. Todas las tablas temporales son almacenadas en tempdb El tamao por omisin es 2 MB. Tempdb puede ser colocada en el RAM. Configurando el SQL Server. Tempdb puede se alterada en RAM

Base de Datos msdb.- Esta base de datos es el soporte de SQL Executive Service. Este servicio es un
scheduler (fijador, calendario) que habilita actividades tales como replicacin, task scheduling, y manejo de alertas. La msdb contiene estas tablas del sistema, las cuales son especficas para esta base de datos:

Sysalert.- Almacena informacin acerca de todas la alertas definidas por el usuario. El SQL Executive Service chequea para ver si hay entradas en esta tabla que es asociada con un grabador de eventos en el Visor de Eventos del Servidor Windows NT. Si encuentra una alerta asociada, entonces la alerta es encendida. Sysbackupdetail.- Especifica un resumen de los dispositivos utilizados para respaldos. Sysbackuphistory.- Especifica un resumen de cada operacin de respaldo. Syshisory.- Almacena informacin histrica cuando una alerta o tarea fue ejecutada (xito y falla), la identidad del operador a quin se envo un e-mail, el nmero de intentos para una tarea, y la fecha y hora de ejecucin. Sysrestoredetail.- Especifica un resumen de los dispositivos utilizados para restauracin. Sysrestorehistory.- Especifica un resumen de cada operacin de restauracin.
Ing. Mariuxi Paola Zea Ordoez - 75 -

Revisin del Diccionario de Datos


El diccionario de datos est compuesto por tablas del sistema que guardan la informacin referente a los usuarios, las bases de datos, sus objetos, etc. para poder acceder a la informacin que se encuentra en estas tablas utilizamos stored procedures preestablecidos en el sistema. Los nombres de los stored procedures definidos en el sistema comienzan con las letras sp seguido de un subguion y a continuacin el nombre (ejemplo: sp_nombre). Antes de ejecutar el procedimiento nos debemos colocar en la base de datos que deseamos obtener informacin. Los principales procedimientos son: Sp_helpuser .- Muestra informacin acerca de los usuarios de la base de datos. Su sintaxis es: sp_helpuser [username] username Es un usuario de la base de datos actual. Si no se especifica el nombre, el procedimiento muestra todos los usuarios de la base de datos actual. Ejemplos A. Lista todos los usuarios sp_helpuser B. Muestra la informacin de un simple usuario. Este ejemplo muestra la informacin acerca del propietario de la base de datos. sp_helpuser DBO Tablas usadas: master.dbo.syslogins, sysalternates, sysusers Sp_helpdb .- Muestra informacin acerca de una o todas las bases de datos. Su sintaxis es: sp_helpdb [dbname] dbname. Especifica la base de datos acerca de la cual se desea informacin. Ejemplos A. Ayuda de una base de datos.

sp_helpdb pubs B. Ayuda sobre todas las bases de datos

sp_helpdb Tablas usadas: spt_values, sysdatabases, sysdevices, syslogins, sysusages

Ing. Mariuxi Paola Zea Ordoez

- 76 -

Sp_help.- Muestra informacin acerca de los objetos de una base de datos o acerca de tipos de datos definidos por los usuarios. Su sintaxis e: sp_help [objname] objname: es el nombre de cualquier objeto o tipo de dato definido por el usuario. Nombres de Bases de datos no son aceptados. Ejemplos: A. Ayuda de todos los objetos. sp_help B. Ayuda de un objeto en particular. sp_help publishers Sp_columns.- Muestra informacin de la columna para un objeto en particular o de una objeto que puede ser requerido en el ambiente actual. Su sintaxis es: sp_columns object_name [, column_name] object_name, es el nombre de la tabla que queremos la informacin. El nombre del objeto puede ser una variable cuyo nombre debe tener mximo 32 caracteres. No se aceptan patrones de bsquedas. column_name, especifica una columna especfica, y es usado cuando slo se necesita la informacin de una columna. Si el nombre de la columna no es especificado, se mostrar la informacin de todas las columnas. Ejemplos: A. Muestra la informacin de todos los campos: sp_columns

Elementos del modelo de Datos.


Tablas.Ejemplo: Member Member_no 1001 1002 1003 1004

Lastname Anderson Barr Barr Hendson

Firstname Andrew Andrew Bill Jack

Middle_i A R Null Null

Photo -------

Ing. Mariuxi Paola Zea Ordoez

- 77 -

Una base de datos contiene muchas tablas. Cada tabla en una base de datos almacena informacin. El ejemplo arriba, muestra la tabla de miembros (socios) en la base de datos de una librera. Cada fila es un miembro individual y cada columna almacena informacin acerca de ese miembro. Las tablas tienen las siguientes caractersticas: Tienen un nico nombre, usualmente identifica a la entidad. Los nombres de las tabla comnmente son en singular. Las tablas estn compuestas de filas (registros) y columnas (campos) Cada fila describe una ocurrencia de una entidad. Cada columna o campo describe un atributo de esa entidad. La filas pueden estar en cualquier orden Las columnas pueden estar en cualquier orden. Restriccin de las Tablas.- Cuando trabajamos con tablas dentro de una base de datos, debemos asegurarnos que se cumplan las restricciones de las tablas. Consideremos las siguientes restricciones cuando creamos tablas: Los nombres de las tablas deben ser nicos dentro de una base de datos. Los nombres de una columna deben ser nicos dentro de una tabla. Las filas o registros deben ser nicos dentro de una tabla. En el caso de que una fila es definida por una columna en especial, llamada llave primaria. Dos filas no deben tener el mismo valor en esta columna. Por ejemplo si dos filas en la tabla miembros tienen el mismo nmero, sera imposible decir cual fila actualmente representa al miembro.

Columnas Atmicas.- Son columnas que contienen valores o informacin que no puede ser
dividida en columnas ms pequeas. Si la informacin dentro de una columna puede ser dividida dentro de mltiples partes utilizables, la columna debe ser redefinida como dos o ms columnas. Ejemplo: Member Member_no 1001 1002 1003 Member Member_no 1001 1002 1003 Name Anderson, Allen A Allen, Andrew R Barr, Bill Photo -----

Lastname Anderson Allen Barr

Firstname Allen Andrew Bill

Middle-i A R Null

Photo -----

Las ventajas de usar columnas atmicas son las siguientes: Columnas son fciles de actualizar.

Ing. Mariuxi Paola Zea Ordoez

- 78 -

Usted ha actualizado solamente un componente especfico de la cadena, no la cadena completa. Por ejemplo, la columna name podra contener tanto el apellido (last name) como el primer nombre (first name), (Doe, Jane). Si Jane cambia su apellido a Green, el actualizacin debera ser name = Green, Jane). En esta actualizacin del primer nombre es cambiado innecesariamente. Si la columna estuviera descompuesta la actualizacin debera ser lastname = Green y el primer nombre no debera ser cambiado. Columnas son fciles de consultar. Al descomponer la informacin de las columnas dentro de componentes ms pequeos, usted puede referirse a ellos ms fcilmente. Usted puede trabajar con un tem determinado del dato cuando consulta esa informacin. Se puede evitar utilizar funciones de caracteres de cadena que filtran los datos de su columna. Mantiene mejor la integridad de los datos. Usted puede aplicar tipos de datos, valores por omisin, llaves, y reglas apropiados. Tambin puede indicar donde permite o no valores nulos a nivel de campo. Restricciones de columnas.- En el diseo lgico de una base de datos, se puede configurar varias restricciones sobre una columna dentro de una tabla. Estas restricciones permiten tener un control sobre ciertos aspectos de la integridad de datos, poniendo requerimientos sobre los valores que son permitidos. Not Null (NN).- Not Null es una restriccin que requiere una entrada dentro de una columna. Cuando un NULL esta dentro de una columna, significa que el usuario o la aplicacin no ha realizado entrada de datos en esa columna. Un valor para la columna es desconocido o no es aplicable. Null no es sinnimo de cero (un valor numrico) o blanco (un valor de caracter). Adems, valores nulos permiten distinguir entre una entrada deliberada de 0 o espacio en blanco, y ninguna entrada. No Duplicates (ND).- Otra restriccin en una columna es prevenir valores duplicados. Con No duplicates, cada entrada es nica. Por ejemplo: en la tabla miembros, marque ND en la columna Member_no para prevenir que dos miembros tienen el mismo nmero. Los valores duplicados no son permitidos en una columna que nicamente identifica a las filas. Son implementadas para crear una llave primaria, llave nica, ndice nico. No Changes (NC).Es una restriccin que previene que los valores en una columna sean cambiados. Es implementado para utilizar referencias, permisos. La columna Member_no. Que identifica de manera exclusiva a la fila es un buen ejemplo de una columna que debera tener la restriccin No Changes.

Primary Key (PK, Llave Primaria).- Es la columna o grupo de columnas que refuerza la integridad
de la entidad, asegurndose de que cada fila dentro de la tabla es nica. requerimientos de las llaves primarias incluyen: Algunos

Cada tabla debe tener una llave primaria.


Ing. Mariuxi Paola Zea Ordoez - 79 -

Solamente puede haber una llave primaria por cada tabla. Las llaves primarias no deben permitir valores nulos (NN) o duplicados (ND). Es recomendado que no se le permitan hacer modificaciones (NC).

Foreign Key (FK, Llave ajena).- Una llave ajena hace referencia a una llave primaria de otra tabla.
Puede ser la llave primaria de la misma o de otra tabla. Una columna puede ser a la vez la llave primaria de su propia tabla y la llave ajena de otra. Algunas ventajas de crear una llave ajena incluye:

SQL Server chequea el valor en la columna marcada FK contra el valor en la columna PK para verificar que estos valores son consistentes (Legtimos). Provee una unin entre las dos tablas Refuerza la integridad referencial asegurndose de que cada valor en la columna FK es un PK vlido.

Distribucin del Almacenamiento.Datos.

Definicin del Almacenamiento de

Cuando usted crea una base de datos, es importante que usted especifique exactamente la cantidad de espacio distribuida para ello. Si usted distribuye demasiado espacio, usted malgastar espacio del que podra ser usado por otra base de datos. Si usted distribuye espacio no suficiente, la base de datos puede salirse del espacio de almacenamiento. (Sin embargo, es posible modificar el espacio distribuido despus de que las bases de datos han sido creadas). Cuando usted crea una base de datos ms larga que el espacio disponible, SQL Server distribuir tanto espacio como se pueda, redondendolo lo ms cerca de .5MB. Para asegurarse que la estructura de los datos es vlida cuando crea una base de datos, SQL Server asigna ceros a cada pgina del disco. Esta operacin es ejecutado en bloques de 64k.

Ing. Mariuxi Paola Zea Ordoez

- 80 -

SQL Server distribuye el espacio que usted a requerido en un modo ajustado basado en una jerarqua que asegura una mejor ejecucin. Los siguientes trminos de almacenamiento en orden de decrecimiento. Dispositivos (Devices).- Dispositivos de Base de datos son archivos del sistema operativo. Ellos pueden almacenar mltiples bases de datos, y partes de base de datos.. Bases de datos (Databases).- Son creadas en uno o ms dispositivos. Cuando dispositivo es usado, el dispositivo puede existir en discos duros separados. mas de un

Unidades de Distribucin (Allocation Units).- Cuando una base de datos es creada, el espacio es distribuido en MB de incremento (256 paginas contiguas de 2 k) conocida como unidades de distribucin. Extents (extensiones).- Una extensin es de 16 k (8 pginas contiguas de 2k). Cuando una tabla o ndice es creado, SQL Server distribuye una extensin. Cada objeto es distribuido en su propia extensin; las extensiones jams son compartidas. Debido a que hay 32 extensiones por cada unidad de distribucin, puede haber 32 objetos (tablas o ndices) almacenados en esta unidad de distribucin. Pginas (Page).- La unidad bsica de almacenamiento es una pgina de 2K (2048 bytes). Nota: La informacin de las bases de datos almacenadas, es listada dentro de la base de datos master, utilizando la tabla sysusages. Cada fila representa un unidad de distribucin contigua asociada con una base de datos.

Dispositivos de Base de datos (Database Devices)

Los dispositivos son archivos que estn en el disco duro, y que almacenan bases de datos, transaction logs (historial de transacciones), y respaldos. Los dispositivos pueden ser implementados de la siguiente manera: Un dispositivo puede contener muchas bases de datos. Una base de datos puede dividirse en muchos dispositivos, an si los dispositivos son almacenados en discos duros separados. Es recomendable que una base de datos y su historial de transacciones se mantengan en dispositivos separados.
Ing. Mariuxi Paola Zea Ordoez - 81 -

Nombre lgico.- Es usado en una sentencia SQL que hace referencia al dispositivo. Los nombres lgicos deben corresponder a las reglas de SQL Server para identificarlas, y deben estar encerradas entre apstrofes. Tienen un tamao entre 1 y 30 caracteres. El primer caracter debe ser una letra o uno de los siguientes smbolos: _ @ # Despus del primer caracter, los identificadores pueden incluir letras, dgitos, o los smbolos #, $, o _. Los espacios no son permitidos en los identificadores a menos que las comillas sean utilizadas. Palabras reservadas por SQL no deben ser utilizadas. Nombre Fsico.- La letra de la unidad, el path completo, y el nombre del archivo del dispositivo de base de datos. Los paths para los dispositivos de las bases de datos deben seguir las reglas para los paths del sistema operativo y los nombres de archivos. El nombre fsico es como el sistema operativo hace referencia al nombre del archivo representando al dispositivo. Por omisin el nombre fsico utiliza el nombre lgico. Nota: Al momento de la instalacin, tres dispositivos son creados: uno es el dispositivo de base de datos master. El path fsico para master por omisin es E:\mssql\data\master.dat (dentro del servidor) con un tamao mnimo de 25 MB, note que existe una carpeta denominada MSSQL que se crea al instalar SQL Server, y una carpeta DATA que va a contener todos los archivos fsicos de las bases de datos. Se puede cambiar la unidad y directorio por omisin. Los otros dispositivos son el MSDB.dat (6 MB) y el MSDBLOG.dat (2 MB).

Aadiendo un Dispositivo de Base de Datos.


Para aadir un dispositivo de Base de datos utilizamos la sentencia DISK INIT, esta instruccin crea el archivo de dispositivo de base de datos y lo prepara para almacenamiento. Ingresa el nombre fsico y lgico del dispositivo en la tabla sysdevices en la base de datos master. Distribuye previamente el almacenamiento al tamao especificado (en bloques de 2K). Su formato es el siguiente: DISK INIT NAME = nombre_lgico, PHYSNAME = nombre_fsico, VDEVNO = numero_virtual_del_dispositivo, SIZE = numero_de_bloques_2k DISK INIT crea un dispositivo en el cual una o mltiples base de datos pueden ser colocadas, dndole un nombre fsico y un nombre lgico. NAME, el nombre lgico de la base de datos. PHYSNAME, el nombre fsico y la localizacin del dispositivo de base de datos (incluye la ruta completa).

Ing. Mariuxi Paola Zea Ordoez

- 82 -

VDEVNO, es el nmero virtual del dispositivo que identifica el dispositivo de la base de datos. Los nmero vlidos de dispositivos son del 0 al 255. El nmero de dispositivo 0 esta reservado para el dispositivo de la base de datos master. Ejecute DISK INIT una vez por cada nuevo dispositivo de base de datos. Esto puede ser hecho a travs de ISQL/w, el SQL Query Tools, o a travs de SQL Enterprise Manager. Cada vez que DISK INIT es ejecutado, una fila es aadida a la base de datos master en la tabla sysdevices. Nota: Usted debe estar ubicado en la base de datos master para crear un dispositivo. Ejemplo: DISK INIT NAME = prueba, PHYSNAME = E:\mssql\data\prueba.dat, VDEVNO = 1, SIZE = 8142 DISK INIT NAME = prueba_log, PHYSNAME = E:\mssql\data\pruelog.dat, VDEVNO = 2, SIZE = 2048 Nota: Para saber los nmeros de dispositivos disponibles utilice la tabla sysdevices o al store procedure sp_helpdevice. Si usted va a crear el dispositivo desde una mquina cliente, primero debe crear una unidad de red (con la ruta completa \mssql\data\) y en el path hacer referencia a esa unidad de red (Ejemplo, la unidad se llama D, entonces la ruta sera D:\nombrearchivo).

Manejo de dispositivos.
Utilizar un dispositivo por omisin y borrar dispositivos permite al DBA un manejo mejor de las necesidades de almacenamiento en el servidor. Cuando una base de datos es creada y ningn dispositivo es especificado, SQL Server automticamente utiliza un dispositivo por omisin. El dispositivo por omisin es especificado utilizado sp_diskdefault o a travs de SQL Enterprise Manager.

Configurando el Dispositivo de Base de Datos por omisin.


Considere lo siguiente cuando asigne un dispositivo por omisin: El administrador del sistema (SA) puede configurar dispositivos por omisin para los usuarios, para crean bases de datos utilizando el procedimiento sp_diskdefault. El SA debe remover a master (que es el dispositivo por omisin asignado) y configurar un nmero del dispositivo de base de datos por omisin para que el usuario pueda crear bases de datos.
Ing. Mariuxi Paola Zea Ordoez - 83 -

Si el dispositivo no es mencionado especficamente cuando crea una base de datos, SQL Server buscara por espacio disponible en la lista de dispositivos por omisin. Cualquier dispositivo puede ser un miembro de las lista por omisin y la lista puede contener ms de un dispositivo. Los dispositivos por omisin son usados en orden alfabtico. La sintaxis del comando es: Sp_diskdefault nombre_del_dispositivo , {defaulton | defaultoff} Ejemplo: remover a master como default. Sp_diskdefault master, defaultoff

Borrando un dispositivo de base de datos.


Borrar un dispositivo libera espacio de almacenamiento en el servidor, liberando el archivo manejado y el nmero de dispositivo. Especificando la clusula DELFILE, en la sintaxis de sp_dropdevice, borrar el archivo fsico del disco duro sin apagar SQL Server, de esta forma le permitir crear inmediatamente un nuevo dispositivo con ese mismo nmero de dispositivo y nombre lgico. Los dispositivos pueden ser borrados utilizando sp_dropdevice o a travs de SQL Enterprise Manager. La sintaxis de ap_dropdevices es: Sp_dropdevice nombre_lgico [, DELFILE] Ejemplo: borrar un dispositivo llamado TAPEDUM1 Sp_dropdevice TAPEDUM1 Ejemplo: borrando un dispositivo llamado prueba con su archivo fsico. Sp_dropdevice Prueba, DELFILE

Expandiendo Dispositivos de Base de Datos.


Si usted sobrepasa el espacio de un dispositivo de base de datos, el tamao del dispositivo puede ser expandido, utilizando la sentencia DISK RESIZE. El espacio adecuado debe estar disponible en el medio de almacenamiento para acomodar el nuevo tamao. La sintaxis de esta sentencia es: DISK RESIZE NAME = nombre_logico, SIZE = nuevo_tamao El nombre lgico es el nombre del dispositivo a ser cambiado de tamao, el nuevo_tamao es el tamao que tendr ahora el dispositivo en pginas de 2K.

Ing. Mariuxi Paola Zea Ordoez

- 84 -

Ejemplo: DISK RESIZE NAME = master, SIZE 15360 Este ejemplo cambia de tamao al dispositivo master para tener un tamao total de 30 MB. DISK RESIZE puede ser utilizado en cualquier dispositivo de base de datos, incluyendo el dispositivo Master. No es necesario reconstruir el dispositivo Master para ser incrementado el tamao. La sentencia DISK RESIZE expande un dispositivo, no disminuye el tamao de un dispositivo o altera cualquier base de datos que reside en ese dispositivo. DISK RESIZE no puede ser utilizado para dispositivos de backups o en dispositivos tempdb, cuando tempdb esta en el RAM.

Creacin de una Base de Datos.


El Administrador del Sistema (SA) puede crear bases de datos con la sentencia CREATE DATABASE. Solamente el SA puede tener o asignar permisos para usar esta sentencia, debido a que CREATE DATABASE necesita conocer la distribucin del almacenamiento. Al crear bases de datos, las responsabilidades administrativas del SA incluyen: Distribucin del Almacenamiento (Storage Allocation). Ser el nico al que se le permite usar la sentencia CREATE DATABASE (esto protege a SQL Server contra utilizacin indebida del espacio de almacenamiento). Asignar este permiso (privilegio) a otros usuarios. Crear nuevas bases de datos que son grabadas en las tablas sysdatabases y sysusages de la base de datos master.

La sentencia CREATE DATABASE. .- Para crear una base de datos, debe estar ubicados en la
base de datos master, y debe tener el permiso de utilizar la sentencia CREATE TABLE. Se debe definir el nombre de la base de datos, el o los dispositivos en los cuales residir la base de datos, la cantidad de espacio (en MB) requerida en cada dispositivo, Localizacin y tamao (en MB) el transaction log. Esta sentencia tiene la siguiente sintaxis: CREATE DATABASE nombrebd [ON {DEFAULT | dispositivodb} [= tamao] [, dispositivodb [= tamao]] ... ] [LOG ON dispositivolog [= tamao] [, dispositivolog [= tamao]] ... ] [FOR LOAD] La clusula FOR LOAD es usada especficamente cuando creamos una base de datos que ser cargada desde un backup. Usando esta clusula, la inicializacin de las paginas de datos durante la creacin de la base de datos no es hecha.

Ing. Mariuxi Paola Zea Ordoez

- 85 -

Cuando creamos una base de datos con la sentencia CREATE DATABASE, debemos considerar lo siguiente: Si el dispositivo de base de datos no es especificado, SQL Server colocar la base de datos dentro de uno o ms dispositivos por omisin. El tamao mnimo de una base de datos es 1 MB. Las decisiones de distribucin son importantes al momento ejecutar CREATE DATABASE; el almacenamiento puede ser difcilmente regenerado despus de haberlo asignado. Para crear una base de datos puede utilizar SQL Server Enterprise Manager. Ejemplos de la creacin de bases de datos: Ejemplo CREATE DATABASE prueba Funcin Crea la base de datos prueba en el dispositivo de base de datos por omisin, con el tamao por omisin de 2 MB (el tamao de model) CREATE DATABASE newprueba Crea la base de datos newprueba con un tamao de ON default = 10 10 MB en el dispositivo de base de datos por omisin. CREATE DATABASE newdb Crea la base de datos newdb con un tamao de 5 MB ON nwdata = 5 en el dispositivo de base de datos llamado nwdata CREATE DATABASE librera Crea la base de datos librera, y distribuye 3 MB en ON default = 3, nwdata = 7 el dispositivo de base de datos por omisin, y 7 MB en el dispositivo nwdata. * Esto permite que la base de datos sea almacenada en dos dispositivos. CREATE DATABASE libre1 Crea la base de datos libre1 y coloca 5 MB en el ON nwdata = 5 dispositivo nwdata y distribuye 2 MB para el LOG ON nwdatalog = 2 transaction log en otro dispositivo llamado nwdatalog. Nota: generalmente el dispositivo por omisin es master, esto se puede cambiar.

Cambiando el tamao de la Base de Datos.


El espacio utilizado por una base de datos puede ser incrementado utilizando la sentencia ALTER DATABASE. Su sintaxis es: ALTER DATABASE nombredb [ON {DEFAULT | dispositivo} [= size] [, dispositivo [= size]] ... ] [FOR LOAD] Cuando se altera una base de datos, debemos considerar lo siguiente: El parmetro size, debe ser expresado en megabytes, es la cantidad de espacio distribuida para la extensin (incremento) de la base de datos. La cantidad por omisin es 2 MB. El mnimo tamao que usted puede utilizar para alterar una base de datos es 1 MB.
Ing. Mariuxi Paola Zea Ordoez - 86 -

Los permisos para utilizar ALTER DATABASE, son transferidos con los permisos de CREATE TABLE. FOR LOAD previene la utilizacin de la base de datos hasta despus de haber cargado la base de datos. Funciona slo si la base de datos fue creada con esta opcin. Ejemplo: ALTER DATABASE newdb ON nwdata = 1 Este ejercicio incrementa la base de datos newdb en 1 MB.

Disminuyendo el tamao de la base de datos.


DDBC SHRINKDB permite disminuir el tamao de una base de datos; es totalmente logged y recuperable. Solamente el SA y el DBO pueden ejecutar este comando. La base de datos resultante no puede ser mas pequea que el tamao de model o el valor por omisin. Si se va a disminuir la base de datos master, se debe respaldar la base de datos master primero antes de disminuir el tamao, debido a que este comando no mueve la informacin; puede remover completamente las unidades de distribucin vacas, comenzando desde el final de la base de datos. Si ejecuta este comando sin especificar un nuevo tamao, automticamente asignar el tamao mnimo al cual la base de datos puede ser disminuida. La sintaxis de este comando es: DBCC SHRINKDB (nombredb [, nuevotamao [, MASTEROVERRIDE]]) El comando contrae la base de datos al valor especificado en nuevotamao. El nuevo valor debe ser especificado en paginas de 2 K. Este comando podra disminuir tanto la porcin de datos y el log de la base de datos. Par cambiar el tamao solamente de los datos o del log, primero disminuya la base de datos entera y luego utilice el comando ALTER DATABASE para incrementar el tamao de los datos o del log de la base de datos. Para disminuir una base de datos del usuario debe configurarse en modo single-user (monousuario). Utilice el store procedure sp_dboption para realizar este proceso. Despus de realizar la configuracin, es sugerible respaldar tanto el master como la base de datos que usted desea disminuir antes de usar este comando. Ejemplo, que disminuye el tamao de la base de datos newdb a 8 MB: DBCC SHRINKDB (newdb, 4096)

Opciones de configuracin para las bases de datos.


Las opciones de configuracin de una base de datos son manejadas a travs del store procedure sp_dboption. Estas opciones son:
Ing. Mariuxi Paola Zea Ordoez - 87 -

Opcin ANSI null default

Descripcin Permite al usuario controlar el valor de nulabilidad por omisin de la base de datos (NOT NULL o NULL) Dbo use only Configura la base de datos para ser usada solamente por el propietario de la misma. No chkpt on recovery Define donde o no un checkpoint de registro es aadido a la base de datos despus de que es recuperada durante un inicio de SQL Server. Offline Usado para medios removibles. Permite a una base de datos ser colocada en linea Published Permite a la base de datos ser publicada para Replicacin. Read only Define a una base de datos como solo de lectura. Select into/bulkcopy Define a una base de datos como solo de lectura. Single user Restringe el acceso de la base de datos a un solo usuario. Subscribed Permite a la base de datos subscribirse para Replicacin Trunc. Log on chkpt Causa al transaction log ser truncado (las transacciones committed son removidas) cada vez que el procso CHECKPOINT ocurre (usualmente una vez por minuto). Para visualizar la lista de opciones disponibles para las bases de datos, ejecute sp_dboption sin parametros. Para listar todas las configuraciones de una base de datos en particular, ejecuta el store procedure sp_helpdb.

Ing. Mariuxi Paola Zea Ordoez

- 88 -

Das könnte Ihnen auch gefallen