Bases de Datos Sistemas de Gestión de Bases de...

18
1 Bases de Datos Sistemas de Gestión de Bases de Datos Curso 2003/04 Almudena García Fuente Banco de datos Conjunto de datos relacionados Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas, archivadores, armarios ... La gestión de los datos la realiza el secretario o administrador

Transcript of Bases de Datos Sistemas de Gestión de Bases de...

Page 1: Bases de Datos Sistemas de Gestión de Bases de Datosdi002.edv.uniovi.es/~gonzalezaloignacio/php/teoria/SGBD.pdf · Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas,

1

Bases de Datos

Sistemas de Gestión de Bases de Datos

Curso 2003/04 Almudena García Fuente

Banco de datosConjunto de datos relacionados

Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas, archivadores, armarios ...

La gestión de los datos la realiza el secretario o administrador

Page 2: Bases de Datos Sistemas de Gestión de Bases de Datosdi002.edv.uniovi.es/~gonzalezaloignacio/php/teoria/SGBD.pdf · Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas,

2

Curso 2003/04 Almudena García Fuente

Base de datos = Banco de datos digital

Curso 2003/04 Almudena García Fuente

Sistema de Gestión de Bases de Datos

Software de gestión ¡No confundir!

BD ≠ SGBD

Page 3: Bases de Datos Sistemas de Gestión de Bases de Datosdi002.edv.uniovi.es/~gonzalezaloignacio/php/teoria/SGBD.pdf · Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas,

3

Curso 2003/04 Almudena García Fuente

Sistema de Gestión de Bases de Datos

Es como el administrador del banco de datos

Ventajas:

• más rápido

• más fiable

• más barato

• más eficiente

Curso 2003/04 Almudena García Fuente

Tiene que tener:� Estructuras de almacenamiento de datos� Mecanismos de manejo de datos

(altas, bajas, ordenación, búsquedas, ...)

� Control de concurrencia(accesos simultáneos)

� Sistemas de seguridad(si un empleado cualquiera accede al sistema ...)

� Restricciones de integridad(sueldo>0, rango de categorías, ...)

Sistema de Gestión de Bases de Datos

Page 4: Bases de Datos Sistemas de Gestión de Bases de Datosdi002.edv.uniovi.es/~gonzalezaloignacio/php/teoria/SGBD.pdf · Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas,

4

Curso 2003/04 Almudena García Fuente

Modelo de datos� Descripción de la estructura de los datos

� Tipos:� Relacional� Jerárquico� En red� Orientado a Objetos� Entidad - Relación

Curso 2003/04 Almudena García Fuente

Modelo Entidad - Relación (E-R)� Usa dos tipos de objetos:

� ENTIDADES� son representaciones de seres o cosas reales o

abstractas� Ejemplo: empleado, empresa

� RELACIONES� son las asociaciones entre entidades� Ejemplo: contrato

� Ambas tienen ATRIBUTOS, que permiten describir sus propiedades

� Ejemplo de atributos de empleado: nombre, categoría, fecha de ingreso, ...

Page 5: Bases de Datos Sistemas de Gestión de Bases de Datosdi002.edv.uniovi.es/~gonzalezaloignacio/php/teoria/SGBD.pdf · Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas,

5

Curso 2003/04 Almudena García Fuente

Esquema de Datos E-R

empleado contrato empresa

nombre

código

fecha ingreso

nombre actividad

fecha duración

Curso 2003/04 Almudena García Fuente

Instancia de una Base de Datos� Es la información que contiene una Base

de Datos en un instante dado

� Esquema de datos: Una vez diseñado, no cambia o cambia muy poco .

� Instancia: Cambia continuamente (altas, bajas y modificaciones)

Page 6: Bases de Datos Sistemas de Gestión de Bases de Datosdi002.edv.uniovi.es/~gonzalezaloignacio/php/teoria/SGBD.pdf · Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas,

6

Curso 2003/04 Almudena García Fuente

Modelo Relacional� La información se representa mediante

tablas relacionadas

� Tablafilas ⇒ registros ⇒ tuplas

columnas ⇒ campos ⇒ atributos

� Ejemplo: tablas de Excel

celdas

dato

Curso 2003/04 Almudena García Fuente

Ciclo de vida de una base de datos

� Fase 1: Análisis

� Fase 2: Diseño

� Fase 3: Implementación

� Fase 4: Prueba y mantenimiento

Page 7: Bases de Datos Sistemas de Gestión de Bases de Datosdi002.edv.uniovi.es/~gonzalezaloignacio/php/teoria/SGBD.pdf · Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas,

7

Ejemplo:

Diseñar una base de datos para almacenar y gestionar la información de los empleados de una empresa de ventas (datos personales, categorías, sueldos, ventas, comisiones, ...).

(para entregar por grupos)

Curso 2003/04 Almudena García Fuente

Ciclo de vida de una base de datos

� Fase 1: Análisis

� ¿Qué información hay que almacenar?� Datos personales/categoría/fecha/...� Restricciones

� ¿Qué operaciones haremos con los datos?� altas/bajas/modificaciones/consultas/...

Page 8: Bases de Datos Sistemas de Gestión de Bases de Datosdi002.edv.uniovi.es/~gonzalezaloignacio/php/teoria/SGBD.pdf · Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas,

8

Curso 2003/04 Almudena García Fuente

Ciclo de vida de una base de datos

� Fase 2: Diseño

� Esquema de datos:� modelo E-R (ir a d. 9)� modelo relacional:

� definir atributos necesarios� construir tablas� establecer relaciones entre tablas

Curso 2003/04 Almudena García Fuente

Ejemplo en Access:

Tabla con datos personales de empleados:

Page 9: Bases de Datos Sistemas de Gestión de Bases de Datosdi002.edv.uniovi.es/~gonzalezaloignacio/php/teoria/SGBD.pdf · Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas,

9

Curso 2003/04 Almudena García Fuente

Ejemplo en Access:

Tabla con datos de empresa:

Curso 2003/04 Almudena García Fuente

Ejemplo en Access:

Tabla con las ventas de cada empleado:

Page 10: Bases de Datos Sistemas de Gestión de Bases de Datosdi002.edv.uniovi.es/~gonzalezaloignacio/php/teoria/SGBD.pdf · Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas,

10

Curso 2003/04 Almudena García Fuente

Ejemplo en Access:

Tabla con datos de los contratos:

Curso 2003/04 Almudena García Fuente

Ejemplo en Access:

Relaciones entre estas 4 tablas:

Page 11: Bases de Datos Sistemas de Gestión de Bases de Datosdi002.edv.uniovi.es/~gonzalezaloignacio/php/teoria/SGBD.pdf · Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas,

11

Curso 2003/04 Almudena García Fuente

Ciclo de vida de una base de datos

� Fase 2: Diseño

� Criterio básico: Minimización de redundancia� Ejemplo: En la tabla CONTRATOS no

aparece domicilio, y en Datos Empleadosno debe aparecer FechaIngreso

� VENTAJAS:� Se ahorra espacio� Se facilita el mantenimiento(Ejemplo: un empleado cambia de domicilio...)

Curso 2003/04 Almudena García Fuente

Ciclo de vida de una base de datos

� Fase 2: Diseño

� Criterio básico: Cada elemento del esquema (tabla) debe representar un único tipo de información

� Ejemplo: En la tabla CONTRATOS no deben aparecer datos personales de cada empleado (nombre, dirección, fecha de nacimiento, ...)

Page 12: Bases de Datos Sistemas de Gestión de Bases de Datosdi002.edv.uniovi.es/~gonzalezaloignacio/php/teoria/SGBD.pdf · Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas,

12

Curso 2003/04 Almudena García Fuente

Ciclo de vida de una base de datos

� Fase 3: Implementación

� Creación de la ESTRUCTURA(Lenguaje de definición de datos, DDL)� Creación de las OPERACIONES:(Lenguaje de manejo de datos, DML)

�Altas, Bajas, Modificaciones�Consultas (búsquedas-selección)

Curso 2003/04 Almudena García Fuente

Ciclo de vida de una base de datos

� Fase 4: Prueba y mantenimiento

� Utilización del SGBD� Mantenimiento de la BD: detección y

corrección de fallos

� Esta fase es muy importante en una empresa de Software y la realiza personal distinto del que ha desarrollado la BD

Page 13: Bases de Datos Sistemas de Gestión de Bases de Datosdi002.edv.uniovi.es/~gonzalezaloignacio/php/teoria/SGBD.pdf · Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas,

13

Curso 2003/04 Almudena García Fuente

Implementación de la Estructura� Ejemplo de Lenguaje de Definición de

Datos: Structured Query Language� Instrucción para crear la tabla Contratos:

CREATE TABLE Contratos( TIPO CHAR(10),

CODIGO CHAR(6), FECHA_INGRESO DATE,CATEGORIA CHAR(1) )

Curso 2003/04 Almudena García Fuente

Implementación de la Estructura

� El SGBD Access usa internamente SQL para crear la tabla, pero proporciona un interfaz gráfico para facilitar las cosas a los usuarios no experimentados

� Ejemplo de creación de tabla mediante sentencia SQL ...

Page 14: Bases de Datos Sistemas de Gestión de Bases de Datosdi002.edv.uniovi.es/~gonzalezaloignacio/php/teoria/SGBD.pdf · Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas,

14

Curso 2003/04 Almudena García Fuente

Implementación de la Estructura

Curso 2003/04 Almudena García Fuente

Restricciones de integridad

� Indican combinaciones de datos no permitidas. Ejemplo: la categoría de un empleado puede ser A, B, C, D

� Clave = conjunto de atributos cuyo valor no se puede repetir en una tablaClave = identifica de manera única a cada registro de una tabla.

Page 15: Bases de Datos Sistemas de Gestión de Bases de Datosdi002.edv.uniovi.es/~gonzalezaloignacio/php/teoria/SGBD.pdf · Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas,

15

Curso 2003/04 Almudena García Fuente

Restricciones de integridad� Claves candidato = todas las claves

posibles en una tabla. Ejemplos:� En la tabla Empleados:

� DNI� CODIGO� NOMBRE+DOMICILIO

� En la tabla DatosEmpresa:� CATEGORIA� SUELDO BASE + SEG SOCIAL + IRPF

Curso 2003/04 Almudena García Fuente

Restricciones de integridad� Clave principal o clave primaria

(primary key)

elegida entre todas las claves candidato, como forma principal de identificación de los registros de una tabla.

� Ejemplos (veamos en Access):� En la tabla Empleados:

� CODIGO ¿o DNI?

� En la tabla DatosEmpresa:� CATEGORIA

� En Access un campo clave principal debe ser Indice sin duplicados

Page 16: Bases de Datos Sistemas de Gestión de Bases de Datosdi002.edv.uniovi.es/~gonzalezaloignacio/php/teoria/SGBD.pdf · Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas,

16

Curso 2003/04 Almudena García Fuente

Restricciones de integridad

� Lista de valores válidosEjemplo: en la tabla CONTRATOS el campo

CATEGORIA solo puede tomar los valores A, B, C, D.

� Ejemplo: En Access se hace esta operación en la ventana de diseño de la tabla CONTRATOS.

Curso 2003/04 Almudena García Fuente

Restricciones de integridadIntegridad referencial

� Cuando dos tablas están relacionadas por un campo y deben contener los mismos valores

� Ejemplos:� el campo CODIGO en la tabla Empleados y en la

tabla CONTRATOS.� el campo CATEGORIA en la tabla CONTRATOS y

en la tabla DatosEmpresa sólo puede tomar los valores A, B, C, D.

� En Access se hace esta operación en la ventana de Relaciones de la base de datos.

Page 17: Bases de Datos Sistemas de Gestión de Bases de Datosdi002.edv.uniovi.es/~gonzalezaloignacio/php/teoria/SGBD.pdf · Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas,

17

Curso 2003/04 Almudena García Fuente

Restricciones de integridad

� Clave externa o ajena (foreign key):Un campo de una tabla que es clave principal en otra tabla a la que hace referencia

Ejemplos:� el campo CATEGORIA en la tabla CONTRATOS.

debe contener los mismos valores en ambas tablas

Integridad referencial

Ejercicio:Diseñar una base de datos para almacenar y gestionar la información de los empleados de una empresa de ventas (datos personales, categorías, sueldos, ventas, comisiones, ...)Crear las tablas necesarias con SQL

Page 18: Bases de Datos Sistemas de Gestión de Bases de Datosdi002.edv.uniovi.es/~gonzalezaloignacio/php/teoria/SGBD.pdf · Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas,

18

Curso 2003/04 Almudena García Fuente

Diseño de la Estructura:atributos ···> tablas ···> relaciones ···> restricciones

Primary KeyForeign key

Curso 2003/04 Almudena García Fuente