• No se han encontrado resultados

1-. Conceptos sobre bases de datos. 2-. Tablas. 3-. Relaciones entre tablas. 4-. Consultas. 5-. Análisis relacional

N/A
N/A
Protected

Academic year: 2021

Share "1-. Conceptos sobre bases de datos. 2-. Tablas. 3-. Relaciones entre tablas. 4-. Consultas. 5-. Análisis relacional"

Copied!
15
0
0

Texto completo

(1)

1-. Conceptos sobre bases de datos

a) ¿Qué es una base de datos? b) Bases de datos relacional

c) Microsoft Access y OpenOffice Base

2-. Tablas

a) Tipos de datos posibles para los campos de una tabla b) Tipos de datos numéricos

c) Clave principal (clave primaria) d) Algunas propiedades de los campos e) Formato de tablas

3-. Relaciones entre tablas

a) Establecer una relación b) Integridad Referencial c) Actualizar en cascada d) Eliminar en cascada

4-. Consultas

a) Diseño de consultas

b) Consultas sobre una única tabla c) Consultas sobre varias tablas

d) Consultas con operadores de comparación e) Consultas con caracteres de comodín f) Consultas con totales

5-. Análisis relacional

a) ¿Qué es el Análisis Relacional? b) Un caso práctico

c) Aplicación de la técnica de análisis

i. Identificación de las entidades y de sus campos ii. Identificación de las relaciones

iii. Paso a tablas

6-. El proceso de creación de una base de datos

Tema 2

Apuntes de 2º de Bachillerato

(2)

1-. Conceptos sobre bases de datos

a) ¿Qué es una base de datos?

Una base de datos es un conjunto de información, de datos, que están agrupados siguiendo una determinada organización. Los elementos en los cuales se organizan los datos se denominan tablas.

Las empresas tienen bases de datos donde se almacena toda la información que necesitan para su funcionamiento: tendrán toda una tabla para los clientes, otra tabla para los proveedores, otra tabla para las facturas, para los albaranes, para los pedidos,...

Otro ejemplo: en un instituto toda la información estará almacenada en una base de datos, donde habrá diferentes tablas: alumnos, profesores, asignaturas, departamentos, etcétera. Y para cada elemento se guardan diferentes datos. Por ejemplo, en la tabla de alumnos se guardará el DNI, el nombre, la dirección, la fecha de nacimiento, la fecha de matriculación,...

Los registros son cada uno de los elementos de una tabla. Por ejemplo, la tabla anterior Alumnos tiene tres registros.

b) Base de datos relacional

Hoy en día la mayoría de las bases de datos son relacionales. Esto significa que se pueden establecer relaciones entre las distintas tablas. Por ejemplo, se puede forzar a que un alumno pueda matricularse de asignaturas de 2º de bachillerato sólo si tiene como mucho dos asignaturas pendientes de 1º de bachillerato.

c) Microsoft Access y OpenOffice Base

MS Access y OpenOffice Base son aplicaciones de base de datos. Nos permiten realizar todas las operaciones sobre la BD, como la creación de la BD, la creación de las tablas, la introducción de los datos, la realización de consultas para ver la información almacenada, etcétera, ... Además de estos dos programas existen otros programas para gestionar bases de datos como son Paradox, DBAse, Oracle, Informix, SQL/Server,…

Ambas son aplicaciones de “andar por casa”, es decir, para realizar bases de datos domésticas o de empresas pequeñas o medianas. Pero, cuando se quiere gestionar un gran volumen de datos se utilizan unas aplicaciones conocidas como SGBD, porque son más rápidas y más seguras. Por ejemplo, Oracle, Informix o SQL/Server. En empresas u organizaciones grandes se utilizan este tipo de aplicaciones (en el ayuntamiento de Valencia, por ejemplo,

Tabla alumnos

Expediente Nombre Apellidos Curso Repetidor

34200 Antonio Gómez Peiró 3º A No

35100 María Sánchez Torres 3º B Sí

35102 Sonia Miró Gisbert 3º D No

(3)

utilizarán una BD diferente de Access o Base para almacenar los datos de los vecinos).

Una aplicación de BD proporciona un entorno gráfico con una serie de herramientas para poder trabajar con los datos. Por ejemplo, en OpenOffice Base, tenemos:

Tablas: desde aquí podremos crear las tablas, borrarlas, modificarlas, así como insertar datos en su interior.

Consultas: una consulta nos permite recuperar información de una BD. Por ejemplo, en la BD del instituto habrán consultas para poder sacar un listado de los alumnos de un determinado grupo, para saber en un grupo cuántos alumnos promocionan, para saber cuántos alumnos tienen suspendidas las matemáticas, cuál es la nota media de un grupo, ...

Formularios: con los formularios podemos realizar operaciones sobre tablas (como insertar datos) con un entorno de mejor apariencia.

Informes: con los informes podemos mejorar el resultado de las consultas.

2-. Tablas

a) Tipos de datos posibles para los campos de una tabla

c) Clave principal (Clave primaria o llave primaria)

Con este nombre se conoce a aquel campo (o conjunto de campos) de una tabla que sirve para identificar a los registros. Si un campo está definido como clave primaria no podrá contener valores nulos ni valores repetidos.

Por ejemplo, el campo Código de la tabla Socios será la clave primaria de esa tabla, porque no puede haber dos socios con el mismo código ni tampoco puede haber un socio que no tenga ningún código asignado.

Un ejemplo muy evidente es el DNI. Si tuviéramos una tabla con los datos de muchas personas (nombre, sexo, edad, domicilio, teléfono,...), elegiríamos el

1

Con la propiedad Longitud podemos indicar el número máximo de caracteres

Tipos de datos Características

Texto [VARCHAR]1 Campo habitual de texto Nota [LONGVARCHAR] Máximo de 65.535 caracteres

Número [NUMERIC] Valores numéricos enteros, podrán realizarse operaciones matemáticas

Real [REAL] Valores numéricos reales Fecha [DATE] Campos de tipo fecha

Fecha [TIME] Campos de tipo hora

Sí/No [BOOLEAN] Sólo admite esos dos valores Imagen [LONGVARBINARY] Inserción de imágenes

(4)

DNI como clave principal ya que no puede haber dos personas con el mismo número de DNI ni una persona que no tenga este número.

d) Algunas propiedades de los campos

Valor predeterminado: esta propiedad permite que Access asigne un valor por defecto a ese campo. Por ejemplo, que en un campo Fecha aparezca la fecha de hoy, que en un campo numérico se escriba por defecto un 0, etcétera.

Entrada requerida: con esta propiedad estaremos obligando al usuario a que introduzca un valor en el campo. Si el campo se queda vacío Base mostrará un mensaje de error. Si queremos por ejemplo que el usuario tenga que escribir su dirección pondremos Requerido a Sí.

e) Formato de tablas

Si hacemos clic con el botón derecho del ratón sobre el cuadrado gris que hay a la izquierda de cualquier fila podremos entrar en Formateado de las filas. Desde aquí podemos cambiar, para todos los registros, el tipo de letra, el tamaño o el color de la misma.

Además, desde Altura de la fila se podrá modificar la altura de todas las filas de la tabla.

Se pueden ocultar columnas desde el menú emergente al hacer clic sobre las columnas con el botón derecho del ratón. Para volver a mostrarlas también haremos clic con el mismo botón.

3-. Relaciones entre tablas

a) Establecer una relación

Cuando se quiere mostrar información (mediante una consulta o un informe) de dos tablas distintas es necesario previamente crear una relación entre ellas. Pero dos tablas sólo se podrán relacionar si existe un campo común entre ambas. Libros IdLibro Título Autor Editorial Año

En el ejemplo anterior se pueden establecer dos relaciones:

 Entre la tabla Libros y la tabla Préstamos, ya que tienen un campo común: los valores del campo IdLibro de la tabla Préstamos hacen referencia a los valores del campo IdLibro de la tabla Libros.

 Entre la tabla Socios y la tabla Préstamos: los valores del campo IdSocio de la tabla Préstamos hacen referencia a los valores del campo IdSocio de la tabla Socios. Socios IdSocio Nombre Domicilio Localidad Fecha_nacimiento Fecha_alta Profesión Préstamos IdLibro IdSocio Fecha_préstamo Fecha_devolución

(5)

b) Integridad referencial

La integridad referencial es una restricción que se define sobre una relación. En OpenOffice Base todas las relaciones llevan incorporada la integridad referencial.

Los valores del Campo3 de la Tabla B tendrán que hacer referencia a valores que ya existan en el Campo1 de la Tabla A. En caso de que no haga referencia a un valor ya existente se impedirá la actualización. Esto implica que los registros de la Tabla A tendrán que ser introducidos antes que los registros de la Tabla B. De los dos campos relacionados, el campo que es clave primaria es el que contiene los valores a los que tienen que hacer referencia los campos relacionados de otras tablas.

Por ejemplo, al marcar la casilla de Exigir integridad referencial en la relación entre la tabla Libros y la tabla Préstamos, estamos obligando al usuario a que cuando introduzca un nuevo registro en la tabla Préstamos, el campo Libro tendrá que contener el código de un libro que ya exista en la tabla Libros. En caso de que introduzcamos un código que no exista en la tabla Libros se mostrará un mensaje de error y se impedirá la actualización.

La integridad referencial es un mecanismo que nos permite asegurar que los valores que estamos introduciendo son íntegros con los valores que ya existen. En el ejemplo anterior, nos aseguramos que al dar de alta un préstamo el código del libro introducido hace referencia a un libro que realmente exista. c) Actualizar en cascada los campos relacionados

Al cambiar el valor del Campo1 en un registro de la tabla A se actualizarán automáticamente en la tabla B los valores del Campo3 que hicieran referencia a ese valor.

d) Eliminar en cascada los campos relacionados

Tabla B CP: { Campo1 } Campo2 Campo3 Tabla A CP: { Campo1 } Campo2 Campo3 Tabla Libros IdLibro Título 10 El nombre de la rosa 20 El médico 30 El mundo de Sofía Tabla Préstamos

IdLibro IdSocio Fecha_préstamo

10 105 21/10/2004 20 105 21/10/2004 20 107 29/11/2004

Relación

Si cambiamos el código del libro El médico del 20 al 25, se actualizará en cascada los dos préstamos que hay con el código 20 (los de los socios 105 y 107) al nuevo valor 25.

(6)

Al eliminar un registro en la Tabla A se eliminarán automáticamente en la Tabla B todos los registros con los que estuviera relacionado.

En el ejemplo anterior, si borramos el libro El médico también se borrarán los dos préstamos relacionados.

4-. Consultas

a) Diseño de consultas

A la hora de realizar una consulta hay que indicar: 1) Tabla o tablas implicadas en la consulta 2) Campos de la tabla/s que se van a utilizar

3) De los campos utilizados, cuáles se van a mostrar 4) Criterios de la consulta

5) Ordenación

b) Consultas sobre una única tabla

En los campos que sean de texto habrá que poner el criterio entre comillas simples

Consulta 1-. Mostrar el título, la editorial y el año de edición de los libros escritos por Benito Pérez Galdós. Ordenar los registros por el título en sentido ascendente.

Consulta 2-. Mostrar el título, el autor y el año de edición de los libros de la editorial Anaya. Ordenar los registros por el título en sentido descendente.

Consulta 3-. Mostrar los libros editados en el año 1990

(7)

Consulta 5-. Mostrar los libros de la editorial Anaya o de la editorial Castalia

Consulta 6-. Mostrar los libros de las editoriales Anaya o Castalia editados en el año 1990

c) Consultas sobre varias tablas

Consulta 1-. Mostrar el nombre y la localidad de los socios que han recibido en préstamo el libro Poesías escogidas. También se mostrará la fecha de préstamo. Ordenar los registros ascendentemente por este último campo.

Consulta 2-. Mostrar el título y la editorial de los libros que se le han prestado a Fanny Roig. También se mostrará la fecha de préstamo. Ordenar los registros ascendentemente por este último campo.

Consulta 3-. Mostrar los libros que fueron editados en el año 1985 o 1986 y que han sido prestados en alguna ocasión. Mostrar también el nombre del socio que lo recibió en préstamo y la fecha en que fue prestado.

(8)

Consulta 4-. Mostrar todos los libros que fueron editados en el año 1985 y que fueron prestados el día 10/07/2004.

d) Consultas con operadores de comparación

Operador Significado

= Igual a2

> Mayor que

< Menor que

>= Mayor o igual que

<= Menor o igual que

<> Distinto de

Consulta 1-. Mostrar todos los libros cuyo año de edición sea menor que 1990.

Consulta 2-. Mostrar todos los libros que no sean de la editorial Cátedra.

Consulta 3-. Mostrar todos los libros que se prestaron antes de la fecha 01/06/04.

(9)

e) Consultas con caracteres de comodín

Son dos caracteres (* y ?) que nos permiten aumentar las posibilidades de selección en una consulta. Hay que anteponer la palabra reservada COMO.

Comodín Función

* Actúa como un conjunto de caracteres

? Actúa como un solo carácter en la

posición indicada

Consulta 1-. Mostrar todos los libros que empiezan por la palabra Química.

Consulta 2-. Mostrar todos los libros prestados a socios cuyo oficio sea psicólogo/a

f) Consultas con funciones

Las consultas con funciones permiten introducir campos calculados en las consultas. Los campos calculados más utilizados son: suma, promedio, máximo, mínimo y contar.

Consulta 1-. Diseñar una consulta para que se muestre el número de préstamos que se ha hecho a cada socio. Mostrar el código y el nombre del socio.

(10)

Consulta 2-. Diseñar una consulta para que se muestren la media de los años de edición de los libros prestados a cada socio. Mostrar el código y el nombre del socio.

5-. Análisis relacional

a) ¿Qué es el análisis relacional?

Cuando vamos a comenzar a crear una base de datos nos surge en primer lugar la pregunta de qué tablas crear y cómo relacionarlas entre sí. Si la base de datos va a tener varias tablas estas decisiones pueden ser difíciles de resolver.

El Análisis Relacional es una técnica de análisis que permite antes de crear una base de datos determinar qué tablas vamos a tener que crear y qué relaciones estableceremos entre ellas. La principal herramienta del Análisis Relacional son los Diagramas Entidad-Relación. Entenderemos mejor cómo utilizarlos con el ejemplo que se detalla a continuación.

b) Un caso práctico

“Una familia de campesinos posee una granja de animales. Desean disfrutar de las ventajas de la sociedad de la información y es por eso que se han decidido a informatizar su negocio. Han comprado un ordenador y una impresora, han instalado el sistema operativo y las aplicaciones de ofimática más extendidas del mercado, se han conectado a Internet, pero... les gustaría disponer de una aplicación con la que poder llevar la gestión diaria de la granja. Han buscado a un experto en bases de datos y han tenido la fortuna de dar contigo. A continuación te detallan cuáles son los requisitos que desean para la aplicación.

En primer lugar, desean tener disponible en todo momento el número de cabezas de cada especie animal presente en la granja (número de vacas, de cerdos, de ovejas, etcétera).

También se quiere registrar la información relevante a los alimentos que se suministra a los animales. De cada tipo de alimento (grano, pienso, etcétera) se quiere guardar su descripción, fecha de compra, fecha de caducidad y proveedor que lo suministra. Cada uno de ellos es proporcionado por un único proveedor, pero un mismo proveedor puede suministrar diferentes alimentos. De cada proveedor se quiere almacenar el nombre de la empresa, su dirección, número de teléfono, persona de contacto y dirección de correo.

(11)

Además, la granja vende diferentes productos. Se desea almacenar la siguiente información referente a estos productos: descripción (huevos, leche, lana, etcétera), precio, cantidad vendida en el año actual y recaudación anual acumulada.

Un mismo tipo de alimento se puede dar a diferentes especies animales, y viceversa, cada especie animal puede recibir más de un tipo de alimento. Es por esto último que se quiere llevar una programación para saber, cada día de la semana, qué se le da de comer a cada animal.

Por último, para evitar errores y malentendidos, preferirían disponer de unos códigos internos para referirse de manera unívoca a los productos que venden, los proveedores, y en general, cualquier elemento perteneciente a la base de datos.

Los propietarios de la granja no tienen ni idea de cómo se administra una base de datos, por lo que desearían que les proporcionaras un entorno sencillo e intuitivo de utilizar (es decir, tendrás que hacer uso de formularios y de informes).”

c) Aplicación de la técnica de análisis

i) IDENTIFICACIÓN DE LAS ENTIDADES Y DE SUS CAMPOS ANIMAL = código + descripción + número

ALIMENTO = código + descripción + fecha de compra + fecha de caducidad PROVEEDOR = código + nombre + contacto + teléfono + e-mail

PRODUCTO = código + descripción + precio + cantidad + recaudación ii) IDENTIFICACIÓN DE LAS RELACIONES

Relación uno a muchos

Relación donde un registro de la tabla A se puede relacionar con varios registros de la tabla B, pero un registro de la tabla B sólo puede relacionarse con uno de la tabla A.

Un proveedor puede suministrar varios alimentos pero un tipo de alimento sólo puede ser suministrado por un proveedor distinto (relación Suministra).

Un producto sólo puede ser obtenido de una especie animal pero una especie animal puede proporcionar diferentes productos (relación Procedencia).

Relación muchos a muchos

(12)

Relación donde un registro de la tabla A se puede relacionar con varios registros de la tabla B y un registro de la tabla B también con varios de la tabla A.

Un mismo tipo de alimento se puede dar a diferentes especies animales, y viceversa, cada especie animal puede recibir más de un tipo de alimento (relación alimentación).

Relación uno a uno

Relación donde un registro de la tabla A sólo se puede relacionar con un registro de la tabla B y viceversa.

Caso extraído de otro caso práctico: Un departamento tiene un único jefe de departamento y un profesor sólo puede ser jefe de un departamento (relación jefe de departamento)

Diagrama Entidad - Relación

El diagrama obtenido recibe el nombre de Diagrama Entidad - Relación

iii) PASO A TABLAS

A B A B Alimento Proveedor Suministra Animal Producto Procedencia Alimentación

(13)

Relación uno a muchos

Se incluirá en la tabla A la clave primaria de la tabla B.

PRODUCTO = código + descripción + precio + cantidad + recaudación + animal

CAjena: {animal} ANIMAL

Producto

Código Descripción Precio Cantidad Recaudación Animal

1 Leche de vaca 1 € 500 500 € 1

2 Queso de vaca 3 € 100 300 € 1

ALIMENTO = código + descripción + fecha de compra + fecha de caducidad + proveedor

CAjena: {proveedor} PROVEEDOR Relación muchos a muchos

Se creará una nueva tabla que incluya las claves primarias de las dos tablas relacionadas. La clave primaria de la nueva tabla estará formada por esto dos campos.

ALIMENTACIÓN = Animal + Alimento + Día

CAjena: {Animal} ANIMAL

CAjena: {Alimento} ALIMENTO

ALIMENTACIÓN

Animal Alimento Día

1 101 Lunes

2 101 Lunes

2 102 Martes

Relación uno a uno

Hay que incluir en una de las dos tablas la CP de la otra tabla. DEPARTAMENTO = Código + nombre + Jefe de departamento CAjena: {Jefe de departamento} PROFESOR

DEPARTAMENTO

Código Nombre Jefe de departamento

1 Matemáticas 1005

2 Lenguas 1005 (Imposible)

(14)

1) En primer lugar el usuario le proporciona al diseñador los requisitos de la base de datos que necesita. Un ejemplo de requisitos podría ser el caso práctico que se ha analizado en el apartado anterior.

2) A continuación el diseñador de la base de datos obtiene el Diagrama Entidad-Relación a partir de los requisitos del usuario.

3) En tercer lugar realizaremos el paso a tablas a partir del Diagrama Entidad-Relación obtenido en el paso anterior.

4) A continuación crearemos la base de datos, indicando su nombre y ubicación en el disco duro del ordenador.

5) Ahora entraremos en la base de datos y comenzaremos a crear las tablas: a. Toda tabla debe tener su clave primaria: campo (o conjunto de campos)

que no puede contener valores nulos ni valores repetidos. Es aconsejable que la clave primaria sea un campo numérico.

b. Los campos deben estar definidos de modo que se optimicen los recursos: no utilizar campos de texto de 50 caracteres si sólo se van a necesitar 10, definir los campos numéricos de tipo byte si va a contener valores pequeños,...

c. Definiremos un campo como requerido cuando queramos que no contenga valores nulos.

d. Podemos indicar que un campo se rellene por defecto con un valor predeterminado.

e. Cuando queramos que al introducir un valor en un campo se compruebe una determinada condición, usaremos una regla de validación. Además, podemos escribir un texto de validación que se mostrará al usuario cuando no se cumpla la regla que hemos definido.

6) Estableceremos las relaciones entre las tablas: es necesario establecer relaciones para poder realizar más tarde consultas que lean datos de varias tablas (que son las más comunes). Cuando se establece una relación hay que tener en cuenta:

a) Las relaciones entre tablas se establecen entre dos campos con valores comunes, es decir, que tienen el mismo significado, que están almacenando la misma información.

Usuario de la base de datos Diseñador de la base de datos Requisitos del usuario

(15)

b) Los dos campos relacionados deben ser del mismo tipo de datos: numérico -entero, numérico – entero largo, fecha,...

c) Además, cuando se crea una relación pueden indicarse las siguientes propiedades:

i. Integridad referencial: en el ejemplo anterior, al introducir el código de un libro en la tabla de Préstamos, si no existe ese código en la tabla de los Libros, se mostrará un mensaje de error y se impedirá el préstamo. De este modo nos aseguramos de que los préstamos siempre hagan referencia a libros que ya existan.

ii. Actualización en cascada: si cambiáramos el código de un libro en la tabla Libros, se actualizarán automáticamente todos los libros con ese código que hubiese en la tabla de Préstamos.

iii. Borrado en cascada: si eliminamos un libro se borrarán todos los préstamos relacionados que tuviese.

7) Ahora crearemos las consultas principales que va a ejecutar el cliente. Si hubiese una consulta que fuéramos a ejecutar con mucha frecuencia, sería conveniente definir un índice sobre el campo sobre el que se define el criterio de la consulta. Los campos indexados pueden ser de dos tipos: sin duplicados (cuando ese campo no puede tener valores repetidos) o con duplicados (cuando sí que puede tenerlos).

8) A continuación crearemos los informes que vaya a necesitar el cliente, bien directamente sobre las tablas o bien sobre alguno de las consultas creadas previamente.

9) Ahora crearemos los formularios necesarios para gestionar cada una de las tablas, así como otros formularios que creamos que puedan ser necesarios. También diseñaremos un formulario que será la ventana inicial de la base de datos y desde donde se podrá acceder a todos lo demás. 10) Por último se entregará la base de datos al cliente.

Usuario de la base de datos Diseñador de la base de datos Entrega de la base de datos Entrará en el formulario inicial Introducirá los registros

Referencias

Documento similar

Imparte docencia en el Grado en Historia del Arte (Universidad de Málaga) en las asignaturas: Poéticas del arte español de los siglos XX y XXI, Picasso y el arte español del

If you are covered by a reciprocal agreement for health and social security (citizens of Denmark, Finland, France, Luxembourg, Norway, Portugal and Sweden), you may be eligible

Estos planes de recolo- cación deben garantizar a las personas despedi- das un servicio continuado durante un periodo mínimo de seis meses que incluya medidas de formación

Por ejemplo, la común voluntad de analizar el infinito, proceso en el que concretamente han tenido cabida los mayores éxitos, aunque también los más sonados fracasos en la historia

12 Dworkin, «Constitutionalism and Democracy», op. La primera parte del enunciado [a saber, que cada uno ha de tener un papel en la acción colec- tiva] vale para todas las formas

Lo más característico es la aparición de feldespatos alcalinos y alcalino térreos de tamaño centimétrico y cristales alotriomorfos de cuarzo, a menudo en agregados policristalinos,

 Bases de datos de columnas anchas: este tipo de base de datos NoSQL de columnas anchas tiene la capacidad de almacenar los datos en tablas con filas y columnas

• GetInfo: Métodos para hacer consultas acerca de los valores incluidos en la base de datos. Realiza operaciones algebraicas con los valores de las columnas de las tablas: Salvo