Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
INTRODUCCIÓN.
Una base de datos es en esencia una colección estructurada de datos relacionados entre
sí, de la cual los usuarios pueden extraer información.
información.
Por ejemplo, Access es un SGBD, que actúa como interfaz entre los datos y los usuarios
finales. Más adelante se detallarán aspectos relevantes de un SGBD.
• Usuarios: Podemos definir a los usuarios como toda persona que tenga todo tipo de
contacto con el sistema de base de datos, desde quién la diseña, elabora, termina, hasta
los usuarios finales.
La figura muestra el SGBD como interfaz (intermediario) entre la base de datos física y
las peticiones del usuario.
El SGBD interpreta las peticiones de entrada/salida del usuario y las manda al sistema
operativo para la transferencia de datos entre la unidad de memoria secundaria (discos)
y la memoria principal.
En sí, un SGBD es el corazón de la base de datos ya que se encarga del control total de
los posibles aspectos que la puedan afectar.
2. Establecer y mantener las trayectorias de acceso a la base de datos de tal forma que
los datos puedan ser accedidos rápidamente.
de base de datos.
Para mejorar el funcionamiento global del sistema y obtener un tiempo de respuesta más
rápido, muchos sistemas permiten que múltiples usuarios actualicen los datos
simultáneamente. En un entorno así, la interacción de actualizaciones concurrentes
puede dar por resultado datos inconsistentes. Para prevenir esta posibilidad debe
mantenerse alguna forma de supervisión en el sistema.
La información de toda empresa es importante, aunque unos datos lo son más que otros,
por tal motivo se debe considerar el control de acceso a los mismos, no todos los
usuarios pueden visualizar alguna información, por tal motivo para que un sistema de
base de datos sea confiable debe mantener un grado de seguridad que garantice la
autentificación y protección de los datos. En un banco por ejemplo, el personal de
nóminas sólo necesita ver la parte de la base de datos que tiene información acerca de
los distintos empleados del banco y no otro tipo de información.
Los valores de datos almacenados en la base de datos deben ser correctos. Pueden ser
incorrectos debido a:
• Falsificación deliverada
El nivel interno depende del SGBD elegido. Y será este el que implemente (realice) esta
tarea.
Cuando usamos Access, no sabemos cómo almacena físicamente los datos ni dónde.
Access es en el intermediario entre usuarios y el SO(Windows).
Los otros dos niveles (Conceptual y Externo) son tarea del Administrador de Bases de
Datos (ABD), que es la persona encargada y con el control total sobre el sistema de base
de datos.
Para realizar el Nivel Conceptual, un ABD se servirá de un modelo de datos, que es una
representación de la realidad mediante una colección de herramientas conceptuales para
describir los datos, las relaciones que existen entre ellos, la semántica asociada a los
datos y las restricciones de consistencia.
Existen diferentes modelos de datos, pero el más utilizado por su sencillez y eficiencia
es el modelo Entidad-Relación que detallaré a continuación.
MODELO ENTIDAD-RELACIÓN.
Denominado por sus siglas como E-R, este modelo representa la realidad a través de
una representación gráfica que incorpora información relativa a los datos y las
relaciones entre ellos.
Se utiliza como punto de partida en el diseño de una BD, para después transformarlo al
modelo elegido (en nuestro caso el Relacional).
El modelo E-R se basa en la percepción del mundo real, que consiste en un conjunto de
objetos básicos llamados Entidades así como de las Relaciones entre ellos.
Una Entidad es una cosa u objeto concreto o abstracto que existe, que puede distinguirse
de otros y del que se desea almacenar información.
Las características de las Ocurrencias de las Entidades se llaman Atributos. Por ejemplo,
el Nombre, DNI y Ciudad son Atributos de Alumnos.
Los Atributos de una entidad pueden tomar un conjunto de valores permitidos al que se
le conoce como Dominio del atributo.
Una Clave es un conjunto de 1 o más atributos, que permiten identificar de forma única
a una ocurrencia dentro de una entidad.
además añadir que ese conjunto de atributos debe ser mínimo, es decir, que ningún
subconjunto de atributos pueda también funcionar como clave
Una Clave se especifica gráficamente en el modelo E-R con una línea debajo del
nombre del atributo.
Atributos
Una Relación es una asociación entre varias Entidades. Pueden contener también
Representa ENTIDADES
Representa RELACIONES
Veamos un ejemplo:
Queremos diseñar el modelo E-R de las notas que sacan los alumnos de una escuela en
las diferentes asignaturas en las que están matriculados.
Nota: Cuando sea posible poner un nombre lógico a la relación, debe hacerse. No
siempre se podrá. En el ejemplo, la relación entre las entidades Alumnos y Asignaturas
puede llamarse Notas. Si no hubiésemos encontrado dicho nombre, la relación se podría
llamar AluAsig, por ejemplo.
Nótese que la relación tiene un atributo: Nota (este atributo no pertenece ni a Alumnos,
ni a Asignaturas)
• Entidades débiles: Entidades que no poseen los atributos necesarios para definir una
clave primaria ya que dependen de una entidad fuerte. No obstante es necesario dotar a
la entidad de una clave primaria. Esta estará formada por la Clave Primaria de la entidad
fuerte más 1 o más atributos de la entidad débil (a dichos atributos de la entidad débil se
le llama Discriminador). A veces es posible crear una Clave primaria en la entidad débil
con un nuevo atributo más identificativo.
Nota: Esta es la definición que el modelo E-R hace de las entidades fuertes y débiles. En
el modelo relacional se ofrece otra que más adelante se detallará.
GRADO DE UNA RELACIÓN.
Por ejemplo la relación NOTAS del ejemplo anterior es de grado 2, ya que intervienen
la entidad ALUMNOS y la entidad ASIGNATURAS.
PADRES
MADRES
Existen 4 tipos de relaciones que pueden establecerse entre entidades, las cuales
establecen con cuantas ocurrencias de entidad de tipo B se puede relacionar una
ocurrencia de entidad de tipo A:
Una ocurrencia de entidad del tipo A solo se puede relacionar con una ocurrencia
entidad del tipo B, y viceversa.
Significa que una ocurrencia de entidad del tipo A puede relacionarse con cualquier
cantidad de ocurrencias de entidad del tipo B, y que una ocurrencia de entidad del tipo
B solo puede estar relacionada con una ocurrencia de entidad del tipo A.
Significa que una ocurrencia de entidad del tipo B puede relacionarse con cualquier
cantidad de ocurrencias de entidad del tipo A, y una ocurrencia de entidad del tipo A
solo puede estar
Significa que una ocurrencia de entidad del tipo A puede relacionarse con cualquier
cantidad de ocurrencias de entidad del tipo B, y viceversa.
Mencionar que la cardinalidad para cada conjunto de entidades depende del punto de
vista que se le dé al modelo en estudio sujetándose a la realidad.
El modelo E-R es independiente del sistema de BD y del SO que se elija. Pero para
crear físicamente Una BD es necesario pasarlo a uno de estos tres modelos, que ya son
interpretables en un computador:
• Modelo relacional.
• Modelo jerárquico.
• Modelo en red.
Cuando elegimos el SGBD que vamos a utilizar, también estamos eligiendo el modelo
de BD.
El más utilizado sin duda es el relacional (Access, Oracle son SGBDs relaciónales)
debido a su sencillez y facilidad de comprensión.
Cada relación de puede representar como una tabla formada por filas y columnas.
En el modelo relacional las tablas del extremo "1" se llaman Fuertes y las del extremo
"varios" se les denomina Débiles.
Las tablas del modelo relacional deben cumplir los siguientes requisitos:
• Cada fila debe ser única, es decir no pueden existir filas duplicadas.
• El valor de la columna que es clave primaria para cada fila debe ser único.
• Debe tener un solo tipo de fila, cuyo formato está definido por el esquema de tabla o la
relación.
Un diagrama E-R, puede ser representado también a través de una colección de tablas.
Veamos las reglas:
La entidad A se transfoma en una tabla A cuyos atributos serán los que tiene la entidad
A. La entidad B se transfoma en una tabla B cuyos atributos serán los que tiene la
entidad B.
La entidad A (fuerte) se transfoma en una tabla A cuyos atributos serán los que tiene la
entidad A.
La entidad B (débil) se transfoma en una tabla B cuyos atributos serán los que tiene la
entidad B más los de la clave primaria de la entidad A.
La entidad B (fuerte) se transfoma en una tabla B cuyos atributos serán los que tiene la
entidad B.
La entidad A (débil) se transfoma en una tabla A cuyos atributos serán los que tiene la
entidad A más los de la clave primaria de la entidad B.
De la relación R se obtiene una tercera entidad R, que tendrá como atributos la clave
primaria de la entidad A, la clave primaria de la entidad B y los atributos que tenía la
relación R.
"...al instrumento que se aplica a una parcela del mundo real (universo del discurso)
para obtener una estructura de datos a la que denominamos esquema. Esta distinción
entre el modelo (instrumento) y el esquema (resultado de aplicar el instrumento) es
importante... Es importante también distinguir entre mundo real y universo del discurso,
ya que este último es la visión que del mundo real tiene el diseñador... podemos definir
un modelo de datos como un conjunto de conceptos, reglas y convenciones que nos
permiten describir los datos del universo del discurso." (MIGUEL y PIATTINI, 1993:
162)
1. Objeto: cualquier entidad con existencia independiente sobre el que almacenan datos.
Puede ser simples o compuestos.
2. Relación: asociación entre objetos.
3. Restricción estática: propiedad estática del mundo real que no puede expresarse con
los anteriores, ya que sólo se da en la base de datos; suele corresponder a valores u
ocurrencias, y puede ser sobre atributos, entidades y relaciones.
4. Objeto compuesto: definidos como nuevos objetos dentro de la base de datos,
tomando como punto de partida otros existentes, mediante mecanismos de agregación y
asociación.
5. Generalización: se trata de relaciones de subclase entre objetos, es decir, parte de las
características de diferentes entidades pueden resultar comunes entre ellas.
CONCEPTOS BASICOS
Una base de datos jerárquica consiste en una colección de registros que se conectan
entre si por medio de ligas. Los registros y las ligas son similares a los del modelo de
red, pero en el modelo jerárquico se organiza en forma de árbol con raíz (donde la raíz
es nodo ficticio); de tal manera que una base de datos jerárquica es una colección de
arboles de este tipo, formando un bosque.
A cada árbol con raíz con raíz se le denomina árbol de base de datos.
En este modelo un registro puede tener que repetirse en varios sitios que puede
ocasionarlos siguientes problemas:
REGISTROS y LIGAS
Las reglas para la formación del árbol son: validas las relaciones de uno a uno a uno a
muchos. El esquema de una base de datos jerárquica se representa como una colección
de diagramas de estructuras de árbol. Para cada diagrama existe una única instancia del
árbol de base de datos. La raíz de este árbol es un nodo ficticio. Los hijos de ese nodo
son instancias del tipo de registros adecuado.
Ejemplo:
CASOS PARTICULARES
REGISTROS VIRTUALES.
Dado que en las relaciones muchos a muchos existe demasiada repetición de datos, se
maneja el concepto de registro virtual. Un registro virtual es aquel que no se escribe
físicamente en el medio, sino que es una referencia (liga) a un registro existente en
forma previa su representación es :
Setentas a Ochentas a
Mediados de los
mediados de los principios de Futuro
Sesentas
ochentas los noventas
De red Semántico Fusión de los
Modelo de Relacional modelos de
datos y la
representación
de
conocimientos.
Orientado a
datos Jerárquico Modelos
objetos
híbridos
Configuración
cliente-servidor
Computadores
Hardware de Configuración
Macrocomputadores Macrocomputadores personales más
bases de datos cliente-servidor
rápidos
Procesamiento
en paralelo
Memorias
Estaciones de
ópticas
trabajo
Minicomputadores
Máquinas de
bases de datos
Computadores Multimedia
Máquinas
Personales Lenguajes
Interfaz con el dorsales
Ninguna naturales
usuario
Lenguajes de
Gráficos
consulta Entrada de voz
Menús
Formas Texto a mano
libre
Consulta por
formas
Bases de datos
y lenguajes de
programación
integrados.
SQL Gestores de
Interfaz con Por procedimientos Lenguajes de estandarizado presentación
programas consulta generalizados
incorporados Lenguajes de
cuarta Procesamiento
generación de datos y
conocimientos
Programación distribuidos y
lógica heterogéneos,
con
Gráficos de información de
negocios multimedia
Salida de
imágenes.
Procesamiento
de
transacciones
Procesamiento de Gestión de
Procesamiento de
Procesamiento información y bases de datos
datos Procesamiento
transacciones en paralelo
de
conocimientos
MODELOS DE DATOS
Una de las principales tendencias en los próximos años será hacia los modelos de datos
orientados a objetos (BDOO) y los sistemas de gestión de bases de datos orientadas a
objetos (SGBDOO). Los modelos de datos BDOO poseen un poder de expresión similar
al de los modelos semánticos, pero los rebasan en el sentido de que modelan
explícitamente el comportamiento. Se asegura que son más fáciles de implementar y
usar cuando se trata de crear aplicaciones, debido a la modularidad integrada, el
encapsulamiento y la reutilización de código.
En el modelo DBTG solamente pueden emplearse enlaces uno a uno y uno a muchos.
En este modelo existen dos elementos principales que son el dueño y el miembro, donde
solo puede existir un dueño y varios miembros, donde cada miembro depende
solamente de un dueño.
Conjuntos DBTG
Declaración de conjuntos
Get: Copia el registro al que apunta el actual de unidad de ejecución de la base de datos
ala plantilla adecuada en el área de trabajo de programa.
La orden FIND tiene varias formas, en este caso estudiaremos 2 ordenes find diferentes
para localizar los registro individuales de la base de datos; La orden más sencilla es de
la forma:
find any < tipo de registro > using < campo de registro >
Esta orden localiza un registro del tipo <tipo registro> cuyo valor de < campo de
registro> es el mismo que el del valor de <campo de registro> en la plantilla del <tipo
de registro> en el área de trabajo del programa. Una vez que se encuentra ese registro se
modifican los siguientes punteros para que apunten a ese registro:
Para cada conjunto en el que participe ese registro, el puntero de actualidad de conjunto
apropiado.
Para ilustrar lo anterior, construyamos una consulta en DBTG que nos muestre el
número de control del alumno Luis A. (consideremos el modelo alumno-materia ).
Alumno.nombre:="Luis A.";
find any Alumno using NombreA;
get Alumno:
print("Alumno.control");
Pueden existir varios registros con el valor especificado. La orden find localiza el
primero de ellos en un orden previamente especificado. Para localizar otros registros de
la base de datos que pudieran tener el mismo campo <campo de registro, utilizamos la
orden
Que localiza al siguiente registro (según un orden que depende del sistema) que tiene
el valor de <campo registro>.ejemplo:
Alumno.NombreA:="Luis A.";
find any Alumno using NombreA;
while DB-Status = 0 do
begin
get Alumno;
print (Alumno.control);
find duplicate Alumno using NombreA;
end;
Actualización en DBTG.
Alumno.NombreA:="Delia J. Siordia";
Alumno.control:="94310128";
Alumno.Esp:="LAE";
Store Alumno;
Para realizar la modificación a los registro primero se debe encontrar ese registro en
la base de datos, pasarlo a la memoria principal y efectuar las modificaciones deseadas,
posteriormente actualizamos el puntero de actualidad hacia el registro a modificar y
ejecutamos la orden Modify.
Para que el sistema se entere que se va a realizar una modificación se emplea la orden
for update.
Las líneas de código antes descritas, primero requieren del dato por el cual se
realizará la búsqueda del registro, la orden find for update any establecen el tipo de
registro que se usara, using indica el campo por el cual debe buscar la coincidencia para
la modificación, get se antepone la línea de modificaciones que se realizaran sobre el
registro y finalmente ya que el registro fue modificado se ejecuta la instrucción modify
para activar las actualizaciones ejecutadas.
Eliminación de registros.
Fin:=false;
Alumno.NombreA:="Luis A.";
find any Alumno using NombreA;
while DB-Status=0 and not fin do
begin
get Alumno;
if Alumno.control=94310166 then
begin
erase Alumno;
fin:=true;
end
else
find for update next alumno with Alren1(*Registro reenlace*)
end;
Es posible eliminar toda una secuencia de conjunto encontrando al dueño del mismo,
para ello se ejecuta la orden:
1.Crear los respectivos registros para cada una de las entidades que intervienen en el
modelo.
2. Crear un nuevo tipo de registro que llamaremos Renlace, que puede no tener campos
o tener solo uno que contenga un identificador único, el identificador lo proporcionará
el sistema y no lo utiliza directamente el programa de aplicación, a este registro se le
denomina también como registro ficticio o de enlace o unión.
Siguiendo los pasos anteriores nuestra estructura finalmente es: (Considerando una
relación con cardinalidad Uno a Uno)
Ahora si nuestro enlace tuviera atributos descriptivos, se crea el registro con los
campos respectivos y se liga indicando el tipo de cardinalidad de que se trate.
En este caso tomamos el ejemplo anterior con cardinalidad uno a uno y le agregamos
a la relación el atributo calif. (calificación).
La estructura quedaría:
Este diagrama nos indica que los alumnos Luis A. Laura M. y Leticia L. cursaron la
materia Base de datos 2 con La maestra Ing. Lourdes A. Campoy M obteniendo una
calificación de 100,80,95 respectivamente.