6. bases de datos

40
Carlos Segura González [email protected]

Transcript of 6. bases de datos

Page 1: 6.  bases de datos

Carlos Segura González

[email protected]

Page 2: 6.  bases de datos

Definiciones Básicas

Sistemas Gestores de Bases de Datos (SGBD)

Modelo de datos: el modelo relacional

OpenOffice.org Base

Page 3: 6.  bases de datos

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.

Page 4: 6.  bases de datos

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

Page 5: 6.  bases 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

Page 6: 6.  bases de datos

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

Page 7: 6.  bases de datos

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)

Page 8: 6.  bases de datos

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

Page 9: 6.  bases de datos

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

Page 10: 6.  bases de datos

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

Page 11: 6.  bases de datos

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

Page 12: 6.  bases de datos

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

Page 13: 6.  bases de 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)

Page 14: 6.  bases de datos

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

Page 15: 6.  bases de datos

◦ 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

Page 16: 6.  bases de datos

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

Page 17: 6.  bases 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

Page 18: 6.  bases de datos

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

Page 19: 6.  bases de datos

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)

Page 20: 6.  bases de datos

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

Page 21: 6.  bases de datos

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

Page 22: 6.  bases de datos

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…

Page 23: 6.  bases de datos

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

Page 24: 6.  bases de datos

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)

Page 25: 6.  bases de datos

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.

Page 26: 6.  bases de datos

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

Page 27: 6.  bases de datos

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

Page 28: 6.  bases de datos

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 [email protected] 658328347

24847382P 28 Av. Madrid [email protected] 638493740

45284829S 29 Rambla Pulido [email protected] 638293749

Error

Page 29: 6.  bases de datos

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

Page 30: 6.  bases de 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

Page 31: 6.  bases de 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

Page 32: 6.  bases de datos

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

Page 33: 6.  bases de datos

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

Page 34: 6.  bases de datos

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

Page 35: 6.  bases de datos

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

Page 36: 6.  bases de datos

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.

Page 37: 6.  bases de datos

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

Page 38: 6.  bases de datos

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

Page 39: 6.  bases de datos

Creación/Apertura de Bases de datos

Creación de tablas

Definición de claves ajenas

Inserción/Visualización de datos

Ejercicio 5

Page 40: 6.  bases de datos

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.