Vous êtes sur la page 1sur 92

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Universidad Nacional del Nordeste


Facultad de Ciencias Exactas y Naturales y
Agrimensura

Base de Datos I
Profesor Titular: Esp. Juan Domingo Tonsich

Tercer Ao. Segundo Cuatrimestre

Licenciatura en Sistemas de Informacin


Prof.: Esp. Juan Domingo Tonsich

Hoja N:1

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Tema 2 rboles Generales y Binarios y Estructuras de Datos.


Definiciones y representaciones. Nomenclatura sobre rboles.
Declaracin y representacin de un rbol binario. Recorridos sobre
rboles binarios. Construccin de un rbol binario. rbol binario de
bsqueda. rboles 2-3-4. rboles rojo negro. rboles AVL. rboles
multiway. rboles b. rboles b+. rboles binarios hilvanados.
Definiciones y representaciones
Un bosque es un grafo no dirigido acclico.
Un rbol es una estructura de datos, que puede definirse de forma recursiva
como:
Una estructura vaca o.
Un elemento o clave de informacin (nodo) ms un nmero finito de
estructuras tipo rbol, disjuntos, llamados subrboles:
Si dicho nmero de estructuras es inferior o igual a 2, se tiene un rbol binario.
Un rbol es una estructura no secuencial.
Un rbol es un tipo de grafo acclico, conexo y no dirigido:
Es un grafo no dirigido en el que existe exactamente un camino entre todo par
de nodos.
Esta definicin permite implementar un rbol y sus operaciones maleando las
representaciones que se utilizan para los grafos.
Las principales formas de representacin son:
Mediante un grafo.
Mediante un diagrama encolumnado:
Una estructura de datos muy utilizada son los rboles

Binarios:

Estos rboles tienen 0, 1 o 2 descendientes como mximo.


El rbol de la figura es un ejemplo vlido de rbol binario.
Nomenclatura sobre rboles
Raz: es aquel elemento que no tiene antecesor; ejemplo: a.
Rama: es la arista entre dos nodos.
Antecesor: un nodo x es antecesor de un nodo y si por alguna de las ramas
de x se puede llegar a y.
Sucesor: un nodo x es sucesor de un nodo y si por alguna de las ramas de
y se puede llegar a x.
Grado de un nodo: es el nmero de descendientes directos que tiene. Ejemplo:
c tiene grado 2, d tiene grado 0, a tiene grado 2.
Hoja: es un nodo que no tiene descendientes (grado 0).
Ejemplo: d.
Nodo interno: es aquel que tiene al menos un descendiente.

Nivel: es el nmero de ramas que hay que recorrer para llegar de la raz a un
nodo. Ejemplo: el nivel del nodo
a es 1 (es un convenio), el nivel del nodo e es 3.
Altura: es el nivel ms alto del rbol. En el ejemplo la altura es 3.
Prof.: Esp. Juan Domingo Tonsich

Hoja N:2

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Anchura: es el mayor valor del nmero de nodos que hay en un nivel. En la


figura la anchura es 3.

rbol balanceado por altura: es aquel en donde todos los hijos o nodos hoja se

intentan mantener a la misma distancia de la raz.


rbol balanceado por peso: es aquel en donde los nodos ms visitados o
utilizados se mantienen a poca distancia de la raz.
rbol relleno: se da cuando todo nodo tiene 2 hijos o bien es hoja.
rbol binario completo: es un rbol binario relleno en dnde todas las hojas
tienen la misma profundidad.
Aclaraciones:
Se ha denominado a a la raz, pero se puede observar segn la figura que
cualquier nodo podra ser considerado raz, basta con girar el rbol.
Podra determinarse por ejemplo que b fuera la raz y a y d los sucesores
inmediatos de la raz b.
Generalmente en las implementaciones sobre un computador es necesaria una
jerarqua, es decir, que haya una nica raz.
Declaracin y representacin
De un rbol binario
Se definir el rbol con una clave de tipo entero (puede ser cualquier otro tipo
de datos), y dos hijos: izquierdo (izq.) y derecho (der.).
Para representar los enlaces con los hijos se utilizan punteros.
El rbol vaco se representar con un puntero nulo.
En c un rbol binario puede declararse de la siguiente manera:
Typedef struct tarbol
{
Int clave;
Struct tarbol *izq, *der;
} tarbol;
una forma ms detallada sera:
estructura treenode:
Template<class t>
Class treenode
{
Public:
Treenode(t e)
: data(e), leftptr(null), rightptr(null) {};
Treenode(t e, treenode<t>* left,
Treenode<t>* right)
: data(e), leftptr(left), rightptr(right) {};
T data;
Treenode<t> *leftptr,
*rightptr;
};
estructura binarytree:
Template<class t>
Prof.: Esp. Juan Domingo Tonsich

Hoja N:3

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Class binarytree
{
Public:
Binarytree(): root(null) {};
Binarytree(t rootvalue);
Binarytree(t rootvalue,
Const binarytree<t>& left,
Const binarytree<t>& right);
Binarytree<t>& operator= (const
Binarytree<t>& b);
~binarytree(){ clear();};
Binarytree<t> left() const;
Binarytree<t> right() const;
Int isempty() const
{ return (root == null);};
T& operator() () const;
Void clear();
Void preorder();
Void inorder();
Void postorder();
Protected:
Treenode<t>* root;
};
Recorridos sobre rboles binarios
se consideran dos tipos de recorrido:
recorrido en profundidad.
recorrido en anchura o a nivel.
puesto que los rboles no son secuenciales como las listas, hay que buscar
estrategias alternativas para visitar todos los nodos.
recorridos en profundidad

Recorrido en preorden (preorder):

consiste en visitar el nodo actual (visitar puede ser simplemente mostrar la


clave del nodo por pantalla), y despus visitar el subrbol izquierdo y una vez
visitado, visitar el subrbol derecho.
es un proceso recursivo por naturaleza.
para la figura ejemplo las visitas seran en el orden
Siguiente: a,b,d,c,e,f.
la codificacin en c es la siguiente:
Void preorden(tarbol *a)
{
If (a != null) {
Visitar(a);
Preorden(a->izq);
Preorden(a->der);
Prof.: Esp. Juan Domingo Tonsich

Hoja N:4

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

}
}

recorrido en inorden u orden central (inorder):

se visita el subrbol izquierdo, el nodo actual, y despus se visita el subrbol


derecho.
en el ejemplo de la figura las visitas seran en este
Orden: b,d,a,e,c,f.
la codificacin en c es la siguiente:
Void inorden(tarbol *a)
{
If (a != null) {
Inorden(a->izq);
Visitar(a);
Inorden(a->der);
}
}

recorrido en postorden (postorder):

se visitan primero el subrbol izquierdo, despus el subrbol derecho, y por


ltimo el nodo actual.
en el ejemplo de la figura el recorrido quedara as: d,b,e,f,c,a.
la codificacin en c es la siguiente:
Void postorden(arbol *a)
{
If (a != null) {
Postorden(a->izq);
Postorden(a->der);
Visitar(a);
}
}
rboles generales y binarios 24
Recorridos sobre rboles
Binarios
la ventaja del recorrido en postorden es que permite borrar el rbol de forma
consistente:
si visitar se traduce por borrar el nodo actual, al ejecutar este recorrido se
borrar el rbol o subrbol que se pasa como parmetro.
la razn para hacer esto es que no se debe borrar un nodo y despus sus
subrboles, porque al borrarlo se pueden perder los enlaces, y aunque no
Se perdieran se rompe con la regla de manipular una estructura de datos
inexistente.
recorridos en amplitud
consiste en ir visitando el rbol por niveles.
primero se visitan los nodos de nivel 1 (la raz), despus los nodos de nivel 2,
as hasta que ya no queden ms.
Prof.: Esp. Juan Domingo Tonsich

Hoja N:5

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

si se hace el recorrido en amplitud del rbol de la figura ejemplo se visitaran


los nodos en este orden:
A,b,c,d,e,f.
en este caso el recorrido no se realizar de forma
recursiva
sino iterativa, utilizando una cola como estructura de datos auxiliar:
el procedimiento consiste en encolar (si no estn vacos) los subrboles
izquierdo y derecho del nodo extrado de la cola, y seguir desencolando y
encolando hasta que la cola est vaca.
en la codificacin que viene a continuacin no se implementan las operaciones
sobre colas.
la codificacin en c es la siguiente:
Void amplitud(tarbol *a)
{
Tcola cola; /* las claves de la cola sern de tipo rbol
Binario */
Arbol *aux;
If (a != null) {
Crearcola(cola);
Encolar(cola, a);
While (!colavacia(cola)) {
Desencolar(cola, aux);
Visitar(aux);
If (aux->izq != null) encolar(cola, aux->izq);
If (aux->der != null) encolar(cola, aux->der);
}
}
}
Construccin de un rbol binario
A continuacin se estudia un mtodo para crear un rbol binario que no tenga
claves repetidas.
Se parte de su recorrido en preorden e inorden, almacenados en sendos arrays.
Partiendo de los recorridos preorden e inorden del rbol de la figura ejemplo
puede determinarse:
Que la raz es el primer elemento del recorrido en preorden.
ese elemento se busca en el array inorden.
los elementos en el array inorden entre izq y la raz forman el subrbol
izquierdo.
los elementos entre der y la raz forman el subrbol derecho.
a continuacin comienza un proceso recursivo.
se procede a crear el subrbol izquierdo, cuyo tamao est limitado por los
ndices izq y der.
la siguiente posicin en el recorrido en preorden es la raz de este subrbol.
Queda lo siguiente:
el subrbol b tiene un subrbol derecho, que no tiene ningn descendiente,
segn indican los ndices izq y der.
Prof.: Esp. Juan Domingo Tonsich

Hoja N:6

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

se ha obtenido el subrbol izquierdo completo de la raz a, puesto que b no


tiene subrbol izquierdo:
despus seguir construyndose el subrbol derecho a partir de la raz a.
Arbol binario de bsqueda
un rbol binario de bsqueda es aquel que es:
una estructura vaca, o.
un elemento o clave de informacin (nodo) ms un nmero finito -a lo sumo
dos- de estructuras tipo rbol, disjuntos, llamados subrboles que cumplen lo
siguiente:
todas las claves del subrbol izquierdo al nodo son menores que la clave del
nodo.
todas las claves del subrbol derecho al nodo son mayores que la clave del
nodo.
ambos subrboles son rboles binarios de bsqueda.
al definir el tipo de datos que representa la clave de un nodo dentro de un
rbol binario de bsqueda es necesario que en dicho tipo se pueda establecer
una
Relacin de orden.
por ejemplo, suponer que el tipo de datos de la clave es un puntero (da igual a
lo que apunte).
en el ejemplo de la figura las claves son nmeros enteros:
dada la raz 4, las claves del subrbol izquierdo son menores que 4, y las claves
del subrbol derecho son mayores que 4.
esto se cumple tambin para todos los subrboles.
si se hace el recorrido de este rbol en orden central se obtiene una lista de los
nmeros ordenada de menor a mayor.
una ventaja fundamental es que son en general mucho ms rpidos para
localizar un elemento que una lista enlazada.
son ms rpidos para insertar y borrar elementos.
si el rbol est perfectamente equilibrado (la diferencia entre el n de nodos del
subrbol izquierdo y el n de nodos del subrbol derecho es a lo sumo 1, para
todos los nodos):
el nmero de comparaciones necesarias para localizar una clave es
aproximadamente log n en el peor caso.
el algoritmo de insercin en un rbol binario de bsqueda tiene la ventaja
(sobre los arrays ordenados, donde se empleara bsqueda dicotmica para
localizar un elemento) de que no necesita hacer una reubicacin de los
elementos de la estructura para que esta siga ordenada despus de la
insercin.
dicho algoritmo funciona avanzando por el rbol escogiendo la rama izquierda o
derecha en funcin de la clave que se inserta y la clave del nodo actual, hasta
encontrar su ubicacin:
insertar la clave 7 en el rbol de la figura requiere avanzar por el rbol hasta
llegar a la clave 8, e introducir la nueva clave en el
Subrbol izquierdo a 8.
el algoritmo de borrado en rboles es algo ms complejo, pero ms eficiente
que el de borrado en un array ordenado.
Prof.: Esp. Juan Domingo Tonsich

Hoja N:7

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

operaciones bsicas sobre rboles binarios de bsqueda

bsqueda

si el rbol no es de bsqueda, es necesario emplear uno de los recorridos


anteriores sobre el rbol para localizarlo.
el resultado es idntico al de una bsqueda secuencial.
aprovechando las propiedades del rbol de bsqueda se puede acelerar la
localizacin:
hay que descender a lo largo del rbol a izquierda o derecha dependiendo del
elemento que se busca.
la codificacin en c es la siguiente:
Boolean buscar(tarbol *a, int elem)
{
If (a == null) return false;
Else if (a->clave < elem) return buscar(a->der, elem);
Else if (a->clave > elem) return buscar(a->izq, elem);
Else return true;
}

insercin

la insercin resulta prcticamente idntica a la bsqueda.


cuando se llega a un rbol vaco se crea el nodo en el puntero que se pasa
como parmetro por referencia, de esta manera los nuevos enlaces mantienen
la coherencia.
si el elemento a insertar ya existe entonces no se hace nada.
la codificacin en c es la siguiente:
Void insertar(tarbol **a, int elem)
{
If (*a == null) {
*a = (arbol *) malloc(sizeof(arbol));
(*a)->clave = elem;
(*a)->izq = (*a)->der = null;
}
Else if ((*a)->clave < elem) insertar(&(*a)->der, elem);
Else if ((*a)->clave > elem) insertar(&(*a)->izq, elem);
}

borrado

la operacin de borrado resulta ser algo ms complicada.


el rbol debe seguir siendo de bsqueda tras el borrado.
una vez encontrado el nodo a borrar pueden darse tres casos:
el nodo no tiene descendientes: simplemente se borra.
el nodo tiene al menos un descendiente por una sola rama: se borra dicho nodo
y su primer descendiente se asigna como hijo del padre del nodo borrado:
en el rbol de la figura se borra el nodo cuya clave es 1, resultando el
siguiente rbol:
Prof.: Esp. Juan Domingo Tonsich

Hoja N:8

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

el nodo tiene al menos un descendiente por cada rama:

Al borrar dicho nodo es necesario mantener la coherencia de los enlaces y la


estructura de un rbol binario de bsqueda:
la solucin consiste en sustituir la informacin del nodo que se borra por la de
una de las hojas y borrar a continuacin dicha hoja:
debe ser la hoja que contenga una de estas dos claves:
la mayor de las claves menores al nodo que se borra: si se quiere borrar el
nodo 4 del rbol de la figura ejemplo se sustituir la clave 4 por la clave 2.
la menor de las claves mayores al nodo que se borra: si se quiere borrar el
nodo 4 del rbol de la figura ejemplo se sustituir la clave 4 por la clave 5.
el algoritmo de borrado que se muestra a continuacin realiza la sustitucin por
la mayor de las claves menores, para lo cual es necesario:
descender primero a la izquierda del nodo que se va a borrar.
avanzar siempre a la derecha hasta encontrar un nodo hoja.
a continuacin se muestra grficamente el proceso de borrar el nodo de clave
4:
la codificacin en c es la siguiente, donde el procedimiento sustituir es el que
desciende por el rbol cuando se da el caso del nodo con descendientes por
ambas ramas:
Void borrar(tarbol **a, int elem)
{
Void sustituir(tarbol **a, tarbol **aux);
Tarbol *aux;
If (*a == null) /* no existe la clave */
Return;
If ((*a)->clave < elem) borrar(&(*a)->der, elem);
Else if ((*a)->clave > elem) borrar(&(*a)->izq, elem);
Else if ((*a)->clave == elem) {
Aux = *a;
If ((*a)->izq == null) *a = (*a)->der;
Else if ((*a)->der == null) *a = (*a)->izq;
Else sustituir(&(*a)->izq, &aux); /* se sustituye por la mayor de las
Menores */
Free(aux);
}
}
Void sustituir(tarbol **a, tarbol **aux)
{
If ((*a)->der != null) sustituir(&(*a)->der, aux);
Else {
(*aux)->clave = (*a)->clave;
*aux = *a;
*a = (*a)->izq;
}
}
Prof.: Esp. Juan Domingo Tonsich

Hoja N:9

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

rboles 2-3-4
como una forma de eliminar las bsquedas exhaustivas
De los rboles binarios existen los rboles 2-3-4.
estos son rboles en cuyos nodos se permite tener ms de una clave al mismo
tiempo.
los rboles binarios tienen mximo 2 hijos (derecho e izquierdo).
si se le permite al nodo tener 2 valores, este podr tener 3 ligas a subrboles y
uno con 3 valores podr tener 4 ligas.
un rbol con estas caractersticas puede contener entonces nodos con 2, 3 o 4
ligas, de ah que se les llama rboles 2-3-4.
en los rboles 2-3-4 todos los subrboles tienen la misma altura y estn
siempre balanceados.
estos rboles son muy atractivos para el almacenamiento y recuperacin de
claves, sin embargo son un tanto complicados de implementar.
los rboles 2-3 son un tipo de rbol balanceado por altura (height balanced)
en donde todos los nodos no terminales tienen 2 3 descendientes y todos los
nodos hoja tienen la misma longitud (path length) o distancia desde la raz.
en estos rboles slo las hojas contienen la informacin (valores).
los nodos no-terminales contienen indicadores que constan de 2 valores de los
cuales el izquierdo es el mximo del subrbol izquierdo y el segundo valor es el
valor mximo del subrbol central.
rboles rojo - negro
los rboles rojo-negro son rboles binarios en donde cada nodo tiene un color
ya sea rojo o negro.
estos rboles representan una manera de transformar un rbol 2-3-4 en uno
binario, lo que se puede lograr
Utilizando los siguientes lineamientos:
todo nodo 2 es transformado a un nodo negro con descendientes negros.
todo nodo 3 es transformado en un nodo negro con un hijo rojo y uno negro.
un nodo 4 es transformado a un nodo negro con dos hijos rojos.
esto satisface las siguientes propiedades:
todos los nodos tienen un color, ya sea rojo o negro.
toda hoja es negra.
ambos descendientes de un nodo rojo son siempre nodos negros.
cada camino desde cualquier nodo hasta una hoja descendiente contiene el
mismo nmero de nodos negros.
no hay dos nodos rojos adyacentes en un camino.
al nmero de nodos negros en el camino de un nodo a una hoja descendiente
se le conoce como la altura
Negra del nodo.
la altura - negra de un rbol rojo - negro es la altura
negra de su raz.

ejemplo de transformacin de un rbol 2-3-4 en un rbol


Prof.: Esp. Juan Domingo Tonsich

Hoja N:10

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Rojo negro:
Arboles avl
la estructura de datos ms vieja y mejor conocida para rboles balanceados es
el rbol AVL.
su propiedad es que la altura de los subrboles de cada nodo difiere en no ms
de 1.
para mantenerlo balanceado es necesario saber la altura o la diferencia en
alturas de todos los subrboles:
se debe tener que guardar informacin adicional en cada nodo: un contador de
la diferencia entre las alturas de sus dos subrboles.
Los rboles AVL fueron nombrados por sus desarrolladores adelson - velskii y
landis.
Probablemente la principal caracterstica de los rboles AVL es su excelente
tiempo de ejecucin para las diferentes operaciones (bsquedas, altas y bajas).
en las siguientes dos figuras la primera es un rbol avl y la segunda no lo es ya
que los subrboles del nodo l difieren en altura por ms de 1.
Un ejemplo de rbol AVL es el rbol (a), mientras que el rbol (b) no lo es.
rboles multiway
los rboles son utilizados para almacenar informacin y para poder accederla.
cuando se trata de volmenes muy grandes de datos almacenados en disco
duro, las estructuras y estrategias de bsqueda vistas anteriormente resultan
ineficientes, especialmente por el alto nmero de accesos al disco.
para evitar tener que hacer muchos accesos a disco es razonable tener varias
claves en cada nodo del rbol.
cuando la informacin de varios nodos se junta formando pequeos grupos a
estos se les llama pginas.
si en cada acceso a disco un procedimiento puede leer toda una pgina de
datos en lugar de leerlos de uno en uno:
se puede disminuir significativamente el nmero de accesos necesarios para
encontrar un determinado dato.
a los rboles que manejan en cada nodo una pgina se les llama rboles
multiway:
Cada nodo podr tener un mximo de m valores o claves y por consiguiente
m + 1 ligas a sus descendientes.
la bsqueda de una clave sera anloga a la de los rboles 2-3-4.
insertar un dato en un nodo m (es decir, que ya est lleno, con m - 1
elementos) implica dividir dicho nodo en 2 nodos de tipo m/2 (para ello se
asume que es nmero par):
ejemplo, un nodo 4 (que tiene 3 elementos) se divide en 2 nodos de tipo 2,
al igual que en el caso de los rboles 2-3-4.
el tamao de una pgina no es totalmente arbitrario:
a mayor tamao el tiempo para procesarla es mayor.
depende tambin de la cantidad de memoria principal disponible.
rboles b
Prof.: Esp. Juan Domingo Tonsich

Hoja N:11

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

este tipo de rboles fue llamado rboles b por r. Bayer y e. Mccreight, los
primeros en considerar el uso de estos rboles de tipo multiway.
un rbol b de orden w cumple con las siguientes propiedades:
toda pgina, excepto la raz contiene al menos w claves.
la raz contiene al menos una clave.
la raz tiene al menos 2 descendientes.
toda pgina contiene a lo sumo 2 w claves.
Toda pgina excepto las hojas tiene m + 1 descendientes, dnde m es el
nmero de claves en la pgina.
Las hojas no tienen descendientes.
todas las hojas estn en el mismo nivel.
cada nodo pgina es representado por una estructura que tiene:
Un espacio para 2 w claves y 2 w + 1 apuntadores hacia sus descendientes.
un campo con un valor que indica el nmero actual de claves en la pgina.
este tipo de rboles slo son tiles cuando son de orden mayor o igual a 3.
las operaciones de altas y bajas en un rbol b no alteran su balance.
rboles b+
una variacin a los rboles b consiste en que todas las claves estn en las hojas
mientras que los nodos no
terminales contienen los ndices para las claves.
adicionalmente las hojas estn conectadas secuencialmente.
en estos rboles se requieren 2 tipos de estructuras:
una para representar los nodos no terminales:
igual a la de los rboles b.
Otra para las hojas:
tiene un apuntador adicional para apuntar a la siguiente hoja.
Estos rboles son especialmente tiles para aplicaciones que requieren ambos
tipos de acceso, secuencial y aleatorio.
para buscar un dato en estos rboles es necesario recorrer un camino completo
hasta la hoja correspondiente siguiendo los ndices:
el tiempo de bsqueda es siempre constante.
las bajas son diferentes:
cuando se elimina un dato se tienen que mover y reajustar elementos para
evitar huecos y para que la informacin en los nodos no - terminales
Asociados no cambie.
si una pgina tiene menos de la mitad de elementos (underflow) es necesario
balancear el rbol.
para balancear se redistribuyen los datos o se concatenan pginas.
rboles binarios hilvanados
al estudiar la representacin enlazada de un rbol binario es fcil observar que
existen muchos enlaces nulos.
de hecho, pueden existir ms enlaces nulos que punteros con valores reales.
Prof.: Esp. Juan Domingo Tonsich

Hoja N:12

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

para un rbol con n nodos, existen n+1 enlaces nulos de los 2n enlaces
existentes en la representacin (ms de la mitad).
como el espacio de memoria ocupado por los enlaces nulos es el mismo que el
ocupado por los no nulos, podra resultar conveniente utilizar estos enlaces
Nulos para almacenar alguna informacin de inters
Para la manipulacin del rbol binario.
una forma de utilizar estos enlaces es sustituirlos por
Punteros a otros nodos del rbol.
los enlaces nulos situados en el subrbol derecho de un nodo se suelen
reutilizar para apuntar al sucesor de ese nodo en un determinado recorrido del
rbol, por ejemplo infijo.
los enlaces nulos en subrboles izquierdos se utilizan para apuntar al
predecesor del nodo en el mismo tipo de recorrido.
si para algn nodo no existe predecesor (porque es el primero del recorrido) o
sucesor (porque es el ltimo), se mantiene con valor nulo el enlace
correspondiente.
otra ventaja es la posibilidad de un acceso rpido al sucesor (o al predecesor)
de un nodo, que es una operacin frecuentemente necesaria.
para poder manejar correctamente toda la informacin de la que se dispone en
la representacin hilvanada (con hilos) del rbol binario, es necesario poder
distinguir entre lo que son punteros normales,
Que representan las relaciones reales entre los nodos,
Y lo que son hilos.
esto se puede hacer aadiendo dos campos booleanos a la representacin de
los nodos del rbol.
estos nuevos campos indicarn si los enlaces izquierdo y derecho son hilos o
no.
con el objeto de no mantener absolutamente ningn enlace nulo y para facilitar
el recorrido del rbol, se suele aadir a la estructura un nodo raz que no
contiene informacin real.
En general, la utilizacin de enlaces hilos simplifica los algoritmos de recorrido
del rbol, por lo que son recomendables cuando el recorrido del rbol es una
operacin frecuente.
Desde el punto de vista de la manipulacin general del rbol hay que tener en
cuenta que:
La insercin de nuevos nodos debe mantener en todo momento esta estructura
de enlaces con los nodos sucesor y predecesor.
Cada vez que se inserte un nodo se deber comprobar si existen enlaces de
este tipo que deban ser modificados o creados, adems de los punteros
Normales que relacionan los nodos del rbol.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:13

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Tema 3 Organizacin Multillave. Introduccin al Acceso Multillave.


Organizacin de Archivos. Conceptos Bsicos. Definiciones. Indexacin
con Direccionamiento Indirecto. Valores de Llaves No-nicas.
Organizacin
de
Archivos
Multilista.
Conceptos
Bsicos.
Procesamiento.
Introduccin al Acceso Multillave.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:14

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Esta organizacin se utiliza para establecer conexiones entre datos con


caractersticas similares.
el objetivo principal no es el acceso rpido a una llave en particular.
en este tipo de organizacin deben determinarse e identificarse aquellos
campos en los que:
el rango de valores est bien definido, y.
es til el acceso por cada uno de estos valores.
atributo:
es un campo con un rango de valores bien determinado, sobre el cual es
deseable una consulta.
caracterstica:
es cada uno de los valores que puede tomar un atributo.
el modelo utiliza para su funcionamiento dos archivos:
archivo de cabecera:
almacena las direcciones de inicio de cada cadena de caractersticas.
se recomienda que incluya un campo de longitud de cadena que permita
seleccionar el acceso de la cadena ms corta cuando se conocen dos o ms
caractersticas.
tendr tantos registros como caractersticas tenga el modelo.
archivo principal (datos):
adems de los campos de almacenamiento normales se utilizan tantos
campos adicionales como atributos tenga el modelo.
cada uno de estos ser una liga (apuntador) al siguiente registro con la
misma caracterstica.
Introduccin al acceso multillave
si se aplica al archivo de cabecera un campo extra que contabilice el nmero
de registros que conforman cada cadena:
ser ms sencillo buscar la cadena ms corta, cuando se conozcan los valores
de dos o ms atributos.
existen dos mtodos principales para proporcionar acceso multillave a los
archivos de registros de datos:
la inversin.
la organizacin multilista.
Organizacin de archivos invertidos
conceptos bsicos
un mtodo fundamental para proporcionar el encadenamiento entre un ndice
y los registros del archivo es llamado inversin.
un ndice de inversin de llaves contiene todos los valores que la llave tiene
presentes en los registros del archivo.
cada uno de los valores de la llave en el ndice de inversin apunta a todos
los registros que tienen el valor correspondiente.
el archivo de datos se dice que est invertido sobre esa llave.
la inversin como enfoque para proporcionar acceso multillave se ha
utilizado:
Prof.: Esp. Juan Domingo Tonsich

Hoja N:15

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

como una base para las estructuras fsicas de bases de datos en sistemas
comerciales para la administracin de bases de datos:
incluyendo varios sistemas relacionales.
para facilitar al usuario de lenguajes de consulta de tipo natural en la
formulacin de las mismas.
ejemplo con un ndice de inversin sencillo (estructurado como una tabla):
invertir el archivo de cuentas con base en num-socio, resulta en el ndice de
inversin mostrado.
los registros estn ordenados por el valor id.
el ordenamiento de los valores de la llave en el ndice no necesita ser igual al
ordenamiento de los registros correspondientes en el archivo.
si las entradas en el ndice de inversin estn ordenadas se facilita la
bsqueda de un valor de llave en particular:
se puede utilizar bsqueda binaria:
requiere o(log2 n) comparaciones.
la bsqueda secuencial requiere o(n/2) comparaciones.
definiciones
si un campo de llave se usa para determinar la estructura de almacenamiento
de los datos del archivo se lo llama llave primaria (o principal) del archivo:
todas las dems llaves de acceso son llamadas llaves secundarias.
desde un punto de vista purista, el trmino inversin implica que los valores
de los datos indexados han sido sacados del registro de datos:
Residen solamente en el correspondiente ndice de inversin.
un archivo completamente invertido tiene un ndice de inversin para cada
campo de datos:
si los valores correspondientes fueron removidos de los registros de datos:
el resultado es que un archivo completamente invertido no necesita tener
registros de datos.
un archivo que no est completamente invertido, pero tiene al menos un
ndice de inversin, se dice que es un archivo parcialmente invertido.
conforme se van sacando los valores de llaves de inversin fuera de los
registros de datos:
se ahorra espacio.
el proceso es ms difcil:
ej.: la solicitud: cul es el num-socio para la cuenta con id = 335812?,
requiere de los siguientes pasos:
determinar la direccin del registro con id = 335812 dentro del archivo de
datos (la tcnica a utilizar depende de cmo est organizado el archivo).
buscar el ndice de inversin num-socio para la direccin anterior (el valor
num-socio no est en el registro de datos).
podra requerirse una bsqueda secuencial en el ndice de inversin numsocio:
se debe a que los ndices de inversin normalmente son estructurados con
base en sus valores de llave de inversin y no por las direcciones de los
registros de datos.
Prof.: Esp. Juan Domingo Tonsich

Hoja N:16

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

indexacin con direccionamiento indirecto


una variante interesante de la estructura de ndice de inversin es la de
utilizar un direccionamiento
Indirecto.
en lugar de acompaar a cada valor num-socio con la direccin del registro
de datos correspondiente:
las entradas de ndices estn bajo la forma de pares de llaves primarias y
secundarias.
la ventaja es que el archivo de datos se puede organizar y reestructurar
fsicamente sin cambiar los archivos de ndices.
la desventaja es que se requiere trabajo extra para encontrar el registro de
datos con un valor dado de la llave secundaria:
se debe a que el valor correspondiente de la llave primaria debe ser traducido
a la direccin del registro de datos.
valores de llaves no-nicas
los valores num-socio son nicos:
cada entrada en el ndice de inversin num-socio tiene un solo registro de
datos correspondiente.
la inversin tambin puede usarse con llaves que no tienen valores nicos.
existen varias opciones cuando una llave secundaria puede tener valores
duplicados, lo que significa que su ndice de inversin debera ser capaz de
manejar un nmero variable de apuntadores para cada valor de llave:
manejar entradas de ndices de longitud variable.
para cada valor, asignar espacio para acomodar el nmero mximo de
entradas para cualquier valor y manejar entradas ndices de longitud fija.
hacer una entrada al ndice para cada par de llaves primaria y secundaria:
si el valor de llave x aparece en n registros de datos, existirn n entradas de
ndices para el valor x.
con cualquiera de estas opciones surge la cuestin de cmo ordenar las
entradas de llave primaria para un valor dado:
si estn ordenadas en forma ascendente con base en el valor de la llave
primaria, conservar este orden
Puede hacer que:
Los registros sean recuperados ms rpidamente.
se genere una sobrecarga cuando se actualicen registros.
Organizacin de archivos multilista
la organizacin multilista es otro enfoque bsico para suministrar la conexin
entre un ndice y el archivo de registros de datos.
el enfoque de multilista para instrumentar acceso multillave ha sido la base
para estructuras fsicas en muchos sistemas comerciales de administracin de
base de datos jerrquicos y de redes:
ej.: la familia de sistemas codasyl, total de cincom y
El ims de ibm.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:17

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

conceptos bsicos
un archivo multilista mantiene un ndice para cada llave secundaria.
existe una entrada en el ndice de llave secundaria para cada valor que la
llave secundaria tiene actualmente en el archivo de datos.
la organizacin de multilista difiere de la de inversin en lo siguiente:
la entrada en el ndice de inversin para un valor de llave tiene un apuntador
a cada registro de datos con ese valor de llave.
la entrada en el ndice de multilista para un valor de llave tiene slo un
apuntador al primer registro de datos con ese valor de llave.
Este registro de datos contiene un apuntador al siguiente registro de datos
con ese valor de llave, y as sucesivamente:
hay una lista ligada de registros de datos para cada valor de la llave
secundaria.
los encadenamientos en multilistas normalmente son bidireccionales y
ocasionalmente son circulares, para mejorar la eficiencia de actualizacin.
la inversin no afecta al archivo de datos y la multilista s:
cada registro debe tener espacio para los apuntadores que instrumentan la
accesibilidad
De la llave secundaria
procesamiento
si se debe responder consultas de contabilizacin del tipo:
cuntas cuentas hay en sucursal = ne?.
cuntas cuentas hay con cdigo-grupo = ea001?.
cada entrada a un valor en el ndice de la
Multilista debe haber almacenado:
No solo un apuntador al primer registro con ese valor de llave.
sino tambin la longitud de las entradas de la lista ligada de registros.

TEMA 5 Conceptos y arquitectura de un sistema de Base de Datos:


Evolucin y Comparacin con Archivo. Importancia y Justificacin de
su Uso de una Base de Datos. Definiciones y Uso en la Actualidad.
Comparacin generalizada entre Modelos de Bases de Datos.
Definicin de un DBMS. Componentes. Objetivos. Modelos de Datos.
Esquemas e Instancias. Uniformidad e Independencia de Datos.
Conceptos del Entorno DBMS.-

Prof.: Esp. Juan Domingo Tonsich

Hoja N:18

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Evolucin y Comparacin:
El ofrecimiento de sistemas de administradores de
bases de datos se dio recin a mediados de la dcada del 60, el trmino base de datos
fue acuado por primera vez en 1963, en un simposio celebrado en California.
La cantidad de datos de una base de datos, normalmente
se mide en Terabytes en las grandes empresas o corporaciones, y en Mega Bytes y
Giga Bytes en Empresas ms pequeas. Muchas de estas organizaciones dependen de
la operacin continua, ininterrumpida y eficaz de un Sistema de Base de Datos, pues
son utilizados en los proceso de toma de decisiones inherentes a la administracin de
la misma.
Inicialmente solo las grandes computadores eran
capaces de albergar tanta informacin y a la vez procesarla, pero hoy da y gracias al
avance de la tecnologa informtica hizo posible que cualquier PC sea capaz de utilizar
un manejador de Base de Datos y con grandes volmenes de informacin.
De forma sencilla podemos indicar que una base de
datos no es ms que un conjunto de informacin relacionada que se encuentra
agrupada o estructurada. El archivo por s mismo, no constituye una base de datos,
sino ms bien la forma en que est organizada la informacin es la que da origen a la
base de datos.
Las bases de datos manuales, pueden ser difciles de
gestionar y modificar, por ejemplo, en una gua de telfonos no es posible encontrar el
nmero de telfono de un individuo si no sabemos su apellido, aunque conozcamos su
domicilio. Del mismo modo, en un archivo de pacientes en el que la informacin est
ordenada por el nombre de los mismos, ser una tarea bastante engorrosa encontrar
todos los pacientes que viven por una determinada calle o determinado barrio. Los
problemas expuestos anteriormente se pueden resolver creando una base de datos
informatizada.
Desde el punto de vista informtico, una base de datos
es un sistema formado por un conjunto de datos almacenados en discos que permiten
el acceso directo a ellos y un conjunto de programas que manipulan ese conjunto de
datos. Desde el punto de vista ms formal, podramos definir una base de datos como
un conjunto de datos estructurados, fiables y homogneos, organizados
independientemente en mquina, accesibles en tiempo real, compartibles por usuarios
concurrentes que tienen necesidades de informacin diferente y no predecibles en el
tiempo.
No podemos comparar directamente Base de Datos con
archivos, porque para ello es necesario tener mas de un(1) archivo, pero si esto es as
entraramos en los problemas de redundancia de datos, inconsistencia de datos,
heterogeneidad de formatos de datos, no podemos compartir datos de las distintas
aplicaciones, no manejamos la seguridad de todos los archivos y por ltimo ante
pequeas modificaciones en la estructura de los datos requiere de muchas horas de
programacin para adecuar las mismas.
Segn Engles una Base de Datos es un conjunto de
datos de operacin almacenados y utilizados por los sistemas de aplicacin de una
empresa, y al mencionar Empresa, se lo hace en sentido genrico y amplio, pero lo
importante es que necesita de DATOS DE OPERACION referente a su funcionamiento,
por ejemplo un Banco requiere datos de sus Clientes, una Mutual de sus Afiliados, un
Hospital de sus Pacientes, una Facultad de sus Alumnos y Profesores.
La idea general es que estamos tratando con una coleccin
de datos que cumplen las siguientes propiedades:

Prof.: Esp. Juan Domingo Tonsich

Hoja N:19

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Estn estructurados independientemente de las aplicaciones y del


soporte de almacenamiento que los contiene.
Presentan la menor redundancia posible.
Son compartidos por varios usuarios y/o aplicaciones.

Importancia y Justificacin de Uso:

El desarrollo de los Sistemas de Base de


Datos se ha incrementado en los ltimos aos, y esto es debido a las ventajas
detalladas a continuacin:
1. Globalizacin de la Informacin: considera la informacin como un recurso
corporativo que carece de dueos especficos.
2. Eliminacin de la informacin redundante: aqu los sistemas de aplicacin
son desarrollados a travs de archivos convencionales, as que si dos
sistemas de aplicacin requieren la misma informacin es muy posible que
esta se encuentre duplicada.
3. Eliminacin de informacin inconsistente: aqu si existen dos o ms archivos
con la misma informacin, los cambios que se hagan en uno se tendrn que
hacer en el otro.
4. Permiten compartir informacin: aqu los sistemas y usuarios pueden utilizar
la misma Base de Datos, sin que esto signifique entorpecer al otro.
5. Permiten mantener la integridad de la informacin: sta es una de las
cualidades altamente deseable y tiene por objetivo que slo se almacene la
informacin correcta.
6. La independencia de datos: esta es la que ms ha ayudado a la rpida
proliferacin del desarrollo de los Sistemas de Base de Datos, ya que se
dicen que una aplicacin es dependiente en los datos, si es imposible
cambiar la estructura de almacenamiento o la estrategia de acceso, sin
afectar los programas que lo trabajan.

Definiciones:
ENTIDAD: Es cualquier objeto distinguible, que pueda ser representado en una Base
de Datos. Es todo aquello que tiene existencia, el universo esta compuesto de infinitas
entidades, sabemos lo que es, pero no podemos definirlo, no es un individuo. Al hablar
de entidad, hablo de las caractersticas de los componentes de la entidad, y estas
caractersticas se denominan atributos de la misma. Estas entidades generalmente son
vinculadas por asociaciones, y para una entidad pueden existir varias asociaciones.
Una entidad tiene caractersticas que la definen y son inherentes a ella. De la entidad
Alumnos de la FACENA, nos interesa, Nro.Lib., Apellido y Nomb., Domicilio, Fecha de
Nacimiento, etc., a estas caractersticas se la denominan ATRIBUTOS de la Entidad.
Depende de la funcin que se esta buscando desempear estos atributos puede ser
trascendente o intrascendente. Si tengo una entidad llamada Provincias limtrofes a
Corrientes, esta no formara parte de la Base de Datos, solo tengo los valores, por
ejemplo 1-Misiones, 2-Chaco, 3-Entre Ros, 4-Santa Fe, seran los lugares de donde
provienen los alumnos de esta Facultad.
INDIVIDUO O INSTANCIA: Son elementos que forman parte del conjunto entidad,
o sea que cumplen con la caracterstica que hacen a la definicin de la entidad. Toda
instancia o tupla (definicin de otros autores) debe ser identificada por un valor de
atributo o la unin de varios valores de atributos, perteneciendo todos estos a la
entidad.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:20

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

ATRIBUTO: Son ciertas caractersticas, o variables, o particularidades, o aspectos de


una entidad y deben ser relevantes.
DOMINIO DE ATRIBUTO: Es el conjunto de posibles valores que puedan tener las
instancias, para cada uno de los atributos (caractersticas).-.VALOR DEL ATRIBUTO: Es el elemento perteneciente al dominio del atributo que se
asigna a la instancia o individuo de la entidad.
DATO: Es el valor en particular que tiene una determinada instancia, para un
determinado atributo. Tambin es el valor almacenado en la interseccin de una
fila(instancia o tupla) y una columna(atributo o caracterstica), es el contenido de la
celda.Ejemplo:
PATENTE

COLOR

GVS286
RXG313
HEI626

GRIS
Bordo
Verde

AO
FABRICACION
2008
1995
2007

MARCA
RENAULT
FIAT
FORD

CANTIDAD de
PUERTAS
4
5
2

Entidad: Automviles.Instancia N1: GVS286, GRIS, 2008, RENAULT, 4 .Atributos: Patente, Color, Ao Fabricacin, Marca, Cantidad de Puertas.Dominio del Atributo Marca: Renault, Fiat, Ford.Valor del Atributo Color: Verde.Dato de la Instancia N2 del atributo Color: Bordo.-

COMPARACION ENTRE MODELOS de BASES DE DATOS:

Hoy por hoy ya no tiene sentido comparar modelos de bases


de datos, por el simple hecho de que el estndar es el modelo Relacional y el modelo
Relacional-Extendido, es el mas fcil de usar, mas fcil de comprender, los datos se
almacenan en tablas, basta un proceso de normalizacin para no tener inconvenientes
al momento de almacenar y recuperar datos. La programacin para las mismas es
sencilla y rpida de ejecutar. Acepta fcilmente el lenguaje SQL. Los procesos de
Agregado, Borrado o Modificado de instancias son fciles y sencillos.
Sin embargo en la de RED, su programacin es complicada
debido a los punteros hacia arriba y hacia abajo que hay que considerar, el proceso de
recuperacin es tedioso y largo, tiene una estructura de almacenamiento fsico con
algoritmos que complican su almacenamiento, los procesos de Insercin, Eliminacin y
Modificacin son muy complicados, requiere de mucho almacenamiento en disco.
Ahora el JERARQUICO, su programacin tambin es
complicada debido a los punteros hacia abajo que hay que considerar, el proceso de
recuperacin es tedioso y largo, tiene una estructura de almacenamiento fsico con
algoritmos de apuntadores que complican su almacenamiento, los procesos de
Insercin, Eliminacin y Modificacin son muy complicados porque hay que considerar

Prof.: Esp. Juan Domingo Tonsich

Hoja N:21

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

el segmento raz, de no perderlo y tambin de mucho almacenamiento en disco, el


loguin requiere de exclusividad de perifricos y mucho almacenamiento.

Definicin de un DBMS :
Un DBMS es un sistema de mantenimiento de registros por medio de
aplicaciones (programas) para tener acceso a ellos. Comnmente, la base de datos
contiene informacin interrelacionada y referente a una misma entidad o empresa. El
objetivo primordial de una DBMS es crear un ambiente en el que sea posible almacenar
y recuperar informacin en forma eficiente y conveniente.
Los sistemas de base de datos se disean para manejar grandes
cantidades de informacin, la manipulacin de los datos involucra tanto la definicin de
estructuras para el almacenamiento de la informacin como la provisin de
mecanismos para la manipulacin de la informacin, adems un sistema de base de
datos debe de tener implementados mecanismos de seguridad que garanticen la
integridad de la informacin, a pesar de cadas del sistema o intentos de accesos no
autorizados.
Un objetivo principal de un sistema de base de datos es proporcionar a
los usuarios finales una visin abstracta de los datos, esto se logra escondiendo ciertos
detalles de como se almacenan y mantienen los datos.

Componentes de un DBMS:
Datos: estos estn almacenados en una o mas base de datos, es conveniente suponer
siempre que hay una sola. Es exclusiva responsabilidad del DBA que esto ocurra.
Hardware: es el lugar de residencia de la base de datos, son discos que con
dispositivos asociados, permiten el acceso al mismo.
Software: es un programa o aplicacin que manipula datos o que hace de sistema
administrador de base de datos (DBMS).
Usuarios: Son aquellos que por medio del software, y utilizando el hardware,
hacen uso de los datos, pero en diferentes niveles, siendo estos los siguientes:
1-Programador de Aplicaciones: es el encargado de escribir programas en
lenguajes de manejadores de bases de datos, tiene por funcin recuperar, crear,
suprimir y modificar informacin existente.-

2-Usuario Final: es aquel que accede nicamente a la informacin, en lenguajes de


consultas(SQL) proporcionado como parte del sistema o aplicativos.-

3-Administrador de Bases de Datos(DBA): es el que decide con respecto a las


bases, en que dispositivo fsico, cuando reorganizar, cuando realizar un backup, cuida
la integridad de los datos, hace cumplir las normas de seguridad con respecto al
acceso de la informacin.-

Prof.: Esp. Juan Domingo Tonsich

Hoja N:22

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Objetivos de un DBMS:
Los objetivos principales de un sistema de base de datos es la de cumplir con el
mximo de eficacia con los siguientes aspectos:
1)Evitar la redundancia: al no tener la misma informacin en diferentes archivos, a
pesar de que a veces por estrategia comercial es conveniente, pero acarrea otros
problemas en la parte de actualizacin.2) Evitar la inconsistencia: como consecuencia de lo anterior, la informacin de un
articulo actualizado y el otro no, es una base de datos inconsistente, acarrea
informacin incorrecta o contradictoria (Descripcin, cantidad, precio). Salvo la
existencia de PROPAGACION DE ACTUALIZACIONES.3)Datos Compartidos: la informacin de la base de datos, es utilizada por las
distintas aplicaciones de la empresa, y al crear nuevas aplicaciones solo se agregan
datos o se ocupa la que hay en la base, sin crear nuevos archivos.4)Normas para los datos: siempre es conveniente unificar formatos de datos
almacenados, para el intercambio o migracin de datos entre sistemas de Bases de
Datos.
5)Seguridad de datos: con respecto al acceso, que sean por los canales definidos
oportunamente, estableciendo con esto niveles, y as tener el control total de acceso a
los datos. En los no centralizado es mas difcil todava. La informacin de toda empresa
es importante, aunque unos datos lo son ms que otros, por tal motivo se debe
considerar el control de acceso a los mismos, no todos los usuarios pueden visualizar
alguna informacin, por tal motivo para que un sistema de base de datos sea confiable
debe mantener un grado de seguridad que garantice la autentificacin y proteccin de
los datos. En un banco por ejemplo, el personal de seguridad slo necesita ver si la
persona que ingresa es cliente o no, no as si este tiene saldo acreedor o deudor, o si
tiene caja de ahorro y cuenta corriente.
6)Conservar la Integridad: con esto se garantiza que los datos de la base de datos
sean exactos. La inconsistencia entre dos entradas del mismo hecho.

7)Evitar el aislamiento de los datos:


Puesto que los datos pueden estar
repartidos en varias tablas o bases de datos, hay que proporcionar aplicativos que
tengan acceso a todos y cada uno de ellos. Un sistema de base de datos debe
contemplar un entorno de datos que le facilite al usuario el manejo de los mismos.
Supngase un banco, y que uno de los gerentes necesita averiguar los nombres de
todos los clientes que viven dentro del cdigo postal 3400 de la ciudad. El gerente pide
al departamento de procesamiento de datos que genere la lista correspondiente.
Puesto que esta situacin no fue prevista en el diseo del sistema, no existe ninguna
aplicacin de consulta que permita este tipo de solicitud, esto ocasiona una deficiencia
del sistema.
8)Anomalas del acceso concurrente: Para mejorar el funcionamiento global del
sistema y obtener un tiempo de respuesta ms rpido, muchos sistemas permiten que

Prof.: Esp. Juan Domingo Tonsich

Hoja N:23

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

mltiples usuarios actualicen los datos simultneamente. En un entorno as la


interaccin de actualizaciones concurrentes puede dar por resultado datos
inconsistentes. Para prevenir esta posibilidad debe mantenerse alguna forma de
supervisin en el sistema.
9)Equilibrio de Requerimientos: el DBA deber determinar, acordes a normas de la
empresa, las tcnicas de acceso, manteniendo uniformidad y equilibrio para cada uno
de ellos. No debe modificar estructuras para facilitar el acceso.

Uniformidad de Datos:
La definicin de campos en toda Base de Datos debe ser nica para
todos los posibles valores del atributo. No se puede asignar el campo Saldo de un
cliente de Banco, para cierta situacin 7 enteros y 2 decimales, y para otra 11 enteros
y 3 decimales.
El DBA debe tener la libertad de modificar estructuras y accesos, sin que
esto signifique cambios en la aplicacin.
La provisin de independencia de datos, es uno de los objetivos
esenciales de un sistema de bases de datos.

Independencia de Datos:
Es la inmunidad de las aplicaciones a los cambios de la estructura de
almacenamiento y la estrategia de acceso. La existencia de independencia de datos es
lo que hace que una base de datos crezca sin afectar a las aplicaciones.-

Conceptos de un Entorno DBMS:


Campo almacenado: es la unidad de datos mas pequea en una Base de Datos.
Registro almacenado: es un conjunto de campos de iguales o de diferentes tipos,
asociados de una Base de Datos.
Ocurrencia o Instancia: es la unidad de acceso a la Base de Datos, o la unidad
que el DBMS puede recuperar o almacenar en una Base de Datos.
Archivo almacenado: es el conjunto de ocurrencia de una Base de Datos o coleccin
de instancias almacenadas siguiendo una estructura homognea.

Tema 6 Administrador De Bases De Datos(DBA). Definicin. Historia.


Principales Funciones y Responsabilidades. Administracin
de
Estructuras, Actividades y Sistemas. Diccionario de Datos. Tipos de
Concesiones, Modificaciones, restricciones y Control. Tareas Dentro de
Cada Modelo de Base de Datos. Programas para los DBA.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:24

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Definicin:
Persona o grupo de personas encargada del funcionamiento general del
Sistema de Base de Datos, facilitando el desarrollo y el uso de la misma dentro
de una Institucin u Organismo.
Historia:
El alcance de la actividad de la Administracin de Datos es la organizacin completa
(empresa, institucin u otro organismo), mientras que el alcance de la Administracin
de Bases de Datos queda restringido a una Base de Datos en particular y a los
sistemas que los procesan. La Administracin de la Base de Datos opera dentro de un
marco proporcionado por la Administracin de Datos facilitndose de esta manera el
desarrollo y el uso de una Base de Datos y sus aplicaciones. Las siglas DBA suelen
utilizarse para designar tanto la funcin Administracin de Base de Datos como al titulo
del puesto Administrador de Base de Datos.

Principales Funciones y Responsabilidades:


En los distintos niveles y aplicaciones de Base de Datos existe la funcin DBA, aunque
varia en complejidad. Esta es ms sencilla cuando se trata de una Base de Datos
Personal que cuando se refiere a una Base de Datos de grupos de trabajo, y esta a su
vez es ms sencilla que en una Base de Datos Organizacional. En una Base de Datos
Personal comnmente el mismo usuario es el Administrador de la Base de Datos; las
Bases de Datos de grupos de trabajo requieren de una o dos personas que
normalmente no se dedican a esta funcin de tiempo completo puesto que tienen otras
responsabilidades dentro o fuera de la organizacin. En las Bases de Datos
Organizacionales, que comnmente permiten el acceso a decenas e incluso centenas
de usuarios, se requiere de un administrador de Base de Datos de tiempo completo; lo
anterior es debido al alto volumen de procesos que deben desarrollarse, controlarse y
supervisarse.
Un Administrador de Base de Datos de tiempo completo normalmente tiene aptitudes
tcnicas para el manejo del sistema en cuestin, a dems son cualidades deseables
nociones de administracin, manejo de personal e incluso un cierto grado de
diplomacia. La caracterstica ms importante que debe poseer es un conocimiento
profundo de las polticas y normas de la empresa as como el criterio de la empresa
para aplicarlas en un momento dado.

Funciones:
Funciones del DBA segn DATE(autor de Libros e investigador):
Definir El Esquema Conceptual: es tarea del administrador de datos decidir con
exactitud cual es la informacin que debe mantenerse en la base de datos, es decir,
identificar las entidades que interesan a la empresa y la informacin que debe
registrarse acerca de esas entidades. Este proceso por lo general se denomina diseo
lgico a veces conceptual- de bases de datos. Cuando el administrador de datos
decide el contenido de la base de datos en un nivel abstracto, el DBA crea a
continuacin el esquema conceptual correspondiente, empleando el DDL conceptual. El

Prof.: Esp. Juan Domingo Tonsich

Hoja N:25

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

DBMS utilizar la versin objeto (compilada) de ese esquema para responder a las
solicitudes de acceso. La versin fuente sin compilar servir como documento de
referencia para los usuarios del sistema.

Definir El Esquema Interno: el DBA debe decidir tambin como se representar


la informacin en la base de datos almacenada. A este proceso suele llamrsele
diseo fsico de la base de datos. Una vez hecho esto el DBA deber crear la
definicin de estructura de almacenamiento correspondiente (es decir el
esquema interno) valindose del DDL interno. Adems deber definir la
correspondencia pertinente entre los esquemas interno y conceptual. En la
prctica, ya sea el DDL conceptual o bien el DDL interno incluirn seguramente
los medios para definir dicha correspondencia, pero las dos funciones (crear el
esquema, definir la correspondencia) debern poder separarse con nitidez. Al
igual que el esquema conceptual, el esquema interno y la correspondencia
asociada existirn tanto en la versin fuente como en la versin objeto.
Vincularse Con Los Usuarios: el DBA debe encargarse de la comunicacin con
los usuarios, garantizar la disponibilidad de los datos que requieren y escribir o ayudar a los usuarios a escribir- los esquemas externos necesarios,
empleando el DDL externo aplicable. Adems, ser preciso definir la
correspondencia entre cualquier esquema externo y el esquema conceptual. En
la prctica, el DDL externo incluir con toda probabilidad los medios para
especificar dicha correspondencia, pero en este caso tambin el esquema y la
correspondencia debern poder separarse con claridad. Cada esquema externo
y la correspondencia asociada existirn en ambas versiones fuentes y objeto.
Otros aspectos de la funcin de enlace con los usuarios incluyen las consultas
sobre diseo de aplicaciones, la impetracin de instruccin tcnica, la ayuda en
la localizacin y resolucin de problemas, y otros servicios profesionales
similares relacionados con el sistema.
Definir las Verificaciones de Seguridad e Integridad: las verificaciones de
seguridad y de integridad pueden considerarse parte del esquema conceptual.
El DDL conceptual incluir los medios para especificar dichas verificaciones.
Definir Procedimientos de Respaldo y Recuperacin: cuando una empresa se
decide a utilizar un sistema de base de datos, se vuelve dependiente en grado
mximo del funcionamiento correcto de ese sistema. En caso de que sufra dao
cualquier porcin de la base de datos por causa de un error humano,
digamos, o una falla en el equipo o en el sistema que lo apoya resulta
esencial poder reparar los datos implicados con un mnimo de retraso y
afectando lo menos posible el resto del sistema. En teora, por ejemplo la
disponibilidad de los datos no daados no debera verse afectada. El DBA debe
definir y poner en prctica un plan de recuperacin adecuada que incluya, por
ejemplo una descarga o "vaciado" peridico de la base de datos en un medio
de almacenamiento de respaldo, y procedimientos para cargar otra vez la base
de datos a partir de vaciado ms reciente cuando sea necesario.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:26

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Supervisar el Desempeo y Responder a Cambios en los Requerimientos: Es


responsabilidad del DBA organizar el sistema de modo que se obtenga el
desempeo que sea "mejor para la empresa", y realizar los ajustes apropiados
cuando cambien los requerimientos.
Funciones Del DBA Segn KORTH(autor de Libros e investigador)
Definicin del Esquema: el esquema original de la base de datos se crea escribiendo un
conjunto de definiciones que son traducidas por el compilador de DDL a un conjunto
de tablas que son almacenadas permanentemente en el DICCIONARIO DE DATOS.

Definicin de la Estructura de Almacenamiento y del Mtodo de Acceso:


estructuras de almacenamiento y mtodos de acceso adecuados se crean
escribiendo un conjunto de definiciones que son traducidas por el compilador
del lenguaje de almacenamiento y definicin de datos.
Modificacin del Esquema y de la Organizacin Fsica: las modificaciones, tanto
al esquema de la base de datos como a la descripcin de la organizacin fsica
de almacenamiento, aunque relativamente poco comunes, se logran
escribiendo un conjunto de definiciones que son usadas bien por el compilador
del DDL o bien por el compilador del lenguaje de almacenamiento y definicin
de datos para generar modificaciones a las tablas internas apropiadas del
sistema (por ejemplo, el diccionario de datos).
Concesin de Autorizacin para el Acceso a los Datos: la concesin de
diferentes tipos de autorizacin permite al administrador de la base de datos
regular qu partes de la base de datos van a poder ser accedidas por varios
usuarios.
Especificacin de las Restricciones de Integridad: las restricciones de integridad
se mantienen en una estructura especial del sistema que consulta el gestor de
la base de datos cada vez que tiene lugar una actualizacin en el sistema.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:27

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Responsabilidades:
Cuando hablamos de Responsabilidad, tambin hay muchas para el DBA, pero
especialmente se pueden citar las siguientes:

Administrar la estructura de la Base de Datos


Administrar la actividad de los datos
Administrar el Sistema Manejador de Base de Datos
Establecer el Diccionario de Datos

Administracin de la Estructura de la Base De Datos:


La administracin de la estructura de la Base de Datos incluye participar
en el diseo inicial de la misma y su puesta en prctica as como controlar, y
administrar sus requerimientos, ayudando a evaluar alternativas, incluyendo los
DBMS a utilizar y ayudando en el diseo general de BD. En los casos de
grandes aplicaciones de tipo organizacional, el DBA es un gerente que
supervisa el trabajo del personal de diseo de la BD.
Una vez diseada la BD, es puesta en prctica utilizando productos del
DBMS, procedindose entonces a la creacin de los datos (captura inicial). El
DBA participa en el desarrollo de procedimientos y controles para asegurar la
calidad y la alta integridad de la BD.
Los requerimientos de los usuarios van modificndose, estos encuentran
nuevas formas o mtodos para lograr sus objetivos; la tecnologa de la BD se
va modificando y los fabricantes del DBMS actualizan sus productos. Todas las
modificaciones en las estructuras o procedimientos de BD requieren de una
cuidadosa administracin.
Implicaciones Por La Modificacin de Esquemas:
Las solicitudes de modificacin son inevitables una vez que el sistema ha
entrado en operacin, pueden aparecer solicitudes de nuevos requerimientos o
estos pueden resultar de una comprensin inadecuada de los mismos. En
cualquier caso, debern efectuarse modificaciones en relacin con toda la
comunidad de la BD, ya que el impacto de tales alteraciones ser resentido por
ms de una aplicacin. En algunos casos, pueden darse modificaciones que
presentan efectos negativos para algunos usuarios; estos casos debern ser
tratados esgrimiendo como argumento los beneficios globales que sern
obtenidos de tales alteraciones.
Una administracin eficaz de la BD debe incluir procedimientos y polticas
mediante las cuales los usuarios puedan registrar sus necesidades de
modificaciones, y as la comunidad podr analizar y discutir los impactos de

Prof.: Esp. Juan Domingo Tonsich

Hoja N:28

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

dichas modificaciones, determinndose entonces la puesta o no en practica de


tales alteraciones.
En razn del tamao y complejidad de una BD y de sus aplicaciones, las
modificaciones pudieran tener resultados inesperados. El DBA debe estar
preparado para reparar la BD y reunir suficiente informacin para diagnosticar y
corregir el problema provocado por la falla. Despus de un cambio la BD es
ms vulnerable a fallas.
Documentacin:
La responsabilidad final de un DBA en la administracin de la estructura de
una BD es la DOCUMENTACIN. Es de suma importancia saber que
modificaciones han sido efectuadas, como fueron realizadas y cuando fueron
establecidas. Una modificacin sobre la estructura de la BD pudiera ocasionar
un error que no apareciera a corto plazo; una vez que este surja, sin la
documentacin adecuada sobre las modificaciones realizadas, l diagnostico
resultara extremadamente complicado. En estos casos, se hara necesaria una
secuencia de reejecuciones para intentar detectar el punto en conflicto; el
riesgo de este procedimiento radica en que es posible afectar la informacin
contenida en la BD. Para identificar un cambio es de suma importancia
mantener un registro de los formatos de prueba y de las ejecuciones de las
pruebas efectuadas. Si se utilizan procedimientos de prueba formatos de
pruebas y mtodos de registro estandarizados, el registro de los resultados de
la prueba no consumir tiempo excesivo.
Comnmente el tiempo de la documentacin es tedioso y esto ocasiona
que algunos DBA tienden a reducir o abreviar la informacin que se registra en
ella e incluso llegan a desatenderla. Cuando ocurre un siniestro, la
documentacin completa y organizada puede ser la diferencia entre resolver o
no un problema de extrema importancia y en la mayora de los casos, que
implica costos cuantiosos a la empresa.
La tarea de la documentacin es cada vez ms ligera y precisa cuando se
utilizan DBMS que integran herramientas CASE para las tareas de diseo,
mantenimiento y documentacin. Estas mismas herramientas CASE
proporcionan en la mayora de los casos la facilidad de generar y mantener en
forma automtica el Diccionario de Datos.
Una razn ms para documentar consiste en la necesidad de mantener
organizados datos histricos. Ocurre comnmente que se desea realizar una
consulta sobre los respaldos para conocer el estado que guardaba la
informacin en un periodo determinado que transcurri previamente. Los
registros de modificacin existentes en la documentacin permitirn resolver
problemas de incompatibilidad entre las estructuras que eran vigentes en el
periodo de respaldo y las que lo son ahora; permitir tambin el desarrollo de

Prof.: Esp. Juan Domingo Tonsich

Hoja N:29

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

mdulos de ajuste que faciliten la traduccin de formatos y/o escalas para


valores almacenados.
En los casos de cadas del sistema se presenta una situacin parecida; los
respaldos son requeridos y habr de verificarse su estructura; formato y escala
para integrarlos a la operacin del sistema.
Administracin de la Actividad de Datos
Aunque el DBA protege los datos, no los procesa. El DBA no es usuario del
sistema, en consecuencia, no administra valores de datos; el DBA administra
actividad de datos. Dado que la BD es un recurso compartido, el DBA debe
proporcionar estndares, guas de accin, procedimientos de control y la
documentacin necesaria para garantizar que los usuarios trabajen en forma
cooperativa y complementaria al procesar datos en la BD.
Como es de suponerse, existe una gran actividad al interior de un DBMS.
La concurrencia de mltiples usuarios requieren de estandarizar los procesos de
operacin; el DBA es responsable de tales especificaciones y de asegurarse que
estas lleguen a quienes concierne. Todo el mbito de la BD se rige por
estndares, desde la forma como se capture la informacin (tipo, longitud,
formato), como es procesada y presentada. El nivel de estandarizacin alcanza
hasta los aspectos ms internos de la BD; como s accede un archivo, como se
determinan los ndices primarios y auxiliares, la foliacin de los registros y
dems.
Debe procurarse siempre que los estndares que sern aplicados
beneficien tambin a los usuarios, privilegiando siempre la optimizacin en la
operacin del DBMS y el apego de las polticas de la empresa.
Una administracin de BD efectiva deber disponer siempre de este tipo
de estndares; entre las funciones del DBA se encuentra la de revisarlos
peridicamente para determinar su operatividad, y en su caso ajustarlos,
ampliarlos o cancelarlos. Es tambin su responsabilidad el que estos se
cumplan.
Cuando se definen estndares sobre la estructura de la BD, estos deben
registrarse en una seccin del diccionario de datos a la que todos aquellos
usuarios relacionados con ese tipo de proceso pueden acceder.
Otro de los aspectos que el administrador debe atender es el de coordinar
las nuevas propuestas para realizar ajustes en los derechos de acceso a datos
compartidos y aplicaciones especficamente, propuestas seran analizados en
conjunto con los supervisores o directivos de las reas involucradas para
determinar que si procede, pudieran aparecer problemas cuando dos o ms
grupos de usuarios quedan autorizados para modificar los mismos datos. Uno
de tales conflictos es el de la actualizacin perdida; este ocurre cuando el

Prof.: Esp. Juan Domingo Tonsich

Hoja N:30

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

trabajo de un usuario queda sobrescrito sobre por el de un segundo usuario. El


DBA queda responsabilizado para identificar la posible ocurrencia de dichos
problemas as como de crear normas y procedimientos para su eliminacin. Se
obtendrn este tipo de garantas cuando el DBMS sea capaz de implementar las
restricciones aplicables al acceso concurrente, y este sea utilizado
adecuadamente por programadores y usuarios; para borrar lo anterior, se hace
indispensable el apego a los estndares el seguimiento de instructivos y
manuales y las reglas establecidas para los diversos procesamientos y
procedimientos que se llevan acabo.
Entre las alternativas mas utilizadas por el DBA para tratar de resolver o
minimizar este problema se encuentran las siguientes:
Restringir el acceso a los procedimientos para ciertos usuarios.
Restringir el acceso a los datos para ciertos usuarios, procedimientos y/o
datos.
Evitar la coincidencia de horarios para usuarios que comparten.
Las tcnicas de recuperacin son otra funcin esencial del DBA al
administrar la actividad de datos. A pesar de que el DBMS lleva a cabo una
parte del proceso de recuperacin, los usuarios determinan en forma critica la
operatividad de esos sistemas de proteccin. El DBA debe anticipar fallas y
definir procedimientos estndares de operacin; los usuarios deben saber que
hacer cuando el sistema este cado y que es lo primero que debe realizarse
cuando el sistema este puesto en marcha nuevamente. El personal de
operacin deber saber como iniciar el proceso de recuperacin de la BD que
copias de seguridad utilizar; como programar la reejecucin del tiempo perdido
y de las tareas pendientes; es importante tambin establecer un calendario
para llevar a cabo estas actividades sin afectar a otros sistemas dentro de la
organizacin que hagan uso de los mismos recursos de computo. Destacan por
su importancia en el proceso de recuperacin y a su vez en la atencin que
prestan a otros sectores de la organizacin. Los dispositivos de comunicacin
remota, los sistemas de interconexin y otros accesorios de uso compartido.
El DBA es el responsable de la publicacin y mantenimiento de la
documentacin en relacin con la actividad de los datos, incluyendo los
estndares de la BD, los derechos de recuperacin y de acceso a la BD, los
estndares para la recuperacin de cadas y el cumplimiento de las polticas
establecidas. Los productos DBMS ms populares que se encuentran en el
mercado proporcionan servicios de utileras para ayudar al DBA en la
administracin de los datos y su actividad. Algunos sistemas registran en forma
automtica los nombres de los usuarios y de las aplicaciones a las que tienen
acceso as como a otros objetos de la BD. Incorpora tambin utileras que
permitan definir en el diccionario de datos las restricciones para que
determinadas aplicaciones o mdulos de ellas solo tengan acceso a segmentos
especficos de la BD.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:31

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Administracin Del DBMS:


A dems de administrar la actividad de datos y la estructura de la BD, el DBA
debe administrar el DBMS mismo. Deber compilar y analizar estadsticas
relativas al rendimiento del sistema e identificar reas potenciales del problema.
Dado que la BD esta sirviendo a muchos grupos de usuarios, el DBA requiere
investigar todas las quejas sobre el tiempo de respuesta del sistema, la
precisin de los datos y la facilidad de uso. Si se requieren cambios el DBA
deber planearlos y ponerlos en prctica.
El DBA deber vigilar peridica y continuamente las actividades de los
usuarios en la BD. Los productos DBMS incluyen tecnologas que renen y
publican estadsticas. Estos informes pudieran indicar cuales fueron los usuarios
activos, que archivos y que elementos de datos han sido utilizados, e incluso el
mtodo de acceso que se ha aplicado. Pueden capturarse y reportarse las tasas
de error y los tipos de errores. El DBA analizar estos datos para determinar si
se necesita una modificacin en el diseo de la BD para manejar su rendimiento
o para facilitar las tareas de los usuarios; de ser as, el DBA la llevar a cabo.
El DBA deber analizar las estadsticas de tiempo de ejecucin sobre la
actividad de la BD y su rendimiento. Cuando se identifique un problema de
rendimiento, ya sea mediante una queja o un informe, el DBA deber
determinar si resulta apropiada una modificacin a la estructura de la BD o al
sistema. Casos como la adicin de nuevas claves o su eliminacin, nuevas
relaciones entre los datos y otras situaciones tpicas debern ser analizadas
para determinar el tipo de modificacin procedente.
Cuando el fabricante del DBMS en uso anuncie una nueva versin del
producto, debe realizarse un anlisis de las caractersticas que esta incorpora y
compararla contra las necesidades de la comunidad de usuarios. Si se decide la
adquisicin del producto, los usuarios deben ser notificados y capacitados en su
uso. El DBA deber administrar y controlar la migracin tanto de las
estructuras, como de los datos y las aplicaciones.
El software de soporte y otras caractersticas de hardware pueden implicar
tambin modificaciones de las que el DBA es responsable ocasionalmente, estas
modificaciones traen como consecuencia cambios en la configuracin o en
algunos parmetros de operacin del DBMS.
Las opciones del DBMS son ajustadas al principio, es decir, en la puesta en
marcha del sistema; en este momento se conoce muy poca informacin sobre
las caractersticas de funcionamiento y respuesta que proporcionar a los
grupos de usuarios. El anlisis de la experiencia operacional y su rendimiento
en un periodo determinado de tiempo pudieran revelar que se requiere un
campo. Si el rendimiento parece aceptable, el DBA puede considerar a un
modificar algunas opciones y observar su efecto sobre el sistema, esto en
bsqueda de la optimizacin o afinacin del mismo.
Prof.: Esp. Juan Domingo Tonsich

Hoja N:32

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Diccionario de Datos:
El diccionario de datos es un listado organizado de todos los datos pertinentes
al sistema con definiciones precisas y rigurosas para que tanto el usuario como
el analista tengan un entendimiento comn de todas las entradas, salidas,
componentes de almacenes y clculos intermedios.
El diccionario contiene dos tipos de datos y estructuras de datos. Los elementos
de datos se agrupan para formar una estructura de datos.
Elemento dato: El nivel ms importante de datos es el elemento dato. (Es
probable que usted conozca otros nombres que se le dan a este trmino:
campo dato o parte elemental). Ninguna unidad ms pequea tiene significado
para los analistas de sistemas o usuarios. Los elementos dato son los bloques
bsicos para todos los dems datos del sistema. Por si mismo no conllevan
suficiente significado para ningn usuario.
Estructuras de datos: Una estructura de datos es un grupo de datos
elementales que estn relacionados con otros y que en conjunto describen un
componente del sistema

El diccionario de datos define los datos haciendo lo siguiente:

Describe el significado de los flujos y almacenes que se muestran en el


DFD
Describe la composicin de agregados de paquetes de datos que se
mueven a lo largo de los flujos, es decir, paquetes complejos que
pueden descomponerse en unidades ms elementales.
Describe la composicin de los paquetes de datos de los almacenes
Especifica los valores y unidades relevantes de piezas elementales de
informacin en los flujos de datos y los almacenes de datos

Una de las nomenclaturas mas usadas es:


=
+
()
{}
[]
**
@
|

est compuesto de
y
optativo (puede estar presente o ausente)
iteracin
seleccionar una de varias alternativas
comentario
identificador (campo clave) para un almacn
separa opciones alternativas en la construccin

Prof.: Esp. Juan Domingo Tonsich

Hoja N:33

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Alguno Ejemplos Prcticos:


Estructura nombre=ttulo de cortesa + nombre + (segundo nombre) + apellido

ttulo de cortesa = [Sr. | Srta. | Sra. | Dr. | Prof.]


nombre = {carcter vlido}
segundo nombre = {carcter vlido}
apellido = {carcter vlido}
carcter vlido = [ A-Z | a-z | | - ]

sexo = [Femenino | Masculino]


tipo de cliente = [Gobierno | Industria | Universidad | Otro]
Factura-cliente= Identificacin de factura + Fecha-factura + Nombre-cliente +
Direccin del paciente + Inf-servicio + costo de los servicio; *Registro donde
contiene todos los datos de una factura de un cliente*
@ Identificacin de factura= * nmero de la factura; * escala: 1 - 36500 3. Hay
que asegurar que dicho Nro. de Factura encaje en la escala*
IMPORTANCIA DEL DICCIONARIO DE DATOS
Los analistas utilizan los diccionarios de datos por cinco razones importantes:
1. Para manejar los detalles en sistemas grandes.
2. Para comunicar un significado comn para todos los elementos del
sistema.
3. Para documentar las caractersticas del sistema.
4. Para facilitar el anlisis de los detalles con la finalidad de evaluar las
caractersticas y determinar dnde efectuar cambios en el sistema.
5. Localizar errores y omisiones en el sistema.
Manejo de detalles

Los sistemas grandes tienen enormes volmenes de datos


que fluyen por ellos en forma de documentos, reportes e incluso plticas. De
manera similar, se llevan a cabo muchas actividades que utilizan los datos
existentes o que generan nuevos detalles.
Comunicacin de significados

Los diccionarios de datos proporcionan


asistencia para asegurar significados comunes para los elementos y actividades
del sistema.
Documentacin de las caractersticas del sistema
Documentar
las
caractersticas de un sistema es la tercera razn para utilizar los sistemas de
diccionario de datos. Las caractersticas incluyen partes o componentes as
como los aspectos que los distinguen.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:34

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Facilidades de anlisis
La cuarta razn para hacer uso de los diccionarios de
datos es determinar si son necesarias nuevas caractersticas o si estn en orden
los cambios de cualquier tipo.
Los analistas de sistemas abordan las siguientes
caractersticas del sistema:

Naturaleza de las transacciones: Las actividades de la empresa que


se llevan a cabo mientras se emplea el sistema, incluidos los datos
necesarios para aceptar, autentificar y procesar cada actividad.

Salida y generacin de reportes : Resultados del procesamiento


hecho por el sistema que son presentados a los usuarios en una forma
aceptable para ellos.
Archivo y bases de datos : Detalles de las transacciones y registros
maestros que son de inters para la organizacin.
Capacidad del sistema: Habilidad del sistema para aceptar, procesar
y almacenar transacciones y datos.
Localizacin de errores y omisiones: Tener informacin en un
diccionario relacionada con las caractersticas del sistema transacciones, consultas, datos y capacidad - dice mucho con respecto al
sistema y permite evaluarlo. Pero para esto es necesario saber que la
propia informacin es completa y exacta consiguiente, los diccionarios se
emplean por una quinta razn: localizar errores en la descripcin del
sistema.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:35

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Tema 8 El Modelo Entidad Relacin.- Entidades y Conjuntos de Entidades.


Relaciones y Conjunto de Relaciones. Limitantes del Mapeo. Llaves.
Diagramas de Entidad-Relacin. Reduccin de Diagramas a Tablas.
Conversiones del modelo E-R lgico al modelo relacional. Estudio de
Casos. Relaciones binarias, n-arias y recursivas. Generalizacin y
Especializacin. Agregacin.
Modelo Entidad-Relacin:

Es uno de los modelos lgicos basados en objetos y por


lo tanto se enfoca primordialmente a los niveles conceptuales y de visin. Una de las
caractersticas de este modelo es que permite representar con claridad las limitantes
de los datos. El modelo Entidad-Relacin es en esencia una herramienta para
representar el mundo real por medio de simbologas y expresiones determinadas.
Entidades y Conjuntos de Entidades:

Una entidad es un objeto que existe y puede


ser distinguido de otro objeto. Una entidad puede ser concreta (un libro, un automvil
etc.) o abstracta (fecha, edad, etc.).
Un conjunto de entidades es un grupo de
entidades del mismo tipo. Una entidad puede pertenecer a ms de un conjunto de
entidades a la vez. Por ejemplo, la entidad persona puede ser parte de los conjuntos
de entidades alumnos, empleados, clientes etc.
Una entidad se distingue de otra porque posee
ciertas caractersticas que la hacen nica. A estas caractersticas se les conoce como
atributo. El rango de valores validos para un atributo determinado ser conocido como
dominio del atributo.
Ejemplo:
Entidad Alumno:
Atributos: LU, Apellido y Nombres, Edad, TE, Carrera.
Una entidad se describe por un conjunto de parejas en el siguiente formato (atributo,
valor del dato); debiendo especificarse una pareja por cada atributo de la entidad.
Ejemplo:
{(LU, 17425), (Apellido y Nombres, Prez Juan),(Edad,21),(TE, 433648), (Carrera ,LS)}

Relaciones y Conjuntos de Relaciones:


Una relacin es una asociacin entre varias
entidades. Un conjunto de relaciones, un grupo de relaciones del mismo tipo.
La mayora de las relaciones son BINARIAS;
no obstante, pueden existir relaciones que incluyan a ms de dos conjuntos de
entidades.
Normalmente asocian a dos conjuntos de
entidades y la relacin tendr una funcin determinada; a esta se le denomina papel.
Normalmente se utilizan los papeles para etiquetar y as reconocer las relaciones
establecidas.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:36

Asignatura: Base de Datos I

Alumno

TEORIA

Ao: 2013-2C

Libro

Retira

Las relaciones tambin pueden tener


atributos descriptivos, en cuyo caso, la relacin se describe indicando la pareja
(atributo, ultimo valor del atributo) sobre la relacin.

Retira

Alumno
(Prez Juan)

Libro
(Algebra)

Limitantes del Mapeo:

El modelo E-R permite definir una serie de limitantes


aplicables en la informacin contenida en la base de datos, bsicamente pueden
definirse dos tipos de limitantes:
1)Cardinalidad del Mapeo: es aquella mediante la cual puede especificarse la cantidad
de entidades que podrn asociarse mediante una relacin, esta se aplica generalmente
sobre dos conjuntos de entidades. Las cardinalidades existente para dos conjuntos de
entidades M y N, y conjunto de relaciones R pueden ser:
Uno a Uno: Una ocurrencia de la entidad A est asociada con a lo sumo una
ocurrencia de la entidad B y una ocurrencia de la entidad B est asociada con a lo
sumo una ocurrencia de la entidad A.

A
B
Ejemplo: El DNI de un empleado de una Banco tiene asociado un solo nmero de
Legajo, y para cada nmero de legajo hay uno solo DNI
Uno a Muchos: Una ocurrencia de la entidad A est asociada con cualquier nmero
de ocurrencias de la entidad B, pero toda ocurrencia de una entidad B solo puede estar
asociada con una ocurrencia de la entidad A.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:37

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

B
Ejemplo: Un Pas tiene asociado muchas provincias, pero cada provincia tiene asociado
un solo Pas.Muchos a Muchos: Cualquier nmero de ocurrencias de la entidad A est asociada
con cualquier nmero de ocurrencias de la entidad B, y cualquier ocurrencia de una
entidad B est asociada con cualquier nmero de ocurrencias de la entidad A.

Ejemplo: Un alumno tiene asociado muchas materias, y una materia tiene


asociado muchos alumnos.2)Dependencia de Existencia: Nos permiten definir que un conjunto de entidades esta
condicionado a la existencia de otro, un ejemplo de este condicionamiento se da entre
una entidad alumno y la entidad calificacin.
A esta limitante se le denomina dependencia por
existencia. Si una entidad Y requiere de una entidad X para existir se dice que Y es
dependiente por existencia de X; esto implica que si eliminamos a la entidad X; deber
eliminarse la entidad Y.
Para el caso anterior, se nombrara a X como la
entidad dominante, y a Y como entidad subordinada.

LLAVES o CLAVES:
Uno de los procesos de mayor relevancia en la manipulacin de
una base de datos es el de distinguir entre las diversas entidades y relaciones que
son manipuladas. Entendemos como una llave o clave al medio que nos permite
identificar en forma unvoca (nica e inequvoca) a una entidad dentro de un conjunto
de entidades.
Existen diversas categoras que permiten clasificar los tipos de
llaves o claves a utilizar:
a) LLAVE CANDIDATA: Se presenta tambin la situacin de que una relacin tenga
mas de un atributo que posea la propiedad de identificacin nica, o mas de una llave

Prof.: Esp. Juan Domingo Tonsich

Hoja N:38

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

candidata. Entonces una de ellas pasara a ser la llave primaria y el/las llaves restantes
pasaran a ser llaves ALTERNAS.

b) LLAVE PRIMARIA: Dentro de una relacin especfica hay un atributo cuyos


valores son nicos dentro de esta, y por lo tanto se puede usar para identificar las
tuplas/filas de la relacin. Es aquella llave que el diseador de la base de datos
selecciona entra las llaves candidatas encontradas.

c) SUPER-LLAVE: Es un conjunto de atributos que forman la clave, pero no todos son


necesarios para la identificacin de las instancias. Puede haber uno o varios atributos
que sirven para la identificacin del registro y el resto de los atributos normalmente
son claves primarias en otras entidades.
Ejemplo: Entidad Facturacin.Atributos de la Sper Llave: CdigoSucursal, N Cliente y N Factura.Donde NCliente es clave primaria (PK) de la entidad Clientes, CodigoSucursal es clave
primaria (PK) dentro de la Entidad Sucursales. Esto se ocupa normalmente cuando
sacrificamos capacidad de almacenamiento y tiempo de proceso, por eficacia/eficiencia
en tiempos de respuestas, al momento de definir y generar ndices de bsqueda.Existen conjuntos de entidades que no poseen los atributos necesarios para conformar
una llave primaria; se les conoce como entidad dbil. Cuando existen los atributos
necesarios para formar una llave primaria, se denominan entidad fuerte. Las entidades
dbiles se subordinan a las entidades fuertes.
Ejemplo: Para ilustrar lo antes dicho se considera las entidades alumnos, materias y
calificaciones donde:
Alumnos: LU,Apynom,Direcc,Provincia.Materias: CodMat,NombreMateria,CodigoCarrera.Calificaciones: LU,CodMat,Nota,FechaExamen.Donde LU es clave primaria en Alumnos, CodMat llave primaria en Materias, y la
concatenacin de LU+CodMat la clave primaria en Calificaciones.Entidades Fuertes: Alumnos,Materias.Entidades Dbiles: Calificaciones.Las entidades dbiles no pueden ser conocidas por s solas; con el objeto de
diferenciarlas se seleccionan algunos de sus atributos para formar un discriminador.
Este discriminador se asocia con las llaves primarias de las entidades fuertes a las que
se encuentre subordinada para formar as su llave primaria propia.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:39

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Diagramas de EntidadRelacin: Son esquemas que nos permitan representar


conjunto de entidades y sus relaciones mediante la siguiente simbologa.
Conjunto de Entidades

Atributos

Conjunto
de
Relaciones

Conexin

Una a Una:
Una a Muchas:
Muchas a Una:

Para ilustrar un ejemplo muy simple, si queremos graficar la entidad de SOCIOS de


una Vdeo Club haramos:

Nombre
N Socio

Direccin
Socios

Prof.: Esp. Juan Domingo Tonsich

Hoja N:40

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Si queremos graficar la entidad de PELICULAS de un Videoclub haramos:

Nombre
CodPelic

Gnero
Pelculas

Ahora para graficar los alquileres tendramos:

Fecha

Dias

Alquileres

Si juntramos todo esto en un solo grfico tendramos:

Nomb
re

Cod
Peli
c

Direcci
n

N
Socio

No
mbr
e
Pel
cula
s

Socios

Fecha

Dias

Alquil

Prof.: Esp. Juan Domingo Tonsich

Hoja N:41

Gne
ro

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

La relacin de alquileres a pelculas es de una a uno, sin embargo la relacin de


alquileres a socios es muchos a uno.Conjunto De Relaciones Con Derivacin Mltiple: Puede darse el caso de que una
relacin sea binaria: es decir, que asocie a ms de dos conjunto de entidades. En estos
casos la nica variacin para representar el modelo consiste en que se establecer
CARDINALIDAD para cada pareja de conjuntos de entidades.

En un almacn se lleva el control de los artculos que son vendidos y facturados. El


objetivo primordial adems de mantener la informacin almacenada consiste en
proceso de facturacin. Los datos que se registran: RFC del cliente, nombre del cliente,
domicilio, clave del articulo, descripcin, costo unitario, numero de factura, fecha,
cantidad de artculos vendidos (de cada uno).

Prof.: Esp. Juan Domingo Tonsich

Hoja N:42

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Reduccin de Diagramas E-R a Tablas: Con el objeto de observar las instancias de


las bases de datos, los diagramas E-R se convierten en tablas. Se obtiene una tabla
por cada conjunto de entidades o de relaciones.
Existen reglas bien definidas para la conversin de los elementos de un diagrama E-R a
tablas:
1) ENTIDADES FUERTES.- Se crea una tabla con una columna para cada atributo del
conjunto de entidades.
2) ENTIDADES DBILES.- Se crea una tabla que contiene una columna para los
atributos que forman la llave primaria de la entidad fuerte a la que se encuentra
subordinada.
3) RELACIN.- se crea una tabla que contiene una columna para cada atributo
descriptivo de la relacin y para cada atributo que conforma la llave primaria de las
entidades que estn relacionadas.
Para el caso visto de un Videoclub las tablas que se conforman son las siguientes:
A-Tabla de Socios:
N SOCIO
Apellido y Nomb.
1001
GOMEZ RAMON
2002
AZCONA HECTOR
3003
SOSA MARTIN
4004
ESCOBAR CARLOS

Direccin
PERU 430
JUNIN 1234
ROCA 980
JUNCAL 1100

B-Tabla de Pelculas:
CodPelicula
Nombre Pelcula
001
Duro de Matar
002
Tienes un Email
003
Mi Pobre Angelito
004
Asesino

Genero
Accion
Romantica
Divertida
Suspenso

B-Alquileres:
N SOCIO
1001
2002
3003
4004

CodPelicula
003
001
002
004

Fecha
01-05-2013
01-05-2013
02-05-2013
03-05-2013

Das
2
1
3
2

GENERALIZACIN Y ESPECIALIZACIN:

Son procesos que tienen por objeto la


fusin o descomposicin de atributos que conforman entidades. La generalizacin
persigue la minimizacin de redundancia en la base de datos, de tal manera que
puedan ocultarse las diferencias entre entidades, formando as entidades comunes.
La especializacin en el proceso inverso
de la generalizacin; tiene por objeto reducir el espacio de almacenamiento requerido
por la base de datos en el medio fsico. Trae como consecuencia una redundancia

Prof.: Esp. Juan Domingo Tonsich

Hoja N:43

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

necesaria, pero suprime el gasto de espacio en el medio secundario para aquellas


columnas que no almacenan informacin por entidades bien determinadas.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:44

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

TEMA 9 El Enfoque Relacional. Estructura de las Bases de Datos


Relacionales. lgebra Relacional. Atributos. Dominios. Tuplas. Grado.
Cardinalidad. Leyes Bsicas del entorno Relacional. Concepto de
Clave: Superclave, Clave Candidata, Clave Primaria, Clave Alterna,
Clave Primaria Simple y Clave Primaria Compuesta. Reglas de
Integridad. Dependencias funcionales y totales. Definicin por
Extensin y Comprensin.Estructura de las Bases de Datos Relacionales:
Dada una serie de conjuntos D(1),D(2),...,D(n), R es una relacin sobre estos n
conjuntos, si es un conjunto de n-tuplas ordenadas d(1),d(2),..,d(n), tales que
d(1) pertenece a D(1),d(2) pertenece a D(2),..,d(n) pertenece de D(n). Los
conjuntos D(1),D(2),..,D(n) son los dominios de R, y n el grado de la
RELACION.
TABLA "ARTICULOS"(X-1).N de Artic. Descripcin
Unid.Medida
A001
Arroz
Tn.
A002
Maz
Tn.
A003
Sorgo
Kg.
A004
Soja
Tn.
A005
Mandioca
Kg.
A006
Batata
Kg.

Exsistencia
1230
852
12580
872
9825
18228

El grado de esta relacin es de 4. El conjunto D(1) es el dominio de los


cdigos de artculo, el D(2) es el dominio de las descripciones, el D(3) es el
dominio de las

Unidades de Medidas, etc.

Puede ser que la descripcin

<Pimiento> pertenezca al dominio de las descripciones pero no haba ningn


cdigo de artculo (A007), con esa descripcin, en el instante especfico en
que se genero la tabla (temporalidad de datos).
Cada rengln o fila de la tabla representa una TUPLA de la relacin, el numero
de tuplas de la relacin se llama CARDINALIDAD de la relacin, en el ejemplo
anterior de la tabla, la CARDINALIDAD de la relacin ARTCULO es SEIS (6).
Un sistema de base de datos relacional es aquel que maneja tabla? NO.
Es necesario que satisfaga una serie de leyes para que sea calificado como
relacional (a pesar de que los vendedores de DBMS digan otra cosa).

Prof.: Esp. Juan Domingo Tonsich

Hoja N:45

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

LEYES BSICAS del Entorno RELACIONAL


Las leyes, surgen de la teora matemtica equivalente, la cual esta provista de
una slida fundamentacin terica, que permiten mayor integracin de datos y
mejores mecanismos para su recuperacin, siendo estas:
1. En un sistema relacional, la tabla puede contener un solo tipo de
registro.
2. Cada registro un numero fijo de campos (columnas) con nombres
especficos.
3. La base de datos generalmente contendr muchas tablas, o sea que los
diferentes tipos de registros, estarn en diferentes tablas, uno por tabla.
4. En la tabla el nombre de cada campo debe ser distinto, y para cada
campo solo se permite un solo valor y no un conjunto de valores
(atomicidad de datos).
5. Cada registro(instancia) de una tabla es nico, no hay duplicados.
6. El orden de los registros no esta determinado, son incorporados uno a
continuacin del otro.
7. Para cada campo definido existe un conjunto de valores posibles que
forman el DOMINIO (de definicin de ese campo).
8. Se pueden crear nuevas tablas, relacionando valores de campos
procedentes de tablas ya existentes, mientras que en la nueva tabla se
haya definido el mismo dominio para los valores que puedan tomar el o
los campos que queremos RELACIONAR. La formacin de nuevas tabla a
partir de las existentes es la esencia del PROCESO RELACIONAL.
DOMINIOS y ATRIBUTOS:
Es importante diferenciar entre un dominio y atributo (columna). Un atributo
representa el uso de un dominio dentro de una RELACION. Para ver mejor esta
diferencia de la ltima tabla vista (X-1), al atributo UNIDADES de MEDIDA lo
llamaremos FORMAS de MEDIR, entonces podemos decir que el atributo

Prof.: Esp. Juan Domingo Tonsich

Hoja N:46

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

FORMAS de MEDIR usa los posibles valores del dominio UNIDADES de MEDIDA
(Tn., Kg.).En una Base de Datos Relacional se requiere que todas las relaciones satisfagan
la condicin de que cada valor de atributo en cada tupla sea ATOMICO, esto es
que en la interseccin de una fila con una columna exista un solo valor y no un
conjunto de valores. Se permite es esa interseccin hasta un valor NULO,
representando algo <<desconocido>>.
De una RELACION que satisface lo anterior, se dice que esta NORMALIZADA.
Relacin Grado 2
Partimos de un atabla de PEDIDOS No Normalizada
Proveedor Artc.- Cantidad
P001
A001 - 350
A002 - 200
A004 - 100
P002
A002 - 150
A003 - 240
P003
A001 - 550
A003 - 400
A005 - 600
Relacin Grado 3
NORMALIZADA
PROVEEDOR ARTICULO CANTIDAD
P001
A001
350
P001
A002
200
P001
A004
100
P002
A002
150
P002
A003
240
P003
A001
500
P003
A003
400
P003
A005
600
El enfoque relacional solo admite relaciones normalizadas por:
La seleccin no impone restriccin real sobre lo que se puede representar.
La simplificacin de la estructura de los datos, conduce a simplificaciones en
muchas otras reas (Programador de Aplicacin, Usuarios Finales, etc.).Prof.: Esp. Juan Domingo Tonsich

Hoja N:47

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

LLAVES o CLAVES:
Dentro de una relacin especifica, hay un atributo cuyos valores son nicos,
dentro de esta y por lo tanto se puede usar para identificar las tuplas de la
relacin. Tambin se denomina a esta Clave Primaria Simple o Llave Primaria
Simple.
No toda relacin posee llave primaria de un solo atributo, pero la relacin
tendr alguna combinacin de atributos que tomados en conjunto, tienen la
propiedad de la identificacin nica, a esta llave se la denomina Compuesta.
Toda relacin tiene una llave primaria (tal vez compuesta).
Se presenta tambin la situacin de que una relacin tenga ms de un atributo/s que
posea la propiedad de identificacin nica, a los cuales ya hemos denominado
claramente como llave-clave CANDIDATA. Entonces una de ellas pasara a ser la llave
primaria y el/las llaves restantes pasaran a ser llaves ALTERNAS.
Por lo general las tuplas representan a la ENTIDAD del mundo real y la llave primaria,
es el identificador nico para esas entidades.

REGLA DE INTEGRIDAD 1 (Integridad de la Entidad):


El/Los atributos (campos) que componen la llave(clave) primaria no deben ser NULOS.
Esto es porque las entidades deben ser distinguibles, o tener una identificacin nica.
La clave primaria realiza la funcin de identificacin nica en una base de datos
relacional.
Es comn que una relacin (PEDIDOS) incluya otras relaciones, como son la de
Proveedores y Artculos, de no cumplirse lo anterior una tupla de la relacin pedidos
puede apuntar a un proveedor que no exista.

DOMINIO PRIMARIO: un dominio es primario si y solo si, existe alguna clave


primaria de un solo atributo definida sobre ese dominio.
Cualquier relacin que incluya un atributo que se defina sobre un dominio primario,
debe cumplir con la siguiente regla:

Prof.: Esp. Juan Domingo Tonsich

Hoja N:48

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

REGLA DE INTEGRIDAD 2 (Integridad de Referencia):


Dada un dominio primario D, y sea R(1) una relacin con atributo A (llave alterna) que
se define sobre D, entonces en un instante dado cada valor de A en R(1) debe ser no
nulo e igual a V, donde V es el valor de la llave primaria de alguna tupla de alguna
relacin R(2) con clave primaria definida en D. R(2) debe existir, y si A fuere primaria
es mas fcil cumplir.
Para finalizar con LLAVES (claves), el programador no se debe limitar a un solo acceso
por clave primaria, puede ocupar muchas claves alternativas.

EXTENSIONES Y COMPRENSIONES:
Una base de datos relacional tiene dos componentes, extensin y comprensin.-

La extensin de una relacin es el conjunto de tuplas que aparecen en esa


relacin en un instante dado, esta puede cambiar en el tiempo, cuando se
crea, borra o modifica una tupla, es equivalente a una VISTA.
La comprensin de una relacin es independiente del tiempo, es la parte
permanente de la relacin, es lo que se especifica en el esquema relacional,
es la que define todas las extensiones admisibles.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:49

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

TEMA 10 Normalizacin. Conceptos Generales y definicin. Dependencia


Multivaluada y Multivaluada Trivial. 1ra Forma Normal. 2da. Forma
Normal. 3ra Forma Normal. Proceso de Normalizacin hasta la 4ta.
Forma. Forma Normal de Boyce-Codd. Independencia de Relacin.
Forma Normal de llave de dominio. Anlisis del Objetivo de
Normalizacin.NORMALIZACIONES ADICIONALES:
QUE ES NORMALIZACION?: Es una tcnica que se ha desarrollado para

obtener estructuras de datos eficientes y consiste en un proceso de


clasificar relaciones, objetos, formas de relacin y dems elementos
en Grupos, en base a las caractersticas que cada uno posee.
El problema principal de una Base de Datos, consiste esencialmente en
encontrar un buen diseo para la misma, lo que me lleva a que debo
determinar la importancia de los atributos y a establecer adecuadamente las
relaciones.
Si tomamos como ejemplo para una mejor explicacin las tablas de
PROVEEDORES, ARTICULOS y PEDIDOS:
TABLA <P> Proveedores.NProv.
Nombre Prov.
P001
Los Alamos
P002
Albamonte
P003
La Trinchera
TABLA <A> Artculos.N de Artic. Descripcin
A001
Arroz
A002
Maz
A003
Sorgo
A004
Soja

Provincia
02
01
03

Unid.Medida
Tn.
Tn.
Kg.
Tn.

Localidad
Santo Tome
Rio Tercero
Paran

Exsistencia
1230
852
12580
872

TABLA <PA> Pedidos.NProv.


NArtic
Cantidad
P001
A001
3
P001
A002
2
P002
A003
5000
P003
A004
8

Prof.: Esp. Juan Domingo Tonsich

Hoja N:50

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Recordemos que las tablas precedentes ya estn normalizadas porque


contienen valores atmicos o se establecieron dominios simples de sus
atributos.
DEPENDENCIA FUNCIONAL:
Dada una relacin R, y el atributo Y de R es FUNCIONALMENTE DEPENDIENTE
del atributo X de R, si y solo si cada valor X en R tiene asociado un nico valor
de Y en R, en cualquier momento dado.Por ejemplo en la tabla de Proveedores, los atributos nombre proveedor,
provincia y localidad de la relacin <P> son funcionalmente dependiente del
atributo Nmero de Proveedor. Porque para un nmero dado de proveedor
existe solo un nombre, provincia y localidad para el mismo.
No es necesario que un valor dado de X aparezca en una sola tupla de la
relacin R, sino que cada vez que aparezca en la relacin R tenga siempre el
mismo valor para Y. El atributo de Y tambin puede ser compuesto, como el
caso de la tabla <PA> de Pedidos donde el atributo cantidad de la relacin
<PA> es funcionalmente dependiente de N Prov. y N de Artculo.
DEPENDENCIA FUNCIONAL TOTAL O COMPLETA:
Dada una relacin R, se dice que el atributo Y tiene una dependencia funcional
total del atributo X, si es funcionalmente dependiente de X y no depende
funcionalmente de ningn sub-conjunto propio de X(no existe un subconjunto
X' de atributo X tal que Y sea funcionalmente dependiente de X').
Por ejemplo de la relacin <P> de proveedores, el atributo LOCALIDAD es
funcionalmente dependiente del atributo compuesto (NProv. y PROVINCIA),
pero no lo es TOTALMENTE (siempre del atributo compuesto) porque tambin
es funcionalmente de N de Proveedor solo.Si decimos que LOCALIDAD es funcionalmente dependiente de Numero de
Proveedor, es porque este esta localizado exactamente en una LOCALIDAD.
Esto es un hecho de la vida REAL y debe estar representado en la Base de
Datos por medio de las restricciones.-

Prof.: Esp. Juan Domingo Tonsich

Hoja N:51

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

PRIMERA FORMA NORMAL:


Una relacin R esta en primera forma normal(1FN), si y solo si todos los
dominios de la misma solo contienen valores atmicos, de otra forma que la
interseccin de una fila y una columna no contenga un conjunto de valores.
SEGUNDA FORMA NORMAL:
Una relacin R esta en la segunda forma normal(2NF), si y solo si esta en la
(1NF) y todos los atributos que no son CLAVE, dependen de esta totalmente y
no de parte de dicha CLAVE. La (2FN) se aplica a las relaciones que tienen
claves primarias compuestas por dos o ms atributos. Si una relacin est en
(1FN) y su clave primaria es simple (tiene un solo atributo), entonces tambin
est en (2FN). Las relaciones que no estn en (2FN) pueden sufrir anomalas
cuando se realizan actualizaciones.
TERCERA FORMA NORMAL:
Una relacin R esta en la tercera forma normal(3NF), si y solo si esta en la
segunda(2NF) y los atributos no clave es dependiente no transitivamente de la
clave primaria. Esto es como en matemticas si A depende de B y B depende
de C, entonces A depende de C, esto es lo que elimina la tercera forma normal
y la convierte en dos relaciones, una donde A depende de B y la otra donde B
depende de C.
CUARTA FORMA NORMAL:
Una relacin esta en la cuarta forma normal(4NF), si y solo si esta en la
tercera(3NF) y en todo momento cada tupla de la relacin esta formada por
una clave primaria que identifica a una Instancia de una Entidad, mas un
conjunto de atributos que tienen dependencia funcional total, que son los que
modelizan a una Entidad.Ahora podemos ver que las tablas presentadas como ejemplo al iniciar el
estudio de NORMALIZACION, estn en Cuarta Forma Normal (4FN).

Prof.: Esp. Juan Domingo Tonsich

Hoja N:52

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Tema 11 El SQL en General. Introduccin. Consultas de Seleccin.


Agrupamiento de Registros y Funciones Agregadas. Consultas
Actualizadas. Tipo de Datos. Subconsultas. Estructuras de Tablas.
Consultas con Parmetros. Acceso a Bases de Datos Externas.Introduccin:
El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos
normalizado, utilizado por un motor de base de datos, hay casos de algunos DBMS que tambin
lo soportan. Este SQL se utiliza para concretar una conexin entre una base de datos y el medio
externo a la misma. Tambin se puede utilizar con algn mtodo para crear y manipular
directamente las bases de datos remotas del tipo Cliente-Servidor.
Componentes del SQL:
El lenguaje SQL est compuesto por comandos, clusulas,
operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para
crear, actualizar y manipular las bases de datos.
Comandos: Existen dos tipos de comandos SQL, los DLL que permiten crear y definir nuevas
bases de datos, campos e ndices. Los DML que permiten generar consultas para ordenar,
filtrar y extraer datos de la base de datos.
Comando
CREATE
DROP
ALTER

Comando
SELECT
INSERT
UPDATE
DELETE

Comandos DLL
Descripcin del Comando
Utilizado para crear nuevas tablas, campos e ndices
Empleado para eliminar tablas e ndices
Utilizado para modificar las tablas agregando campos o cambiando la
definicin de los campos.
Comandos DML
Descripcin del Comando
Utilizado para consultar registros de la base de datos que satisfagan un
criterio determinado.Utilizado para cargar lotes de datos en la base de datos en una nica
operacin.Utilizado para modificar los valores de los campos y registros
Especificados.Utilizado para eliminar registros de una tabla de una base de datos.-

Clusulas: Las clusulas son condiciones de modificacin utilizadas para definir los datos que
desea seleccionar o manipular.
Clusula
FROM
WHERE
GROUP BY
HAVING
ORDER BY

Descripcin de la Clusula
Utilizada para especificar la tabla de la cual se van a seleccionar los
Registros.Utilizada para especificar las condiciones que deben reunir los registros que
se van a seleccionar.Utilizada para separar los registros seleccionados en grupos especficos.Utilizada para expresar la condicin que debe satisfacer cada grupo.Utilizada para ordenar los registros seleccionados de acuerdo con un
orden especfico.Operadores Lgicos

Operador
AND

Uso
Es el "y" lgico. Evala dos condiciones y devuelve un valor de verdad slo si

Prof.: Esp. Juan Domingo Tonsich

Hoja N:53

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

ambas son ciertas.Es el "o" lgico. Evala dos condiciones y devuelve un valor de verdad si
alguna de las dos es cierta.Negacin lgica. Devuelve el valor contrario de la expresin.-

OR
NOT

Operador
<
>
<>
<=
>=
=
BETWEEN
LIKE
IN

Operadores de Comparacin
Uso
Menor que.Mayor que.Distinto de.Menor Igual que
Mayor Igual que.Igual que.Utilizado para especificar un intervalo de valores.Utilizado en la comparacin de un modelo.Utilizado para especificar registros de una base de datos.-

Funciones de Agregado: Las funciones de agregado se usan dentro de una clusula SELECT en
grupos de registros para devolver un nico valor que se aplica a un grupo de registros.
Funcin
AVG
COUNT
SUM
MAX
MIN

Descripcin
Utilizada para calcular el promedio de los valores de un campo
Determinado.Utilizada para devolver el nmero de registros de la seleccin.Utilizada para devolver la suma de todos los valores de un campo
Determinado.Utilizada para devolver el valor ms alto de un campo especificado.Utilizada para devolver el valor ms bajo de un campo especificado.-

Consultas de Seleccin
Las consultas de seleccin se utilizan para indicar al motor de datos que devuelva informacin
de las bases de datos, esta informacin es devuelta en forma de conjunto de registros que se
pueden almacenar en una nueva tabla o base de datos, pudiendo ser esta modificables.
Consultas bsicas: La sintaxis bsica de una consulta de seleccin sera.
SELECT Campos FROM Tabla;
En donde campos es la lista de campos que se desean recuperar y tabla es el origen de los
mismos, por ejemplo:
SELECT NViaje , Patente , NombreChofer FROM VIAJES;
Esta consulta devuelve el nmero de viaje, la patente del camin, y el nombre del chofer de la
tabla VIAJES.Ordenar los registros:
Adicionalmente se puede especificar el orden en que se desean recuperar los registros de las
tablas mediante la clusula ORDER BY Lista de Campos. En donde Lista de campos representa
los campos a ordenar. Ejemplo:

Prof.: Esp. Juan Domingo Tonsich

Hoja N:54

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

SELECT NViaje , Patente , NombreChofer FROM VIAJES ORDER BY NombreChofer;


Esta consulta devuelve los campos especificados en la SELECTC ordenados por apellido
y nombre del chofer que realiz el viaje.
Se pueden ordenar los registros por mas de un campo, como por ejemplo:
SELECT NViaje , Patente , NombreChofer FROM VIAJES ORDER BY Patente,
NombreChofer;

Incluso se puede especificar el orden de los registros: ascendente mediante la clusula


(ASC -se toma este valor por defecto) descendente (DESC)
SELECT NViaje , Patente , NombreChofer FROM VIAJES ORDER BY Patente DESC,
NombreChofer ASC;
Consultas con Predicado: El predicado se incluye entre la clusula y el primer nombre del
campo a recuperar, los posibles predicados son:
Predicado
ALL
TOP

Descripcin
Devuelve todos los campos de la tabla.Devuelve un determinado nmero de registros de la
Tabla.DISTINCT
Omite los registros cuyos campos seleccionados
coincidan totalmente.DISTINCTROW Omite los registros duplicados basndose en la
totalidad del registro y no slo en los campos
seleccionados.-

ALL
Si no se incluye ninguno de los predicados se asume ALL. El Motor de base de datos selecciona
todos los registros que cumplen las condiciones de la instruccin SQL. No se conveniente
abusar de este predicado ya que obligamos al motor de la base de datos a analizar la estructura
de la tabla para averiguar los campos que contiene, es mucho ms rpido indicar el listado de
campos deseados.

SELECT ALL FROM Viajes;


SELECT * FROM Viajes;
TOP
Devuelve un cierto nmero de registros que entran entre el principio, o el final de un rango
especificado por una clusula ORDER BY. Supongamos que queremos recuperar los nombres de
los 25 primeros choferes que realizaron viajes en Enero/2002.

SELECT TOP 25 NViaje , Patente , Fecha , NombreChofer FROM VIAJES ORDER BY


Fecha ASC;
Si no se incluye la clusula ORDER BY, la consulta devolver un conjunto arbitrario
Choferes. El predicado TOP no elige entre valores iguales. Hay casos en que puede
devolver mas del nmero especificado en TOP, cuando los valores son iguales en el

Prof.: Esp. Juan Domingo Tonsich

Hoja N:55

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

lmite especificado. Se puede utilizar la palabra reservada PERCENT para devolver un


cierto porcentaje de registros que caen al principio o al final de un rango especificado
por la clusula ORDER BY. Supongamos que en lugar de los 25 primeros choferes
deseamos el 10 por ciento de los viajes del mes de Enero/2002:
SELECT TOP 10 PERCENT NViaje , Patente , Fecha , NombreChofer FROM VIAJES
ORDER BY Fecha ASC;
El valor que va a continuacin de TOP debe ser un Integer sin signo. TOP no afecta a
la posible actualizacin de la consulta.
DISTINCT: Omite los registros que contienen datos duplicados en los campos seleccionados.
Para que los valores de cada campo listado en la instruccin SELECT se incluyan en la consulta
deben ser nicos.

Por ejemplo, varios empleados listados en la tabla choferes pueden tener el mismo
apellido. Si dos registros contienen Lpez Juan en el campo NombreChofer, la siguiente
instruccin SQL devuelve un nico registro:
SELECT DISTINCT NombreChofer FROM Choferes;
Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos campos
indicados en la clusula SELECT posean un contenido diferente. El resultado de una
consulta que utiliza DISTINCT no es actualizable y no refleja los cambios subsiguientes
realizados por otros usuarios.
DISTINCTROW: Devuelve los registros diferentes de una tabla; a diferencia del predicado
anterior que slo se fijaba en el contenido de los campos seleccionados, ste lo hace en el
contenido del registro completo independientemente de los campo indicados en la clusula
SELECT.

SELECT DISTINCTROW NombreChofer FROM Choferes;


Si la tabla choferes contiene tres registros iguales en Nombrechofer, seguramente tendrn
matrculas distintas, direcciones distintas, etc., en la clusula con DISTINCT anterior mostrara
un solo registro, sin embargo con esta clusula muestra los tres registros.ALIAS: En determinadas circunstancias es necesario asignar un nombre a alguna columna
determinada de un conjunto devuelto, otras veces por simple capricho o por otras
circunstancias. Para resolver todas ellas tenemos la palabra reservada AS que se
encarga de asignar el nombre que queramos a la columna deseada. Tomado como
referencia el ejemplo anterior podemos hacer que la columna devuelta por la
consulta, en lugar de llamarse NombreChofer(igual que el campo devuelto) se llame
NyAp. En este caso procederamos de la siguiente forma:

SELECT DISTINCTROW NombreChofer AS NyAp FROM Choferes;


Recuperar Informacin de una base de Datos Externa: Para concluir este tema introductorio
del SQL, se debe hacer referencia a la recuperacin de registros de bases de datos externa. Es
ocasiones es necesario la recuperacin de informacin que se encuentra contenida en una tabla
que no se encuentra en la base de datos que ejecutar la consulta o que en ese momento no
se encuentra abierta, esta situacin la podemos salvar con la palabra reservada IN de la
siguiente forma:

Prof.: Esp. Juan Domingo Tonsich

Hoja N:56

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

SELECT DISTINCTROW NombreEmpleado AS NyApEmp FROM Empleados IN


C:\BaseDeDatos\Empleados.mdb;
En donde C:\BaseDeDatos\Empleados.mdb; es la base de datos que contiene la tabla
Empleados.
Criterios de Seleccin:
En conceptos anteriores se vio la forma de recuperar los registros de
las tablas, las formas empleadas devolvan todos los registros de la mencionada tabla. Ahora
veremos la posibilidad de filtrar los registros con el fin de recuperar solamente aquellos que
cumplan unas condiciones preestablecidas. Tenemos que recalcar tres detalles de vital
importancia. El primero de ellos es que cada vez que se desee establecer una condicin referida
a un campo de texto la condicin de bsqueda debe ir encerrada entre comillas simples; la
segunda es que no se posible establecer condiciones de bsqueda en los campos memo y; la
tercera y ltima hace referencia a las fechas. Las fechas se deben escribir siempre en un
formato dd-mm-aaaa, en donde dd representa el da, mm representa el mes, y aaaa el ao, hay
que prestar atencin a los separadores -no sirve la separacin habitual de la barra (/), hay que
utilizar el guin (-) y adems la fecha debe ir encerrada entre almohadillas (#). Por ejemplo si
deseamos referirnos al da 7 de Agosto de 2002 debemos hacerlo de la siguiente forma; #0708-2002# #7-8-2002#.
Operadores Lgicos:

Los operadores lgicos soportados por SQL son: AND, OR, XOR,
Is y Not. A excepcin de los dos ltimos todos poseen la siguiente sintaxis:
<expresin1> operador <expresin2>
En donde expresin1 y expresin2 son las condiciones a evaluar,
el resultado de la operacin vara en funcin del operador lgico. La tabla adjunta
muestra los diferentes posibles resultados:

Expresin-1
Verdad
Verdad
Falso
Falso
Verdad
Verdad
Falso
Falso
Verdad
Verdad
Falso
Falso

Operado Expresin-2
Resultado
r
AND
AND
AND
AND

OR
OR
OR
OR
XOR
XOR
XOR
XOR

Prof.: Esp. Juan Domingo Tonsich

Falso
Verdad
Verdad
Falso

Falso
Verdad
Falso
Falso

Falso

Verdad

Verdad
Verdad
Falso
Verdad
Falso
Verdad
Falso

Verdad
Verdad
Falso
Falso
Verdad
Verdad
Falso

Hoja N:57

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Si a cualquiera de las anteriores condiciones le anteponemos el


operador NOT el resultado de la operacin ser el contrario al devuelto sin el operador
NOT.
El ltimo operador denominado Is se emplea para comparar dos
variables de tipo objeto Objeto1 Is Objeto2. Este operador devuelve verdad si los
dos objetos son iguales.

SELECT * FROM Empleados WHERE Edad > 25 AND Edad < 50;
SELECT * FROM Empleados WHERE (Edad > 25 AND Edad < 50) OR Sueldo <=
850.59;

SELECT * FROM Empleados WHERE NOT Estado = 'Soltero';


SELECT * FROM Empleados WHERE (Sueldo > 100 AND Sueldo < 500) OR
(Provincia = Corrientes AND Estado = Casado);
Intervalos de Valores: Para indicar que deseamos recuperar los registros segn el intervalo de
valores de un campo emplearemos el operador Between cuya sintaxis es:

campo [Not] Between valor1 And valor2

(la condicin Not es opcional).-

En este caso la consulta devolvera los registros que contengan en "campo" un valor
incluido en el intervalo valor1, valor2 (ambos inclusive). Si anteponemos la condicin
Not devolver aquellos valores no incluidos en el intervalo.
SELECT * FROM Pedidos WHERE CodPostal Between 3400 And 3499;
(Devuelve los pedidos realizados en la provincia de Corrientes)
SELECT IIf(CodPostal Between 3500 And 3599, 'Provincial', 'Municipal')
FROM Editores;
(Devuelve el valor tipo texto 'Provincial' si el cdigo postal se encuentra en el intervalo,
'Municipal' en caso contrario)
El Operador Like: Se utiliza para comparar una expresin de cadena con un modelo en una
expresin SQL. Su sintaxis es:

expresin Like modelo


En donde expresin es una cadena modelo o campo contra el que se compara
expresin. Se puede utilizar el operador Like para encontrar valores en los campos que
coincidan con el modelo especificado. Pero el modelo puede especificar un valor
completo (Jos Mara), o se pueden utilizar caracteres comodn como los reconocidos
por el sistema operativo para encontrar un rango de valores (Like Jo*). El operador
Like se puede utilizar en una expresin para comparar un valor de un campo con una
expresin de cadena. Por ejemplo, si introduce Like C* en una consulta SQL, la
consulta devuelve todos los valores de campo que comiencen con la letra C. En una
consulta con parmetros, puede hacer que el usuario escriba el modelo que se va a
utilizar. El ejemplo siguiente devuelve los datos que comienzan con la letra P seguido
de cualquier letra entre A y F y de tres dgitos:

Prof.: Esp. Juan Domingo Tonsich

Hoja N:58

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Like P[A-F]###
Este ejemplo devuelve los campos cuyo contenido empiece con una letra de la A a
la D seguidas de cualquier cadena.

Like [A-D]*
En la tabla siguiente se muestra cmo utilizar el operador Like para comprobar
expresiones con diferentes modelos.

Tipo de
coincidencia

Modelo
Planteado

Varios caracteres

'a*a'

Carcter especial
Varios caracteres
Un solo carcter
Un solo dgito
Rango de
caracteres
Fuera de un rango
Distinto de un
dgito
Combinada

'a[*]a'
'ab*'
'a?a'
'a#a'

'aa', 'aBa',
'aBBBa'
'a*a'
'abcdefg', 'abc'
'aaa', 'a3a', 'aBa'
'a0a', 'a1a', 'a2a'

'[a-z]'

'f', 'p', 'j'

'2', '&'

'[!a-z]'

'9', '&', '%'

'b', 'a'

'[!0-9]'

'A', 'a', '&', '~'

'0', '1', '9'

'a[!b-m]#'

'An9', 'az0', 'a99' 'abc', 'aj0'

Coincide

No coincide
'aBC'
'aaa'
'cab', 'aab'
'aBBBa'
'aaa', 'a10a'

El Operador In: Este operador devuelve aquellos registros cuyo campo indicado
coincide con alguno de los en una lista. Su sintaxis es:
expresin [Not] In (valor-1, valor-2,........,valor-n)
SELECT * FROM Pedidos WHERE Dpto In ('Saladas', 'Goya', 'Capital');
La clusula WHERE: La clusula WHERE puede usarse para determinar qu registros
de las tablas enumeradas en la clusula FROM aparecern en los resultados de la
instruccin SELECT. Despus de escribir esta clusula se deben especificar las
condiciones expuestas en los puntos anteriores. Si no se emplea esta clusula, la
consulta devolver todas las filas de la tabla. WHERE es opcional, pero cuando aparece
debe ir a continuacin de FROM.
SELECT ApyNom, Salario FROM Empleados WHERE Salario > 710.00;
SELECT NProd, Existencias FROM Productos WHERE Existencias <= Nuevo_Pedido;
SELECT * FROM Pedidos WHERE Fecha_Envio = #05/08/2002#;

Prof.: Esp. Juan Domingo Tonsich

Hoja N:59

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

SELECT ApyNom FROM Empleados WHERE ApyNom = 'Gomez';


SELECT ApyNom FROM Empleados WHERE ApyNom Like 'T*';
SELECT ApyNom FROM Empleados WHERE Salario Between 180.75 And
355.73;
SELECT ApyNom, Salario FROM Empl WHERE ApyNom Between 'Lon' And 'Tol';
SELECT NPedido, FechaPedido FROM Pedidos WHERE FechaPedido
Between #01-01-2002# And #30-06-2002#;
SELECT ApyNom, Provincia FROM Empleados WHERE Provincia In ('Corrientes',
'Santa Fe', 'Entre Ros', 'Chaco');

Agrupamiento de Registros y Funciones Agregadas


GROUP BY: Combina los registros con valores idnticos, en la lista de campos
especificados, en un nico registro. Para cada registro se crea un valor sumario si se
incluye una funcin SQL agregada, como por ejemplo Sum o Count, en la instruccin
SELECT. Su sintaxis es:
SELECT campos FROM tabla WHERE criterio GROUP BY campos del grupo;
GROUP BY es opcional. Los valores de resumen se omiten si no existe una funcin SQL
agregada en la instruccin SELECT. Los valores Null en los campos GROUP BY se
agrupan y no se omiten. No obstante, los valores Null no se evalan en ninguna de las
funciones SQL agregadas.
Se utiliza la clusula WHERE para excluir aquellas filas que no desea agrupar, y la
clusula HAVING para filtrar los registros una vez agrupados.
A menos que contenga un dato Memo u Objeto OLE , un campo de la lista de campos
GROUP BY puede referirse a cualquier campo de las tablas que aparecen en la clusula
FROM, incluso si el campo no esta incluido en la instruccin SELECT, siempre y cuando
la instruccin SELECT incluya al menos una funcin SQL agregada.
Todos los campos de la lista de campos de SELECT deben o bien incluirse en la
clusula GROUP BY o como argumentos de una funcin SQL agregada.
SELECT Id_Familia, Sum(Stock) FROM Productos GROUP BY Id_Familia;
Una vez que GROUP BY ha combinado los registros, HAVING muestra cualquier
registro agrupado por la clusula GROUP BY que satisfaga las condiciones de la
clusula HAVING.
HAVING es similar a WHERE, determina qu registros se seleccionan. Una vez que los
registros se han agrupado utilizando GROUP BY, HAVING determina cuales de ellos se
van a mostrar.
SELECT Id_Familia Sum(Stock) FROM Productos GROUP BY Id_Familia
HAVING Sum(Stock) > 100 AND NombreProducto Like Clav*;
AVG: Calcula la media aritmtica de un conjunto de valores contenidos en un campo
especificado de una consulta. Su sintaxis es la siguiente

Prof.: Esp. Juan Domingo Tonsich

Hoja N:60

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Avg(expresin)
En donde expresin representa el campo que contiene los datos numricos para los
que se desea calcular la media o una expresin que realiza un clculo utilizando los
datos de dicho campo. La media calculada por Avg es la media aritmtica (la suma de
los valores dividido por el nmero de valores).
La funcin Avg no incluye ningn campo Null en el clculo.
SELECT Avg (Gastos) AS Promedio FROM Pedidos WHERE Gastos > 100;
Count: Calcula el nmero de registros devueltos por una consulta. Su sintaxis es la
siguiente:
Count (expresin)
En donde expresin contiene el nombre del campo que desea contar. Los operndoos
de expresin pueden incluir el nombre de un campo de una tabla, una constante o una
funcin (la cual puede ser intrnseca o definida por el usuario pero no otras de las
funciones agregadas de SQL). Puede contar cualquier tipo de datos incluso texto.
Aunque expresin puede realizar un clculo sobre un campo, Count simplemente
cuenta el nmero de registros sin tener en cuenta qu valores se almacenan en los
registros. La funcin Count no cuenta los registros que tienen campos null a menos
que expresin sea el carcter comodn asterisco (*). Si utiliza un asterisco, Count
calcula el nmero total de registros, incluyendo aquellos que contienen campos null.
Count (*) es considerablemente ms rpida que Count (Campo). No se debe poner el
asterisco entre dobles comillas ('*').
SELECT Count(*) AS Total FROM Pedidos;
Si expresin identifica a mltiples campos, la funcin Count cuenta un registro slo si
al menos uno de los campos no es Null. Si todos los campos especificados son Null, no
se cuenta el registro. Hay que separar los nombres de los campos con ampersand (&).
SELECT Count(FechaEnvo & Transporte) AS Total FROM Pedidos;
Max y Min: Devuelven el mnimo o el mximo de un conjunto de valores contenidos en
un campo especifico de una consulta. Su sintaxis es:
Min (expr)
Max (expr)
En donde expr es el campo sobre el que se desea realizar el clculo. Expr puede incluir
el nombre de un campo de una tabla, una constante o una funcin (la cual puede ser
intrnseca o definida por el usuario pero no otras de las funciones agregadas de SQL).
SELECT Min(Gastos) AS ElMin FROM Pedidos WHERE Pais = 'Argentina';
SELECT Max(Gastos) AS ElMax FROM Pedidos WHERE Pais = 'Uruguay';

Prof.: Esp. Juan Domingo Tonsich

Hoja N:61

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

StDev, StDevP: Devuelve estimaciones de la desviacin estndar para la poblacin (el


total de los registros de la tabla) o una muestra de la poblacin representada (muestra
aleatoria). Su sintaxis es:
StDev (expr)
StDevP (expr)
En donde expr representa el nombre del campo que contiene los datos que desean
evaluarse o una expresin que realiza un clculo utilizando los datos de dichos campos.
Los operandos de expr pueden incluir el nombre de un campo de una tabla, una
constante o una funcin (la cual puede ser intrnseca o definida por el usuario pero no
otras de las funciones agregadas de SQL)
StDevP evala una poblacin, y StDev evala una muestra de la poblacin. Si la
consulta contiene menos de dos registros (o ningn registro para StDevP), estas
funciones devuelven un valor Null (el cual indica que la desviacin estndar no puede
calcularse).
SELECT StDev(Gastos) AS Desviacion FROM Pedidos WHERE Pais = 'Paraguay';
SELECT StDevP(Gastos) AS Desviacion FROM Pedidos WHERE Pais= 'Chile';
Sum: Devuelve la suma del conjunto de valores contenido en un campo especifico de
una consulta. Su sintaxis es:
Sum(expr)
En donde expr representa el nombre del campo que contiene los datos que desean
sumarse o una expresin que realiza un clculo utilizando los datos de dichos campos.
Los operandos de expr pueden incluir el nombre de un campo de una tabla, una
constante o una funcin (la cual puede ser intrnseca o definida por el usuario pero no
otras de las funciones agregadas de SQL).
SELECT Sum(PrecioUnidad * Cantidad) AS Total FROM DetallePedido;
Var y VarP: Devuelve una estimacin de la varianza de una poblacin (sobre el total de
los registros) o una muestra de la poblacin (muestra aleatoria de registros) sobre los
valores de un campo. Su sintaxis es:
Var(expr)
VarP(expr)
VarP evala una poblacin, y Var evala una muestra de la poblacin. Expr el
nombre del campo que contiene los datos que desean evaluarse o una
expresin que realiza un clculo utilizando los datos de dichos campos. Los
operandos de expr pueden incluir el nombre de un campo de una tabla, una
constante o una funcin (la cual puede ser intrnseca o definida por el
usuario pero no otras de las funciones agregadas de SQL)

Prof.: Esp. Juan Domingo Tonsich

Hoja N:62

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Si la consulta contiene menos de dos registros, Var y VarP devuelven Null (esto indica
que la varianza no puede calcularse). Puede utilizar Var y VarP en una expresin de
consulta o en una Instruccin SQL.
SELECT Var(Gastos) AS Varianza FROM Pedidos WHERE Pais = 'Brasil';
SELECT VarP(Gastos) AS Varianza FROM Pedidos WHERE Pais = 'Per';

Consultas Actualizadas
Las consultas actualizadas son aquellas que no devuelven ningn registro, son las
encargadas de acciones como aadir, borrar y modificar registros.
DELETE: Crea una consulta de eliminacin que elimina los registros de una o ms de
las tablas listadas en la clusula FROM que satisfagan la clusula WHERE. Esta
consulta elimina los registros completos, no es posible eliminar el contenido de algn
campo en concreto. Su sintaxis es:
DELETE Tabla.* FROM Tabla WHERE criterio
DELETE es especialmente til cuando se desea eliminar varios registros. En una
instruccin DELETE con mltiples tablas, debe incluir el nombre de tabla (Tabla.*). Si
especifica ms de una tabla desde la que eliminar registros, todas deben ser tablas de
muchos a uno. Si desea eliminar todos los registros de una tabla, eliminar la propia
tabla es ms eficiente que ejecutar una consulta de borrado.
Se puede utilizar DELETE para eliminar registros de una nica tabla o desde varios
lados de una relacin uno a muchos. Las operaciones de eliminacin en cascada en
una consulta nicamente eliminan desde varios lados de una relacin. Por ejemplo, en
la relacin entre las tablas Clientes y Pedidos, la tabla Pedidos es la parte de muchos
por lo que las operaciones en cascada solo afectaran a la tabla Pedidos. Una consulta
de borrado elimina los registros completos, no nicamente los datos en campos
especficos. Si desea eliminar valores en un campo especificado, crear una consulta de
actualizacin que cambie los valores a Null.
Una vez que se han eliminado los registros utilizando una consulta de borrado, no
puede deshacer la operacin. Si desea saber qu registros se eliminarn, primero
examine los resultados de una consulta de seleccin que utilice el mismo criterio y
despus ejecute la consulta de borrado. Mantenga copias de seguridad de sus datos en
todo momento. Si elimina los registros equivocados podr recuperarlos desde las
copias de seguridad.
DELETE * FROM Empleados WHERE Cargo = 'Vendedor';
INSERT INTO: Agrega un registro en una tabla. Se la conoce como una consulta de
datos aadidos. Esta consulta puede ser de dos tipo: Insertar un nico registro
Insertar en una tabla los registros contenidos en otra tabla.
Para insertar un nico Registro la sintaxis es la siguiente:
INSERT INTO Tabla (campo-1, campo-2, .., campo-N)
VALUES (valor-1, valor-2, ..., valor-N)

Prof.: Esp. Juan Domingo Tonsich

Hoja N:63

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Esta consulta graba en el campo1 el valor1, en el campo2 y valor2 y as


sucesivamente. Hay que prestar especial atencin a acotar entre comillas simples (')
los valores literales (cadenas de caracteres) y las fechas indicarlas en formato dd-mmaaaa y entre caracteres de almohadillas (#).
Para insertar Registros de otra Tabla la sintaxis es:
INSERT INTO Tabla [IN base_externa] (campo1, campo2, ..., campoN)
SELECT TablaOrigen.campo1, TablaOrigen.campo2, ..., TablaOrigen.campoN
FROM TablaOrigen
En este caso se seleccionarn los campos 1,2, ..., n de la tabla origen y se grabarn en
los campos 1,2,.., n de la Tabla. La condicin SELECT puede incluir la clusula WHERE
para filtrar los registros a copiar. Si Tabla y TablaOrigen poseen la misma estructura
podemos simplificar la sintaxis a:
INSERT INTO Tabla SELECT TablaOrigen.* FROM TablaOrigen
De esta forma los campos de TablaOrigen se grabarn en Tabla, para realizar esta
operacin es necesario que todos los campos de TablaOrigen estn contenidos con
igual nombre en Tabla. Con otras palabras que Tabla posea todos los campos de
TablaOrigen (igual nombre e igual tipo).
En este tipo de consulta hay que tener especial atencin con los campos contadores o
auto numricos puesto que al insertar un valor en un campo de este tipo se escribe el
valor que contenga su campo homlogo en la tabla origen, no incrementndose como
le corresponde.
Se puede utilizar la instruccin INSERT INTO para agregar un registro nico a una
tabla, utilizando la sintaxis de la consulta de adicin de registro nico tal y como se
mostr anteriormente. En este caso, su cdigo especfica el nombre y el valor de cada
campo del registro. Debe especificar cada uno de los campos del registro al que se le
va a asignar un valor as como el valor para dicho campo. Cuando no se especifica
dicho campo, se inserta el valor predeterminado o Null. Los registros se agregan al
final de la tabla.
Tambin se puede utilizar INSERT INTO para agregar un conjunto de registros
pertenecientes a otra tabla o consulta utilizando la clusula (SELECT/FROM) como se
mostr anteriormente en la sintaxis de la consulta de adicin de mltiples registros. En
este caso la clusula SELECT especifica los campos que se van a agregar en la tabla
destino especificada.
La tabla destino u origen puede especificar una tabla o una consulta. Si la tabla destino
contiene una clave principal, hay que asegurarse que es nica, y con valores no-Null ;
si no es as, no se agregarn los registros. Si se agregan registros a una tabla con un
campo Contador , no se debe incluir el campo Contador en la consulta. Se puede
emplear la clusula IN para agregar registros a una tabla en otra base de datos.
Se pueden averiguar los registros que se agregarn en la consulta ejecutando primero
una consulta de seleccin que utilice el mismo criterio de seleccin y ver el resultado.
Una consulta de adicin copia los registros de una o ms tablas en otra. Las tablas que
contienen los registros que se van a agregar no se vern afectadas por la consulta de
adicin. En lugar de agregar registros existentes en otra tabla, se puede especificar los
valores de cada campo en un nuevo registro utilizando la clusula VALUES. Si se omite
la lista de campos, la clusula VALUES debe incluir un valor para cada campo de la
tabla, de otra forma fallar INSERT.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:64

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

INSERT INTO Clientes SELECT Clientes_Viejos.* FROM Clientes_Nuevos;


INSERT INTO Empleados (Nombre, Apellido, Cargo)
VALUES ('Walter', 'Zamudio', 'Programador');
INSERT INTO Empleados SELECT Vendedores.* FROM Vendedores
WHERE Fecha_Contratacion < Now() - 30;

UPDATE: Crea una consulta de actualizacin que cambia los valores de los
campos de una tabla especificada basndose en un criterio
especfico. Su sintaxis es:
UPDATE Tabla SET Campo1=Valor1, Campo2=Valor2, ... CampoN=ValorN
WHERE Criterio;
UPDATE es especialmente til cuando se desea cambiar un gran nmero de registros o
cuando stos se encuentran en mltiples tablas. Puede cambiar varios campos a la
vez. El ejemplo siguiente incrementa los valores Cantidad pedidos en un 10 por ciento
y los valores Transporte en un 3 por ciento para aquellos que se hayan enviado al
Buenos Aires:
UPDATE Pedidos SET Pedido = Pedidos * 1.1, Transporte = Transporte * 1.03
WHERE ProvinciaEnvo = 'Buenos Aires';
UPDATE no genera ningn resultado. Para saber qu registros se van a cambiar, hay
que examinar primero el resultado de una consulta de seleccin que utilice el mismo
criterio y despus ejecutar la consulta de actualizacin.
UPDATE Empleados SET Grado = 5 WHERE Grado = 2;
UPDATE Productos SET Precio=Precio * 1.1 WHERE Proveedor=8 AND Familia=3;
Si en una consulta de actualizacin suprimimos la clusula WHERE todos los registros
de la tabla sealada sern actualizados.
UPDATE Empleados SET Salario = Salario * 1.1

Tipos de Datos
Los tipos de datos SQL se clasifican en 13 tipos de datos primarios y de varios
sinnimos vlidos reconocidos por dichos tipos de datos.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:65

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Tipos de datos primarios:


Tipo de Datos Longitud Descripcin
BINARY

1 byte

Para consultas sobre tabla adjunta de productos de bases de


datos que definen un tipo de datos Binario.

BIT

1 byte

Valores Si/No True/False

BYTE

1 byte

Un valor entero entre 0 y 255.

COUNTER

4 bytes Un nmero incrementado automticamente (de tipo Long)


Un entero escalable entre 922.337.203.685.477,5808 y
922.337.203.685.477,5807.

CURRENCY

8 bytes

DATETIME

8 bytes Un valor de fecha u hora entre los aos 100 y 9999.

SINGLE

4 bytes

DOUBLE

8 bytes

SHORT
LONG

Un valor en punto flotante de precisin simple con un rango


de -3.402823*1038 a -1.401298*10-45 para valores
negativos, 1.401298*10-45 a 3.402823*1038 para valores
positivos, y 0.
Un valor en punto flotante de doble precisin con un rango
de -1.79769313486232*10308 a -4.94065645841247*10324 para valores negativos, 4.94065645841247*10-324 a
1.79769313486232*10308 para valores positivos, y 0.
Un entero corto entre -32,768 y 32,767.
Un entero largo entre -2,147,483,648 y 2,147,483,647.

2 bytes
4 bytes
1 byte por
LONGTEXT
De cero a un mximo de 1.2 gigabytes.
carcter
Segn se
LONGBINARY
De cero 1 gigabyte. Utilizado para objetos OLE.
necesite
1 byte por
TEXT
De cero a 255 caracteres.
caracter
La siguiente tabla recoge los sinnimos de los tipos de datos definidos:
Tipo de Dato

Sinnimos

BINARY

VARBINARY

BIT
BYTE
COUNTER
CURRENCY
DATETIME
SINGLE
DOUBLE
SHORT
LONG
LONGBINARY
LONGTEXT

BOOLEAN / LOGICAL / LOGICAL1 / YESNO


INTEGER1
AUTOINCREMENT
MONEY
DATE / TIME / TIMESTAMP
FLOAT4 / IEEESINGLE / REAL
FLOAT / FLOAT8 /IEEEDOUBLE /NUMBER /NUMERIC
INTEGER2 / SMALLINT
INT/ INTEGER/ INTEGER4
GENERAL / OLEOBJECT
LONGCHAR/MEMO/NOTE

Prof.: Esp. Juan Domingo Tonsich

Hoja N:66

Asignatura: Base de Datos I


TEXT

TEORIA

Ao: 2013-2C

ALPHANUMERIC/CHAR/CHARACTER/STRING/VARCHAR

SubConsultas
Una subconsulta es una instruccin SELECT anidada dentro de una instruccin SELECT,
SELECT...INTO, INSERT...INTO, DELETE, o UPDATE o dentro de otra subconsulta.
Puede utilizar tres formas de sintaxis para crear una subconsulta:
comparacin [ANY | ALL | SOME] (instruccin SQL)
expresin [NOT] IN (instruccin SQL)
[NOT] EXISTS (instruccin SQL)
Comparacin: es una expresin y un operador de comparacin que compara la
expresin con el resultado de la subconsulta.
Expresin: es una expresin por la que se busca el conjunto resultante de la
subconsulta.
Instruccin SQL: es una instruccin SELECT, que sigue el mismo formato y reglas que
cualquier otra instruccin SELECT. Debe ir entre parntesis.
Se puede utilizar una subconsulta en lugar de una expresin en la lista de campos de
una instruccin SELECT o en una clusula WHERE o HAVING.
En una subconsulta, se utiliza una instruccin SELECT para proporcionar un conjunto
de uno o ms valores especificados para evaluar en la expresin de la clusula WHERE
o HAVING.
Se puede utilizar el predicado ANY o SOME, los cuales son sinnimos, para recuperar
registros de la consulta principal, que satisfagan la comparacin con cualquier otro
registro recuperado en la subconsulta.
El ejemplo siguiente devuelve todos los productos cuyo precio unitario es mayor que el
de cualquier producto vendido con un descuento igual o mayor al 25 por ciento:
SELECT * FROM Productos WHERE PrecioUnidad > ANY
(SELECT PrecioUnidad FROM DetallePedido WHERE Descuento >= 0 .25);
El predicado ALL se utiliza para recuperar nicamente aquellos registros de la consulta
principal que satisfacen la comparacin con todos los registros recuperados en la
subconsulta.
Si se cambia ANY por ALL en el ejemplo anterior, la consulta devolver nicamente
aquellos productos cuyo precio unitario sea mayor que el de todos los productos
vendidos con un descuento igual o mayor al 25 por ciento. Esto es mucho ms
restrictivo.
El predicado IN se emplea para recuperar nicamente aquellos registros de la consulta
principal para los que algunos registros de la subconsulta contienen un valor igual. El
ejemplo siguiente devuelve todos los productos vendidos con un descuento igual o
mayor al 25 por ciento.:

Prof.: Esp. Juan Domingo Tonsich

Hoja N:67

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

SELECT * FROM Productos WHERE IDProducto IN


(SELECT IDProducto FROM DetallePedido WHERE Descuento >= 0.25);
Inversamente se puede utilizar NOT IN para recuperar nicamente aquellos registros
de la consulta principal para los que no hay ningn registro de la subconsulta que
contenga un valor igual.
El predicado EXISTS (con la palabra reservada NOT opcional) se utiliza en
comparaciones de verdad/falso para determinar si la subconsulta devuelve algn
registro.
Se puede utilizar tambin alias del nombre de la tabla en una subconsulta para
referirse a tablas listadas en la clusula FROM fuera de la subconsulta.
El ejemplo siguiente devuelve los nombres de los empleados cuyo salario es igual o
mayor que el salario medio de todos los empleados con el mismo ttulo. A la tabla
Empleados se le ha dado el alias T1:
SELECT Apellido, Nombre, Titulo, Salario FROM Empleados AS T1
WHERE Salario >= (SELECT Avg(Salario) FROM Empleados
WHERE T1.Titulo = Empleados.Titulo) ORDER BY Titulo;
En el ejemplo anterior , la palabra reservada AS es opcional.
SELECT Apellidos, Nombre, Cargo, Salario FROM Empleados
WHERE Cargo LIKE "Agente Ven*" AND Salario > ALL (SELECT Salario FROM
Empleados WHERE (Cargo LIKE "*Jefe*") OR (Cargo LIKE "*Director*"));
Obtiene una lista con el nombre, cargo y salario de todos los agentes de ventas cuyo
salario es mayor que el de todos los jefes y directores.
SELECT DISTINCTROW NombreProducto, Precio_Unidad FROM Productos
WHERE (Precio_Unidad = (SELECT Precio_Unidad FROM Productos WHERE
Nombre_Producto = "Almbar Anisado");
Obtiene una lista con el nombre y el precio unitario de todos los productos con el
mismo precio que el Almbar Anisado.
SELECT DISTINCTROW Nombre_Contacto, Nombre_Compaia, Cargo_Contacto,
Telefono FROM Clientes WHERE (ID_Cliente IN (SELECT DISTINCTROW
ID_Cliente FROM Pedidos WHERE Fecha_Pedido>=#01/04/2002# <#01/07/2002#);
Obtiene una lista de las compaas y los contactos de todos los clientes que han
realizado un pedido en el segundo trimestre del 2002.
SELECT Nombre, Apellidos FROM Empleados AS E WHERE EXISTS
(SELECT * FROM Pedidos AS O WHERE O.ID_Empleado = E.ID_Empleado);
Selecciona el nombre de todos los empleados que han reservado al menos un pedido.
SELECT DISTINCTROW Pedidos.Id_Producto, Pedidos.Cantidad,
(SELECT DISTINCTROW Productos.Nombre FROM Productos WHERE
Productos.Id_Producto = Pedidos.Id_Producto) AS ElProducto FROM

Prof.: Esp. Juan Domingo Tonsich

Hoja N:68

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Pedidos WHERE Pedidos.Cantidad > 150 ORDER BY Pedidos.Id_Producto;


Recupera el Cdigo del Producto y la Cantidad pedida de la tabla pedidos, extrayendo
el nombre del producto de la tabla de productos.
Consultas de Unin Internas: Las vinculaciones entre tablas se realiza mediante la
clusula INNER que combina registros de dos tablas siempre que haya
concordancia de valores en un campo comn. Su sintaxis es:

SELECT campos FROM tb1 INNER JOIN tb2 ON tb1.campo1 comp tb2.campo2

tb1 y tb2: Son los nombres de las tablas desde las que se combinan los registros.

campo1 y campo2: Son los nombres de los campos que se combinan. Si no son
numricos, los campos deben ser del mismo tipo de datos y contener el mismo
tipo de datos, pero no tienen que tener el mismo nombre.

Comp: Es cualquier operador de comparacin relacional : =, <, >, <=, >=, o <>.

Se puede utilizar una operacin INNER JOIN en cualquier clusula FROM. Esto crea
una combinacin por equivalencia, conocida tambin como unin interna. Las
combinaciones Equi son las ms comunes; stas combinan los registros de dos
tablas siempre que haya concordancia de valores en un campo comn a ambas
tablas. Se puede utilizar INNER JOIN con las tablas Departamentos y Empleados
para seleccionar todos los empleados de cada departamento. Por el contrario,
para seleccionar todos los departamentos (incluso si alguno de ellos no tiene
ningn empleado asignado) se emplea LEFT JOIN o todos los empleados (incluso
si alguno no est asignado a ningn departamento), en este caso RIGHT JOIN.
Si se intenta combinar campos que contengan datos Memo u Objeto OLE, se produce
un error. Se pueden combinar dos campos numricos cualesquiera, incluso si son
de diferente tipo de datos. Por ejemplo, puede combinar un campo Numrico
para el que la propiedad Size de su objeto Field est establecida como Entero, y
un campo Contador.
El ejemplo siguiente muestra cmo podra combinar las tablas Categoras y Productos
basndose en el campo IDCategoria:

Prof.: Esp. Juan Domingo Tonsich

Hoja N:69

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

SELECT Nombre_Categora, NombreProducto


FROM Categoras INNER JOIN Productos
ON Categorias.IDCategoria = Productos.IDCategoria;
En el ejemplo anterior, IDCategoria es el campo combinado, pero no est incluido en la
salida de la consulta ya que no est incluido en la instruccin SELECT. Para
incluir el campo combinado, incluir el nombre del campo en la instruccin
SELECT, en este caso, Categorias.IDCategoria.
Tambin se pueden enlazar varias clusulas ON en una instruccin JOIN, utilizando la
sintaxis siguiente:

SELECT campos FROM tabla1 INNER JOIN tabla2 ON tb1.campo1 comp


tb2.campo1 AND ON tb1.campo2 comp tb2.campo2) OR ON tb1.campo3 comp
tb2.campo3)];
Tambin puede aidar instrucciones JOIN utilizando la siguiente sintaxis:
SELECT campos FROM tb1 INNER JOIN
(tb2 INNER JOIN [( ]tb3
[INNER JOIN [( ]tablax [INNER JOIN ...)]
ON tb3.campo3 comp tbx.campox)]
ON tb2.campo2 comp tb3.campo3)
ON tb1.campo1 comp tb2.campo2;
Un LEFT JOIN o un RIGHT JOIN puede anidarse dentro de un INNER JOIN, pero un
INNER JOIN no puede anidarse dentro de un LEFT JOIN o un RIGHT JOIN.
SELECT DISTINCTROW Sum([Precio unidad] * [Cantidad]) AS [Ventas],
[Nombre] & " " & [Apellidos] AS [Nombre completo] FROM [Detalles de pedidos],
Pedidos, Empleados, Pedidos INNER JOIN [Detalles de pedidos] ON Pedidos.
[ID de pedido] = [Detalles de pedidos].[ID de pedido], Empleados INNER JOIN
Pedidos ON Empleados.[ID de empleado] = Pedidos.[ID de empleado] GROUP BY
[Nombre] & " " & [Apellidos];
Crea dos combinaciones equivalentes: una entre las tablas Detalles de pedidos y
Pedidos, y la otra entre las tablas Pedidos y Empleados. Esto es necesario ya que la
tabla Empleados no contiene datos de ventas y la tabla Detalles de pedidos no
contiene datos de los empleados. La consulta produce una lista de empleados y sus
ventas totales.
Si empleamos la clusula INNER en la consulta se seleccionarn slo aquellos registros
de la tabla de la que hayamos escrito a la izquierda de INNER JOIN que contengan al
menos un registro de la tabla que hayamos escrito a la derecha. Para solucionar esto
tenemos dos clusulas que sustituyen a la palabra clave INNER, estas clusulas son
LEFT y RIGHT. LEFT toma todos los registros de la tabla de la izquierda aunque no
tengan ningn registro en la tabla de la izquierda. RIGHT realiza la misma operacin

Prof.: Esp. Juan Domingo Tonsich

Hoja N:70

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

pero al contrario, toma todos los registros de la tabla de la derecha aunque no tenga
ningn registro en la tabla de la izquierda.

Estructuras de las Tablas


Creacin de Tablas Nuevas
Si se est utilizando un motor como el de Microsoft para acceder a bases de datos
access, slo se puede emplear esta instruccin para crear bases de datos propias de
access. Su sintaxis es:
CREATE TABLE tabla (campo1 tipo (tamao) ndice1 ,
campo2 tipo (tamao) ndice2 , ..., ndice multicampo , ... )
Parte
tabla
campo1
campo2
tipo
tamao
ndice1
ndice2

Descripcin
Es el nombre de la tabla que se va a crear.
Es el nombre del campo o de los campos que se van a crear en la nueva
tabla. La nueva tabla debe contener, al menos, un campo.
Es el tipo de datos de campo en la nueva tabla. (Ver Tipos de Datos)
Es el tamao del campo slo se aplica para campos de tipo texto.
Es una clusula CONSTRAINT que define el tipo de ndice a crear. Esta
clusula en opcional.
Es una clusula CONSTRAINT que define el tipo de ndice multicampos a
ndice
crear. Un ndice multicampo es aquel que est indexado por el contenido de
multicampos
varios campos. Esta clusula en opcional.
CREATE TABLE Empleados (Nombre TEXT (25) , Apellidos TEXT (50));
Crea una nueva tabla llamada Empleados con dos campos, uno llamado Nombre de
tipo texto y longitud 25 y otro llamado apellidos con longitud 50.
CREATE TABLE Empleados (Nombre TEXT (10), Apellidos TEXT,
Fecha_Nacimiento DATETIME) CONSTRAINT IndiceGeneral UNIQUE
([Nombre], [Apellidos], [Fecha_Nacimiento]);
Crea una nueva tabla llamada Empleados con un campo Nombre de tipo texto y
longitud 10, otro con llamado Apellidos de tipo texto y longitud predeterminada (50) y
uno ms llamado Fecha_Nacimiento de tipo Fecha/Hora. Tambin crea un ndice nico
(no permite valores repetidos) formado por los tres campos.
CREATE TABLE Empleados (ID INTEGER CONSTRAINT IndicePrimario PRIMARY,
Nombre TEXT, Apellidos TEXT, Fecha_Nacimiento DATETIME);
Crea una tabla llamada Empleados con un campo Texto de longitud
predeterminada (50) llamado Nombre y otro igual llamado Apellidos, crea
otro campo llamado Fecha_Nacimiento de tipo Fecha/Hora y el campo ID de
tipo entero el que establece como clave principal.
La clusula CONSTRAINT: Se utiliza la clusula CONSTRAINT en las instrucciones
ALTER TABLE y CREATE TABLE para crear o eliminar ndices. Existen dos sintaxis para

Prof.: Esp. Juan Domingo Tonsich

Hoja N:71

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

esta clusula dependiendo si desea Crear Eliminar un ndice de un nico campo o si


se trata de un campo multindice. Si se utiliza un motor como el de Microsoft, slo
podr utilizar esta clusula con las bases de datos propias de dicho motor.
Para los ndices de campos nicos:
CONSTRAINT nombre {PRIMARY KEY | UNIQUE | REFERENCES tabla externa
[(campo externo1, campo externo2)]}
Para los ndices de campos mltiples:
CONSTRAINT nombre {PRIMARY KEY (primario1[, primario2 [, ...]]) |
UNIQUE (nico1[, nico2 [, ...]]) |
FOREIGN KEY (ref1[, ref2 [, ...]]) REFERENCES tabla externa [(campo externo1
[,campo externo2 [, ...]])]}
Parte
nombre
primarioN

Descripcin
Es el nombre del ndice que se va a crear.
Es el nombre del campo o de los campos que forman el ndice primario.
Es el nombre del campo o de los campos que forman el ndice de clave
nicoN
nica.
Es el nombre del campo o de los campos que forman el ndice externo
refN
(hacen referencia a campos de otra tabla).
Es el nombre de la tabla que contiene el campo o los campos
tabla externa
referenciados en refN
campos
Es el nombre del campo o de los campos de la tabla externa
externos especificados por ref1, ref2, ..., refN
Si se desea crear un ndice para un campo cuando se esta utilizando las instrucciones
ALTER TABLE o CREATE TABLE la clusula CONTRAINT debe aparecer inmediatamente
despus de la especificacin del campo indexeado.
Si se desea crear un ndice con mltiples campos cuando se est utilizando las
instrucciones ALTER TABLE o CREATE TABLE la clusula CONSTRAINT debe aparecer
fuera de la clusula de creacin de tabla.
Tipo de
ndice

Descripcin

Genera un ndice de clave nica. Lo que implica que los registros de la tabla
no pueden contener el mismo valor en los campos indexados.
Genera un ndice primario el campo o los campos especificados. Todos los
PRIMARY
campos de la clave principal deben ser nicos y no nulos, cada tabla slo
KEY
puede contener una nica clave principal.
Genera un ndice externo (toma como valor del ndice campos contenidos en
otras tablas). Si la clave principal de la tabla externa consta de ms de un
campo, se debe utilizar una definicin de ndice de mltiples campos,
listando todos los campos de referencia, el nombre de la tabla externa, y los
FOREIGN
nombres de los campos referenciados en la tabla externa en el mismo orden
KEY
que los campos de referencia listados. Si los campos referenciados son la
clave principal de la tabla externa, no tiene que especificar los campos
referenciados, predeterminado por valor, el motor Jet se comporta como si
la clave principal de la tabla externa fueran los campos referenciados .
UNIQUE

Prof.: Esp. Juan Domingo Tonsich

Hoja N:72

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Creacin de ndices: Si se utiliza un motor de base de datos como el Jet de Microsoft


slo se pueden crear ndices en bases de datos del mismo motor.
La sintaxis para crear un ndice en una tabla ya definida en la siguiente:
CREATE [ UNIQUE ] INDEX ndice
ON tabla (campo [ASC|DESC][, campo [ASC|DESC], ...])
[WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]
Parte
ndice
tabla
campo

Descripcin
Es el nombre del ndice a crear.
Es el nombre de una tabla existentes en la que se crear el ndice.
Es el nombre del campo o lista de campos que constituyen el ndice.
Indica el orden de los valores de los campos ASC indica un orden
ASC|DESC
ascendente (valor predeterminado) y DESC un orden descendente.
UNIQUE Indica que el ndice no puede contener valores duplicados.
DISALLOW
Prohbe valores nulos en el ndice
NULL
IGNORE Excluye del ndice los valores nulos incluidos en los campos que lo
NULL
componen.
Asigna al ndice la categora de clave principal, en cada tabla slo puede
PRIMARY existir un nico ndice que sea "Clave Principal". Si un ndice es clave
principal implica que no puede contener valores nulos ni duplicados.
Se puede utilizar CREATE INDEX para crear un pseudo ndice sobre una tabla adjunta
en una fuente de datos ODBC tal como SQL Server que no tenga todava un ndice. No
necesita permiso o tener acceso a un servidor remoto para crear un pseudo ndice,
adems la base de datos remota no es consciente y no es afectada por el pseudo
ndice. Se utiliza la misma sintaxis para las tabla adjunta que para las originales. Esto
es especialmente til para crear un ndice en una tabla que sera de slo lectura debido
a la falta de un ndice.
CREATE INDEX MiIndice ON Empleados (Prefijo, Telefono);
Crea un ndice llamado MiIndice en la tabla empleados con los campos Prefijo y
Telefono.
CREATE UNIQUE INDEX MiIndice ON Empleados (ID) WITH DISALLOW NULL;
Crea un ndice en la tabla Empleados utilizando el campo ID, obligando que el campo
ID no contenga valores nulos ni repetidos.
Modificar el Diseo de una Tabla: Modifica el diseo de una tabla ya existente, se
pueden modificar los campos o los ndices existentes. Su sintaxis es:
ALTER TABLE tabla {ADD {COLUMN tipo de campo[(tamao)] [CONSTRAINT
ndice] CONSTRAINT ndice multicampo} | DROP {COLUMN campo I
CONSTRAINT nombre del ndice} }
Parte

Prof.: Esp. Juan Domingo Tonsich

Descripcin

Hoja N:73

Asignatura: Base de Datos I


tabla
campo
tipo
tamao
ndice
ndice
multicampo

TEORIA

Ao: 2013-2C

Es el nombre de la tabla que se desea modificar.


Es el nombre del campo que se va a aadir o eliminar.
Es el tipo de campo que se va a aadir.
El tamao del campo que se va a aadir (slo para campos de texto).
Es el nombre del ndice del campo (cuando se crean campos) o el
nombre del ndice de la tabla que se desea eliminar.
Es el nombre del ndice del campo multicampo (cuando se crean
campos) o el nombre del ndice de la tabla que se desea eliminar.

Operacin

Descripcin
Se utiliza para aadir un nuevo campo a la tabla, indicando el nombre,
ADD COLUMN el tipo de campo y opcionalmente el tamao (para campos de tipo
texto).
ADD
Se utiliza para agregar un ndice de multicampos o de un nico campo.
DROP
Se utiliza para borrar un campo. Se especifica nicamente el nombre del
COLUMN campo.
Se utiliza para eliminar un ndice. Se especifica nicamente el nombre
DROP
del ndice a continuacin de la palabra reservada CONSTRAINT.

ALTER TABLE Empleados ADD COLUMN Salario CURRENCY;


Agrega un campo Salario de tipo Moneda a la tabla Empleados.
ALTER TABLE Empleados DROP COLUMN Salario;
Elimina el campo Salario de la tabla Empleados.
ALTER TABLE Pedidos ADD CONSTRAINT RelacionPedidos FOREIGN KEY
(ID_Empleado) REFERENCES Empleados (ID_Empleado);
Agrega un ndice externo a la tabla Pedidos. El ndice externo se basa en el campo
ID_Empleado y se refiere al campo ID_Empleado de la tabla Empleados. En este
ejemplo no es necesario indicar el campo junto al nombre de la tabla en la clusula
REFERENCES, pues ID_Empleado es la clave principal de la tabla Empleados.
ALTER TABLE Pedidos DROP CONSTRAINT RelacionPedidos;
Elimina el ndice RelacionPedidos de la tabla Pedidos.

Consultas con Parmetros


Las consultas con parmetros son aquellas cuyas condiciones de bsqueda se definen
mediante parmetros. Si se ejecutan directamente desde la base de datos donde han
sido definidas aparecer un mensaje solicitando el valor de cada uno de los
parmetros. Si deseamos ejecutarlas desde una aplicacin hay que asignar primero el
valor de los parmetros y despus ejecutarlas. Su sintaxis es la siguiente:

Prof.: Esp. Juan Domingo Tonsich

Hoja N:74

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

PARAMETERS nombre1 tipo1, nombre2 tipo2, ... , nombreN tipoN Consulta


Nombre: es el nombre del parmetro.Tipo: es el tipo de datos del parmetro
Consulta: una consulta comn de SQL.Puede utilizar nombre pero no tipo de datos en una clusula WHERE o HAVING.
PARAMETERS Precio_Minimo Currency, Fecha_Inicio DateTime;
SELECT IDPedido, Cantidad FROM Pedidos WHERE Precio > Precio_Minimo
AND FechaPedido >= Fecha_Inicio;
El ejemplo siguiente muestra como utilizar los parmetros en el programa de Visual
Basic:
Public Sub GeneraConsulta()
Dim SQL As String
Dim Qd As QueryDef
Dim Rs As Recordset
SQL = "PARAMETERS Precio_Minimo Currency, Fecha_Inicio DateTime; "
SQL = SQL & "SELECT IDPedido, Cantidad FROM Pedidos WHERE Precio > "
SQL = SQL & "Precio_Minimo AND FechaPedido >= Fecha_Inicio; "
Set Qd = BaseDatos.CreateQueryDef(MiConsulta, SQL)
Qd.Parameters!Precio_Minimo = 2
Qd.Parameters!FechaInicio = #31/03/2002#
Set Rs = Qd.OpenRecordset()
End Sub
Ejemplo:
PARAMETERS [Escriba los Apellidos:] Text ; SELECT * FROM Empleados
WHERE [Escriba los Apellidos:] = [Apellidos];
La ejecucin desde la base de datos solicita al usuario los apellidos del empleado y
despus muestra los resultados.

Acceso a Bases de Datos Externas


Para el acceso a bases de datos externas se utiliza la clusula IN. Se puede acceder a
base de datos dBase, Paradox o Btrieve. Esta clusula slo permite la conexin de una
base de datos externa a la vez. Una base de datos externa es una base de datos que
no sea la activa. Aunque para mejorar los rendimientos es mejor adjuntarlas a la base
de datos actual y trabajar con ellas.
Para especificar una base de datos que no pertenece a Access Basic, se agrega un
punto y coma (;) al nombre y se encierra entre comillas simples. Tambin puede

Prof.: Esp. Juan Domingo Tonsich

Hoja N:75

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

utilizar la palabra reservada DATABASE para especificar la base de datos externa. Por
ejemplo, las lneas siguientes especifican la misma tabla:
FROM Tabla IN '[dBASE IV; DATABASE=C:\DBASE\DATOS\VENTAS;]';
FROM Tabla IN 'C:\DBASE\DATOS\VENTAS' 'dBASE IV;'
Acceso a una base de datos externa de Microsoft Access:
SELECT IDCliente FROM Clientes IN MISDATOS.MDB WHERE IDCliente Like 'A*';
En donde MISDATOS.MDB es el nombre de una base de datos de Microsoft Access que
contiene la tabla Clientes.
Acceso a una base de datos externa de dBASE III o IV:
SELECT IDCliente FROM Clientes IN 'C:\DBASE\DATOS\VENTAS' 'dBASE IV';
WHERE IDCliente Like 'A*';
Para recuperar datos de una tabla de dBASE III+ hay que utilizar 'dBASE III+;' en
lugar de 'Dbase IV;'.
Acceso a una base de datos de Paradox 3.x o 4.x:
SELECT IDCliente FROM Clientes IN 'C:\PARADOX\DATOS\VENTAS'
'Paradox 4.x;' WHERE IDCliente Like 'A*';
Para recuperar datos de una tabla de Paradox versin 3.x, hay que sustituir 'Paradox
4.x;' por 'Paradox 3.x;'.
Acceso a una base de datos de Btrieve:
SELECT IDCliente FROM Clientes IN 'C:\BTRIEVE\DATOS\VENTAS\FILE.DDF'
'Btrieve;' WHERE IDCliente Like 'A*';
C:\BTRIEVE\DATOS\VENTAS\FILE.DDF es la ruta de acceso y nombre de archivo del
archivo de definicin de datos de Btrieve.

Tema 12 Auditoria de Base de Datos. Introduccin. Metodologas.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:76

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Control de Ciclos de vida. Estudio Previo y Plan de Trabajo.


Concepcin, Diseo y Carga de la BD. Explotacin y
Mantenimiento. Revisin Post-Implementacin.-

INTRODUCCION:
La gran difusin de los Sistemas de Gestin de Bases de Datos (SGBD), junto
con la consagracin de los datos como uno de los recursos fundamentales de
las empresas, ha hecho que los temas relativos a su control interno y auditoria
cobren, cada da, mayor inters.
Como ya se ha comentado, normalmente la auditoria informtica se aplica de
dos formas distintas; por un lado se auditan las principales reas del
departamento de informtica: explotacin, direccin, metodologa de
desarrollo, sistema operativo, telecomunicaciones, bases de datos, etc.; y,
por otro, se auditan las aplicaciones desarrolladas internamente,
(subcontratadas o adquiridas) que funcionan en la empresa. La importancia de
la auditoria del entorno de bases de datos radica en que es el punto de partida
para poder realizar la auditoria de las aplicaciones que utilizan esta tecnologa.
METODOLOGAS PARA LA AUDITORA DE BASES DE DATOS:
Aunque existen distintas metodologas que se aplican en auditora informtica
(prcticamente cada firma de auditores y cada empresa desarrolla la suya
propia), se pueden agrupar en dos clases:
Metodologa tradicional.- En este tipo de metodologa el auditor revisa el
entorno con la ayuda de una lista de control (checklist), que consta de una
serie de cuestiones a verificar. Por ejemplo: Existe una metodologa de Diseo
de Base de Datos?
S
N
NA
(S es si, N no y NA no aplicable), debiendo registrar el auditor el resultado
de su investigacin.
Este tipo de tcnica suele ser aplicada a la auditora de productos de bases de
datos, especificndose en la lista de control todos los aspectos a tener en
cuenta.
Metodologa de evaluacin de riesgos: Este tipo de metodologa, conocida
tambin por risk oriented approach, es la que propone la ISACA, y empieza
fijando los objetivos de control que minimizan los riesgos potenciales a los que
est sometido el entorno. A continuacin, una lista de los riesgos ms
importantes segn 2 autores:
1. Incremento de la dependencia del servicio informtico debido a la
concentracin de datos
2. Mayores posibilidades de acceso en la figura del administrador de
la base de datos

Prof.: Esp. Juan Domingo Tonsich

Hoja N:77

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

3. Incompatibilidad entre sistemas de seguridad de acceso propios


del SGBD y el general de la instalacin.
4. Mayor impacto de los errores en datos o programas que en los
sistemas tradicionales
5. Ruptura de enlaces o cadenas por fallos del software o de los
programas de aplicacin
6. Mayor impacto de accesos no autorizados al diccionario de la base
de datos que a un fichero tradicional.
7. Mayor dependencia del nivel de conocimientos tcnicos del
personal que realice tareas relacionadas con el software de base de
datos (administrador, programadores, etc.)
Como en la auditora de desarrollo, se puede seguir la misma metodologa,
donde se establecen primeramente:
Objetivo de control (ejemplo: El SGBD deber preservar la confidencialidad de
la base de datos).
Tcnicas de control. Una vez establecidos los objetivos de control, se
especifican las tcnicas especficas correspondientes a dichos objetivos
(ejemplo: Se debern establecer los tipos de usuarios, perfiles y privilegios
necesarios para controlar el acceso a las bases de datos).
Un objetivo de control puede llevar asociadas varias tcnicas que permiten
cubrirlo en su totalidad. Estas tcnicas pueden ser preventivas, detectivas
(como monitorizar la BD) o correctivas (por ejemplo, una copia de respaldo o
backup).
Pruebas de cumplimiento. En caso de que los controles existan, se disean
unas pruebas (denominada pruebas de cumplimiento) que permiten verificar la
consistencia de los mismos. Por ejemplo: Listar los privilegios y perfiles
existentes en el SGBD. Si estas pruebas detectan inconsistencias en los
controles, o bien, si los controles no existen, se pasa a disear otro tipo de
pruebas denominadas pruebas sustantivas - que permitan dimensionar el
impacto de estas deficiencias.
Prueba sustantiva. Comprobar si la informacin ha sido corrompida
comparndola con otra fuente o revisando los documentos de entrada de datos
y las transacciones que se han ejecutado. Una vez valorados los resultados de
las pruebas se obtienen conclusiones que sern comentadas y discutidas con
los responsables directos de las reas afectadas con el fin de corroborar los
resultados. Por ltimo, el auditor deber emitir una serie de comentarios donde
se describa la situacin, el riesgo existente y la deficiencia a solucionar, y en su

Prof.: Esp. Juan Domingo Tonsich

Hoja N:78

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

caso, sugerir la posible solucin. Esta ser la tcnica a utilizar para auditor el
entorno general de un sistema de bases de datos, tanto en su desarrollo como
durante la explotacin.

PRINCIPALES OBJETIVOS DE CONTROL EN EL CICLO DE VIDA DE UNA


BASE DE DATOS
Estudio
previo y
plan de
trabajo

Revisin
postimplantac
in

Concepci
n de la
BD
y
seleccin
del
equipo
Diseo y
carga

Explotac
in y
manteni
miento

ESTUDIO PREVIO Y PLAN DE TRABAJO.


En esta primera fase, es muy importante elaborar un estudio tecnolgico de
viabilidad en el cual se contemplen distintas alternativas para alcanzar los
objetivos del proyecto acompaados de un anlisis de costo-beneficio para cada
una de las opciones. Se debe considerar entre estas alternativas la posibilidad
de no llevar a cabo el proyecto (no siempre est justificada la implantacin de
un sistema de base de datos) as como la disyuntiva entre desarrollar y comprar
(en la prctica, a veces encontramos con que se ha desarrollado una aplicacin
Prof.: Esp. Juan Domingo Tonsich

Hoja N:79

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

que ya exista en mercados, cuya compra hubiese supuesto un riesgo menor,


asegurndonos incluso una mayor cantidad a un precio inferior).
Desdichadamente, en bastantes empresas este estudio de viabilidad no se
lleva a cabo con el rigor necesario, con lo que a medida que se van
desarrollando, los sistemas demuestran ser poco rentables. El auditor debe
comprobar tambin que la alta direccin revisa los informes de los estudios de
viabilidad y que es la que decide seguir adelante o no con el proyecto. Esto es
fundamental porque los tcnicos que han de tener en cuenta que si no existe
una decidida voluntad de la organizacin en su conjunto, impulsada por los
directivos, aumenta considerablemente el riesgo de fracasar en la implantacin
de sistema. En caso de que se decida llevar a cabo el proyecto es fundamental
que se establezca un plan director, debiendo el auditor verificar que
efectivamente dicho plan se emplea para el seguimiento y gestin del proyecto
y que cumple con los procedimientos generales de gestin de proyectos que
tengan aprobados la organizacin. Otro aspecto importante en esta fase es la
aprobacin de la estructura orgnica del proyecto en particular, sino tambin
de la unidad que tendr la responsabilidad de la gestin y control de la base de
datos; recordemos que, para que un entorno de base de datos funcione
debidamente, esta unidad es imprescindible.
Tareas del administrador de datos:
Realizar el diseo conceptual y lgico de la base de datos
Apoyar al personal de sistemas durante el desarrollo de aplicaciones
Formar al personal
Establecer estndares de diseo de b.d. desarrollo y contenido del
diccionario de datos
Desarrollar polticas de gestin de datos
Desarrollar planes estratgicos y tcticos para la manipulacin de los datos
Desarrollar los requisitos de los elementos del diccionario de datos
Desarrollar normas para la denominacin
Controlar la integridad y seguridad de los datos

Planificar la evolucin de la bd de la empresa

Identificar oportunidades de comparticin de datos

Trabajar con los auditores en la auditora de la base de d.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:80

Asignatura: Base de Datos I

TEORIA

Proporcionar controles de seguridad

Realizar el diseo fsico de la b.d.

Asesorar en la adquisicin de hw y sw

Soportar el SGBD

Resolver problemas del SGBD y del software asociado

Monitorizar el rendimiento del SGBD

Ao: 2013-2C

Ayudar en el desarrollo de planes que aseguren la capacidad hw.


Asegurar la integridad de los datos, comprobando que se implantan los
controles adecuados
Asegurar la seguridad y confidencialidad
Proporcionar facilidades de prueba
Integrar paquetes, procedimientos, utilidades, etc. De soporte para al SGND
Desarrollar estndares, procedimientos y documentarlos
A la hora de detallar las responsabilidades de estas funciones hay que tener en
cuenta uno de los principios fundamentales del control interno: la separacin de
funciones. Se recomienda una separacin de funciones entre:
-

El personal de desarrollo de sistemas y el de explotacin

Explotacin y control de datos

Administracin de base de datos y desarrollo

Debera existir tambin una separacin de funciones entre el administrador de


seguridad y el administrador de la base de datos. Esto no quiere decir que
estas tareas tengan forzosamente que desempearlas personas distintas (lo
que no sera viable en muchas y pequeas y medianas empresas) pero s que
es un aspecto importante de control a considerar, por lo que en caso de que no
pueda lograrse la separacin de funciones, debern establecerse controles
compensatorios o alternativos: como, por ejemplo, una mayor atencin de la
direccin y la comprobacin por parte de algn usuario del contenido y de las
salidas ms importantes producidas a partir de la BD.
La situacin que el auditor encuentra normalmente en las empresas es que al
no existir una descripcin detallada de los puestos de trabajo (que incluyan

Prof.: Esp. Juan Domingo Tonsich

Hoja N:81

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

responsabilidades, conocimientos, etc.), la separacin de funciones es muy


difcil de verificar.

CONCEPCIN DE LA BASE DE DATOS Y SELECCIN DEL EQUIPO.


En esta fase se empieza a disear la base de datos. La metodologa de diseo
debera tambin emplearse para especificar los documentos fuentes, los
mecanismos de control, las caractersticas de seguridad y las pistas de
auditoria a incluir en el sistema, estos ltimos aspectos generalmente se
descuidan, lo que produce mayores costos y problemas cuando se quieren
incorporar una vez concluida la implementacin de la base de datos y la
programacin de las aplicaciones. El auditor debe por tanto, en primer lugar,
analizar la metodologa de diseo con el fin de determinar si es o no aceptable,
y luego comprobar su correcta utilizacin. Como mnimo, una metodologa de
diseo de BD debera contemplar dos fases de diseo: lgico y fsico, aunque
la mayora de las empleadas en la actualizad contempla 3 fases: adems de las
dos anteriores, una fase previa de diseo conceptual que sera abordada en
este momento del ciclo de vida de la base de datos.
Un punto importante a considerar, objetivos de control relativos a:
Modelo de arquitectura de informacin y su actualizacin, que es
necesaria para mantener el modelo consistente con las necesidades de los
usuarios y con el plan estratgico de tecnologas de la informacin
-

Datos y diccionario de datos corporativo

Esquema de clasificacin de datos en cuanto a seguridad

Niveles de seguridad para cada anterior clasificacin de datos

En cuanto a la seleccin del equipo, en caso de que la empresa no disponga ya


de uno, deber realizarse utilizando procedimiento riguroso; en el que se
considere por un lado, las necesidades de la empresa (debidamente
ponderadas) y, por otro, las prestaciones que ofrecen los distintos SGBD
candidatos (puntuados de manera oportuna).
DISEO Y CARGA
En esta fase se llevarn a cabo los diseos lgico y fsico de la base de datos,
por lo que el auditor tendr que examinar si estos diseos se han realizado
correctamente: determinando si la definicin de datos contemplan adems de
su estructura, las asociaciones y las restricciones oportunas, as como las
especificaciones de almacenamiento de datos y las cuestiones relativas a la
seguridad. El auditor tendr que tomar una muestra de ciertos elementos

Prof.: Esp. Juan Domingo Tonsich

Hoja N:82

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

(tablas, vistas, ndices) y comprobar que su definicin es completa, que ha


sido aprobada por el usuario y que el administrador de la base de datos
particip en su establecimiento. Es importante que la direccin del
departamento de informtica, los usuarios e incluso, en algunas ocasiones, la
alta direccin, aprueben el diseo de los datos, al igual que el de las
aplicaciones. Una vez diseada una BD se proceder a su carga, ya sea
migrando datos de un soporte magntico o introducindolos manualmente. Las
migraciones o conversiones de sistemas, con el paso de un sistema de ficheros
a uno de base de datos, o de un tipo de SGBD (de jerrquico a racional),
entraan un riesgo muy importante, por lo que debern estar claramente
planificadas para evitar prdida de informacin y la transmisin al nuevo
sistema de datos errneos. Tambin se debern realizar pruebas en paralelo,
verificando que la decisin real de dar por terminada la prueba en paralelo, se
atena a los criterios establecidos por la direccin y que se haya aplicado un
control estricto de la correccin de errores detectados en esta fase. Por lo que
respecta a la entrada manual de datos, hay que establecer un conjunto de
controles que aseguren la integridad de los mismos. A este respecto, cabe
destacar que las declaraciones escritas de procedimientos de la organizacin
referentes a la entrega de datos a ser procesados deben asegurar que los datos
se autorizan, recopilan, preparan, transmiten y se comprueba su integridad de
forma apropiada. Tambin es aconsejable que los procedimientos y el diseo de
los documentos fuentes minimicen los errores y las omisiones, as como el
establecimiento de procedimientos de autorizacin de datos. Un aspecto muy
importante es el tratamiento de datos de entrada errneos, para los que deben
cuidarse con atencin los procedimientos de reintroduccin de forma que no
disminuyan los controles; a este respecto lo ideal es que los datos se validen y
corrijan tan cerca del punto de origen como sea posible.
EXPLOTACIN Y MANTENIMIENTO.
Una vez realizadas las pruebas de aceptacin, con la participacin de los
usuarios, el sistema se pondr (mediante las correspondientes autorizaciones y
siguiendo los procedimientos establecidos para ello) en explotacin. En esta
fase, se debe comprobar que se establecen los procedimientos de explotacin
y mantenimiento que aseguren que los datos se tratan de forma congruente y
exacta y que el contenido de los sistemas slo se modifica mediante la
autorizacin adecuada. Sera conveniente tambin que el auditor pudiera llevar
a cabo una auditora sobre el rendimiento del Sistema de BD, comprobando si
se lleva a cabo un proceso de ajuste y optimizacin adecuados que no slo
consiste en el rediseo fsico o lgico de la BD, sino que tambin abarca ciertos
parmetros del SO e incluso la forma en que acceden las transacciones a la BD.
Recordemos que la funcin de administracin de la base de datos debe ser la
responsable de monitorizar el rendimiento y la integridad de los sistemas de
BD.
REVISIN POST-IMPLANTACIN.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:83

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Aunque en bastantes organizaciones no se lleva a cabo, por falta de tiempo y


recursos, se debera establecer el desarrollo de un plan para efectuar una
revisin post-implantacin de todo sistema nuevo o modificado con el fin de
evaluar si:
Se han conseguido los resultados esperados
Se satisfacen las necesidades de los usuarios
Los costos y beneficios coinciden con lo previsto

Prof.: Esp. Juan Domingo Tonsich

Hoja N:84

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Tema 13 Modelo y Enfoque Orientado a Objetos. Aplicacin en las Bases


de Datos. Estructura de Objetos. Jerarqua de Clases. Herencia Mltiple.
Identidad de Objetos. Contenido de Objetos. Organizacin Fsica.
Consulta Orientada a Objetos. Modificacin de Esquemas.Modelo Orientado a Objetos:
El modelo orientado a objeto esta basado en el paradigma de la programacin
orientada a objetos. El lenguaje Simula 67 introdujo por primera vez este
enfoque en la programacin, y cuya especialidad era la simulacin.
Recientemente los lenguajes ms conocidos en el desarrollo de este enfoque en
la programacin son el Smalltalk, C++ y JAVA entre otros. El tema de la
orientacin a objetos no es nuevo. Sin embargo, en los ltimos aos ha tenido
un impacto tan grande en diferentes reas de la computacin que se hace
obligatorio el manejo de los conceptos involucrados para cualquier persona
relacionada con esta disciplina. De la misma forma ha surgido una proliferacin
de definiciones e interpretaciones que conducen, primero a confusin, y luego a
malas interpretaciones y abusos de los trminos.
Aplicacin en las Bases de Datos:
El propsito de los sistemas de Bases de Datos es la gestin y manipulacin de
grandes cantidades de informacin.
Las primeras Bases de Datos Jerrquica y/o Red surgieron del desarrollo de
sistemas de gestin de archivos, y ms tarde en BD relacionales.
Caractersticas comunes de estas aplicaciones:
1. Uniformidad: Gran numero de datos estructurados de igual manera y del mismo

tamao.2. Orientacin de Registros: Datos bsicos en registro de longitud fija.3. Datos Pequeos: Todos los registros son cortos con no ms de 80 bytes, por
respetar el diseo de las viejas tarjetas.4. Campos Atmicos: los campos son de longitud fija, y se cumple con la primera
forma normal de lo ya visto en el modelo relacional.5. Transacciones Cortas: programas de ejecucin medidas en fracciones de segundos,
no hay interaccin humana, y son del tipo medidas en del tipo ejecucion-espera de
respuestas.6. Esquema de Concepto Esttico: El cambio en el esquema de la Base de Datos en
muy poco frecuente, y cuando se producen son sencillos.-

A finales de los 80' aparecieron las primeras Base de Datos Orientada a


Objetos, es una base de datos inteligente. Soporta el paradigma orientado a
objetos almacenando datos y mtodos, y no slo datos. Est diseada para ser
eficaz, desde el punto de vista fsico, para almacenar objetos complejos. Es ms
segura ya que no permite tener acceso a los datos (objetos); esto debido a que
para poder entrar se tiene que hacer por los mtodos que haya utilizado el
programador.
Estas nuevas aplicaciones incluyen:

Prof.: Esp. Juan Domingo Tonsich

Hoja N:85

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

1. Diseo Asistido por Computador(CAD): donde se almacenan datos de un diseo de


ingeniera, relacin de las componentes y versiones antiguas de diseo.2. Ingeniera de Software asistida por Computador(CASE): donde se almacenan datos
requeridos para asistir a los que desarrollan software, siendo estos el cdigo
fuente, dependencias entre modulo del software, definiciones y usos de variables, e
historia del desarrollo.3. Base de Datos de Multimedios: almacenando datos de audio, fotos, videos y
animaciones. Muy utilizados en aplicaciones grficas.4. Sistemas de Informatizacin de Oficinas: donde las estaciones de trabajo en red
permiten la creacin y recuperacin de documentos, herramientas para mantener
una agenda de citas, correo electrnico y acceso a Internet.5. Sistemas Expertos de Base de Datos: incluye datos, reglas explcitas que
representan las restricciones de integridad, operadores y otros conocimientos a
cerca de la empresa o entidad que est modelando la Base de Datos.La aparicin de estas nuevas aplicaciones fue posible tambin por el continuo y
acelerado avance de la tecnologa informtica, disponiendo cada vez de ms memoria,
mayor velocidad de procesamiento, ms capacidad de almacenamiento y por ltimo
disminucin de los costos del hardware y del software.
En 1991 surgi el grupo ODMG (Grupo Manejador de Datos Objeto) naci de un grupo
ms grande, llamado "Grupo Manejador de Objetos (OMG)", donde estn
representadas las mayores empresas de Base de Datos. El ODMG es el Standard de la
industria para el almacenamiento de objetos persistentes. Este grupo esta definiendo
un estndar universal por objetos. Este estndar permitir que un objeto sea
programado en cualquier lenguaje y sistema operativo.
Estas nuevas aplicaciones requieren de nuevos modelos de datos, nuevos lenguajes de
consultas y nuevos modelos de transacciones. Entre los requisitos de estas nuevas
aplicaciones estn:
1. Objetos Complejos: es un dato que es visto como un simple objeto en el mundo
real, pero que contiene otros objetos, pudiendo tener una estructura interna
compleja arbitraria. A menudo los objetos estn estructurado jerrquicamente,
representando la relacin entre ellos. Este modelo ha llevado al desarrollo de los
Sistemas de Gestin de Base de Datos Orientada a Objetos (SGDBOO).2. Datos de Comportamiento: Puede que distintos objetos necesiten responder de
diferentes formas a la misma orden.3. Meta Conocimiento: A veces los datos ms importantes sobre la aplicacin son
reglas generales, que en las BD tradicionales no son fciles de representar.4. Transacciones de Larga Duracin: Es el caso de las herramientas CAD y CASE que
implica interaccin humana continua con los datos. El conflicto de transacciones es
mucho ms serio que en las de corta duracin comnmente usada en aplicaciones
de negocios.-

ESTRUCTURA de OBJETOS:
Un modelo orientado a objeto se basa en encapsular cdigos y datos en una nica
unidad, llamada OBJETO. Un conjunto de mensajes es la interfaz entre un objeto y el
resto del sistema.
A los efectos de ilustrar esta definicin, tenemos una base de datos con documentos
escritos en uno de varios de software (Word, WordPerfect, Html, Etc.), para imprimir
un documento tenemos que saber el software con el que se realizo. Bajo el enfoque
orientado a objetos, cada documento es un OBJETO que contiene el texto y el cdigo

Prof.: Esp. Juan Domingo Tonsich

Hoja N:86

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

que opera sobre el objeto. Todos los objetos documentos responden al mensaje
imprimir, pero lo hacen de diferentes formas, dependiendo del software, tipo tamao
de letra, color, etc. Encapsulando dentro del objeto documento, la informacin de
cmo imprimir el documento, podemos tener toda la misma interfaz externa para el
usuario.En general un OBJETO tiene asociado:
1. Un conjunto de variables que contienen los datos del objeto. El valor que asume
cada variable es un objeto.
2. Un conjunto de mensajes a los que el objeto responde.3. Un mtodo, que son lneas de cdigos para implementar cada mensaje. Un mtodo
devuelve un valor como respuesta al mensaje.El termino MENSAJE en un contexto orientado a objeto, no es un mensaje fsico en una
red de computadoras, si no es la solicitud entre objetos sin tener en cuenta detalles de
la implementaron.
Dado que el conjunto de mensajes es la nica interfaz externa al que responde, es
posible modificar variables y mtodos sin afectar al objeto. Tambin es posible sustituir
una variable por un mtodo, por ejemplo un objeto de documento puede contener la
variable tamao que contenga el numero de bytes del texto, y puede ser sustituida por
un mtodo tamao que lea todo el texto y cuente el numero de bytes.
La capacidad de modificar la definicin de un objeto sin afectar al resto del sistema,
esta considerada como una de las mayores ventajas del modelo de programacin
orientada a objetos.

Jerarqua de Clases:
Normalmente en una BD existen muchos objetos similares, que responden a los
mismos mensajes, utilizan los mismos mtodos, y tienen variables del mismo nombre y
tipo. Al agrupar los objetos similares estoy creando una CLASE, y a cada uno de
estos objetos se los llama instancia de su clase. Todos los objetos de una clase
comparten una definicin comn, aunque difieran en los valores asignados a las
variables.
Supongamos que tenemos una BD orientada a objeto para una aplicacin bancaria,
seria de esperar que la clase clientes y clase empleados fueran similares, en las
definiciones de las variables Nombre, Direccin, Telfono, Documento, etc. Sin
embargo existen variables especficas para los empleados (Salario, Antigedad,
Categora), y para los clientes (Saldo, Crdito en Descubierto).
Seria oportuno entonces definir una representacin para las variables comunes en un
sitio, para ello habra que combinar Empleados-Clientes en una CLASE. Por lo tanto se
define una clase especializada PERSONA donde estarn las variables en comn de
ambos. Las variables y mtodos especficos de los empleados se asocian a una clase
EMPLEADOS; dndole el mismo tratamiento a la clase CLIENTES.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:87

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

PERSONA
S
+Nombre
+Direccion
+Telfono
+Document
o

CLIENTES

EMPLEADO
S

+Saldo
+Crdito en
Descubierto

+Salario
+Antigedad

SECRETARIA

DIRECTOR

CAJERO

+Hs. Semana
+Depende de:

+Titulo
+N
Despacho

+Hs Semana
+N Caja

De esta forma un objeto que representa a un CAJERO contiene todas las variables de
la clase Cajero, Empleados y Personas. Este proceso es conocido como HERENCIA de
propiedades de una clase ms general. Del mismo modo se transmite HERENCIA de
Mtodos.
Las especializaciones de una clase, se denominan SUBCLASE, para nuestro ejemplo,
Empleados es una subclase de Persona, y Cajero una subclase de Empleado.
Si lo vemos del lado inverso, Persona es una SUPERCLASE de Empleado, y Empleados
una SUPERCLASE de Cajero. Hemos visto que cada Clase es ella misma un objeto, e
incluye una variable que contiene el conjunto de todas las instancias de la Clase.
Con la grfica de jerarqua presente, es fcil determinar que objeto est asociado a su
Clase, podemos asociar a la Clase Clientes el conjunto de todos los Clientes del banco.
Pero no sucede lo mismo si queremos asociar a la Clase Empleados todos los

Prof.: Esp. Juan Domingo Tonsich

Hoja N:88

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

empleados del banco, porque no todos son directores, o cajeros o secretarias. Como
salida alternativa podramos asociar a la clase Empleados solamente aquellos que no
sean instancias de Director, ni de Cajero, ni de Secretaria.
Viendo la jerarqua de Clase-Subclase, es similar al concepto ya visto de especializacin
en el modelo Entidad-Relacin, as decimos que el conjunto cajero es una subconjunto
del conjunto de todos los empleados, de hecho cada cajero es un empleado.
Herencia Mltiple:
Permite a una Clase tener ms de una Superclase y heredar todas las
caractersticas de sus padres.
Principales Ventajas:

Una mayor potencia a la hora de definir nuevas clases.


Oportunidades adicionales de reutilizacin.
Acercamiento a la forma natural de pensar.
Para una mejor comprensin se presta el caso de los vehculos:

Vehculo

Terrestre

Coche

Acutico

Anfibio

Barco

La desventaja se encuentra en los problemas de implementacin (por


ejemplo, la herencia repetida de C++).
Clase vnculo (join): clase con ms de un padre.

Identidad de Objetos:
Los Objetos en una Base de Datos Orientada a Objetos, normalmente
corresponden a entidades de una Empresa que se est modelando, esta
conserva su identidad aun cuando alguna de sus propiedades cambie con el
tiempo. De este modo un Objeto conserva su identidad aun cuando cambien los
valores de las variables y las definiciones de los mtodos con el tiempo.
Este ejemplo no es vlido para una Base de Datos Relacional.
Formas de Identidad:

a) Valor: Se utiliza un valor de datos por identidad, se usa en S.R.


b) Nombre: Se utiliza nombre facilitado por el usuario, es la que usa para
identificar variables en los procedimientos sin importar el valor que
contengan.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:89

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

c) Incorporacin: Una nocin de identidad es incorporar en el modelo de datos


el lenguaje de programacin, siendo esta la forma de identidad que se
utiliza en los SOO.
Grados de Permanencia de Identidad:

a) Intraprogramas: La identidad permanece solamente durante la ejecucin del


nico programa o consulta.
b) Interprograma: la identidad permanece durante la ejecucin de un
programa a otro, este es el caso de los nombres de consulta de un lenguaje
tipo SQL.
c) Persistentes: La identidad permanece entre las reorganizaciones
estructurales de los datos, siendo esta la identidad requerida en los SOO.Estas formas de identidad sirven para distinguir entre identidad en SOO, y
punteros en organizacin fsica de datos.-

Contenido de Objetos:
El valor de una variable de un objeto, es ella misma un objeto, esto crea una
jerarqua de contenido entre los objetos. Un objeto O2 es el hijo de un objeto
O1, si O1 contiene a O2, es decir que O2 es el valor de una variable del objeto
O1. Los objetos que contienen otros objetos, se denominan complejos o
compuestos.
Por ejemplo si O1 es el objeto persona y O2 es el objeto direccin, donde el
objeto O2 tiene las variables calle, nmero, piso, dpto. y cdigo postal, y el
objeto O1 tiene las variables nombre, documento, direccin y nacionalidad,
tenemos que direccin es el objeto O2 contenido en el objeto O1, por ser una
variable de sta ltima.

Organizacin Fsica:
La estructura de las BDOO no presenta la uniformidad de las BDR, para
construir una estructura fcil de mantener, comnmente los objetos se
representa as:
1) Los sistemas de computadoras implementan directamente los bloques que
construyen las CLASES bsicas, del tipo lenguajes de programacin, tales
como entero, flotante, carcter y cadena.2) Las instancias de clases que no son bsicas se representan as:
Las variables se representan por campos de un tipo de registro. Las variables con un conjunto de valores se representan con una lista
enlazada de los objetos. La estructura fsica hace que sea posible utilizar registros de longitud
fija para implementar una BDOO.-

Prof.: Esp. Juan Domingo Tonsich

Hoja N:90

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Para el caso de los CAMPOS LARGOS, por el tamao de los mismos, por ser
datos especializados, y a los efectos prcticos normalmente se manipulan con
software de aplicacin que no forma parte de los mtodos de las clases.
Estos campos pueden ser de datos tipo texto, hipertextos, audio, vdeo y
grficos.

Consultas Orientadas a Objetos:


Los lenguajes de Programacin Orientada a Objetos requieren que toda la
interaccin con objetos sea mediante envo de mensajes, presentando esto,
serias limitaciones en las aplicaciones de Base de Datos, habr que saber el
modelo de pasar mensajes de objeto en objeto, como as tambin el modelo de
pasar mensajes de conjunto en conjunto. La mezcla de ambos modelos
conduce a serias complicaciones en el lenguaje de consulta, conocido esto
como Impedancia Desajustada.
En las Base de Datos Orientada a Objetos, la ODMG (Grupo Manejador de
Datos Objeto) ha establecido un estndar de definicin (ODL - Lenguaje de
Definicin de datos) y manipulacin (OQL - Lenguaje de consulta) de bases de
datos equivalente a SQL.
Respecto a las relacionales, todas (Oracle, Informix, etc.) estn aadiendo en
mayor o menor grado algunos aspectos de la orientacin a objetos. ANSI
(Instituto Nacional Estadounidense de Estndar), por su parte, est definiendo
un SQL-3 que incorpora muchos aspectos de la orientacin a objetos. El futuro
del SQL-3 es sin embargo incierto, ya que ODMG ha ofrecido a ANSI su
estndar para que sirva de base para un nuevo SQL, con lo que solo habra un
nico estndar de base de datos.

Modificacin de Esquemas:
Muy por el contrario de la facilidad que significa modificar esquemas en las
Base de Datos Relacional, en las Base de Datos Orientada a Objetos la
complejidad de los cambios deriva de dos fuentes:
Cambios Complejos
Cambios Frecuentes.
Para ilustrar la complejidad de los cambios en un esquema Orientado a Objetos,
se citan los siguientes cambios:
Adicin de una nueva CLASE: Debe colocarse en la jerarqua de
Clase/SubClase, y resolver los problemas de herencia.
Eliminacin de una CLASE: Las variables y mtodos que heredan las
subclases se deben volver a examinar. Las instancias de la clase
eliminada deben hacerse instancias de una clase padre.
Modificacin de una definicin de CLASE: puede definirse una nueva
variable o mtodo, o bien eliminarla; pudiendo como en los casos
anteriores afectar a las subclases.

Prof.: Esp. Juan Domingo Tonsich

Hoja N:91

Asignatura: Base de Datos I

TEORIA

Ao: 2013-2C

Reposicin de CLASE en la Jerarqua: al reestructurar la jerarqua de


clase tiene consecuencia en la herencia de las antiguas y nuevas
subclases.-

Prof.: Esp. Juan Domingo Tonsich

Hoja N:92

Vous aimerez peut-être aussi