SlideShare una empresa de Scribd logo
http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 PostgreSQL Como funciona una Base de Datos por dentro Ernesto Quiñones Azcárate [email_address]
Agenda 1. Una corta introducción 2. Una DBMS por dentro 3. Almacenamiento y organización de los datos 4. Los índices 5. Como se procesa un Query 6. Concurrencia : Transacciones y bloqueos http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
1. Una corta introducción ,[object Object]
La primera vez que se uso el termino fue en un proyecto del ejercito norteamericano en una fecha no determinada entre los 1950 y principios de los 1960.
Las bases de datos libres y las privativas tienen casi el mismo tiempo de existencia ( http://tinyurl.com/l5fern ).
Existen diversos tipos de bases de datos: ,[object Object]
Relacionales
Objeto-relaciones
Orientadas a objetos
XML
Orientadas a data “sin forma”, ejemplo: La web
Datos gráficos, espaciales, etc.
...muchas otras por venir http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
1. Una corta introducción ,[object Object],[object Object],[object Object],[object Object],http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
1. Una corta introducción http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 PostgreSQL es una base de datos con una trayectoria mucho mas antigua de la que aparenta, pionera en la implementación de varios nuevas características en las DBMRS.
2. Una DBMS por dentro PostgreSQL tiene una arquitectura que involucra muchos estilos, en su nivel mas alto es un esquema clásico cliente-servidor, mientras que el acceso a la data es un esquema en capas. http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
2. Una DBMS por dentro ,[object Object]
El server esta compuesto por 2 grandes subsistemas, el “Postmaster” que es el responsable de aceptar las comunicaciones con el cliente y autentificar y dar acceso. El “Postgre” se encarga de la administración de los querys y comandos enviados por el cliente. PostgreSQL trabaja bajo el concepto de “process per user”, eso significa un solo procesos cliente por conexión. Tanto el Postmaster como el Postgre deben estar junto en el mismo servidor siempre.
El Storage Manager es responsable de la administración general de almacenamiento de los datos, controla todos los trabajos del back-end incluido la administración del buffer, archivos, bloqueos y control de la consistencia de la información. http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
3. Almacenamiento y organización de datos La data siempre se va a guardar en “disco” (esto puede no ser literalmente un HD). Esto genera un intenso trabajo de I/O, cuando leemos la data la sacamos del “disco” para pasarla a la RAM, cuando escribimos la bajamos de la RAM al “disco”. http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
3. Almacenamiento y Organización de los Datos  http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
3. Almacenamiento y organización de datos La data en cualquier DBMS se almacena en pequeños bloques de disco llamadas “páginas”. Estás “páginas” se guardan en un disco en diferentes posiciones físicas, mucha dispersión creará una baja performance en la dbms, en sistemas de almacenamiento como los HD (osea casi el 99%) esto es un gran problema. Afortunadamente ahora existen  Soluciones basadas en Discos de  Estado Solido que ayudan con  Este problema. http://es.wikipedia.org/wiki/Unidad_de_estado_s%C3%B3lido http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Platters Spindle Disk head Sector Arm movement Arm assembly Tracks
3. Almacenamiento y organización de datos http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 El tamaño de una página en PostgreSQL puede ser tan pequeño como 8k (por defecto) hasta un máximo de 32k y no se permite que un tupla pueda ser mas grande que una página de tamaño. Cuando se necesita guardar data muy grande (un video por ejemplo) la data es comprimida y partida en pequeñas “filas” que se guardan en una tabla paralela, esto es transparente para el usuario ( http://www.postgresql.org/docs/8.4/interactive/storage-toast.html ). Las páginas contienen “items” los cuales apuntan a tuplas o entradas de índices junto con metadata. Para el caso de PostgreSQL las operaciones de R/W primero se consulta al Buffer Manager (memoria RAM) si contiene la página.
3. Almacenamiento y organización de datos http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 PostgreSQL posee un solo “Storage Manager” (MySql tiene 5 o más por ejemplo), este esta compuesto por varios módulos que proveen administración de las transacciones y acceso a los objetos de la base de datos. Los módulos se programaron bajo 3  lineamientos bien claros: ,[object Object],[object Object],[object Object]
3. Almacenamiento y organización de datos http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Los módulos que componen el Storage Manager son: ,[object Object]
Relational Storage
Time Management
Concurrency Control y Timestamp Management
Record Acces PostgreSQL siempre esta añadiendo data, la data modificada o borrada realmente no se modifica o se borra, las páginas donde ellas están almacenadas se marca como “no visible” y se inserta un nuevo registro completo con un clon de toda la data (como se maneja esto en detalle se explica mas adelante).  Esto hace que la base de datos ocupe mucho espacio y afecta el “tiempo de acceso” a la data.
3. Almacenamiento y organización de datos http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Existe un “tiempo de acceso” para llegar a la data (sea read o write) que depende de: ,[object Object]
Tiempo de rotación de los discos para que el brazo encuentre la posición física donde esta la data.
Tiempo de transferencia de R/W de la data del disco a la memoria. Hay que buscar que reducir este tiempo para que el acceso a la data sea mas rápido. Ejemplo de un  Vacuum Full
3. Almacenamiento y organización de datos http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 La operación de Vacuum es importante porque nos ayuda a mejorar la performance del acceso a la data y la optimización del uso de espacio en disco. El método del Lazy Vacuum es más usado que el Vacuum Full. Ejemplo de un Lazy Vacuum
4. Los índices Cada tipo de búsqueda tienen un tipo de índice adecuado para trabajarla, básicamente un índice es un “archivo” donde esta parte de la data y estructura de una tabla con las “search key” de búsqueda. En simple como es un índice: http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Page 1 Page 2 Page N Page 3 Data File k2 kN k1 Index File
4. Los índices La forma clásica es buscar por extremos y medios (búsqueda binaria), pero esto hace que sea altamente costosa la búsqueda, entonces es preferible organizar los índices en estructuras mas eficientes como los árboles. http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
4. Los índices La cantidad de elementos en un nodo es delimitado por una constante predefinida, exactamente no deben haber mas de 2 veces elementos que la constante. Los nuevos elementos son insertados en el nodo que le corresponda según su valor, en caso de que el nodo haya copado su capacidad máxima de elementos entonces el nodo se divide en 2 partes iguales y se crea una “hoja” superior con los índices apropiados. (ejemplo se inserta el elemento 47) http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
4. Los índices Para borrar un elemento se realiza la búsqueda del mismo, al llegar al nodo que lo contiene se bloquea. El nodo se trabaja en “memoria” sacando el elemento a borrar y se reescribe totalmente el nodo, ocasionalmente el nodo queda con menos elementos la cantidad de la constante definida de elementos máximos. http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
4. Los índices Características de los índices: ,[object Object],http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
4. Los índices La estructura de ordenamiento del índice nos dice que tipo de selección soporta, en el caso de PostgreSQL tenemos los siguientes : ,[object Object]
Hash (= y sin  soporte  de NULL data)
GiST (<<, &<, &>, >>, <<|, &<|, |&>, |>>, @>, <@, ~=, &&; estos son operadores para datos geométricos)
GIN (<@, @>, =, &&; estos son operadores para datos tipo array y para “Full Text Searching” dentro de documentos a través de lexemas  http://es.wikipedia.org/wiki/Lexema ) Rtree fue descontinuado a favor de GiST. Las búsquedas Like e iLike solo usan B-tree si la búsqueda o el patrón en es fijo al inicio, osea lo usa si es  Campo like 'pat%'  pero no lo usa si es  Campo like '%pat' . http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
4. Los índices Los índices “clusterizados” o “no clusterizados”. Un índice clusterizado es aquel donde la data esta ordenada o cercanamente ordenada físicamente con las entradas de la data del índice Una tabla solo puede estar clusterizada solo por un índice, no más. Son altamente apreciados en búsquedas por rangos, pero su costo de mantenimiento es alto debido al reordenamiento que siempre tiene que hacerse a la data. http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
4. Los índices Los índices “clusterizados” o “no clusterizados”. http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Data entries Data Records Data entries Data Records CLUSTERED UNCLUSTERED
5. Como se procesa un Query http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Una consulta simple: select  firstname  from  friend where  age = 33; ¿Como hace la base de datos para interpretar esto?
5. Como se procesa un Query http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
5. Como se procesa un Query http://www.eqsoft.net Correo:  [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Esta parte es sencilla:  “ El cliente postgresql” se comunica con el servicio del “postmaster” para pasarle una cadena de texto con el query.

Más contenido relacionado

La actualidad más candente

Dba PostgreSQL desde básico a avanzado parte2
Dba PostgreSQL desde básico a avanzado parte2Dba PostgreSQL desde básico a avanzado parte2
Dba PostgreSQL desde básico a avanzado parte2
EQ SOFT EIRL
 
Instalación de sgbd en diferentes plataformas de windows
Instalación de sgbd en diferentes plataformas de windowsInstalación de sgbd en diferentes plataformas de windows
Instalación de sgbd en diferentes plataformas de windows
Daniel Huerta Cruz
 
Curso de PostgreSQL
Curso de PostgreSQLCurso de PostgreSQL
Curso de PostgreSQL
EQ SOFT EIRL
 
Requerimientos de PostgreSQL
Requerimientos de PostgreSQLRequerimientos de PostgreSQL
Requerimientos de PostgreSQL
Carlos Gustavo Ruiz
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slonyJohanna Mendez
 
Migrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLMigrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQL
scastell77
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQLbrobelo
 
Postgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_pPostgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_pedvin_marcelo
 
Base de dato
Base de  dato Base de  dato
Base de dato
Niduvit Salgado
 
Instalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacionInstalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacion
hugoAlvidrez
 
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
EtiCAGNU
 
Postgresql
PostgresqlPostgresql
Postgresql
Eugenio Mejia
 
Introducción a PostgreSql
Introducción a PostgreSqlIntroducción a PostgreSql
Introducción a PostgreSql
RicardoMartinGomez
 
Cuellos botella en PostgreSQL
Cuellos botella en PostgreSQLCuellos botella en PostgreSQL
Cuellos botella en PostgreSQL
EQ SOFT EIRL
 
Dba PostgreSQL desde básico a avanzado parte1
Dba PostgreSQL desde básico a avanzado parte1Dba PostgreSQL desde básico a avanzado parte1
Dba PostgreSQL desde básico a avanzado parte1
EQ SOFT EIRL
 
PostgreSQL
PostgreSQLPostgreSQL
Mejores Prácticas Administración de Base de Datos Oracle
Mejores Prácticas Administración de Base de Datos OracleMejores Prácticas Administración de Base de Datos Oracle
Mejores Prácticas Administración de Base de Datos Oracle
jftorres92
 

La actualidad más candente (19)

Postgre sql
Postgre sqlPostgre sql
Postgre sql
 
Dba PostgreSQL desde básico a avanzado parte2
Dba PostgreSQL desde básico a avanzado parte2Dba PostgreSQL desde básico a avanzado parte2
Dba PostgreSQL desde básico a avanzado parte2
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Instalación de sgbd en diferentes plataformas de windows
Instalación de sgbd en diferentes plataformas de windowsInstalación de sgbd en diferentes plataformas de windows
Instalación de sgbd en diferentes plataformas de windows
 
Curso de PostgreSQL
Curso de PostgreSQLCurso de PostgreSQL
Curso de PostgreSQL
 
Requerimientos de PostgreSQL
Requerimientos de PostgreSQLRequerimientos de PostgreSQL
Requerimientos de PostgreSQL
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
Migrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLMigrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQL
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Postgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_pPostgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_p
 
Base de dato
Base de  dato Base de  dato
Base de dato
 
Instalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacionInstalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacion
 
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
 
Postgresql
PostgresqlPostgresql
Postgresql
 
Introducción a PostgreSql
Introducción a PostgreSqlIntroducción a PostgreSql
Introducción a PostgreSql
 
Cuellos botella en PostgreSQL
Cuellos botella en PostgreSQLCuellos botella en PostgreSQL
Cuellos botella en PostgreSQL
 
Dba PostgreSQL desde básico a avanzado parte1
Dba PostgreSQL desde básico a avanzado parte1Dba PostgreSQL desde básico a avanzado parte1
Dba PostgreSQL desde básico a avanzado parte1
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Mejores Prácticas Administración de Base de Datos Oracle
Mejores Prácticas Administración de Base de Datos OracleMejores Prácticas Administración de Base de Datos Oracle
Mejores Prácticas Administración de Base de Datos Oracle
 

Destacado

PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
Marlon Munhoz
 
Introduction to PostgreSQL
Introduction to PostgreSQLIntroduction to PostgreSQL
Introduction to PostgreSQL
Jim Mlodgenski
 
Comandos y funciones sql postgres
Comandos y funciones sql postgresComandos y funciones sql postgres
Comandos y funciones sql postgresHIPOLITO GRULLON
 
Manual de como conformar Consorcios
Manual de como conformar ConsorciosManual de como conformar Consorcios
Manual de como conformar Consorcios
EQ SOFT EIRL
 
Sistema de Replicación de DBs de PostgreSQL 9.0
Sistema de Replicación de DBs de PostgreSQL 9.0Sistema de Replicación de DBs de PostgreSQL 9.0
Sistema de Replicación de DBs de PostgreSQL 9.0
EQ SOFT EIRL
 
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...Nicola Strappazzon C.
 
Configuracion y administracion del espacio en disco
 Configuracion y administracion del espacio en disco Configuracion y administracion del espacio en disco
Configuracion y administracion del espacio en discoYael_21
 
Base de datos postgresql
Base de datos postgresqlBase de datos postgresql
Base de datos postgresql
alan moreno
 
Administracion de Base de Datos Oracle
Administracion de Base de Datos OracleAdministracion de Base de Datos Oracle
Administracion de Base de Datos Oracle
ISRAEL
 

Destacado (10)

PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Presentación postgre sql
Presentación postgre sqlPresentación postgre sql
Presentación postgre sql
 
Introduction to PostgreSQL
Introduction to PostgreSQLIntroduction to PostgreSQL
Introduction to PostgreSQL
 
Comandos y funciones sql postgres
Comandos y funciones sql postgresComandos y funciones sql postgres
Comandos y funciones sql postgres
 
Manual de como conformar Consorcios
Manual de como conformar ConsorciosManual de como conformar Consorcios
Manual de como conformar Consorcios
 
Sistema de Replicación de DBs de PostgreSQL 9.0
Sistema de Replicación de DBs de PostgreSQL 9.0Sistema de Replicación de DBs de PostgreSQL 9.0
Sistema de Replicación de DBs de PostgreSQL 9.0
 
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
 
Configuracion y administracion del espacio en disco
 Configuracion y administracion del espacio en disco Configuracion y administracion del espacio en disco
Configuracion y administracion del espacio en disco
 
Base de datos postgresql
Base de datos postgresqlBase de datos postgresql
Base de datos postgresql
 
Administracion de Base de Datos Oracle
Administracion de Base de Datos OracleAdministracion de Base de Datos Oracle
Administracion de Base de Datos Oracle
 

Similar a Postgresql Como Funciona Una Dbms Por Dentro

Postgresql_como_funciona_una_dbms_por_dentro.pdf
Postgresql_como_funciona_una_dbms_por_dentro.pdfPostgresql_como_funciona_una_dbms_por_dentro.pdf
Postgresql_como_funciona_una_dbms_por_dentro.pdf
j c
 
GUÍA 1_Administración de Base de Datos.docx
GUÍA 1_Administración de Base de Datos.docxGUÍA 1_Administración de Base de Datos.docx
GUÍA 1_Administración de Base de Datos.docx
leotri2
 
equipo 3 clasificación de estructura(2.pptx
equipo 3  clasificación de estructura(2.pptxequipo 3  clasificación de estructura(2.pptx
equipo 3 clasificación de estructura(2.pptx
PedroSilva456418
 
Caracteristicas dbms (1)
Caracteristicas dbms (1)Caracteristicas dbms (1)
Caracteristicas dbms (1)Javier Plazas
 
Modelos de análisis estructurado
Modelos de análisis estructuradoModelos de análisis estructurado
Modelos de análisis estructurado
Adrianitha Villalobos
 
Julio diaz trabajo2_power_point
Julio diaz trabajo2_power_pointJulio diaz trabajo2_power_point
Julio diaz trabajo2_power_point
julito87
 
Base de Datos
Base de DatosBase de Datos
Base de Datos
Berenice Quintero
 
Diseño de Archivos y Bases de Datos
Diseño de Archivos y Bases de DatosDiseño de Archivos y Bases de Datos
Diseño de Archivos y Bases de Datos
Victor Reyes
 
Segundos unidad i -definiciones
Segundos   unidad i -definicionesSegundos   unidad i -definiciones
Segundos unidad i -definiciones
syasaca
 
02 base de datos hernandez_luis
02 base de datos hernandez_luis02 base de datos hernandez_luis
02 base de datos hernandez_luis
luishernandez1576
 
Unidad 2 Arquitectura del gestor
Unidad 2 Arquitectura del gestorUnidad 2 Arquitectura del gestor
Unidad 2 Arquitectura del gestor
Kira Yagamí
 
Esquemas de seguridad en los sistemas de bases de datos juan anaya manzano
Esquemas de seguridad en los sistemas de bases de datos juan anaya manzanoEsquemas de seguridad en los sistemas de bases de datos juan anaya manzano
Esquemas de seguridad en los sistemas de bases de datos juan anaya manzano
Juan Anaya
 
Unidad 3, 4 y 5
Unidad 3, 4 y 5Unidad 3, 4 y 5
Unidad 3, 4 y 5
Dulce Fernàndez-t
 
Base de datos
Base de datos Base de datos
Base de datos
Virginia Luna
 

Similar a Postgresql Como Funciona Una Dbms Por Dentro (20)

Postgresql_como_funciona_una_dbms_por_dentro.pdf
Postgresql_como_funciona_una_dbms_por_dentro.pdfPostgresql_como_funciona_una_dbms_por_dentro.pdf
Postgresql_como_funciona_una_dbms_por_dentro.pdf
 
GUÍA 1_Administración de Base de Datos.docx
GUÍA 1_Administración de Base de Datos.docxGUÍA 1_Administración de Base de Datos.docx
GUÍA 1_Administración de Base de Datos.docx
 
equipo 3 clasificación de estructura(2.pptx
equipo 3  clasificación de estructura(2.pptxequipo 3  clasificación de estructura(2.pptx
equipo 3 clasificación de estructura(2.pptx
 
Bdp3
Bdp3Bdp3
Bdp3
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Caracteristicas dbms (1)
Caracteristicas dbms (1)Caracteristicas dbms (1)
Caracteristicas dbms (1)
 
Modelos de análisis estructurado
Modelos de análisis estructuradoModelos de análisis estructurado
Modelos de análisis estructurado
 
Julio diaz trabajo2_power_point
Julio diaz trabajo2_power_pointJulio diaz trabajo2_power_point
Julio diaz trabajo2_power_point
 
Base de datos
Base de datosBase de datos
Base de datos
 
Base de Datos
Base de DatosBase de Datos
Base de Datos
 
Diseño de Archivos y Bases de Datos
Diseño de Archivos y Bases de DatosDiseño de Archivos y Bases de Datos
Diseño de Archivos y Bases de Datos
 
Segundos unidad i -definiciones
Segundos   unidad i -definicionesSegundos   unidad i -definiciones
Segundos unidad i -definiciones
 
Base de datos1024
Base de datos1024Base de datos1024
Base de datos1024
 
Base de datos
Base de datosBase de datos
Base de datos
 
02 base de datos hernandez_luis
02 base de datos hernandez_luis02 base de datos hernandez_luis
02 base de datos hernandez_luis
 
Unidad 2 Arquitectura del gestor
Unidad 2 Arquitectura del gestorUnidad 2 Arquitectura del gestor
Unidad 2 Arquitectura del gestor
 
124076127 sistemas-distribuidos-pdf
124076127 sistemas-distribuidos-pdf124076127 sistemas-distribuidos-pdf
124076127 sistemas-distribuidos-pdf
 
Esquemas de seguridad en los sistemas de bases de datos juan anaya manzano
Esquemas de seguridad en los sistemas de bases de datos juan anaya manzanoEsquemas de seguridad en los sistemas de bases de datos juan anaya manzano
Esquemas de seguridad en los sistemas de bases de datos juan anaya manzano
 
Unidad 3, 4 y 5
Unidad 3, 4 y 5Unidad 3, 4 y 5
Unidad 3, 4 y 5
 
Base de datos
Base de datos Base de datos
Base de datos
 

Más de EQ SOFT EIRL

Libro sobre exportación de servicios post Covid-19
Libro sobre exportación de servicios post Covid-19Libro sobre exportación de servicios post Covid-19
Libro sobre exportación de servicios post Covid-19
EQ SOFT EIRL
 
Peruanos en Twitter
Peruanos en TwitterPeruanos en Twitter
Peruanos en Twitter
EQ SOFT EIRL
 
Recomendaciones Para el Tratamiento de Datos en Inteligencia Artificial
Recomendaciones Para el Tratamiento de Datos en Inteligencia ArtificialRecomendaciones Para el Tratamiento de Datos en Inteligencia Artificial
Recomendaciones Para el Tratamiento de Datos en Inteligencia Artificial
EQ SOFT EIRL
 
Centros Regionales de Innovación Aplicada
Centros Regionales de Innovación AplicadaCentros Regionales de Innovación Aplicada
Centros Regionales de Innovación Aplicada
EQ SOFT EIRL
 
EQ Soft: Soluciones de innovación agraria
EQ Soft: Soluciones de innovación agrariaEQ Soft: Soluciones de innovación agraria
EQ Soft: Soluciones de innovación agraria
EQ SOFT EIRL
 
Transformación Digital en Logística
Transformación Digital en LogísticaTransformación Digital en Logística
Transformación Digital en Logística
EQ SOFT EIRL
 
Propuestas de innovacón financiera
Propuestas de innovacón financieraPropuestas de innovacón financiera
Propuestas de innovacón financiera
EQ SOFT EIRL
 
Clusters Empresariales en Latinoamérica
Clusters Empresariales en LatinoaméricaClusters Empresariales en Latinoamérica
Clusters Empresariales en Latinoamérica
EQ SOFT EIRL
 
Inteligencia Artificial en la Administración Pública
Inteligencia Artificial en la Administración PúblicaInteligencia Artificial en la Administración Pública
Inteligencia Artificial en la Administración Pública
EQ SOFT EIRL
 
Inteligencia artificial para las empresas 2019
Inteligencia artificial para las empresas 2019Inteligencia artificial para las empresas 2019
Inteligencia artificial para las empresas 2019
EQ SOFT EIRL
 
Platique.me solución integral de Smart ChatBot
Platique.me solución integral de Smart ChatBotPlatique.me solución integral de Smart ChatBot
Platique.me solución integral de Smart ChatBot
EQ SOFT EIRL
 
Logos Dictados - solución de Speech to Text
Logos Dictados - solución de Speech to TextLogos Dictados - solución de Speech to Text
Logos Dictados - solución de Speech to Text
EQ SOFT EIRL
 
Logos Biblios - Gestión de Conocimientos
Logos Biblios - Gestión de ConocimientosLogos Biblios - Gestión de Conocimientos
Logos Biblios - Gestión de Conocimientos
EQ SOFT EIRL
 
Logos, Framework de Inteligencia Artificial
Logos, Framework de Inteligencia ArtificialLogos, Framework de Inteligencia Artificial
Logos, Framework de Inteligencia Artificial
EQ SOFT EIRL
 
Internet of Food
Internet of FoodInternet of Food
Internet of Food
EQ SOFT EIRL
 
Logos: Framework de Inteligencia Artificial
Logos: Framework de Inteligencia ArtificialLogos: Framework de Inteligencia Artificial
Logos: Framework de Inteligencia Artificial
EQ SOFT EIRL
 
Presentación de Logos en el Cade Digital
Presentación de Logos en el Cade DigitalPresentación de Logos en el Cade Digital
Presentación de Logos en el Cade Digital
EQ SOFT EIRL
 
Logos Codex: Plataforma de Big Data
Logos Codex: Plataforma de Big DataLogos Codex: Plataforma de Big Data
Logos Codex: Plataforma de Big Data
EQ SOFT EIRL
 
Portafolio de Productos y Servicios de EqSoft
Portafolio de Productos y Servicios de EqSoftPortafolio de Productos y Servicios de EqSoft
Portafolio de Productos y Servicios de EqSoft
EQ SOFT EIRL
 
Soluciones de RPA para automatizar procesos
Soluciones de RPA para automatizar procesosSoluciones de RPA para automatizar procesos
Soluciones de RPA para automatizar procesos
EQ SOFT EIRL
 

Más de EQ SOFT EIRL (20)

Libro sobre exportación de servicios post Covid-19
Libro sobre exportación de servicios post Covid-19Libro sobre exportación de servicios post Covid-19
Libro sobre exportación de servicios post Covid-19
 
Peruanos en Twitter
Peruanos en TwitterPeruanos en Twitter
Peruanos en Twitter
 
Recomendaciones Para el Tratamiento de Datos en Inteligencia Artificial
Recomendaciones Para el Tratamiento de Datos en Inteligencia ArtificialRecomendaciones Para el Tratamiento de Datos en Inteligencia Artificial
Recomendaciones Para el Tratamiento de Datos en Inteligencia Artificial
 
Centros Regionales de Innovación Aplicada
Centros Regionales de Innovación AplicadaCentros Regionales de Innovación Aplicada
Centros Regionales de Innovación Aplicada
 
EQ Soft: Soluciones de innovación agraria
EQ Soft: Soluciones de innovación agrariaEQ Soft: Soluciones de innovación agraria
EQ Soft: Soluciones de innovación agraria
 
Transformación Digital en Logística
Transformación Digital en LogísticaTransformación Digital en Logística
Transformación Digital en Logística
 
Propuestas de innovacón financiera
Propuestas de innovacón financieraPropuestas de innovacón financiera
Propuestas de innovacón financiera
 
Clusters Empresariales en Latinoamérica
Clusters Empresariales en LatinoaméricaClusters Empresariales en Latinoamérica
Clusters Empresariales en Latinoamérica
 
Inteligencia Artificial en la Administración Pública
Inteligencia Artificial en la Administración PúblicaInteligencia Artificial en la Administración Pública
Inteligencia Artificial en la Administración Pública
 
Inteligencia artificial para las empresas 2019
Inteligencia artificial para las empresas 2019Inteligencia artificial para las empresas 2019
Inteligencia artificial para las empresas 2019
 
Platique.me solución integral de Smart ChatBot
Platique.me solución integral de Smart ChatBotPlatique.me solución integral de Smart ChatBot
Platique.me solución integral de Smart ChatBot
 
Logos Dictados - solución de Speech to Text
Logos Dictados - solución de Speech to TextLogos Dictados - solución de Speech to Text
Logos Dictados - solución de Speech to Text
 
Logos Biblios - Gestión de Conocimientos
Logos Biblios - Gestión de ConocimientosLogos Biblios - Gestión de Conocimientos
Logos Biblios - Gestión de Conocimientos
 
Logos, Framework de Inteligencia Artificial
Logos, Framework de Inteligencia ArtificialLogos, Framework de Inteligencia Artificial
Logos, Framework de Inteligencia Artificial
 
Internet of Food
Internet of FoodInternet of Food
Internet of Food
 
Logos: Framework de Inteligencia Artificial
Logos: Framework de Inteligencia ArtificialLogos: Framework de Inteligencia Artificial
Logos: Framework de Inteligencia Artificial
 
Presentación de Logos en el Cade Digital
Presentación de Logos en el Cade DigitalPresentación de Logos en el Cade Digital
Presentación de Logos en el Cade Digital
 
Logos Codex: Plataforma de Big Data
Logos Codex: Plataforma de Big DataLogos Codex: Plataforma de Big Data
Logos Codex: Plataforma de Big Data
 
Portafolio de Productos y Servicios de EqSoft
Portafolio de Productos y Servicios de EqSoftPortafolio de Productos y Servicios de EqSoft
Portafolio de Productos y Servicios de EqSoft
 
Soluciones de RPA para automatizar procesos
Soluciones de RPA para automatizar procesosSoluciones de RPA para automatizar procesos
Soluciones de RPA para automatizar procesos
 

Último

Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
jjfch3110
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
44652726
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
JuanPrez962115
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 

Último (20)

Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 

Postgresql Como Funciona Una Dbms Por Dentro

  • 1. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 PostgreSQL Como funciona una Base de Datos por dentro Ernesto Quiñones Azcárate [email_address]
  • 2. Agenda 1. Una corta introducción 2. Una DBMS por dentro 3. Almacenamiento y organización de los datos 4. Los índices 5. Como se procesa un Query 6. Concurrencia : Transacciones y bloqueos http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 3.
  • 4. La primera vez que se uso el termino fue en un proyecto del ejercito norteamericano en una fecha no determinada entre los 1950 y principios de los 1960.
  • 5. Las bases de datos libres y las privativas tienen casi el mismo tiempo de existencia ( http://tinyurl.com/l5fern ).
  • 6.
  • 10. XML
  • 11. Orientadas a data “sin forma”, ejemplo: La web
  • 13. ...muchas otras por venir http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 14.
  • 15. 1. Una corta introducción http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 PostgreSQL es una base de datos con una trayectoria mucho mas antigua de la que aparenta, pionera en la implementación de varios nuevas características en las DBMRS.
  • 16. 2. Una DBMS por dentro PostgreSQL tiene una arquitectura que involucra muchos estilos, en su nivel mas alto es un esquema clásico cliente-servidor, mientras que el acceso a la data es un esquema en capas. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 17.
  • 18. El server esta compuesto por 2 grandes subsistemas, el “Postmaster” que es el responsable de aceptar las comunicaciones con el cliente y autentificar y dar acceso. El “Postgre” se encarga de la administración de los querys y comandos enviados por el cliente. PostgreSQL trabaja bajo el concepto de “process per user”, eso significa un solo procesos cliente por conexión. Tanto el Postmaster como el Postgre deben estar junto en el mismo servidor siempre.
  • 19. El Storage Manager es responsable de la administración general de almacenamiento de los datos, controla todos los trabajos del back-end incluido la administración del buffer, archivos, bloqueos y control de la consistencia de la información. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 20. 3. Almacenamiento y organización de datos La data siempre se va a guardar en “disco” (esto puede no ser literalmente un HD). Esto genera un intenso trabajo de I/O, cuando leemos la data la sacamos del “disco” para pasarla a la RAM, cuando escribimos la bajamos de la RAM al “disco”. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 21. 3. Almacenamiento y Organización de los Datos http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 22. 3. Almacenamiento y organización de datos La data en cualquier DBMS se almacena en pequeños bloques de disco llamadas “páginas”. Estás “páginas” se guardan en un disco en diferentes posiciones físicas, mucha dispersión creará una baja performance en la dbms, en sistemas de almacenamiento como los HD (osea casi el 99%) esto es un gran problema. Afortunadamente ahora existen Soluciones basadas en Discos de Estado Solido que ayudan con Este problema. http://es.wikipedia.org/wiki/Unidad_de_estado_s%C3%B3lido http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Platters Spindle Disk head Sector Arm movement Arm assembly Tracks
  • 23. 3. Almacenamiento y organización de datos http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 El tamaño de una página en PostgreSQL puede ser tan pequeño como 8k (por defecto) hasta un máximo de 32k y no se permite que un tupla pueda ser mas grande que una página de tamaño. Cuando se necesita guardar data muy grande (un video por ejemplo) la data es comprimida y partida en pequeñas “filas” que se guardan en una tabla paralela, esto es transparente para el usuario ( http://www.postgresql.org/docs/8.4/interactive/storage-toast.html ). Las páginas contienen “items” los cuales apuntan a tuplas o entradas de índices junto con metadata. Para el caso de PostgreSQL las operaciones de R/W primero se consulta al Buffer Manager (memoria RAM) si contiene la página.
  • 24.
  • 25.
  • 28. Concurrency Control y Timestamp Management
  • 29. Record Acces PostgreSQL siempre esta añadiendo data, la data modificada o borrada realmente no se modifica o se borra, las páginas donde ellas están almacenadas se marca como “no visible” y se inserta un nuevo registro completo con un clon de toda la data (como se maneja esto en detalle se explica mas adelante). Esto hace que la base de datos ocupe mucho espacio y afecta el “tiempo de acceso” a la data.
  • 30.
  • 31. Tiempo de rotación de los discos para que el brazo encuentre la posición física donde esta la data.
  • 32. Tiempo de transferencia de R/W de la data del disco a la memoria. Hay que buscar que reducir este tiempo para que el acceso a la data sea mas rápido. Ejemplo de un Vacuum Full
  • 33. 3. Almacenamiento y organización de datos http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 La operación de Vacuum es importante porque nos ayuda a mejorar la performance del acceso a la data y la optimización del uso de espacio en disco. El método del Lazy Vacuum es más usado que el Vacuum Full. Ejemplo de un Lazy Vacuum
  • 34. 4. Los índices Cada tipo de búsqueda tienen un tipo de índice adecuado para trabajarla, básicamente un índice es un “archivo” donde esta parte de la data y estructura de una tabla con las “search key” de búsqueda. En simple como es un índice: http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Page 1 Page 2 Page N Page 3 Data File k2 kN k1 Index File
  • 35. 4. Los índices La forma clásica es buscar por extremos y medios (búsqueda binaria), pero esto hace que sea altamente costosa la búsqueda, entonces es preferible organizar los índices en estructuras mas eficientes como los árboles. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 36. 4. Los índices La cantidad de elementos en un nodo es delimitado por una constante predefinida, exactamente no deben haber mas de 2 veces elementos que la constante. Los nuevos elementos son insertados en el nodo que le corresponda según su valor, en caso de que el nodo haya copado su capacidad máxima de elementos entonces el nodo se divide en 2 partes iguales y se crea una “hoja” superior con los índices apropiados. (ejemplo se inserta el elemento 47) http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 37. 4. Los índices Para borrar un elemento se realiza la búsqueda del mismo, al llegar al nodo que lo contiene se bloquea. El nodo se trabaja en “memoria” sacando el elemento a borrar y se reescribe totalmente el nodo, ocasionalmente el nodo queda con menos elementos la cantidad de la constante definida de elementos máximos. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 38.
  • 39.
  • 40. Hash (= y sin soporte de NULL data)
  • 41. GiST (<<, &<, &>, >>, <<|, &<|, |&>, |>>, @>, <@, ~=, &&; estos son operadores para datos geométricos)
  • 42. GIN (<@, @>, =, &&; estos son operadores para datos tipo array y para “Full Text Searching” dentro de documentos a través de lexemas http://es.wikipedia.org/wiki/Lexema ) Rtree fue descontinuado a favor de GiST. Las búsquedas Like e iLike solo usan B-tree si la búsqueda o el patrón en es fijo al inicio, osea lo usa si es Campo like 'pat%' pero no lo usa si es Campo like '%pat' . http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 43. 4. Los índices Los índices “clusterizados” o “no clusterizados”. Un índice clusterizado es aquel donde la data esta ordenada o cercanamente ordenada físicamente con las entradas de la data del índice Una tabla solo puede estar clusterizada solo por un índice, no más. Son altamente apreciados en búsquedas por rangos, pero su costo de mantenimiento es alto debido al reordenamiento que siempre tiene que hacerse a la data. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 44. 4. Los índices Los índices “clusterizados” o “no clusterizados”. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Data entries Data Records Data entries Data Records CLUSTERED UNCLUSTERED
  • 45. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Una consulta simple: select firstname from friend where age = 33; ¿Como hace la base de datos para interpretar esto?
  • 46. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 47. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Esta parte es sencilla: “ El cliente postgresql” se comunica con el servicio del “postmaster” para pasarle una cadena de texto con el query.
  • 48. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Aquí es donde empieza la acción
  • 49. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 El parser transforma el pequeño query en una serie de instrucciones que la base de datos pueda interpretar, por eso es importante escribir querys inteligentes.
  • 50.
  • 51. Luego se descompone “palabra” a “palabra” el query para pasar a la estructura que le corresponde según el query, en este caso a la estructura de un “select”, esto se ve así: http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 52. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 EL Traffic Cop contiene al controlador principal del proceso del PostgreSQL, además se encarga de las comunicaciones entre el Parser, Optimizer, Executor y /commands functions. Los querys complejos pasan al Rewriter (select, insert, etc.), lo que no, se pasa al Utility Commands, generalmente querys simples (alter, create,vacuum, etc.)
  • 53. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 El “planner” es el encargado de generar el “plan de ejecución”, esto es estimar la mejor vía para resolver el query, maneja mediante formulas matemáticas avanzadas la forma de búsqueda de datos y la forma de resolver las relaciones entre tablas. Luego que el planner a calculado el costo de todas las posibles vías de obtener la data escoge cual es el mejor y se lo pasa al “Executor”.
  • 54. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Secuencial Indexada Métodos de búsqueda
  • 55. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Métodos para relacionar tablas Nested loop join Consume mas recursos de memoria pero la cantidad de búsquedas a realizar es menor. http://en.wikipedia.org/wiki/Nested_loop_join
  • 56. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Métodos para relacionar tablas Merge join Requiere que la data este ordenada para ubicar las relaciones, el costo esta justamente en mantener la data ordenada. http://en.wikipedia.org/wiki/Merge_join
  • 57. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Métodos para relacionar tablas Hash join Aparentemente sería la forma mas rápida de acceder a data gracias a la creación de tablas indexadas, pero limitada a una búsqueda de igualdad. http://en.wikipedia.org/wiki/Hash_join
  • 58. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 El “Executor” toma el plan de ejecución que el “planner” le entrega e inicia el procesamiento, ejecuta un “plan tree”. Este “plan tree” tiene varios nodos de ejecución que se van ejecutando uno a uno y de cada uno de ellos se obtiene un set de datos (tuplas). Los nodos tienen subnodos y otros a su vez otros subnodos, tantos como sea necesario.
  • 59. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 60. 6. Concurrencia : Transacciones y Bloqueos El control de concurrencia es el que asegura que muchos usuarios puedan acceder a la data al mismo tiempo. Sin embargo al mismo tiempo se producen muchas operaciones de R/W, estas operaciones se conocen como transacciones. Ninguna transacción debe ver el resultado de otras transacciones inconclusas, si esto no fuera así estaríamos leyendo datos inconsistentes. Una transacción puede incluir dentro de si muchas operaciones en la base de datos. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 61. 6. Concurrencia : Transacciones y Bloqueos Las transacciones deben cumplir el criterio ACID. C onsistency: la transacción solo termina si la data es consistente. I solation: la transacción es independiente de otras transacciones. A tomicity: todas las acciones en la transacción se cumplen o no se cumple ninguna. D urability: cuando la transacción termina el resultado de la misma es perdurable. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 62.
  • 63. Bajo MVCC las transacciones ven una imagen de la data al momento de iniciarla (para ello la data se versiona con un timestamp), esto protege la transacción de inconsistencia de data cuando llegan 2 operaciones de R/W sobre la misma.
  • 64. En simple el MVCC nunca modifica ó elimina la data, nuevas filas de información de van añadiendo conforme se crea o actualiza la data y se marca la anterior como “no visible”, cuando se desea eliminar un dato igualmente se añade una fila de data y se marca como “no visible” al mismo tiempo.
  • 65. La data nunca es “visible” por otros usuarios hasta que no sea “commiteada”.
  • 66. La principal ventaja es que las operaciones de R nunca bloquean a las de W, y viceversa, podemos obtener backups en caliente sin bloquear la db.
  • 67. Como desventaja: consumimos mas disco duro.
  • 68. 6. Concurrencia : Transacciones y Bloqueos http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 69. 6. Concurrencia : Transacciones y Bloqueos http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 70. 6. Concurrencia : Transacciones y Bloqueos http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 71. 6. Concurrencia : Transacciones y Bloqueos Cuando 2 transacciones trabajan sobre el mismo objeto y al menos uno de ellos incluye operaciones de escritura entonces se produce un “conflicto”. Cuando 2 transacciones hacen exactamente lo mismo puede que sean “serializadas” para optimizar el acceso a la data. Antes de que una transacción pueda ejecutar un R/W sobre un objeto en la db debe obtener un “bloqueo”. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 72. 6. Concurrencia : Transacciones y Bloqueos Este bloqueo puede ser Compartido (Share) o Exclusivo (Exclusive), estos son administrador por un “Lock Manager”. Existen varios tipos de bloqueos : http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 73. 6. Concurrencia : Transacciones y Bloqueos Si un bloqueo toma mucho tiempo en ejecutarse entonces se produce un Deadlock, el sistema lo muestra como un Timeout. Un bloqueo puede darse a una tupla, una página o una tabla completa. Existe una tabla de locks, antes de ejecutar uno nuevo se consulta esta tabla. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
  • 74.