arquitectura - · pdf filetema 2 arquitectura 1. ... el dba y el sgbd ... compilador del...
TRANSCRIPT
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