Bases de Datos - Parte 2/10 Sistemas de bases de datos

download Bases de Datos - Parte 2/10 Sistemas de bases de datos

If you can't read please download the document

Transcript of Bases de Datos - Parte 2/10 Sistemas de bases de datos

Sistemas de Informacin II
Tema 2. Sistemas gestores de bases de datos

Carlos Castillo

UPF 2007

Bibliografa:

Elmasri y Navathe: Fundamentos de Sistemas de Bases de Datos

3 edicin, 2002 (Captulo 2).

Garcia-Molina, Ullman y Widom: Database systems: the complete book. Prentice-Hall (Captulo 1).

Agenda

Tipos de DBMS

Arquitectura de tres esquemas

Independencia de datos

Resolucin de consultas

Transacciones

Interfaces de usuario

Tipos de DBMS

Segn modelo de datos

Sistemas gestores de datos relacionales

Sistemas gestores de datos orientados a objetos

Sistemas gestores de datos objeto-relacionales

Segn nmero de usuarios

Monousuario

Multiusuario

Segn nmero de sitios

Centralizado

Distribudo

Modelo general

Cliente-servidor

Servidor: gestiona la base de datos

Cliente: permite enviar comandos al servidor

Otras arquitecturas

Mltiples capas para llegar al servidor

Distribuda

Paralela

etc.

Arquitectura general

Nivel fsicoNivel conceptualNivel de vistas

Mayor abstraccin

Arquitectura detallada

Usuario 1Usuario 2Vista 1Esquema externoVista 2Esquema externoEsquema conceptualEsquema interno

Nivel interno

Estructura fsica de almacenamiento

Todos los detalles de cmo el DBMS utiliza

el disco duro

la memoria, etc.

Tema principal

El sistema debe ser rpido en responder y eficiente en el uso de espacio

Administrador de la base de datos

Nivel conceptual

Estructura lgica de almacenamiento

Diseo conceptual de la base de datos

Tablas, columnas, etc.

Tema principal

El diseo debe reflejar conceptualmente el problema a modelar

Administradores de datos

Nivel externo

Vistas sobre las tablas

Requiere slo acceso parcial a los datos

Pblico objetivo

Desarrolladores de aplicaciones

Usuarios finales

Tema principal

Cada vista debe reflejar adecuadamente la parte de los datos que interesa a cada uno

Definicin: Esquema de la base de datos

Descripcin de la estructura de la base de datos.

Definicin: Esquema interno

Descripcin de la organizacin fsica de los datos: estructuras de datos en disco y rutas de acceso.

Definicin: Esquema conceptual

Descripcin de la estructura lgica de la base de datos completa (ej.: a travs de diagramas entidad-relacin). Se omiten los detalles del almacenamiento fsico.

Definicin: Esquema externo

Descripcin de la estructura lgica de una parte de la base de datos que es de inters a un grupo particular.

Tarea de la base de datos

Mantener la coherencia entre estos esquemas

Mantener independencia de los datos

Definicin: Independencia fsica de datos

El esquema conceptual no es afectado por cambios al esquema fsico de datos.

Definicin: Independencia lgica de datos

Algunos elementos del esquema externo no son afectados por cambios al esquema conceptual.

Independencia de datos

Independencia lgica de datos

Agregar ms columnas no afecta las vistas

Modificar columnas slo afecta las vistas que incluyen esas columnas

Independencia fsica de datos

Si el DBMS modifica su organizacin interna de ficheros, no pasa nada con el esquema conceptual (sucede cuando hay un cambio de versin, o al migrar a otro DBMS)

Consultas a bases de datos

Lenguajes

Segn nivel

Alto nivel: no procedimientos

Bajo nivel: procedimientos

Segn rea

Vistas, definicin de datos, manipulacin de datos, etc..

Lenguajes para interactuar con bases de datos

Lenguaje para definir vistas

Ej.: lenguaje de reportes

Lenguaje para definir datos

CREATE ...

Lenguaje para definir almacenamiento

Para escoger un cierto esquema interno

Lenguaje para manipulacin de datos

SELECT, UPDATE, ...

Lenguajes en la prctica

Lenguaje para definir vistas

SQL

O algn lenguaje propietario para reportes

Lenguaje para definir datos

SQL

Lenguaje para definir almacenamiento

Extensiones propietarias de SQL

Lenguaje para manipulacin de datos

SQL

Resolucin de
consultas

IntrpreteconsultasSolucin de laconsultaAdministradoralmacenamientoAlmacenamientoFicheros o LogGestor detransaccionesRegistro y recuperacinBuffers oalmacenamientotemporal

Usuarios, aplicaciones

Ejecucin de una consulta

Consulta en SQL -> compilador

Plan de ejecucin de la consulta

Se puede recuperar usando explain QUERY

Ejemplo explain en postgres:

EXPLAIN SELECT * FROM agenda;

Seq scan on agenda (cost=5, rows=5)

EXPLAIN SELECT * FROM agenda

WHERE nacimiento > 1985;

Idx scan on agenda (cost=2, rows=5)

Planificador de consultas

Buscar el mejor orden

Puede ser difcil en consultas complejas

Ej.: nombre de las sucursales en Madrid en que trabajen empleados de ms de 64 aos

Conviene primero filtrar lo ms restrictivo

Pasar pocos datos de una etapa a otra

Recorrer columnas indexadas primero

Optimizacin de consultas

Consultas y buffers

Procesador de consultas

Solicita fragmentos al administrador de buffers

Fragmentos son ndices, filas, etc.

Administrador de buffers

Usar la memoria apropiadamente

Procesamiento de transacciones

Control de concurrencia

Hasta qu punto podemos admitir dos usuarios haciendo algo al mismo tiempo

Registro y recuperacin en caso de fallas

Transacciones

Ejemplo: mover dinero de una cuenta bancaria a otra, se quita a una cuenta primero o se agrega a la otra?

BEGIN TRANSACTION y END TRANSACTION

Registro y recuperacin en caso de fallas

Cada cambio es almacenado separadamente

Se deshacen los cambios de las transacciones que quedaron a medias

Control de concurrencia

Bloquear y desbloquear tablas

Ejemplo transacciones

BEGIN

x.saldo=x.saldo - 10

y.saldo=y.saldo + 10

END

BEGIN

z=y.saldo

y.saldo=z + 40

END

Falla 1: transaccin a medias

BEGIN

x.saldo=x.saldo - 10

---falla de energa---

Recuperacin (rollback):

x.saldo=x.saldo + 10

Falla 2: traslape de transacciones

ORDEN DE EJECUCIN

x.saldo=x.saldo 10

z=y.saldo

y.saldo=y.saldo + 10

y.saldo=z+40 ---ERROR---

Transacciones (A.C.I.D.)

Atomicidad

Se ejecuta toda la transaccin o nada

Consistencia

Antes y despus de la transaccin la base de datos est consistente

Isolation (aislamiento)

Cada transaccin debe aparecer como algo separado de otras transacciones

Durabilidad

Una vez hecha la transaccin sta es durable

Interfaces de usuario

Intrprete de comandos

Formularios

Interfaces grficas

Interfaces parametrizadas

Web

Interfaces en lenguaje natural

MySQLadmin (Web)

MySQLadmin (cliente)

Utilidades adicionales de un DBMS

Importar-exportar datos

Copia de respaldo

Reorganizacin de ficheros

Control de rendimiento

Ej.: creacin de nuevos ndices

Resumen

Niveles interno-conceptual-externo

Interpretacin de consultas pasa por varios procesos

Lo ms complejo es el procesamiento de transacciones

Sistemas de Informacin II

Dr. Carlos CastilloUniversitat Pompeu Fabra - 2005

Click to edit the title text format

Click to edit the outline text format

Second Outline Level

Third Outline Level

Fourth Outline Level

Fifth Outline Level

Sixth Outline Level

Seventh Outline Level

Eighth Outline Level

Ninth Outline Level