Tema 56 – Bases de datos relacionales.

Tema 56 – Bases de datos relacionales.

Diseño. Estructura. Operaciones. Lenguaje SQL. Diseño de programas. Importación/exportación de datos.

ÍNDICE

1. INTRODUCCIÓN

2. BASES DE DATOS RELACIONALES: DISEÑO. ESTRUCTURA. OPERACIONES

2.1. Diseño

2.2. Estructura

2.3. Operaciones

3. LENGUAJE SQL

4. DISEÑO DE PROGRAMAS

4.1. Fases del diseño de bases de datos

4.2. Diseño conceptual

4.3. Diseño lógico

4.4. Diseño físico

5. IMPORTACIÓN/EXPORTACIÓN DE DATOS

1. INTRODUCIÓN

La información, sea de la naturaleza que sea, y la posibilidad de obtener el máximo control sobre ella ha sido uno de los principales objetivos del ser humano desde hace ya siglos.

De hecho, el poder de gestionar grandes cantidades de datos se ha cons­tituido, especialmente a través de las última décadas, en uno de los factores más significativos en lo que respecta al nivel de desarrollo del hombre.

Hoy en día es difícil encontrar un solo lugar en el mundo civilizado en el que no exista un completo control sobre todo lo que sea” registrable”, ya sea en horarios de trenes, datos personales de la población, información estadística de cualquier índole o, incluso, datos antes tan difíciles de registrar de forma exhaustiva como son material literario u obras de arte de un museo.

Ya no existe casi nada que pueda escapar del control humano y, como tal, todo nos debemos acostumbrar a cohabitar por los sistemas encargados de realizar este tipo de gestión automática de la información, sin tener por ello que temer en ningún momento a las consecuencias derivadas de dicho control.

Los ordenadores han favorecido en gran medida la consumación de este objetivo, puesto que fueron ideados para encargarse de realizar todas aquellas operaciones que al hombre le suponía un gran esfuerzo y cantidad de tiempo.

Operaciones de carácter repetitivo en las que antes el ser humano debía emplear horas, como puede ser la ordenación de archivos o rellenar sobres con direcciones para remitir correspondencia a multitud de clientes, en nuestros días a un ordenador no le lleva más de unos segundos.

De hecho, conforme mejora la calidad y prestaciones de los equipos infor­máticos, mayor capacidad de cálculo son capaces de ofrecer éstos, por lo que, incluso la orde­nación o búsqueda en ficheros constituidos por millones de fichas ya no representan un obstá­culo para cualquier ordenador PC de la gama alta.

2. BASES DE DATOS RELACIONALES: DISEÑO. ESTRUC­TURA. OPERACIONES

Este modelo distribuye los datos en tablas bidimensionales, llamadas rela­ciones, dónde las columnas recogen los diferentes atributos o campos y las filas almacenan las diferentes instancias u ocurrencias (registros). También se establecen varios tipos de depen­dencias entre las tablas (interrelaciones), y según la naturaleza de éstas, se implementan me­diante atributos” Clave Extranjera” o mediante tablas relacionales.

Como reglas básicas de formación se establecen las siguientes:

– No se permiten ocurrencias duplicadas en una tabla.

– Hay un solo valor para un atributo dado de una determinada ocurrencia.

– Todos los atributos que no forman parte de la clave dependen sólo de ésta.

– Todas los valores en un atributo que sea clave extranjera deberán apare­cen en la tabla donde dicho atributo es clave principal.

2.1. DISEÑO

Consiste en definir la estructura de la BD, que será un conjunto de esquemas de rela­ción con sus atributos, dominios, claves primarias y secundarias, etc. Este diseño, se ha de descomponer en etapas, que son tres: diseño conceptual, diseño lógico y diseño físico.

1. Diseño conceptual

Obtendremos aquí la estructura de la futura BD, independientemente de la tecnología a emplear posteriormente para llevarla a cabo. Para modelizar esa estructura, se usa el modelo c Fi (Entity-Relatioship), donde las entidades serían más o menos las tablas a definir, los atri­butos fax columnas de la tabla (definiremos también los atributos que actúan como claves), y las interrelaciones (relationship) las relaciones entre tablas (asociación entre entidades).

Una interrelación puede asociar una o más entidades, pudiendo dar lugar, en este últi­mo caso, a la creación de nuevas entidades.

2. Diseño lógico: la transformación al modelo relacional

Las entidades, darán lugar a relaciones. Las interrelaciones, a claves secundarias (las 1:1 y 1:N), o bien a nuevas relaciones (las M:N y todas las n-varias). Los atributos y clave pri­maria de la entidad, lo serán ahora de la relación.

Las relaciones

Una relación o tabla se compone de:

clip_image002

La relación anterior se denota como empleados (DNI, Nombre, Apellidos, Despacho) valiendo cualquier otro orden.

El dominio es el conjunto de valores atómicos de un atributo (edades aceptadas, DNI posibles, etc.).

El grado es el número de atributos o columnas que componen la relación.

Las filas no están ordenadas, pero no pueden estar repetidas.

La clave de una relación: claves candidatas aquellos subconjuntos de atributos sin tuplas repetidas y con los mínimos atributos posibles. Clave primaria será la clave candidata que elijamos para identificar las filas de la tabla (tuplas de la relación. En el ejemplo, el DNI). Las otras candidatas serán las claves alternativas. Claves secunda­rias o foráneas serán aquellas que referencian a una primaria (la columna Despacho del ejemplo, sería secundaria de fa primaria n° despacho de la tabla despachos (n° despacho, calle, población).

Reglas de integridad

Consisten en evitar que el modelo represente plausiblemente a la realidad, evitando in­coherencias (sueldos <0, edades fuera del dominio, etc.). También recogen la unicidad de la clave primaria, su entidad (que no tenga valores nulos), la integridad del dominio

(que no haya valores fuera del dominio) y la integridad referencial (todos los valores que tome la clave secundaria deben existir en la primaria, o ser nulos).

Para mantener esta integridad referencial, las políticas a seguir son: la restricción (im­pedir modificar o borrar una tupla con clave primaria relacionada con una secundaria), la actualización en cascada (permite modificar la tupla, actualizando las relacionadas) y la anulación (anula en cascada las relacionadas). Podríamos por ejemplo, aplicar la restricción para el borrado, y la actualización en cascada para la modificación.

3. Diseño físico

No nos es necesario pues cada SGBDR se encarga de implementarlo, de forma trans­parente al usuario.

2.2. ESTRUCTURA

Base de datos es un archivo que contiene datos (estructurados e interrelacionados) y los objetos que definen y manejan esos datos: tablas, consultas, formularios, informes, macros y módulos. Además, se pueden definir estrategias de seguridad y de integridad. Pueden coe­xistir en un disco varias bases de datos, en varios ficheros, absolutamente independientes en­tre sí (aunque es posible referenciar desde una base de datos objetos presentes en otras ba­ses de datos, es decir, en otros ficheros).

Los objetos que componen una base de datos son:

• Tablas: son los almacenes de datos. Se trata de listas de registros. El diseño de ta­blas consiste en la definición de los campos necesarios para almacenar correctamente la información de la base de datos.

• Consultas: operaciones que pueden realizase sobre los datos de las tablas: limitacio­nes de acceso, selección de datos, inserción, modificación y borrado, cálculos…

• Formularios: pantallas que se presentan a los usuarios de una base de datos para que tengan un acceso amigable a los datos y operaciones.

• Informes: formatos de presentación de los datos para generar copias impresas de la información registrada en la base de datos.

• Macros y módulos: segmentos de código en lenguaje de alto nivel (Access Basic, Vi­sual Basic, lenguaje de macros,…) que permiten realizar operaciones complejas con los datos y objetos de la base de datos.

Los objetos deben estar identificados mediante un nombre. Referencias posteriores a esos objetos se harán a través de su nombre identificativo.

2.3. OPERACIONES

• Introducir datos.

• Añadir registros.

• Modificar registros.

• Modificar el ancho de una columna.

• Borrar un registro.

• Buscar datos en la tabla.

• Ordenar los datos de la tabla.

• Hacer una copia de una tabla.

3. LENGUAJE SQL

El lenguaje de consulta estructurado (SQL) es un lenguaje de base de da­tos normalizado, utilizado por el motor de base de datos de Microsoft Jet. SQL se utiliza para crear objetos QueryDef, como el argumento de origen del método OpenRecordSet y como la propiedad RecordSource del control de datos. También se puede utilizar con el método Exe­cute para crear y manipular directamente las bases de datos Jet y crear consultas SQL de paso a través para manipular bases de datos remotas cliente – servidor.

Componentes del SQL

El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actuali­zar 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.

Comandos DLL

CREATE: Utilizado para crear nuevas tablas, campos e índices.

DROP: Empleado para eliminar tablas e índices.

ALTER: Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos.

Comandos DML

SELECT: Utilizado para consultar registros de la base de datos que satisfa­gan un criterio determinado.

INSERT: Utilizado para cargar lotes de datos en la base de datos en una única operación.

UPDATE: Utilizado para modificar los valores de los campos y registros especificados

DELETE: Utilizado para eliminar registros de una tabla de una base de da­tos.

Cláusulas

Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular.

FROM: Utilizada para especificar la tabla de la cual se van a seleccionar los

registros

WHERE: Utilizada para especificar las condiciones que deben reunir y que se van a seleccionar.

GROUP BY: Utilizada para separar los registros seleccionados en grupos especificos

HAVING: Utilizada para expresar la condición que debe satisfacer cada

grupo.

ORDER BY: Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico.

Operadores Lógicos

AND: Es el “y” lógico. Evalúa dos condiciones y devuelve un valor de ver­dad sólo si ambas son ciertas.

OR: Es el “o” lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta.

NOT: Negación lógica. Devuelve el valor contrario de la expresión.

Operadores de Comparación

 

Menor que Mayor que Distinto de Menor o Igual que Mayor o Igual que Igual que

BETWEEN: Utilizado para especificar un intervalo de valores.

LIKE: Utilizado en la comparación de un modelo.

In: Utilizado para especificar registros de una base de datos.

Funciones de Agregado

Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de registros para devolver un único valor que se aplica a un grupo de registros.

AVG: Utilizada para calcular e[ promedio de los valores de un campo de­

terminado.

COUNT: Utilizada para devolver el número de registros de la selección.

determinado.

SUM: Utilizada para devolver la suma de todos los valores de un campo

MAX: Utilizada para devolver el valor más alto de un campo especificado.

MIN: Utilizada para devolver el valor más bajo de un campo especificado.

Consultas de Acción

Las consultas de acción son aquellas que no devuelven ningún registro, son las encargadas de acciones como añadir y borrar y modificar registros.

• DELETE :Crea una consulta de eliminación que elimina los registros de una o más de las tablas listadas en la cláusula FROM que satisfagan la cláusula WHERE. Esta consulta elimina los registros completos, no es po­sible eliminar el contenido de algún campo en concreto.

DELETE es especialmente útil cuando se desea eliminar varios registros. En una instrucción DELETE con múltiples tablas, debe incluir el nombre de tabla (Tabla.*). Si especifica más de una tabla desde la que eliminar regis­tros, todas deben ser tablas de muchos a uno. Si desea eliminar todos los registros de una tabla, eliminar la propia tabla es más eficiente que ejecutar una consulta de borrado.

Se puede utilizar DELETE para eliminar registros de una única tabla o des­de varios lados de una relación uno a muchos. Las operaciones de elimina­ción en cascada en una consulta únicamente eliminan desde varios lados de una relación.

Una vez que se han eliminado los registros utilizando una consulta de bo­rrado, no puede deshacer la operación. Si desea saber qué registros se eliminarán, primero examine los resultados de una consulta de selección que utilice el mismo criterio y después 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 seguri­dad.

• INSERT INTO

Agrega un registro en una tabla. Se la conoce como una consulta de datos añadidos. Esta consulta puede ser de dos tipo: Insertar un único registro ó Insertar en una tabla los registros contenidos en otra tabla.

•UPDATE

Crea una consulta de actualización que cambia los valores de los campos de una tabla especificada basándose en un criterio específico.

UPDATE es especialmente útil cuando se desea cambiar un gran número de registros o cuando éstos se encuentran en múltiples tablas. Puede cam­biar varios campos a la vez.

Tipos de Datos

Los tipos de datos SQL se clasifican en 13 tipos de datos primarios.

Tipos de datos primarios:

Tipo de Datos

Longitud

Descripción

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 o True/False

BYTE

1 byte

Un valor entero entre 0 y 255

COUNTER

4 bytes

Un número incrementado automática­

  

mente (de tipo Long)

CURRENCY

8 bytes

Un entero escalable entre

  

9220337_203m685.477,5808 y

  

922.337.203.685.477,5807

DATETIME

8 bytes

Un valor de fecha u hora entre los años

  

100 y 9999

SINGLE

4 bytes

Un valor en punto flotante de precisión

  

simple con un rango de -3.402823*1038 a

  

-1.401298*10-45 para valores negati­

  

vos, 1.401298*10-45 a 3.402823*1038

  

para valores positivos, y 0

DOUBLE

8 bytes

Un valor en punto flotante de doble precisión con

  

un rango de -1.79769313486232*10308 a

  

-4.94065645841247*10-324 para valores

  

negativos, 4.94065645841247*10-324 a

  

1.79769313486232*10308 para valores

  

positivos, y 0

SHORT

2 bytes

Un entero corto entre -32,768 y 32,767

LONG

4 bytes

Un entero largo entre -2,147,483,648 y

  

2,147,483,647

LONGTEXT 1 byte por carácter De cero a un máximo de 1.2 gigabytes

LONGBINARY según se necesite De cero 1 gigabyte. Utilizado para objetos

OLE TEXT 1 byte por carácter De cero a 255 caracteres

4. DISEÑO DE PROGRAMAS

4.1. FASES DEL DISEÑO DE BASES DE DATOS

– Estudio de la Viabilidad. Determina la rentabilidad de las diferentes alternativas y las prioridades de los elementos del sistema.

– Recogida y Análisis de Requerimientos. Permite comprender la misión del sistema, mediante la interacción con los usuarios, dando lugar a los Requerimientos del Siste­ma.

– Diseño. Se especifica la estructura del sistema, diferenciando el Diseño de la Base de Datos y el Diseño de las Aplicaciones.

– Creación de Prototipos. Mediante la utilización de herramientas, se define una Reali­zación Simplificada del Sistema. Permite verificar si el diseño se ha realizado correcta­mente, así como la opinión del usuario sobre éste.

– Implantación. Se implementa la versión final del sistema, analizando la mejor alterna­tiva que asegure un rendimiento óptimo.

– Validación y Prueba. Garantiza que las fases del desarrollo se han realizado correc­tamente, verificando que la aplicación cumple los requerimientos.

– Operación. Se inicia con la carga inicial de los datos y acaba cuando e1 sistema se convierte en obsoleto.

4.2. DISEÑO CONCEPTUAL

• Objetivos

– Describir el Contenido de la Información de la Base de Datos.

– Esta descripción debe ser independiente del modo en el que se almacene la in­formación.

• Características

– A partir de los Requerimientos obtiene el denominado Esquema Conceptual (EC).

– El EC es una descripción de alto nivel de la estructura de la Base de Datos.

– El Modelo Conceptual (MC) es un lenguaje utilizado en la descripción de los EC.

4.3. DISEÑO LÓGICO

• Objetivos

– Describir el Contenido de la Información de la Base de Datos.

– Esta descripción puede ser procesada por el software del tipo de SGBD a utili­zar.

• Características

– A partir del Esquema Conceptual obtiene el denominado Esquema Lógico (EL). – El Modelo Lógico (ML) es un lenguaje utilizado para especificar Esquemas Lógi­cos.

4.4. DISEÑO FÍSICO

• Objetivos

– Describir el Contenido de la Información de la Base de Datos.

– Esta descripción sólo puede ser procesada por un SGBD específico.

• Características

– A partir del Esquema Lógico obtiene el denominado Esquema Físico (EF).

– El EF describe las estructuras a utilizar para almacenar los datos y los métodos usados para acceder a ellos. ¡

– Las decisiones tomadas es esta fase, que permiten mejorar el rendimiento de la BD, puede modificar el esquema lógico.

– Es decir, existe una retroalimentación entre el diseño lógico y el diseño físico.

• Análisis Funcional

– Genera el Esquema Funcional mediante el llamado Modelo de Funciones.

– Descripción de alto nivel de las tareas a realizar, así como del flujo de informa­ción asociado.

5. IMPORTACIÓN/EXPORTACIÓN DE DATOS

Se entiende por Inter.-operación con otras aplicaciones a la posibilidad que tiene una aplicación de compartir sus datos o documentos con otros programas del mismo tipo o con otras aplicaciones.

Cada uno de los programas está creado para fines específicos: generar do­cumentos, realizar operaciones con números, almacenar datos, dar formato a texto e imáge­nes, etc. Cada uno de ellos graba sus ficheros en un formato distinto, pero todos pueden tra­bajar con información generada por otros programas.

Cada uno de los programas posee uno o varios métodos para realizar la importación o exportación de información.

Para que un programa pueda operar con la información generada por otro, necesita convertidores. Un convertidor es un programa incluido dentro del procesador de texto, la hoja de cálculo o el programa correspondiente, que cambia el formato del fichero generado por un programa determinado al formato del programa que lo va a utilizar.

Esta posibilidad de trabajar con datos generados por otros programas se conoce como integración de programas y se basa en la importación y exportación de datos o intercambio de información.

Cuando hablamos de compartir datos debemos diferenciarlos en función del origen de los mismos. Si los datos a compartir son generados por nuestra Aplicación habla­remos de “Exportar” datos. Si los datos a compartir han sido generados por otra Aplicación ha­blaremos de “importar” datos.

Tanto con la “importación” como con la “exportación” de datos siempre irá asociado un proceso de conversión de formatos. Esto es debido a que cada fabricante ha dise­ñado un modo distinto de almacenar los datos, y la información asociada, en los archivos.

Si las aplicaciones están agrupadas en un Paquete integrado, la forma de intercambiar los datos es más directa y fácil, sin necesidad de realizar conversiones ya que ca­da programa del paquete integrado reconoce los formatos de los demás programas.

En la actualidad, si las aplicaciones trabajan bajo un mismo entorno gráfico (por ejemplo Windows) pueden realizar el intercambio de datos de una forma especial y fácil, bien de una forma dinámica (ambas aplicaciones se están ejecutando a la vez) o bien mediante la inserción de objetos (documentos) creados por cualquier aplicación.

Los métodos para importar y exportar datos entre Bases de Datos son si­milares a los descritos para Hojas de Cálculo. Existen formatos de ficheros de base de datos que sin ser estándares son reconocidos por casi todos los Gestores de Bases de Datos (por ejemplo formato DBF de DBase IV de Borland). En este caso se utilizará el método de conver­sión directa. Cuando esta conversión no es posible se recurrirá a cualquiera de los métodos de conversión a formatos ASCII delimitados.

Cuando el proceso de importar/exportar se realiza entre Gestores de Bases de Datos diferentes no suele ser posible la importación/exportación de los ficheros de índices. Si nos interesa mantener esta información el Gestor de Base de Datos receptor debe realizar un proceso de generación de índices (reindexación) una vez definida la composición de éstos.
RESUMEN

Una base de datos es una colección de datos operacionales utilizados por todas las aplicaciones de una organización, una serie de tablas que contienen información ordenada en alguna estructura que facilita el acceso a esas tablas, ordenarlas y seleccionar filas y de las tablas según criterios específicos. Su utilidad: utilizar un único sistema centralizado de almace­namiento de fa información.

El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normali­zado, utilizado por el motor de base de datos de Microsoft Jet. SQL se utiliza para crear objetos QueryDef, como el argumento de origen del método OpenRecordSet y como la propiedad Re­cordSource del control de datos. También se puede utilizar con el método Execute para crear y manipular directamente las bases de datos Jet y crear consultas SQL de paso a través para manipular bases de datos remotas cliente-servidor.

El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos.

Se entiende por interoperación con otras aplicaciones a la posibilidad que tiene una aplicación de compartir sus datos o documentos con otros programas del mismo tipo o con otras aplicaciones.

Cada uno de los programas está creado para fines específicos: generar documentos, realizar operaciones con números, almacenar datos, dar formato a texto e imágenes, etc. Cada uno de ellos graba sus ficheros en un formato distinto, pero todos pueden trabajar con informa­ción generada por otros programas.