Professional Documents
Culture Documents
PostgreSQL
PostgreSQL es un sistema de gestin de bases de datos objeto-relacional, distribuido bajo licencia BSD y con su cdigo fuente disponible libremente. Es el sistema de gestin de bases de datos de cdigo abierto ms potente del mercado y en sus ltimas versiones no tiene nada que envidiarle a otras bases de datos comerciales. PostgreSQL utiliza un modelo cliente/servidor y usa multiprocesos en vez de multihilos para garantizar la estabilidad del sistema. Un fallo en uno de los procesos no afectar el resto y el sistema continuar funcionando.
La separacin entre los programas de aplicacin y los datos. El manejo de mltiples vistas por parte de los usuarios El uso de un catlogo para almacenar el esquema de la base de datos. Nivel interno o fsico: describe la estructura fsica de la base de datos mediante un esquema interno. Este esquema se especifica con un modelo fsico y describe los detalles de cmo se almacenan fsicamente los datos: los archivos que contienen la informacin, su organizacin, los mtodos de acceso a los registros, los tipos de registros, la longitud, los campos que los componen, etc.
Nivel externo o de visin: es el ms cercano al usuario, se describen varios esquemas externos o vistas de estos. Cada esquema externo describe la parte de la base de datos que interesa a un grupo de usuarios determinados y oculta a ese grupo el resto de la base de datos. En este nivel se puede utilizar un modelo conceptual o un modelo lgico para especificar los esquemas.
Nivel conceptual: describe la estructura de toda la base de datos para un grupo determinado de usuarios mediante un esquema conceptual. Este esquema describe las entidades, atributos, relaciones, operaciones de los usuarios y restricciones, ocultando los detalles de las estructuras fsicas de almacenamiento.
Estructura de memoria
Un SGBD se divide en mdulos que se encargan de tareas especficas. Normalmente el S.O. proporciona una serie de funciones bsicas que son utilizadas por el SGBD, para realizar otras tareas ms complejas. Los componentes ms importantes del SGBD son:
Gestor
de
ficheros
(File
Manager
File
System).
Encargado de asignar espacio en disco y mantener la estructura de los ficheros donde se almacenarn los datos. Adems es el responsable de localizar el bloque de informacin que se requiere solicitndoselo al Gestor de discos del S.O. y proporcionndoselo al Gestor de Datos. Puede implementarse simplemente como un interfaz al Gestor de Ficheros del Sistema Operativo o el SGBD puede tener uno propio. Gestor de datos (Data Manager). Es el principal componente del SGBD. Entre sus funciones podemos citar: Acceso a los datos interactuando con el gestor de ficheros propio o del S.O. Asegura que se cumplen los requisitos para mantener la integridad y consistencia de los datos, adems de controlar la seguridad. Sincroniza las operaciones de los usuarios que estn accediendo concurrentemente a la BD. Interviene tambin en operaciones de respaldos y recuperaciones.
Procesador
de
consultas
(Query
Processor).
Interpreta las consultas (queries) de los usuarios online y los convierte en una serie de operaciones que sern enviadas al Gestor de Datos para su ejecucin. Entre sus funciones estn el optimizar estas operaciones haciendo uso de la informacin del diccionario de datos y encontrar una estrategia eficiente para su ejecucin (plan de ejecucin).
Compilador
de
LDD
(DDL,
Data
Definition
Languaje).
Convierte las sentencias de definicin de esquemas en tablas y la informacin sobre las mismas se almacena en el DDL.
Precompilador
de
LMD
(DML,
Data
Manipulation
Languaje).
Convierte las sentencias en LMD dentro de un programa de aplicacin a llamadas a procedimientos en el lenguaje husped. El precompilador debe interactuar con el procesador de consultas para generar el cdigo apropiado. Aunque no forma parte del SGBD es interesante nombrar al software que permite la comunicacin entre los usuarios online de un sistema y el SGBD, ya que el SGBD interacta estrechamente con l. Este software, llamado sistema de telecomunicaciones o programa de control de comunicaciones hace de intermediario trasmitiendo los mensajes desde el usuario al SBD y las respuestas. Ejemplos de estos programas son CICS, IDMS-DC, TALKMASTER, etc.
Ficheros
de
datos,
donde
se
guardan
los
datos
de
la
BD.
2.- Estructura Fsica. Ficheros Directorios Creacin del cluster de bases de datos: initdb
Modo Transaccional
Una transaccin es una operacin que se realiza por completo, de forma atmica3. En caso de fallar algo, los cambios se revierten y todo vuelve al estado anterior. Postgres sigue el estndar SQL para la sintaxis de transacciones.
BEGIN WORK; INSERT INTO usuarios VALUES (acampos, Andres Campos); INSERT INTO usuario_saldo VALUES (acampos, 10000); COMMIT;
Cada transaccin comienza con el comando BEGIN WORK, aunque WORK es opcional. Al terminar el trabajo se debe invocar al comando COMMIT para indicar que la transaccin ha concluido. En cualquier punto de la transaccin se puede invocar a ROLLBACK, comando que deshace todos los cambios realizados en la base de datos, dejndola en el estado previo al inicio de la transaccin.
BEGIN WORK; INSERT INTO usuarios VALUES (acampos, Andres Campos); ROLLBACK; INSERT INTO usuarios VALUES (acampos, Andres Campos); INSERT INTO usuario_saldo VALUES (acampos, 10000); COMMIT;
En el caso de que un comando SQL falle, Postgres ignorar las siguientes sentencias hasta el fin de la transaccin, la cual se indica con COMMIT o ROLLBACK. Las transacciones en Postgres pueden ser grabadas en un punto intermedio, de manera de poder re-ejecutar o deshacer solo una porcin de la transaccin. Para esto se utiliza SAVEPOINT.
BEGIN WORK; INSERT INTO usuarios VALUES (acampos, Andres Campos); SAVEPOINT s1; INSERT INTO usuario_saldo VALUES (acampos, 10000); ROLLBACK s1; INSERT INTO usuario_saldo VALUES (acampos, 10000); COMMIT;