Apuntes Bases de Datos (Ono)

15
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

Transcript of Apuntes Bases de Datos (Ono)

  • 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 numricos c) Clave principal (clave primaria) d) Algunas propiedades de los campos e) Formato de tablas

    3-. Relaciones entre tablas

    a) Establecer una relacin b) Integridad Referencial c) Actualizar en cascada d) Eliminar en cascada

    4-. Consultas

    a) Diseo de consultas b) Consultas sobre una nica tabla c) Consultas sobre varias tablas d) Consultas con operadores de comparacin e) Consultas con caracteres de comodn f) Consultas con totales

    5-. Anlisis relacional

    a) Qu es el Anlisis Relacional? b) Un caso prctico c) Aplicacin de la tcnica de anlisis

    i. Identificacin de las entidades y de sus campos ii. Identificacin de las relaciones iii. Paso a tablas

    6-. El proceso de creacin de una base de datos

    Tema 2

    Apuntes de 2 de Bachillerato

  • 1-. Conceptos sobre bases de datos

    a) Qu es una base de datos?

    Una base de datos es un conjunto de informacin, de datos, que estn agrupados siguiendo una determinada organizacin. Los elementos en los cuales se organizan los datos se denominan tablas.

    Las empresas tienen bases de datos donde se almacena toda la informacin que necesitan para su funcionamiento: tendrn 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 informacin estar almacenada en una base de datos, donde habr diferentes tablas: alumnos, profesores, asignaturas, departamentos, etctera. Y para cada elemento se guardan diferentes datos. Por ejemplo, en la tabla de alumnos se guardar el DNI, el nombre, la direccin, la fecha de nacimiento, la fecha de matriculacin,...

    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 da la mayora 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 slo 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 creacin de la BD, la creacin de las tablas, la introduccin de los datos, la realizacin de consultas para ver la informacin almacenada, etctera, ... Adems 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 domsticas o de empresas pequeas o medianas. Pero, cuando se quiere gestionar un gran volumen de datos se utilizan unas aplicaciones conocidas como SGBD, porque son ms rpidas y ms 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 Gmez Peir 3 A No 35100 Mara Snchez Torres 3 B S 35102 Sonia Mir Gisbert 3 D No

    Registros

  • utilizarn una BD diferente de Access o Base para almacenar los datos de los vecinos).

    Una aplicacin de BD proporciona un entorno grfico 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 informacin de una BD. Por ejemplo, en la BD del instituto habrn consultas para poder sacar un listado de los alumnos de un determinado grupo, para saber en un grupo cuntos alumnos promocionan, para saber cuntos alumnos tienen suspendidas las matemticas, cul 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 Cdigo de la tabla Socios ser la clave primaria de esa tabla, porque no puede haber dos socios con el mismo cdigo ni tampoco puede haber un socio que no tenga ningn cdigo asignado.

    Un ejemplo muy evidente es el DNI. Si tuviramos una tabla con los datos de muchas personas (nombre, sexo, edad, domicilio, telfono,...), elegiramos el

    1 Con la propiedad Longitud podemos indicar el nmero mximo de caracteres

    Tipos de datos Caractersticas Texto [VARCHAR]1 Campo habitual de texto

    Nota [LONGVARCHAR] Mximo de 65.535 caracteres Nmero [NUMERIC] Valores numricos enteros, podrn realizarse

    operaciones matemticas Real [REAL] Valores numricos reales

    Fecha [DATE] Campos de tipo fecha Fecha [TIME] Campos de tipo hora

    S/No [BOOLEAN] Slo admite esos dos valores Imagen [LONGVARBINARY] Insercin de imgenes

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

    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 numrico se escriba por defecto un 0, etctera.

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

    e) Formato de tablas

    Si hacemos clic con el botn derecho del ratn 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 tamao o el color de la misma.

    Adems, 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 botn derecho del ratn. Para volver a mostrarlas tambin haremos clic con el mismo botn.

    3-. Relaciones entre tablas

    a) Establecer una relacin

    Cuando se quiere mostrar informacin (mediante una consulta o un informe) de dos tablas distintas es necesario previamente crear una relacin entre ellas. Pero dos tablas slo se podrn relacionar si existe un campo comn entre ambas.

    Libros IdLibro Ttulo Autor Editorial Ao

    En el ejemplo anterior se pueden establecer dos relaciones:

    Entre la tabla Libros y la tabla Prstamos, ya que tienen un campo comn: los valores del campo IdLibro de la tabla Prstamos hacen referencia a los valores del campo IdLibro de la tabla Libros.

    Entre la tabla Socios y la tabla Prstamos: los valores del campo IdSocio de la tabla Prstamos hacen referencia a los valores del campo IdSocio de la tabla Socios.

    Socios IdSocio Nombre Domicilio Localidad Fecha_nacimiento Fecha_alta Profesin

    Prstamos IdLibro IdSocio Fecha_prstamo Fecha_devolucin

  • b) Integridad referencial La integridad referencial es una restriccin que se define sobre una relacin. En OpenOffice Base todas las relaciones llevan incorporada la integridad referencial.

    Los valores del Campo3 de la Tabla B tendrn 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 actualizacin. Esto implica que los registros de la Tabla A tendrn 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 relacin entre la tabla Libros y la tabla Prstamos, estamos obligando al usuario a que cuando introduzca un nuevo registro en la tabla Prstamos, el campo Libro tendr que contener el cdigo de un libro que ya exista en la tabla Libros. En caso de que introduzcamos un cdigo que no exista en la tabla Libros se mostrar un mensaje de error y se impedir la actualizacin.

    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 prstamo el cdigo 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 actualizarn automticamente 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 Ttulo

    10 El nombre de la rosa 20 El mdico 30 El mundo de Sofa

    Tabla Prstamos IdLibro IdSocio Fecha_prstamo

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

    Relacin

    Si cambiamos el cdigo del libro El mdico del 20 al 25, se actualizar en cascada los dos prstamos que hay con el cdigo 20 (los de los socios 105 y 107) al nuevo valor 25.

  • Al eliminar un registro en la Tabla A se eliminarn automticamente en la Tabla B todos los registros con los que estuviera relacionado.

    En el ejemplo anterior, si borramos el libro El mdico tambin se borrarn los dos prstamos relacionados.

    4-. Consultas

    a) Diseo 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, cules se van a mostrar 4) Criterios de la consulta 5) Ordenacin

    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 ttulo, la editorial y el ao de edicin de los libros escritos por Benito Prez Galds. Ordenar los registros por el ttulo en sentido ascendente.

    Consulta 2-. Mostrar el ttulo, el autor y el ao de edicin de los libros de la editorial Anaya. Ordenar los registros por el ttulo en sentido descendente.

    Consulta 3-. Mostrar los libros editados en el ao 1990

    Consulta 4-. Mostrar los libros de la editorial Anaya y editados en el ao 1990

  • 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 ao 1990

    c) Consultas sobre varias tablas

    Consulta 1-. Mostrar el nombre y la localidad de los socios que han recibido en prstamo el libro Poesas escogidas. Tambin se mostrar la fecha de prstamo. Ordenar los registros ascendentemente por este ltimo campo.

    Consulta 2-. Mostrar el ttulo y la editorial de los libros que se le han prestado a Fanny Roig. Tambin se mostrar la fecha de prstamo. Ordenar los registros ascendentemente por este ltimo campo.

    Consulta 3-. Mostrar los libros que fueron editados en el ao 1985 o 1986 y que han sido prestados en alguna ocasin. Mostrar tambin el nombre del socio que lo recibi en prstamo y la fecha en que fue prestado.

  • Consulta 4-. Mostrar todos los libros que fueron editados en el ao 1985 y que fueron prestados el da 10/07/2004.

    d) Consultas con operadores de comparacin

    Operador Significado = Igual a2 > Mayor que < Menor que

    >= Mayor o igual que

  • e) Consultas con caracteres de comodn

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

    Comodn Funcin * Acta como un conjunto de caracteres ? Acta como un solo carcter en la posicin indicada

    Consulta 1-. Mostrar todos los libros que empiezan por la palabra Qumica.

    Consulta 2-. Mostrar todos los libros prestados a socios cuyo oficio sea psiclogo/a

    f) Consultas con funciones

    Las consultas con funciones permiten introducir campos calculados en las consultas. Los campos calculados ms utilizados son: suma, promedio, mximo, mnimo y contar.

    Consulta 1-. Disear una consulta para que se muestre el nmero de prstamos que se ha hecho a cada socio. Mostrar el cdigo y el nombre del socio.

  • Consulta 2-. Disear una consulta para que se muestren la media de los aos de edicin de los libros prestados a cada socio. Mostrar el cdigo y el nombre del socio.

    5-. Anlisis relacional

    a) Qu es el anlisis relacional?

    Cuando vamos a comenzar a crear una base de datos nos surge en primer lugar la pregunta de qu tablas crear y cmo relacionarlas entre s. Si la base de datos va a tener varias tablas estas decisiones pueden ser difciles de resolver.

    El Anlisis Relacional es una tcnica de anlisis 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 Anlisis Relacional son los Diagramas Entidad-Relacin. Entenderemos mejor cmo utilizarlos con el ejemplo que se detalla a continuacin.

    b) Un caso prctico

    Una familia de campesinos posee una granja de animales. Desean disfrutar de las ventajas de la sociedad de la informacin 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 ofimtica ms extendidas del mercado, se han conectado a Internet, pero... les gustara disponer de una aplicacin con la que poder llevar la gestin diaria de la granja. Han buscado a un experto en bases de datos y han tenido la fortuna de dar contigo. A continuacin te detallan cules son los requisitos que desean para la aplicacin.

    En primer lugar, desean tener disponible en todo momento el nmero de cabezas de cada especie animal presente en la granja (nmero de vacas, de cerdos, de ovejas, etctera).

    Tambin se quiere registrar la informacin relevante a los alimentos que se suministra a los animales. De cada tipo de alimento (grano, pienso, etctera) se quiere guardar su descripcin, 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 direccin, nmero de telfono, persona de contacto y direccin de correo.

  • Adems, la granja vende diferentes productos. Se desea almacenar la siguiente informacin referente a estos productos: descripcin (huevos, leche, lana, etctera), precio, cantidad vendida en el ao actual y recaudacin anual acumulada.

    Un mismo tipo de alimento se puede dar a diferentes especies animales, y viceversa, cada especie animal puede recibir ms de un tipo de alimento. Es por esto ltimo que se quiere llevar una programacin para saber, cada da de la semana, qu se le da de comer a cada animal.

    Por ltimo, para evitar errores y malentendidos, preferiran disponer de unos cdigos internos para referirse de manera unvoca 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 cmo se administra una base de datos, por lo que desearan que les proporcionaras un entorno sencillo e intuitivo de utilizar (es decir, tendrs que hacer uso de formularios y de informes).

    c) Aplicacin de la tcnica de anlisis

    i) IDENTIFICACIN DE LAS ENTIDADES Y DE SUS CAMPOS

    ANIMAL = cdigo + descripcin + nmero ALIMENTO = cdigo + descripcin + fecha de compra + fecha de caducidad PROVEEDOR = cdigo + nombre + contacto + telfono + e-mail PRODUCTO = cdigo + descripcin + precio + cantidad + recaudacin

    ii) IDENTIFICACIN DE LAS RELACIONES

    Relacin uno a muchos

    Relacin donde un registro de la tabla A se puede relacionar con varios registros de la tabla B, pero un registro de la tabla B slo puede relacionarse con uno de la tabla A.

    Un proveedor puede suministrar varios alimentos pero un tipo de alimento slo puede ser suministrado por un proveedor distinto (relacin Suministra).

    Un producto slo puede ser obtenido de una especie animal pero una especie animal puede proporcionar diferentes productos (relacin Procedencia).

    Relacin muchos a muchos

    A B

  • Relacin donde un registro de la tabla A se puede relacionar con varios registros de la tabla B y un registro de la tabla B tambin 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 ms de un tipo de alimento (relacin alimentacin).

    Relacin uno a uno

    Relacin donde un registro de la tabla A slo se puede relacionar con un registro de la tabla B y viceversa.

    Caso extrado de otro caso prctico: Un departamento tiene un nico jefe de departamento y un profesor slo puede ser jefe de un departamento (relacin jefe de departamento)

    Diagrama Entidad - Relacin

    El diagrama obtenido recibe el nombre de Diagrama Entidad - Relacin

    iii) PASO A TABLAS

    A B

    A B

    Alimento Proveedor Suministra

    Animal Producto Procedencia

    Alimentacin

  • Relacin uno a muchos

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

    PRODUCTO = cdigo + descripcin + precio + cantidad + recaudacin + animal

    CAjena: {animal} ANIMAL

    Producto Cdigo Descripcin Precio Cantidad Recaudacin Animal

    1 Leche de vaca 1 500 500 1 2 Queso de vaca 3 100 300 1

    ALIMENTO = cdigo + descripcin + fecha de compra + fecha de caducidad + proveedor

    CAjena: {proveedor} PROVEEDOR

    Relacin 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.

    ALIMENTACIN = Animal + Alimento + Da

    CAjena: {Animal} ANIMAL CAjena: {Alimento} ALIMENTO

    ALIMENTACIN Animal Alimento Da

    1 101 Lunes 2 101 Lunes 2 102 Martes

    Relacin uno a uno

    Hay que incluir en una de las dos tablas la CP de la otra tabla.

    DEPARTAMENTO = Cdigo + nombre + Jefe de departamento CAjena: {Jefe de departamento} PROFESOR

    DEPARTAMENTO Cdigo Nombre Jefe de departamento

    1 Matemticas 1005 2 Lenguas 1005 (Imposible)

    6-. El proceso de creacin de una base de datos

  • 1) En primer lugar el usuario le proporciona al diseador los requisitos de la base de datos que necesita. Un ejemplo de requisitos podra ser el caso prctico que se ha analizado en el apartado anterior.

    2) A continuacin el diseador de la base de datos obtiene el Diagrama Entidad-Relacin a partir de los requisitos del usuario.

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

    4) A continuacin crearemos la base de datos, indicando su nombre y ubicacin 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 numrico.

    b. Los campos deben estar definidos de modo que se optimicen los recursos: no utilizar campos de texto de 50 caracteres si slo se van a necesitar 10, definir los campos numricos de tipo byte si va a contener valores pequeos,...

    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 condicin, usaremos una regla de validacin. Adems, podemos escribir un texto de validacin 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 ms tarde consultas que lean datos de varias tablas (que son las ms comunes). Cuando se establece una relacin 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 estn almacenando la misma informacin.

    Usuario de la

    base de datos Diseador de la base de datos

    Requisitos del

    usuario

  • b) Los dos campos relacionados deben ser del mismo tipo de datos: numrico -entero, numrico entero largo, fecha,...

    c) Adems, cuando se crea una relacin pueden indicarse las siguientes propiedades:

    i. Integridad referencial: en el ejemplo anterior, al introducir el cdigo de un libro en la tabla de Prstamos, si no existe ese cdigo en la tabla de los Libros, se mostrar un mensaje de error y se impedir el prstamo. De este modo nos aseguramos de que los prstamos siempre hagan referencia a libros que ya existan.

    ii. Actualizacin en cascada: si cambiramos el cdigo de un libro en la tabla Libros, se actualizarn automticamente todos los libros con ese cdigo que hubiese en la tabla de Prstamos.

    iii. Borrado en cascada: si eliminamos un libro se borrarn todos los prstamos relacionados que tuviese.

    7) Ahora crearemos las consultas principales que va a ejecutar el cliente. Si hubiese una consulta que furamos a ejecutar con mucha frecuencia, sera 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 continuacin 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. Tambin disearemos un formulario que ser la ventana inicial de la base de datos y desde donde se podr acceder a todos lo dems.

    10) Por ltimo se entregar la base de datos al cliente.

    Usuario de la base de datos

    Diseador de la base de datos

    Entrega de la base de datos

    Entrar en el formulario inicial

    Introducir los registros

    Ejecutar las consultas y los informes