Aplicacin 1
Ficheros Propiedad
de la Aplicacin 1
(Salida)
Aplicacin 2
Ficheros Propiedad
de la Aplicacin 2
(Entrada)
-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.
-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.
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.
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.
Una base de datos informtica es compacta: una base de datos con miles de registros pueden
almacenarse en poco espacio.
-4-
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).
Tablas.
ndices.
Vistas.
Diccionario de Datos.
Procedimientos
Usuarios
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.
-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.
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.
Base
de
Datos
Administrador de la
Base
Usuarios
-6-
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:
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
C
e
n
t
r
o
Usuario A
d
e
Usuario B
Fichero B
Aplicacin B
Fichero C
l
c
u
l
o
Aplicacin C
Fichero D
Usuario C
Aplicacin B
Base
De
Datos
C
e
n
t.
d
e
C
l
c
Administrador
De Datos
-7-
Aplicacin C
DEFINICION Y ORGANIZACION:
2. DIMENSIONADO:
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.
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
Ing. Mariuxi Paola Zea Ordoez
-8-
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.
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:
-9-
Cuerpo
Puerta Izq.
Tirador
Puerta Der.
Ventana
Chasis
Capota
Techo
Seguro
- 10 -
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:
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
Bill
Productos
Art. 4
A.
Nro 123
Pedidos
La estructura de este tipo de datos simplemente no se ajustara a la jerarquiza estricta de IMS.
Ing. Mariuxi Paola Zea Ordoez
- 11 -
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
Nro. 1
Productos
1st. Coa.
Nro. 2
Art. 4
Nro. 3
Nro. 4
Art. 5
Nro. 5
Nro. 6
Pedidos
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 prmer 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
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.
- 12 -
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.
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.
Ing. Mariuxi Paola Zea Ordoez
- 13 -
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.
- 14 -
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.
- 15 -
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.
- 16 -
- 17 -
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:
1)
Asociacin uno a uno (1:1).- Son aquellas en las cuales solo interviene un objeto de cada entidad.
Ejemplo:
Producto
2)
Empleado
Se
lista
para
Se le
asigna
1
Empaque del
Producto
1
Oficina
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.
- 18 -
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).
1)
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:
2)
Medico
Empleado
Trata
al
pertenece
a
1
Departamento
Paciente
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.
1)
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
Cursos
2)
Vendedor
M
Atiende
a
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
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.
- 19 -
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.
2. 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.
3. SIMPLE VALOR.- Son los que tienen un valor simple para una entidad particular. Ejemplo: IVA,
siempre es 10.
4. 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.
5. 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.
6. ALMACENADO.- En base a este atributo se puede obtener atributos derivados. Ejemplo: La cantidad o
el Precio Unitario sirven para obtener el Total.
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.
- 20 -
- 21 -
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 ( _ _ _ _ _ _ ).
Estabilidad.
Considerar si algunas claves son menos propensas a sufrir modificaciones en sus valores.
Facilidad de uso.
Ser, por ejemplo, ms fcil de usar una clave numrica corta que otra alfanumrica con otros
caracteres.
- 22 -
Fiabilidad.
Ver si alguna clave contiene dgitos de validacin u otros mecanismos de autodeteccin o
correccin de errores..
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
Empleados
Tabla Departamento
Cdigo
01
02
03
04
Nombre
Ventas
Contabil.
Estadist.
Administ.
Extensin
205
190
135
146
Tabla Empleados
Cdigo
01
02
03
04
05
Nombre
Juan
Luis
Mara
Carla
Jos.
Departamento
03
03
02
04
01
- 23 -
06
Pedro
02
Reglas de Insercin:
En funcin de como se asignan los empleados a departamentos.
a) Insercin en Dpto.
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.
- 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.
- 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.
- 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
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
- 27 -
d) Inventario de Libros
Universidad Tcnica de Machala
Facultad de Ingeniera Civil
BIBLIOTECA
Clas
310
No.
Inv.
927
Fec.
Ing.
1-1-97
728
942
3-7-97
625.8
5
945
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
Pag.
304
Ingreso
Prec.
Obs.
Compra
50000
C/u
Compra
680000
4 tomo
Donacin
100000
Autor
Titulo
Nombre
Firma
Entrega
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:
Los Libros (que van a ser prestado a los alumnos para investigacin)
De tipo evento:
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
1
No
hay
=1
Consta
en
N
Libros
Libros
Registros
N = N
Se
registra
= N
=M
Registros
- 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.
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.
Ing. Mariuxi Paola Zea Ordoez
- 30 -
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
convertirn en las tablas), y el orden de sus atributos (los atributos pasarn a ser los campos de las
tablas).
- 31 -
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?
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.
- 32 -
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
*cdigo
Entidad 2
cdigo
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,
Ing. Mariuxi Paola Zea Ordoez
- 33 -
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.
Registro
Alumnos
* 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:
Entidad 2
Entidad 1
Entidad 1
Entidad Nueva
*Cdigo
Entidad 2
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
*Num_registro
Detalle_Registro
Num_registro
numero_inventario
Libros
* 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.
- 34 -
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.
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
Ing. Mariuxi Paola Zea Ordoez
- 35 -
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.
- 36 -
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
Apellidos
Nombre Madre
Ocupacin M Telfono
0702801597
Ariana Camila
Lara Zea
Andy Zea
Abogada
0706874654
0702589635
Mara Isabel
Juan Carlos
Maldonado Cruz
Vega Alvarez
Mara Cruz
Nancy Alvarez
Profesora
Secretaria
915427,
912043
04431735
094598695,
912861
- 37 -
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:
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
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
Telfonos
915427
912043
04431735
094598695
912861
SP
- 38 -
Status
Ciudad
20
Veracruz
10
Colima
20
Veracruz
La tabla SP estar constituida por:
PN, Cantidad, SN
SN
PN
Cantidad
S1
P1
300
S1
P2
200
S1
P3
400
S1
P4
200
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
Ing. Mariuxi Paola Zea Ordoez
Apellidos
Lara Zea
Maldonado Cruz
Vega Alvarez
Nombre Madre
Andy Zea
Mara Cruz
Nancy Alvarez
OcupacinM
Abogada
Profesora
Secretaria
- 39 -
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
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
OcupacinM
Abogada
Profesora
Secretaria
- 40 -
Nombres
Ariana Camila
Mara Isabel
Juan Carlos
Apellidos
Lara Zea
Maldonado Cruz
Vega Alvarez
Nombre Madre
Andy Zea
Mara Cruz
Nancy Alvarez
Tabla SN:
Ciudad
SN
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.
Ing. Mariuxi Paola Zea Ordoez
- 41 -
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.).
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.
- 42 -
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
150
Matemticas
Actividad
Natacin
Natacin
Tenis
Tenis
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.
- 43 -
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.
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.
- 44 -
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.
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.
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
- 45 -
Peticin
SQL
Datos
Base de
Datos
DBMS
El nombre SQL es realmente y en cierta medida inapropiado ya que es mucho ms que una
herramienta de consulta aunque ese fue su propsito original ya que el recuperar datos sigue siendo
una de sus funciones ms importantes. SQL se utiliza para controlar todas la funciones que
proporciona a sus usuarios incluyendo:
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.
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.
- 46 -
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.
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.
- 47 -
2.
3.
4.
5.
6.
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
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.
- 48 -
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:
Termina
l
Teclas
Aplicaci
n
DBM
S
Base de
Datos
Caracteres
(Datos)
el
DBMS
En esta arquitectura
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.
- 49 -
PC
Software
de red
Aplicaci
n
DBMS
Base
de
Dato
s
Peticin de E/S de
disco
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
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.
DBMS
Aplicacin
Base
de
Datos
Peticin de SQL
Datos
- 50 -
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.
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.
- 51 -
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.
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))
- 52 -
* 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 )
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.
- 53 -
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)
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,
Ing. Mariuxi Paola Zea Ordoez
- 54 -
- 55 -
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) ;
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.
- 56 -
[(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.)
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.
- 57 -
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.
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
Ing. Mariuxi Paola Zea Ordoez
- 58 -
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
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.
- 59 -
- 60 -
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;
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.
- 61 -
- 62 -
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:
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
- 63 -
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
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)
Ing. Mariuxi Paola Zea Ordoez
- 64 -
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
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
- 65 -
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
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.
Ing. Mariuxi Paola Zea Ordoez
- 66 -
- 67 -
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
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.
- 68 -
[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.
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.
- 69 -
- 70 -
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.
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:
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.
- 71 -
- 72 -
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
Utility
versin 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 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
- 73 -
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
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.
- 74 -
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.
sp_helpdb pubs
- 75 -
B.
sp_helpdb
Tablas usadas: spt_values, sysdatabases, sysdevices, syslogins, sysusages
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
Lastname
Anderson
Firstname
Andrew
Middle_i
A
Photo
--- 76 -
1002
1003
1004
Barr
Barr
Hendson
Andrew
Bill
Jack
R
Null
Null
-----
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
Lastname
Anderson
Allen
Barr
Photo
-----
Firstname
Allen
Andrew
Bill
Middle-i
A
R
Null
Photo
-----
- 77 -
- 78 -
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. Algunos requerimientos de las
llaves primarias incluyen:
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.
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.
- 79 -
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.
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.
Ing. Mariuxi Paola Zea Ordoez
- 80 -
- 81 -
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.
- 82 -
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
- 83 -
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.
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.
- 84 -
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.
- 85 -
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.
- 86 -
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.
- 87 -