Desarrollo de un supuesto práctico en el que se ponga de manifiesto la relación y las implicaciones entre el modelo lógico de acceso y definición de datos y el modelo físico de almacenamiento de los datos
A la hora de crear una nueva base de datos es necesario seguir una serie de pasos que tienen por objetivo la creación de una estructura para la base de datos lo más ajustada posible a las exigencias para las que se necesita.
La primera de estas fases consiste en un análisis de los requerimientos precisos, la identificación de los problemas que puedan existir, así como las posibilidades y los límites.
A continuación se entra en la fase de diseño de la base de datos, donde se crea el diseño conceptual a partir de las necesidades determinadas anteriormente. También se desarrolla un diseño lógico y físico para preparar la implementación de la base de datos.
El modelo conceptual se emplea para representar la realidad a un alto nivel de abstracción. Se usan modelos conceptuales que describen la realidad de una forma fácil.
El modelo lógico es una descripción de la estructura de la base de datos en los términos que puede procesar el SGBD que vaya a utilizarse. Para especificar el modelo lógico se utiliza el modelo relacional.
Por último, el modelo físico es una descripción de la implementación de la base de datos en el SGBD. Este depende del SGBD empleado, y el esquema se expresa mediante el uso de un lenguaje de definición de datos.
Aplicación práctica
Imagine que trabaja para una empresa de análisis químico como administrador de la base de datos. Se le solicita que implemente una base de datos para almacenar los datos obtenidos por una serie de estaciones meteorológicas de las que la empresa es responsable.
De cada estación meteorológica se conocen sus coordenadas: longitud, latitud y altitud, además de un código identificador para cada una.
De cada estación se recoge una serie de datos o muestras de la que se conoce: fecha, temperatura máxima, temperatura mínima, precipitaciones, humedad máxima, humedad mínima, velocidad del viento máxima y velocidad del viento mínima.
A partir de estos datos haga un análisis y realice el modelo conceptual, el diseño lógico y el diseño físico, para la implementación de la base de datos utilizando SQL.
Solución
A partir de los datos del enunciado puede establecerse el diseño conceptual en el que aparecen dos entidades: estación y muestra.
La entidad estación tiene los siguientes atributos: identificador (clave primaria), latitud, longitud y altitud.
La entidad muestra tiene como atributos: fecha, temperatura máxima, temperatura mínima, precipitaciones, humedad máxima, humedad mínima, velocidad del viento máxima y velocidad del viento mínima.
El esquema conceptual puede ser:

Para pasar desde el esquema conceptual al diseño lógico (modelo relacional) se ha de tener en cuenta que cada entidad se transforma en una tabla. La tabla “Muestras” tendrá como clave principal el identificador de estación y la fecha de recogida. La clave identificador proviene de la entidad estación por un fenómeno de propagación de claves al ser una relación de uno a muchos (una muestra puede provenir de muchas estaciones).
De este modo se obtienen dos tablas:
Estación (identificador, latitud, longitud, altitud).
Muestra (identificador, fecha, tmin, tmax, precipitaciones, hmin, hmax, vmin, vmax,estacion).
Donde:
tmin, tmax, hmin, hmax, vmin y vmax, corresponden a temperatura mínima, temperatura máxima, humedad mínima, humedad máxima, velocidad mínima y velocidad máxima, respectivamente.
Los atributos en negrita se corresponden con las claves primarias de cada relación.
Las sentencias del lenguaje de definición de datos de SQL para el establecimiento del diseño físico son:
Para la tabla “Estación”:
|
1 2 3 4 5 6 |
CREATE TABLE estación ( Identificador INTEGER NOT NULL AUTO_INCREMENT, latitud VARCHAR(3) NOT NULL, longitud VARCHAR(4) NOT NULL, altitud VARCHAR(4) NOT NULL, PRIMARY KEY (identificador) ); |
Para la tabla “Muestra”:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
CREATE TABLE muestra ( Identificador INTEGER NOT NULL, fecha DATE NOT NULL, tmin INTEGER, tmax INTEGER, precipitaciones INTEGER, hmin INTEGER, hmax INTEGER, vmin INTEGER, vmax INTEGER, PRIMARY KEY (identificador, fecha), INDEX (identificador), FOREIGN KEY (identificador) REFERENCES estación (identificador) ON DELETE CASCADE ON UPDATE NO ACTION); |