Proceso de programación y desarrollo tecnológico – Bases de datos
 
 
Una base de datos es una colección de archivos interrelacionados creados con un sistema gestor de bases de datos (DBMS). El contenido de una base de datos engloba la información necesaria para representar una organización de tal manera que los datos estén disponibles para los usuarios. Los tres componentes principales de un sistema de base de datos son el hardware, el software DBMS y los datos a manejar.

 Acceso a bases de datos: SQL

El lenguaje que se utiliza para trabajar con los datos de las bases de datos es el lenguaje SQL.

La historia de SQL empieza en 1974 con la definición, por parte de Donald Chamberlin y de otras personas que trabajaban en los laboratorios de investigación de IBM, de un lenguaje para la especificación de las características de las bases de datos que adoptaban el modelo relacional. En el curso de la década de 1980, numerosas compañías como Oracle y Sybase comercializaron productos basados en SQL, que se convirtió así en el estándar industrial por lo que respecta a las bases de datos relacionales. En 1986 el ANSI adoptó SQL como estándar para los lenguajes relacionales, y en 1987 se transformó en estándar ISO.

En este apartado se incluye un breve extracto de las operaciones que pueden realizarse en las bases de datos relacionales. En este tipo de base de datos, los lenguajes de acceso a los datos se basan en el álgebra relacional o en el cálculo relacional (teoría próxima a la teoría matemática de conjuntos). Se obtienen relaciones a partir de relaciones y sirven tanto para actualizar datos como para extraer subconjuntos de datos. Es posible identificar las tablas o relaciones con conjuntos y aplicarles las conocidas operaciones de unión, intersección, producto cartesiano, diferencia, etc., que se aplican a los conjuntos.

Para crear las relaciones mencionadas anteriormente en SQL se debería escribir:

CREATE TABLE maquetador(
    Nombre VARCHAR(15) NOT NULL,
    Apellidos VARCHAR(15) NOT NULL,
    Telefono VARCHAR(15) NOT NULL PRIMARY KEY,
    Email VARCHAR(15) NULL,
    Calle VARCHAR(15) NULL,
    Población VARCHAR(15) NULL,
    Provincia VARCHAR(15) NULL,
    Pais CHAR(2) NULL
)
CREATE TABLE Pais(
    Siglas CHAR(2) NOT NULL PRIMARY KEY,
    Nombre VARCHAR(15) NOT NULL
)

En estas líneas de código se define el tipo de datos que se usará en cada atributo, cuáles son los atributos que forman la clave primaria en cada una de las tablas (PRIMARY KEY) y si se permite que el atributo pueda estar vacío (NULL) o no (NOT NULL).

Para introducir nuevos registros se usaría:

INSERT INTO Pais (Siglas, Nombre)
	VALUES ("ES","España")
INSERT INTO Pais (Siglas, Nombre)
	VALUES ("UK","Reino Unido")
INSERT INTO Maquetador (Nombre,Apellidos,Telefono)
	VALUES ("Margarita","Suarez García","34892348128")

Y una posible consulta sería:

SELECT Maquetador.Nombre, Maquetador.Apellidos, Pais.Nombre
	FROM Maquetador, Pais
	WHERE Maquetador.Pais = Pais.Siglas
	ORDER BY Maquetador.Pais, Maquetador.Apellidos

La cual nos devolvería una relación o tabla con tres atributos: nombre, apellidos y país de los maquetadores de nuestra base de datos. Asimismo, le indicamos que queremos el nombre completo del país haciendo coincidir las siglas de nuestras tabla «Maquetador» y «Pais» (WHERE). Además nos interesa que esta nueva tabla aparezca ordenada por países y, dentro de cada país, por apellidos (ORDER BY).

La consulta daría lugar a una tabla temporal que no se almacenaría en la base de datos, simplemente nos serviría para construir un listado. Si se prevé usar esta consulta habitualmente es posible crear una vista; esto consistiría en una seudo tabla que se construiría, utilizando la consulta, cada vez que dicha vista se abriera. De este modo se separaría la estructura interna de tablas de la base de datos de las vistas, que pueden ser más apropiadas para el tratamiento por parte de usuarios y programas.

El lenguaje SQL permite un gran número de operaciones sobre los datos de la base de datos que no son objeto de mención en esta obra, pero que pueden ser de vuestro interés. En el mercado se encuentran diversas obras de referencia sobre este lenguaje. Hay que tener en cuenta las pequeñas diferencias entre los SQL de Oracle, MS-SQL, MySQL, PostgreSQL, etc., por lo que es importante consultar los manuales de dichos productos.

Muchas plataformas ofrecen interfaces visuales de SQL para facilitar la gestión de los datos, de forma básica, sin tener que recurrir al aprendizaje del lenguaje.

Una transacción es la ejecución de un programa (o parte de un programa) que realiza accesos de lectura y/o actualización de una base de datos. En caso de actualización, una transacción debe siempre completar sus actualizaciones o bien dejar la base de datos tal y como estaba antes de comenzar. Para ello, SQL provee las instrucciones:

TRANSACTION: señala el comienzo de la transacción.

COMMIT: se dan por buenos los cambios efectuados
desde el inicio de la transacción.

ROLLBACK: se ha detectado un error de cualquier tipo
y se desean anular todos los cambios hechos desde el 
principio de la transacción.

Actividad Actividad de autoevaluación


    Señala en cuáles de los siguientes escenarios sería bueno introducir el concepto de transacción:

    1. Visualizar las horas de llegada de los aviones al aeropuerto más cercano a vuestra ciudad en la próxima hora.

    2. Reservar por Internet dos butacas en el teatro para la función del sábado.

    3. Obtener una lista de las últimas transacciones de vuestra cuenta corriente.

    4. Sacar dinero en un cajero automático.

    Solución


 Motores de bases de datos

Hay muchos motores de bases de datos existentes en el mercado, cada uno con sus características específicas, aunque todos ellos ofrecen una funcionalidad similar mediante un lenguaje de acceso común: SQL. Así, dentro del mundo Linux y su filosofía de software gratuito, tenemos como principal representante a MySQL. De entre los gestores de BBDD comerciales multiplataforma encontramos a Oracle, DB2 o Sybase. Sobre plataforma Microsoft tenemos el Microsoft SQL Server. El programa Access es un gestor de base de datos, pero no está indicado para gestionar grandes volúmenes de información.

 Integración web con bases de datos

En el mundo Internet las bases de datos juegan un papel muy importante puesto que mucha información publicada se encuentra almacenada en ellas, y muchas páginas web se construyen cuando el cliente accede a la misma. De este modo las modificaciones en los contenidos se realizan en dichas bases de datos sin tener que mantener contenidos estáticos y teniendo la seguridad de que la información mostrada será actualizada, ya que normalmente dichas bases de datos son el repositorio único de información.

Ejemplo


    Cuando estamos realizando una reserva de un vuelo desde la web, la estamos introduciendo en la base de datos Amadeus, que es el repositorio de información y reservas utilizado por cualquier agencia de viajes de todo el mundo. De esta forma nuestra plaza no podrá ser ocupada por otra agencia de viajes situada en cualquier punto del mundo, independientemente del mecanismo de acceso a la misma que utilice.


 
    Inicio