Upload
carlos-segura
View
217
Download
0
Embed Size (px)
Citation preview
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 [email protected] 658328347
24847382P 28 Av. Madrid [email protected] 638493740
45284829S 29 Rambla Pulido [email protected] 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.