ARQUITECTURA - · PDF fileTEMA 2 ARQUITECTURA 1. ... El DBA y el SGBD ... Compilador del...

Post on 07-Feb-2018

231 views 1 download

Transcript of ARQUITECTURA - · PDF fileTEMA 2 ARQUITECTURA 1. ... El DBA y el SGBD ... Compilador del...

TEMA 2

ARQUITECTURA

1. Arquitectura ANSI-SPARC . . . . . . . . . . . . . . . . . . . . 3

2. El DBA y el SGBD . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3. Arquitectura back-end / front-end . . . . . . . . . . . . 31

1

Arquitectura de un Sistema de Base de Datos: Es-tructuracion de los modulos de un Sistema de BD, susfunciones y relaciones entre ellos.

Dos arquitecturas mas usuales:

• Arquitectura ANSI/SPARC (Study Group on Data-base Management System)

• Arquitectura back-end / front-end

Sistemas pequenos basados en PC:

• Usualmente no incorporan estas arquitecturas

• Arquitectura mas simplificada

2

Arquitectura ANSI/SPARC

Dividida en tres niveles:

1. NIVEL INTERNO

2. NIVEL EXTERNO

3. NIVEL CONCEPTUAL

3

1. NIVEL INTERNO

• Mas proximo a almacenamiento fısico.

• Se ocupa de organizar y almacenar los datos fısicamente.

2. NIVEL EXTERNO

• Mas proximo a usuarios.

• Se ocupa de la forma com los usuarios individuales percibenlos datos.

3. NIVEL CONCEPTUAL

• Nivel intermedio entre los dos

n vistas 1 vista 1 vistaexternas conceptual interna

(Nivelabstracciones→ (Nivel

abstraccion→ (NivelExterno) Conceptual) Interno)

4

Ejemplo:

NIVEL EXTERNO

PASCAL:PROFESOR:codi CHAR(6)gent REAL

C:PROFESOR:codi prof CHAR(8)lloc CHAR(6)alumnes CHAR(3)

NIVEL CONCEPTUAL

PROFESORcodigo CHAR(6)aula CHAR(6)alumnos NUMBER(3)asignatura CHAR(8)

NIVEL INTERNO

PROFE FISIC LENGHT=27

prefijo TYPE=BYTE(6), OFFSET=0codi TYPE=BYTE(6), OFFSET=6,

INDEX=CODI.NDXassig TYPE=BYTE(3), OFFSET=12aula TYPE=BYTE(6), OFFSET=15alum TYPE=WORD, OFFSET=21

5

Nivel Externo: Diferentes vistas

• codigo, gente (PASCAL)

• codigo prof, lugar, alumnos (C)

Entidades IGUALES semanticamente pueden tenerDIFERENTES nombres en diferentes niveles.

Es importante establecer las correspondencias entre losnombres.

N. EXTERNO N. CONCEPTUAL N. INTERNO

codi → codi → codigent → alumnes → alumlloc → aula → aula

6

Consideraciones:

NIVEL CONCEPTUAL: RELACIONAL

• Tablas, operadores, relaciones

NIVEL EXTERNO: RELACIONAL

• Declaraciones PL/I, COBOL, PASCAL equivalentesa tabla relacional sobre respectivos lenguajes.

NIVEL INTERNO: NO RELACIONAL

• Estructura de bajo nivel (registros, apuntadores,ındices,etc.)

7

ESQUEMA DE LA ARQUITECTURA ANSI/SPARC

8

Modulos importantes del esquema:

• Nivel Externo

• Nivel Conceptual

• Nivel Interno

• Correspondencias

9

NIVEL EXTERNO

Nivel de usuarios individuales donde cada usuario tendraciertos lenguajes a su disposicion

• Usuario Final

– Lenguaje de consulta (cuarta generacion): SQL

– Lenguaje de la aplicacion (menus, comandos, sistemasventanas, etc.)

• Programador de aplicaciones

– Lenguaje de consulta (cuarta generacion): SQL

– Lenguaje de programacion de alto nivel (C, PL/I, COBOL,PASCAL...)

• DBA

– Todos los lenguajes utilizados por los anteriores usuarios.

Estos lenguajes han de incluir un sublenguaje de datos(DSL - Data SubLanguage):

• Encargado de interactuar con la Base de Datos

• Sublenguaje dentro del lenguaje de alto nivel (lenguaje anfitrion:C, COBOL, BASIC, etc.)

– DSL proporciona acceso a los datos

– Lenguaje anfitrion proporciona las estructuras de controly las variables

10

DSL - Data SubLanguage: Dividido en dos partes:

• DDL -Data Definition Language

– Definicion/declaracion de los objetos a la Base de Datos

• DML -Data Manipulation Language

– Manipulacion/procesamiento de los objetos definidos enla Base de Datos

Relacion entre DSL y lenguaje anfitrion: De dosformas:

• DSL anadido: Nuevas funciones DSL llamadas por librerıacon parametros.

table function SQLSelect(par1,par2,...,parn);

• DSL Inmerso: Poner sentencias DSL directamente dentrodel programa fuente, indicando al compilador que han de serpasadas al modulo del DBMS para ser interpretadas. (Ejem-plo: SQL Inmerso)

Compilador del lenguaje anfitrion no ha de generar codigosobre ellas.

/* SQLSELECT ...FROM ...WHERE ...

*/

11

Definiciones importantes en el Nivel Externo:

VISTA EXTERNA: Contenido de la Base de Datostal y como es vista por un usuario concreto.

• Formada por una coleccion de registros externos (ologicos). No han de coincidir con registros internos.

• DML trabaja sobre registros externos.

ESQUEMA EXTERNO: Definiciones de los registrosexternos que forman una vista externa.

• Esquema definido en lenguaje DDL

Ha de existir correspondencia entre

Esquema Esquema←→

Externo Conceptual

12

NIVEL CONCEPTUAL

VISTA CONCEPTUAL: Representacion de TODOel contenido de la Base de Datos.

• Representacion abstracta de los datos.

• NO coincide con la representacion fısica.

• NO coincide con vista externa.

• Vista formada por el conjunto de REGISTROS CON-CEPTUALES que definen entidades y relaciones entreentidades.

Registros conceptuales no han de coincidir con registrosexternos o registros internos.

• Vista definida mediante ESQUEMA CONCEPTUAL.

ESQUEMA CONCEPTUAL: Definicion de cada tipode registro conceptual.

• Definido mediante DDL CONCEPTUAL (Data Definition Lan-guage).

• Definicion del contenido de informacion.

• No se han de incluir relaciones con el nivel interno (es-tructura de almacenamiento, tecnicas de acceso, campos yregistros fısicos).

• Se especifican controles de integridad y de seguridad.

13

NIVEL INTERNO

VISTA INTERNA: Representacion de bajo nivel de laBase de Datos.

• Vista mas cercana a la maquina, a un paso del nivel fısico.No manipula registros fısicos.

• Supone espacio lineal ∞ en direccionamiento. No se es-pecifica correspondencia entre este espacio y los disposi-tivos logicos.

• Vista compuesta de ocurrencias de diferentes tipos deREGISTROS INTERNOS.

• Vista definida mediante ESQUEMA INTERNO.

ESQUEMA INTERNO: Definiciones de los registrosinternos, ındices y campos.

• Definido mediante DDL INTERNO.

14

CORRESPONDENCIAS

Tres niveles de correspondencias:

• Correspondencia conceptual/interna

• Correspondencia externa/conceptual

• Correspondencia externa/externa

1. Correspondencia conceptual/interna

• Correspondencia entre vista conceptual y la Base de Datos.

• Controlada por el DBA.

• Especifica com se estructuran los registros y campos con-ceptuales en el nivel interno.

• Si se modifica la estructura de la Base de Datos fısica seha de modificar la correspondencia conceptual/interna.

15

2. Correspondencia externa/conceptual

• Correspondencia entre la vista externa y la vista concep-tual.

• Permite especificar campos con diferentes tipos de datos.El campo conceptual esta especificado en un solo tipo.

• Nombre de campos y registros pueden ser diferentes entrediferentes vistas.

• Diversos campos conceptuales → un solo campo externo.

• Pueden existir n vistas externas.

• Una vista externa puede ser compartida por m usuarios.

3. Correspondencia externa/externa

• Expresar una vista externa en terminos de otras vistasexternas.

• Util si existe relacion estrecha entre vistas externas.

16

El DBA y el SGBD

Partes importantes en la gestion de la Base de Datos:

• Administrador de la Base de Datos (DBA)

• Sistema Gestor de la Base de Datos (DBMS)

17

ADMINISTRADOR DE LA BASE DE DATOS

(DBA)

Encargado del control general a nivel tecnico.

Por debajo del ADMINISTRADOR DE DATOS: Per-sona que toma las decisiones estrategicas y de polıticarespecto la informacion de la empresa.

Funciones del DBA:

1. Definir el Esquema Conceptual

2. Definir el Esquema Interno

3. Relacionarse con los usuarios

4. Definir controles de integridad y de seguridad

5. Gestionar las copias de seguridad

6. Controlar el rendimiento del sistema

18

1. Definir el Esquema Conceptual

ADMINISTRADOR DE DATOS: Realizar el diseno logico de laBase de Datos.

DISENO LOGICO DE LA BASE DE DATOS:

• Nivel relacional.

• Definir las relaciones (tablas) que interesan a la organizacion(empresa).

• Definir la informacion que ha de ir en las tablas.

TAREAS DEL DBA:

• Definir el Esquema Conceptual a partir del DisenoLogico. El Esquema Conceptual se define medianteel DDL Conceptual.

• DBMS utiliza la version objeto del Esquema Con-ceptual para responder a solicitudes de acceso.

• Version fuente del Esquema Conceptual utilizadopor usuarios del sistema.

19

2. Definir el Esquema Interno

DBA ha de realizar el Diseno Fısico: Representacion de la infor-macion fısica de la BD.

DBA define el Esquema Interno: Definicion de la estructura fısicacorrespondiente. Descrito mediante el DDL interno.

DBA define la correspondencia entre el Esquema Interno y el Es-quema Conceptual mediante

• DDL Conceptual (especialmente)

• DDL Interno

Ambas tareas del DBA (crear Esquema Interno y definir correspon-dencias) son claramente separables.

Esquema Interno y correspondencias existiran en version fuente yversion objeto.

20

3. Relacionarse con los usuarios

DBA ha de estar en comunicacion con los usuarios para definir

• Esquemas Externos (con DDL externo).

• Correspondencias entre Esquema Externo / Esquema Con-ceptual (con DDL Externo).

Ambas tareas del DBA (crear Esquema Externo y definir corres-pondencias) son claramente separables.

Esquema Externo y correspondencias existiran en version fuente yversion objeto.

Otras funciones del DBA para los usuarios:

• Consultas sobre el diseno de las aplicaciones.

• Instruccion tecnica.

• Localizacion y solucion de problemas que tenganlos usuarios.

4. Definir controles de integridad y seguridad

Definidas dentro el Esquema Conceptual, mediante el DDL Con-ceptual.

21

5. Gestionar las copias de seguridad

La utilizacion de la BD depende del funcionamiento correcto delsistema.

Importante poder restaurar informacion en caso de fallo humano odel sistema. Es necesario reparar la informacion en:

• Mınimo retraso.

• Afectando el minimo posible el resto de los usuarios y delsistema.

DBA ha de definir polıticas de recuperacion de informacion:

• Vaciado periodico de la BD en sistema secundario (disco).

• Carga de la BD a partir del ultimo vaciado.

• Almacenar transacciones.

6. Controlar el rendimiento del sistema

Es responsabilidad del DBA:

• Organizar el sistema para obtener el maximo rendimiento.

• Ajustar el sistema si cambian los requerimientos para podergarantizar el rendimiento maximo:

– Cambios de las vistas internas.

– Realizar backup y restore de la informacion para reorga-nizar los datos.

22

UTILIDADES DEL DBA

Ayudas al DBA en su tarea de administracion de la Basede Datos.

Algunas utilidades trabajan sobre nivel interno. Utili-dades proporcionadas por el fabricante del sistema.

Ejemplos:

• Rutinas de carga (load): Introducir informaciona la BD contenida en ficheros de otras aplicaciones.

• Rutinas de backup: Realizar copias de seguridady restaurarlas (restore).

• Rutinas de reorganizacion: Reorganizar los datosy evitar la fragmentacion.

• Rutinas estadısticas: Realizar calculos estadıs-ticos de comportamiento del sistema para mejo-rarlo.

23

SISTEMA GESTOR DE BASE DE DATOS

(DBMS)

Conjunto de programas que controla todo el acceso ala BD.

Interfıcie entre el usuario y el Sistema de Base de Datos.

24

PROCESO:

Peticion de acceso por parte de un

usuario

(sublenguaje de acceso SQL)

↓DBMS interpreta y analiza la

peticion

↓DBMS inspecciona

1. Esquema Externo del usuario

2. Correspondencia (mapping) con el Esquema Conceptual

3. Esquema Conceptual

4. Correspondencia (mapping) con el Esquema Interno

5. Esquema Interno

↓DBMS ejecuta operaciones sobre la BD fısica

• Acceso 1 registro externo → n registros conceptuales

• Acceso 1 registro conceptual → m registros internos

• Construir registro conceptual de los m registros internosleıdos

• Construir registro externo de los n registros concep-tuales

25

Funciones del DBMS:

I. Definicion de los Datos

II. Manipulacion de los Datos

III. Seguridad e Integridad de los Datos

IV. Proveer de mecanismos de recuperacion y concur-rencia de los datos

V. Diccionario de Datos

VI. Rendimento

26

I. Definicion de los Datos

DBMS ha de aceptar definiciones de los datos

• Esquemes Externos

• Esquema Conceptual

• Esquema Interno

• Correspondencias

Ha de interpretar definiciones DDL para poder interpre-tar y responder solicitudes de los usuarios.

27

II. Manipulacion de los Datos

DBMS ha de atender solicitudes de usuario para

* recuperar* modificar* insertar* borrar

INFORMACION

Solicitudes hechas en DML. DBMS ha de interpretarDML.

Peticiones en DML pueden ser:

PREVISTAS: Peticiones que ya se planificaron en el sistema, deforma que el diseno esta afectado por estas peticiones con elfin de mejorar el rendimiento.

Peticiones realizadas normalmente en programas de aplicacion.

IMPREVISTAS: Peticiones no planificadas en el diseno, poco fre-cuentes.

Diseno fısico puede ser que se adapte o no a la peticion.Usualmente la respuesta de estos comandos es pobre.

Peticiones realizadas normalmente de forma interactiva (SQL).

28

III. Seguridad e Integridad de los Datos

DBMS ha de supervisar las solicitudes de acceso de losusuarios, para rechazar los intentos de violar las medidasde integridad y de seguridad definidas por el DBA.

IV. Proveer mecanismos de recuperacion y concur–

rencia de los Datos

DBMS ha de cuidar el cumplimiento de los controles derecuperacion y de concurrencia.

Tarea que realiza el modulo del DBMS denominadoADMINISTRADOR DE TRANSACCIONES

29

V. Diccionario de Datos

DBMS ha de mantener un diccionario de datos (o ME-TADATOS)

METADATOS: Base de Datos sobre la Base de Datos

• Definiciones de los objetos del sistema (esquemas, correspon-dencias, etc.), tanto en versiones fuente como objeto.

• Referencias cruzadas para indicar

– que programas usan ciertos datos

– que usuarios requieren que informes

– terminales conectados al sistema

• Informacion consultable como culaquier otra Base de Datos.

• Importante a la hora de saber el grado de afectacion del sis-tema (que programas o usuarios se ven afectados por unamodificacion del sistema).

VI. Rendimiento

DBMS ha de realizar todas las funciones anteriores dela forma mas FIABLE y EFICIENTE possible.

30

Arquitectura back-end / front-end

Vision diferente de la arquitectura de una BD. Visiondesde el punto de vista del desarrollo y ejecucion deaplicaciones sobre la BD.

Sistema BD: Estructura formada por dos partes:

• back-end (seccion posterior)

• n front-end’s (secciones frontales)

• back-end: DBMS. Realiza todas las funciones descritas en elDBMS.

• front-end’s: Diferentes aplicaciones ejecutadas en el DBMS

– ESCRITAS por los usuarios.

– INTEGRADAS: subministradas por el proveedor del DBMS.

31

Aplicaciones pueden dividirse en diferentes categorıas:

1. Aplicaciones escritas por los usuarios. Escritasen lenguaje de alto nivel junto con DSL.

2. Aplicaciones integradas (herramientas). Ayu-dan a la creacion y ejecucion de otras aplicaciones.Tipos:

• Interpretes de lenguajes de consulta

• Generadores de informes

• Sistemas de generacion de graficos

• Hojas de calculo

• Procesadores de lenguaje natural

• Paquetes estadısticos

• Herramientass para administrar copias

• Generadores de aplicaciones

• Herramientas para desarrollar aplicaciones, herramientasCASE (Computer Aided Software Engineering)

Numero y calidad de estas herramientas es impor-tante para evaluar el DBMS (o SGBD).

Separacion del back-end y el front-end en dos partespermite que cada parte pueda estar en nodos fısicosdiferentes.

↓SISTEMAS DISTRIBUIDOS

32

Sistemas Distribuidos

PROCESAMIENTO DISTRIBUIDO:

• Varias maquinas pueden conectarse entre sı en red.

• Tarea de procesamiento puede abarcar varias ma-quinas de la red.

Diferentes estructuras:

• Sistema Cliente/Servidor

• Sistema completo de Base de Datos

33

SISTEMA CLIENTE/SERVIDOR

• Seccion Posterior: Servidor, despachador.

Ejecucion del DBMS en una maquina.

• Seccion Frontal: Cliente.

Ejecucion de la aplicacion en otra maquina.

34

Ventajas:

• Paralelizacion: Procesamiento de la seccion pos-terior y la seccion frontal en paralelo, mejorando eltiempo de respuesta y el rendimiento.

• back-end especializado en Base de Datos.

• front-end: estacion de trabajo personal, adaptadaa las necesidades del usuario final.

• Varias maquinas cliente capaces de acceder a lamisma maquina servidora, con lo cual unicamentese mantiene UNA SOLA BASE DE DATOS.

35

SISTEMA COMPLETO DE

BASE DE DATOS

Distribucion fısica de los datos en computadores.

Cada maquina contiene un Sistema de Base de Datosentero, con el cual funcionara como

• Servidor para ciertos usuarios

• Cliente para otros usuarios

36

Una sola maquina ha de ser capaz de acceder a diversosservidores. Dos posibilidades:

1. Aplicacion front-end puede acceder a n maquinaspero solo en una simultaneamente.

Desventajas:

• No se pueden combinar datos de dos o mas back-ends enuna sola solicitud.

• Usuario ha de saber buscar informacion.

2. Aplicacion front-end puede acceder a n maquinassimultaneamente.

• Se pueden combinar datos de varios back-end’s en unasola solicitud.

• front-end Ve los n back-end’s como un solo back-endlogico.

Usuario no ha de saber cuantos back-end’s.

↓SISTEMAS DE BD DISTRIBUIDOS

37

SISTEMAS DE BD DISTRIBUIDOS

Implica que una sola aplicacion sera capaz de trabajarde forma transparente con

• Diferentes BD

• Diferentes SO

• DiferentesDBMS

En realidad, aplicacion trabaja desde un punt de vistalogico con

• Una sola BD

• Un solo SO

• Un solo DBMS

38