Un modelo de base de datos o
esquema de base de datos es la estructura o el formato de una base de datos,
descrita en un lenguaje formal soportada por el sistema de gestión de bases de
datos. En otras palabras, un "modelo de base de datos" es la
aplicación de un modelo de datos usado en conjunción con un sistema
de gestión de bases de datos.
Los esquemas generalmente son
almacenados en un diccionario de datos. Aunque un esquema se defina en un
lenguaje de base de datos de texto, el término a menudo es usado para referirse
a una representación gráfica de la estructura de la base de datos.
Un modelo
de base de datos es una teoría o especificación que describe como una base de
datos es estructurada y usada. Varios modelos han sido sugeridos.
Modelos
comunes:
- Modelo jerárquico
- Modelo de red
- Modelo relacional
- Modelo Relacional con Objeto
Modelo jerárquico
En un modelo jerárquico, los datos
son organizados en una estructura parecida a un árbol, implicando un eslabón
solo ascendente en cada registro para describir anidar, y un campo de clase
para guardar los registros en un orden particular en cada lista de mismo-nivel.
Las estructuras jerárquicas fueron usadas extensamente en los primeros sistemas
de gestión de datos de unidad central, como el Sistema de Dirección de
Información (IMS) por la IBM, y ahora describen la estructura de documentos
XML. Esta estructura permite un 1:N en una relación entre dos tipos de datos.
Esta estructura es muy eficiente para describir muchas relaciones en el
verdadero real; recetas, índice, ordenamiento de párrafos/versos, alguno anidó
y clasificó la información. Sin embargo, la estructura jerárquica es ineficaz
para ciertas operaciones de base de datos cuando un camino lleno (a diferencia
del eslabón ascendente y el campo de clase) también no es incluido para cada
registro.
Una limitación del modelo
jerárquico es su inhabilidad de representar manera eficiente la redundancia en
datos. Los modelos de base de datos " el valor de atributo de entidad
" como Caboodle por Swink están basados en esta estructura.
En la relación Padre-hijo: El hijo
sólo puede tener un padre pero un padre puede tener múltiples hijos. Los padres
e hijos son atados juntos por eslabones "indicadores" llamados. Un
padre tendrá una lista de indicadores de cada uno de sus hijos.
Modelo de red
El modelo de red (definido por la
especificación CODASYL) organiza datos que usan dos fundamental construcciones,
registros llamados y conjuntos. Los registros contienen campos (que puede ser
organizado jerárquicamente, como en el lenguaje COBOL de lenguaje de
programación). Los conjuntos (para no ser confundido con conjuntos matemáticos)
definen de uno a varios relaciones entre registros: un propietario, muchos
miembros. Un registro puede ser un propietario en cualquier número de
conjuntos, y un miembro en cualquier número de conjuntos.
El modelo de red es una variación
sobre el modelo jerárquico, al grado que es construido sobre el concepto de
múltiples ramas(estructuras de nivel inferior) emanando de uno o varios nodos
(estructuras de nivel alto), mientras el modelo se diferencia del modelo
jerárquico en esto las ramas pueden estar unidas a múltiples nodos. El modelo
de red es capaz de representar la redundancia en datos de una manera más
eficiente que en el modelo jerárquico.
Las operaciones del modelo de red
son de navegación en el estilo: un programa mantiene una posición corriente, y
navega de un registro al otro por siguiente las relaciones en las cuales el
registro participa. Los registros también pueden ser localizados por
suministrando valores claves.
Aunque esto no sea un rasgo
esencial del modelo, las bases de datos de red generalmente ponen en práctica
las relaciones de juego mediante indicadores que directamente dirigen la
ubicación de un registro sobre el disco. Esto da el funcionamiento de recuperación
excelente, a cargo de operaciones como la carga de base de datos y la
reorganización.
La mayor parte de bases de datos de
objeto usan el concepto de navegación para proporcionar la navegación rápida a
través de las redes de objetos, generalmente usando identificadores de objeto
como indicadores "inteligentes" de objetos relacionados.
Objectivity/DB, por ejemplo, los instrumentos llamados 1:1, 1:muchos, muchos:1
y muchos:muchos, llamados relaciones que pueden cruzar bases de datos. Muchas
bases de datos de objeto también apoyan SQL, combinando las fuerzas de ambos
modelos.
El modelo de red (definido por la
especificación CODASYL) organiza datos que usan dos fundamental construcciones,
registros llamados y conjuntos. Los registros contienen campos (que puede ser
organizado jerárquicamente, como en el lenguaje COBOL de lenguaje de
programación). Los conjuntos (para no ser confundido con conjuntos matemáticos)
definen de uno a varios relaciones entre registros: un propietario, muchos
miembros. Un registro puede ser un propietario en cualquier número de
conjuntos, y un miembro en cualquier número de conjuntos. El modelo de red es
una variación sobre el modelo jerárquico, al grado que es construido sobre el
concepto de múltiples ramas(estructuras de nivel inferior) emanando de uno o
varios nodos (estructuras de nivel alto), mientras el modelo se diferencia del
modelo jerárquico en esto las ramas pueden estar unidas a múltiples nodos. El
modelo de red es capaz de representar la redundancia en datos de una manera más
eficiente que en el modelo jerárquico. Las operaciones del modelo de red son de
navegación en el estilo: un programa mantiene una posición corriente, y navega
de un registro al otro por siguiente las relaciones en las cuales el registro
participa. Los registros también pueden ser localizados por suministrando
valores claves. Aunque esto no sea un rasgo esencial del modelo, las bases de
datos de red generalmente ponen en práctica las relaciones de juego mediante
indicadores que directamente. dirigen la ubicación de un registro sobre el
disco. Esto da el funcionamiento de recuperación excelente, a cargo de
operaciones como la carga de base de datos y la reorganización.
Modelo Relacional
El modelo
relacional para la gestión de una base de
datos es un modelo de datos basado en la lógica de predicados y en la teoría de conjuntos. Es el modelo más utilizado
en la actualidad para modelar problemas reales y administrar datos
dinámicamente.
Su idea
fundamental es el uso de «relaciones». Estas
relaciones podrían considerarse en forma lógica como conjuntos de datos
llamados «tuplas».
Pese a que ésta es la teoría de las bases de datos relacionales creadas por Edgar
Frank Codd, la mayoría de las veces se conceptualiza de una manera más
fácil de imaginar, esto es, pensando en cada relación como si fuese una tabla que está compuesta por registros (cada fila de la tabla sería
un registro o tupla), y columnas (también llamadas campos).
Características
- Una base de datos relacional se compone de varias tablas o relaciones.
- No pueden existir dos tablas con el mismo nombre ni registro.
- Cada tabla es a su vez un conjunto de registros (filas y columnas).
- La relación entre una tabla padre y un hijo se lleva a cabo por medio de las claves primarias y ajenas (o foráneas).
- Las claves primarias son la clave principal de un registro dentro de una tabla y éstas deben cumplir con la integridad de datos.
- Las claves ajenas se colocan en la tabla hija, contienen el mismo valor que la clave primaria del registro padre; por medio de éstas se hacen las relaciones.
Clave única
Cada tabla puede tener uno o más
campos cuyos valores identifican de forma única cada registro de dicha tabla,
es decir, no pueden existir dos o más registros diferentes cuyos valores en
dichos campos sean idénticos. Este conjunto de campos se llama clave única.
Pueden existir varias claves únicas
en una determinada tabla, y a cada una de éstas suele llamársele candidata a
clave primaria.
Clave primaria
Una clave primaria es una clave
única elegida entre todas las candidatas que define unívocamente a todos los
demás atributos de la tabla, para especificar los datos que serán relacionados
con las demás tablas. La forma de hacer esto es por medio de claves foráneas.
Sólo puede existir una clave
primaria por tabla y ningún campo de dicha clave puede contener valores NULL.
Clave foránea
Una clave foránea es una referencia
a una clave en otra tabla, determina la relación existente en dos tablas. Las
claves foráneas no necesitan ser claves únicas en la tabla donde están y sí a
donde están referenciadas.
Por ejemplo, el código de
departamento puede ser una clave foránea en la tabla de empleados. Se permite
que haya varios empleados en un mismo departamento, pero habrá uno y sólo un
departamento por cada clave distinta de departamento en la tabla de empleados.
Estructura
La base
de datos se organiza en dos marcadas secciones; el esquema y los datos (o
instancia).
El
esquema es la definición de la estructura de la base de datos y principalmente
almacena los siguientes datos:
- El nombre de cada tabla
- El nombre de cada columna
- El tipo de dato de cada columna
- La tabla a la que pertenece cada columna
Las bases
de datos relacionales pasan por un proceso al que se le conoce como normalización, el resultado de
dicho proceso es un esquema que permite que la base de datos sea usada de
manera óptima.
Los datos
o instancia es el contenido de la base de datos en un momento dado. Es en sí,
el contenido de todos los registros.
Ventajas y desventajas
Ventajas
- Provee herramientas que garantizan evitar la duplicidad de registros.
- Garantiza la integridad referencial, así, al eliminar un registro elimina todos los registros relacionados dependientes.
- Favorece la normalización por ser más comprensible y aplicable.
Desventajas
- Presentan deficiencias con datos gráficos, multimedia, CAD y sistemas de información geográfica.
- No se manipulan de forma manejable los bloques de texto como tipo de dato.
- Las bases de datos orientadas a objetos (BDOO) se propusieron con el objetivo de satisfacer las necesidades de las aplicaciones anteriores y así, complementar pero no sustituir a las bases de datos relacionales.
Diseño de las bases de datos relacionales
El
primer paso para crear una base de datos, es planificar el tipo de información
que se quiere almacenar en la misma, teniendo en cuenta dos aspectos: la información
disponible y la información que necesitamos.
La
planificación de la estructura de la base de datos, en particular de las
tablas, es vital para la gestión efectiva de la misma. El diseño de la
estructura de una tabla consiste en una descripción de cada uno de los campos
que componen el registro y los valores o datos que contendrá cada uno de esos
campos.
Los
campos son los distintos tipos de datos que componen la tabla, por ejemplo:
nombre, apellido, domicilio. La definición de un campo requiere: el nombre del
campo, el tipo de campo, el ancho del campo, etc.
Los
registros constituyen la información que va contenida en los campos de la
tabla, por ejemplo: el nombre del paciente, el apellido del paciente y la
dirección de este. Generalmente los diferentes tipos de campos que se pueden
almacenar son los siguientes: Texto (caracteres), Numérico (números), Fecha /
Hora, Lógico (informaciones lógicas si/no, verdadero/falso, etc.), imágenes.
En
resumen, el principal aspecto a tener en cuenta durante el diseño de una tabla
es determinar claramente los campos necesarios, definirlos en forma adecuada
con un nombre especificando su tipo y su longitud.