6. bases de datos

Post on 08-Jul-2015

217 views 0 download

Transcript of 6. bases de datos

Carlos Segura González

csegura@ull.es

Definiciones Básicas

Sistemas Gestores de Bases de Datos (SGBD)

Modelo de datos: el modelo relacional

OpenOffice.org Base

Conjunto de datos, almacenados de forma sistemática.

El acceso a la información se consigue con pasos definidos.

En esta asignatura consideraremos las BBDD almacenadas en un ordenador.

Para ello es preciso digitalizar la información: números, cadenas de texto, imágenes, etc.

Las BD proveen cuatro operaciones básicas, conocidas como operaciones CRUD:◦ Create: introducción de nuevos datos en la BD.

◦ Read: lectura de datos

◦ Update: modificación de datos

◦ Delete: borrado de datos

Antiguamente:◦ Módulos gestores de información implementados

en la aplicación

◦ En su versión más sencilla consistía en un junto de ficheros de texto, con un formato propio

◦ Ejemplo:Clientes.txt73483759S:Pedro Val38473034P:Juan Blanco38472938J:Laura Díez

Desventaja del uso de formatos propios◦ Caros: generalmente conlleva implementar gran

cantidad de código

◦ Propenso a errores: códigos grandes y complejos, con lo que es fácil cometer fallos

◦ Dificultad en el acceso: no es fácil compartir datos entre aplicaciones si no se usan formatos comunes

◦ Reestructuración de la información: puede conllevar cambios grandes en el código

Ante estos inconvenientes surgió la necesidad de unificar el proceso entre las aplicaciones

Se desarrolló software genérico que se puede utilizar para almacenar, manipular y acceder a datos

Reciben el nombre de Sistemas Gestores de Bases de Datos (SGBD)

Las aplicaciones hacen uso de una interfaz común para acceder al SGBD

Le indican el formato de los datos a gestionar

La cantidad de código que tienen que implementar es mínima

SGBD

Aplicación 1

Aplicación 2

Aplicación N

Abstracción: no tenemos que conocer cómo se almacenan los datos

Independencia: se puede cambiar los tipos de datos o la forma en que se almacenan, sin tener que cambiar la aplicación

Consistencia: creación de restricciones de forma sencilla. Estas restricciones las asegura el SGBD. Ejemplo: nota entre 0 y 10

Seguridad◦ Restringir acceso

◦ Copias de seguridad independientes de la aplicación

Minimizan el tiempo de respuesta◦ Dado que es código que lo uso mucha gente, está

muy bien implementados

Facilitan el manejo de transacciones

Son un conjunto de operaciones que se ejecutan como si fuera una única operación:

Ejemplo1: hacer una transferencia bancaria:

Operación 1: quitar 3 euros de la cuenta X

Operación 2: poner 3 euros en la cuenta Y

Ejemplo2: cambiar titular de una propiedadOperación 1: eliminar el titular actual

Operación 2: asociar nuevo titular

Se ejecutan todaso

No se ejecuta nada

Las transacciones se aseguran incluso aunque el sistema falle◦ Se desconecta de la red

◦ Se va la luz

◦ Etc.

Permiten asegurar la consistencia de los datos

Existen diversas clasificaciones de SGBD

Según interfaz, es decir, como se pueden usar se pueden clasificar en:◦ Interfaz de comandos + lenguaje de programación

◦ Interfaz gráfica incluida (modificable)

Interfaz de comandos + lenguaje de programación

◦ La interfaz de comandos suele ser usada para administración

◦ La creación de interfaces gráficas conlleva programar en lenguajes externos al SGBD

◦ Son los que mejor rendimiento dan, pero son complejos

◦ Ejemplos: MySQL, PostgreSQL, Oracle, Microsoft SQL Server

◦ Con interfaz gráfica incluida

El propio SGBD permite crear interfaces gráficas para acceder/manipular datos

De forma automática ofrece una interfaz gráfica y se puede personalizar

Más sencillas de utilizar porque no hay que programar

Tienen problemas de escalabilidad: cuando se usan muchos datos, se relentizan (algunos estudios ponen el límite en 100.000 registros)

Ejemplos: Microsoft Access, OpenOffice.org Base

Independientemente del SGBD hay que definir qué información se va a almacenar/manipular

El primer paso para ello es diseñar la base de datos:◦ Definir qué datos se va a almacenar◦ Establecer el significado de los datos◦ Establecer relaciones entre los datos◦ Establecer restricciones en los datos

Dado un caso concreto, al conjunto de lo anterior se le llama esquema de la base de datos

Indicar qué datos se van a almacenar◦ Ejemplo: de los clientes se va a almacenar el

DNI, Nombre, y Dirección

Dar significado a los datos◦ Las propias etiquetas suelen dar el significado de los

datos◦ En algunos casos, junto a la etiqueta se da una

descripción

Establecer relaciones entre los datos◦ Ejemplo: en un banco se tiene un listado de clientes y un

listado de cuentas. Las cuentas pertenecen a los clientes Relación entre ellas

Establecer restricciones en los datos◦ Ej1: un DNI está formado por 8 dígitos y 1 letra◦ Ej2: toda cuenta debe tener un propietario

Existen múltiples modelos de datos para describir las BBDD

Entre ellos cabe destacar:◦ Modelo relacional

◦ Modelo jerárquico

◦ Modelo de red

En este curso usaremos únicamente el modelo relacional

Propuesto por Edgar Frank Codd en 1970

En sus inicios convivió con otros modelos, pero actualmente es el más usado con diferencia

Se basa en el uso de tablas (también llamadas relaciones)

Cada tabla recibe un nombre único

A cada columna se le asigna un nombre único, significativo de lo que almacena. Cada columna constituye un atributo o campo.

Cada atributo tiene un dominio: tipo de dato que va a almacenar

Cada fila es un registro o t-upla

Dominios◦ Los dominios se especifican para cada atributo◦ Determina qué información (tipo de dato) puede

contener◦ Además del tipo de dato algunos sistemas dejan

introducir restricciones sobre los datos◦ Ejemplos: Números enteros

Números reales

Cadenas de caracteres

Fecha

Sí/No

DNI Nombre Apellido1 Apellido2 Edad

36483483S Pedro Rodríguez González 25

83002582P Laura Fernández Hernández 30

37395629Z Bruno López Fernández 32

Atributos

Registros

Dominios

DNI: cadena de caracteres con restriccion(8 caracteres + 1 letra)

Edad: número entero…

Hay diferentes nomenclaturas

Nomenclatura 1:◦ Nombre_tabla(Atributo1:Dominio1, Atributo2:Dominio2, …,

AtributoN: DominioN)

Nomenclatura 2:◦ Nombre_tabla(Atributo1, Atributo2, …, AtributoN)

Atributo1: Dominio1

Atributo2: Dominio2

AtributoN: DominioN

Generalmente la BD estará formada por varias tablas

Ejemplo:

Clientes ( DNI, Edad, Dirección, Correo_Electronico, Telefono)

DNI: cadena de caracteres (máximo 9 caracteres). Los 8 primero son digitos y el último una letra

Edad: número enteroDirección: cadena de caracteres (sin máximo)Correo_Electrónico: cadena de caracteres (sin máximo)Teléfono: cadena de caracteres (sin máximo)

El esquema de la base de datos representa qué es lo que puede contener la misma: qué datos hay, relaciones, restricciones, etc.

Una instancia representa lo que contiene en un determinado momento.

En un esquema no se muestran registros, pero sí los dominios.

En una instancia se muestran los registros, pero no lo dominios.

Las condiciones de integridad establecen requisitos que tienen que cumplir los datos

Tipos de condiciones de integridad◦ Dominio de los datos.

Ejemplo: la edad tiene que ser un número

◦ Claves primarias o principales

◦ Claves ajenas o foráneas

En cada tabla hay que establecer una clave primaria

Es un campo o conjunto de campos que sirve para identificar a cada t-upla

Por tanto, no puede haber dos registros, en los que los valores de la clave primaria sean iguales

En el esquema de la BD se especifica subrayando (o poniendo en negrita) los campos que constituyen la clave primaria

Clientes( DNI, Edad, Dirección, Correo_Electrónico, Teléfono)

Ejemplos: clave de 1 campo

DNI Edad Dirección Correo_electrónico Teléfono

45284829S 15 Av. Bélgica pedro@gmail.com 658328347

24847382P 28 Av. Madrid rodrigo@ull.es 638493740

45284829S 29 Rambla Pulido maria@gmail.com 638293749

Error

Calles( Nombre_calle, CP, Longitud, Iluminada, Índice_Peligrosidad)

Ejemplo: clave de 2 campos

Nombre_calle CP Longitud Iluminada Índice_Peligrosidad

Belgica 38007 20 Si 0

Pulido 38007 80 Si 2

Belgica 38008 50 Si 2

Pulido 38008 20 No 3

Pulido 38007 150 Si 4

Error

En las tablas podrían existir varios campos que identifiquen unívocamente los registros

Sin embargo, sólo puede haber una clave primaria

Para asegurar la consistencia, se establece el resto como claves alternativas

No pueden haber duplicados en las claves alternativas

Como clave primaria se suele utilizar por la que más a menudo se vayan a buscar datos

En las tablas podrían existir varios campos que identifiquen unívocamente los registros

Sin embargo, sólo puede haber una clave primaria

Para asegurar la consistencia, se establece el resto como claves alternativas

No pueden haber duplicados en las claves alternativas

Como clave primaria se suele utilizar por la que más a menudo se vayan a buscar datos

En el esquema se especifica, poniendo:◦ Clave alternativa: Campos que la forman

En un comercio se quiere mantener una BD con sus clientes. Se quiere mantener la siguiente información: DNI, Nombre, Apellidos, Edad, Pasaporte.

Clientes(DNI, Nombre, Apellidos, Edad, Pasaporte)Clave alternativa: Pasaporte

Es un campo o conjunto de campos que tienen

dependencia con otra tabla (Tabla Referenciada)

Para que los valores de una clave ajena sean válidos tienen que aparecer en la Tabla Referenciada

El conjunto de campos que forman la clave ajena, tienen que ser clave primaria o clave alternativa en la Tabla Referenciada

Se expresa uniéndolos con flechas que apuntan a la Tabla Referenciada, y usando el mismo nombre de campo

Ejemplo de clave ajena (1 campo)

El SGBD no permitiría introducir el pedido con id=4

Clientes( DNI, Nombre)

Pedidos(Id_Pedido, DNI, Id_Producto, Cantidad)

DNI Nombre

37493847P Juana

34720368S Laura

94739472P Eduardo

Id_Pedido DNI Id_Producto Cantidad

1 37493847P 3 1

2 34720368S 3 2

3 37493847P 4 1

4 89348369K 2 1

5 37493847P 3 2

Ejemplo de clave ajena (varios campos)

Calles( Nombre_calle, CP, Longitud, Iluminación, Peligrosidad)

Comercio(Id_Comercio, Nombre_calle, CP, Numero_Empleados)

Nom.calle CP Long…

Pulido 38007 50

Bélgica 38048 60

Madrid 38463 30

Bélgica 38463 30

Id_Com. Nom.Calle CP Emp.

1 Pulido 38007 10

2 Pulido 38007 20

3 Pulido 38008 30

4 Castillo 38007 20

5 Bélgica 27363 22

6 Bélgica 38463 25

No usar el mismo nombre para campos que no estén relacionados

En los SGBD no es necesario usar el mismo nombre para un campo que es clave ajena de otro, pero al diseñar en papel si.

Suite ofimática gratuita:◦ Procesador de texto: Write

◦ Hoja de cálculo: Calc

◦ Sistema Gestor de Base de Datos: Base

Alternativa gratuita a Microsoft Office

Está basado en el modelo relacional

Cinco elementos principales◦ Tablas: permite especificar las tablas del modelo

relacional

Atributos y dominios y claves principales de cada tabla

◦ Consultas: acceder a parte del contenido

◦ Formulario: crear interfaces gráficas

◦ Informes: presentar el contenido de forma que se pueda imprimir. Resumen de datos, etc.

◦ Relaciones: permite definir las claves ajenas

Creación/Apertura de Bases de datos

Creación de tablas

Definición de claves ajenas

Inserción/Visualización de datos

Ejercicio 5

Se quiere implementar una base de datos para una tienda en Internet. Cada cliente puede realizar transferencias bancarias, de forma que se refleja en el crédito asociado a su cuenta. Además del crédito de los clientes, se quiere almacenar su DNI, Dirección, y Fecha de Nacimiento. En la base de datos se quiere mantener además, los productos que se venden en la página web. La información que se quiere tener almacenada es un identificador del producto, la descripción del producto, y su peso. Además, cada vez que se haga un pedido, éste se deberá almacenar. Habrá que mantener toda la información necesaria para que el pedido se pueda enviar al cliente, incluyendo la cantidad pedida.