SlideShare una empresa de Scribd logo
1 de 25
ADMINISTRACIÓN DE BASE DE
DATOS RELACIONALES EN
POSTGRESQL
ESTUDIANTE: ALAN JUNIOR SILVA DURÁN
INTRODUCCIÓN
• La Administración de Base de Datos (ABD) es un punto de partida para conocer
a detalle los servicios ofrecidos por el sistema PostgreSQL, este es un sistema
de base de datos objeto-relacional que tiene las características de los sistemas
de base de datos propietarios tradicionales. PostgreSQL es libre y el código
fuente completo está disponible. Esta última característica es la más atractiva
para desarrollar aplicaciones empresariales para el mercado latinoamericano,
ya que evita el pago de costosas licencias. El software se ofrece bajo la licencia
PostgreSQL. Este estudio se ha diseñado para proporcionar los conceptos y la
experiencia necesarios para conocer detalladamente el sistema y conocer la
parte correspondiente a la administración.
•
PROBLEMA
• Conocimiento inconsistente e impreciso sobre la administración de Base de
Datos en PostgreSQL, motivos por los cuales se realiza, y los métodos que se
utilizan.
ALCANCE
• Mostrar pasos detallados por los cuales se puede realizar la Administración
de Base de Datos en PostgreSQL, usuarios, ejemplos de líneas de códigos
utilizadas.
OBJETIVO GENERAL
• Proveer conocimientos sobre administrar grupos y usuarios que acceden a una base
de datos, así como a otorgar y revocar privilegios para limitar sus actividades
usando las herramientas que ofrece el sistema de administración de base de datos
PostgreSQL.
OBJETIVOS ESPECÍFICOS
• Obtención y análisis de la información.
• Evaluación de la investigación.
• Preparación del documento mediante perfil propuesto.
DETALLE DE LA INVESTIGACIÓN
ANÁLISIS
• Administración de Base de Datos en PostgreSQL
• PostgreSQL es un sistema de gestión de bases de datos objeto-relacional,
distribuido bajo licencia BSD y con su código fuente disponible libremente. Es el
sistema de gestión de bases de datos de código abierto más potente del
mercado y en sus últimas versiones no tiene nada que envidiarle a otras bases
de datos comerciales. Utiliza un modelo cliente/servidor y usa multiprocesos
para garantizar la estabilidad del sistema. Un fallo en uno de los procesos no
afectará el resto y el sistema continuará funcionando.
• La última serie de producción es la 9.3. Sus características técnicas la
hacen una de las bases de datos más potentes y robustas del mercado. Su
desarrollo comenzo hace más de 16 años, y durante este
tiempo, estabilidad, potencia, robustez, facilidad de administración e
implementación de estándares han sido las características que más se han
tenido en cuenta durante su desarrollo. PostgreSQL funciona muy bien con
grandes cantidades de datos y una alta concurrencia de usuarios
accediendo a la vez a el sistema.
CARACTERÍSTICAS
• Funciones/procedimientos almacenados (stored procedures) en numerosos lenguajes
de programacion, entre otros PL/pgSQL (similar al PL/SQL de oracle), PL/Perl,
PL/Python y PL/Tcl
• Bloques anónimos de código de procedimientos (sentencias DO)
• Numerosos tipos de datos y posibilidad de definir nuevos tipos. Además de los tipos
estándares en cualquier base de datos, tenemos disponibles, entre otros, tipos
geométricos, de direcciones de red, de cadenas binarias, UUID, XML, matrices, etc
• Soporta el almacenamiento de objetos binarios grandes (gráficos, videos, sonido, ...)
• APIs para programar en C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, PHP, Lisp,
Scheme, Qt y muchos otros.
PROCESO / DESARROLLO
• Administración En PostgreSQL
• A pesar de que el administrador local es responsable por la gestión
general de la instalación de Postgre, algunas bases de datos instaladas
pueden ser administradas por otra persona, llamada el administrador de la
base de datos. La responsabilidad de la administración se delega en el
momento en que se crea la base de datos. A un usuario se le puede dar
privilegio para crear nuevas bases de datos y/o nuevos usuarios. Un
usuario que tenga los dos tipos de privilegio puede realizar la mayoría de
las labores administrativas en Postgres, pero normalmente no tendrá los
mismos privilegios de sistema operativo que el administrador local.
• Normalmente, al usuario postgres del sistema operativo no se le permitirá
el acceso desde un shell ni tendrá contraseña asignada, por lo que
deberemos convertirnos en el usuario root, para después convertirnos en
el usuario postgres y realizar tareas en su nombre:
• yo@localhost:~$ su
Password:
# su - postgres
postgres@localhost:~$
• Administración de Cuentas de Usuario
• En la mayor parte de los ambientes, hay un mapeo uno a uno entre la identidad
de los usuarios en el sistema operativo y la identidad de PostgreSQL. En efecto,
tu nombre de usuario en PostgreSQL es frecuentemente identificado con tu
nombre de usuario del sistema operativo.
•
• En algunos casos otras configuraciones son útiles. Por ejemplo, quizá quiera que
la mayoría de los usuarios se identifique por ellos mismos de manera única
mientras les proporciona una cuenta con privilegios de invitado. Quizá también
tiene una aplicación cliente que se identifica por sí misma pero rara vez
identifica al usuario (esto es útil para las aplicaciones que son ejecutadas por
algún usuario dentro de algún proveedor de autentificación).
• Asignación de Privilegios
• Cuando se crea un nuevo usuario, se puede controlar algunas de las
actividades que estos realizan en la base de datos, tal como el permiso de
crear nuevas bases de datos. También puede controlar la actividad de
crear nuevos usuarios. Dar al usuario el derecho de crear nuevas bases de
datos o crear nuevos usuarios es un riesgo. Cuando asigna privilegios a un
usuario con CREATEUSER, ese usuario llega a ser un súper usuario en el
clúster. Se debe decir que ésta es una forma ligeramente diferente: un
usuario que tiene privilegios por CREATEUSER puede sobrepasar todas las
restricciones en el clúster de base de datos. Se puede negar
explícitamente los privilegios con CREATEUSER especificando
NOCREATEUSER, NOCREATEUSER es asumido si no se específica otro valor.
• El usuario postgres puede crear nuevos usuarios utilizando el coman
do createuser:
•
postgres@localhost:~$ createuser yo
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) n
CREATE USER
• Los siguientes comandos eliminan bases de datos y usuarios,
respectivamente:
•
postgres@localhost:~$ dropdb demo
postgres@localhost:~$ dropuser yo
• Privilegios
• Los grupos permiten asignar privilegios a varios usuarios y su gestión es
sencilla:
• create group migrupo;
• Para añadir o quitar usuarios de un grupo, debemos usar:
• alter group migrupo add user marc, ... ;
alter group migrupo drop user marc, ... ;
• Administración de Grupos
• Se pueden definir grupos de usuarios para hacer la administración mucho
más fácil. Cada grupo puede incluir usuarios. Cada usuario puede llegar a
pertenecer a uno o más grupos. Cuando se otorga o revocan privilegios
para un objeto, se puede identificar un usuario específico o un grupo de
usuarios. Cada usuario es automáticamente miembro de un grupo PUBLIC.
PUBLIC es realmente un grupo virtual, no puede agregar o remover
miembros y no puede borrar este grupo, pero se permite asociar
privilegios con PUBLIC.
• Vistas
• Las vistas son pseudo-tablas, esto es, que no son tablas reales, sin
embargo aparecen como tablas ordinarias para seleccionar. Una vista
puede representar un subconjunto de una tabla real, seleccionando ciertas
columnas o ciertas filas de una tabla ordinaria. Incluso, una vista puede
representar a varias tablas unidas. Debido a que a las vistas se les asignan
permisos por separado, se les puede usar para restringir acceso a una
tabla. Las vistas son creadas utilizando el comando CREATE VIEW.
• Copias de Seguridad
• Hacer periódicamente copias de seguridad de la base de datos es una de las tareas
principales del administrador de cualquier base de datos. En PostgreSQL, estas copias
de seguridad se pueden hacer de dos maneras distintas:
• • Volcando a fichero las sentencias SQL necesarias para recrear las bases de datos.
• • Haciendo copia a nivel de fichero de la base de datos.
• pg_dump es un programa cliente de la base de datos (como psql), lo que significa que
podemos utilizarlo para hacer copias de bases de datos remotas, siempre que
tengamos privilegios para acceder a todas sus tablas. En la práctica, esto significa que
debemos ser el usuario administrador de la base de datos para hacerlo.
• Si nuestra base de datos usa los OID para referencias entre tablas, debemos indicárselo
a pg_dump para que los vuelque también (pg_dump -o) en lugar de volver a crearlos
cuando inserte los datos en el proceso de recuperación. Asimismo, si tenemos BLOB en
alguna de nuestras tablas, también debemos indicárselo con el parámetro
correspondiente (pg_dump -b) para que los incluya en el volcado.
• Mantenimiento A la Base de Datos.
• Hay una serie de actividades que el administrador de un sistema gestor de
bases de datos debe tener presentes constantemente, y que deberá
realizar periódicamente. En el caso de PostgreSQL, éstas se limitan a un
mantenimiento y limpieza de los identificadores internos y de las
estadísticas de planificación de las consultas, a una reindexación periódica
de las tablas, y al tratamiento de los ficheros de registro.
• Vacuum
• El proceso que realiza la limpieza de la base de datos en PostgreSQL se llama vacuum.
La necesidad de llevar a cabo procesos de vacuum periódicamente se justifica por los
siguientes motivos:
• • Recuperar el espacio de disco perdido en borrados y actualizaciones de datos.
• • Actualizar las estadísticas de datos utilizados por el planificador de consultas SQL.
• • Protegerse ante la pérdida de datos por reutilización de identificadores de
transacción.
•
• Reindexación
•
• La reindexación completa de la base de datos no es una tarea muy habitual, pero
puede mejorar sustancialmente la velocidad de las consultas complejas en tablas con
mucha actividad.
• Ficheros de Registro
•
• Es una buena práctica mantener archivos de registro de la actividad del servidor.
Por lo menos, de los errores que origina. Durante el desarrollo de aplicaciones
puede ser muy útil disponer también de un registro de las consultas efectuadas,
aunque en bases de datos de mucha actividad, disminuye el rendimiento del
gestor y no es de mucha utilidad. En cualquier caso, es conveniente disponer de
mecanismos de rotación de los ficheros de registro; es decir, que cada cierto
tiempo (12 horas, un día, una semana...), se haga una copia de estos ficheros y
se empiecen unos nuevos, lo que nos permitirá mantener un histórico de éstos
(tantos como ficheros podamos almacenar según el tamaño que tengan y
nuestras limitaciones de espacio en disco).
•
• PostgreSQL no proporciona directamente utilidades para realizar esta rotaci
ón, pero en la mayoría de sistemas Unix vienen incluidas utilidades
como logrotate que realizan esta tarea a partir de una planificación temporal.
• Mantenimiento
• Vacuum
• Para llevar a cabo un vacuum, deberemos ejecutar periódicamente las
sentencias vacuum y analyze. En caso de que haya algún problema o
acción adicional a realizar, el sistema nos lo indicará:
• demo=# VACUUM;
• Reindexación
• Se debe ejecutar el siguiente código para la reindexación:
• demo=# reindex database demo;
• Casos de Exito
Sicirec – Sistema de Gestión de Proceso.
Referencias: Anko Stillma
Fecha de entrega: 31/03/2016
País: Bolivia
Sistema de control de procesos orientado a administrar la información generada
en la cadena de producción y comercialización de madera.
Sistema de control de procesos orientado a administrar la información generada
en la cadena de producción y comercialización de madera. El sistema también
contará con los módulos del Sistema ArBolivia
(http://www.enbolivia.com/cartera/cliente/arbolivia_sitio_web/210/)
aprovechando la experiencia obtenida con este sistema.
• Casos de Exito
Colegio Aleman – La Paz
Entregado: 02/02/2015
País: Bolivia
Etapa de proyecto: Concluido
Referencias: Christina Wrinkler
http://nuevo.ds-lapaz.edu.bo/
MIGA – Movimiento de Integración Gastronómico
Entregado: 10/07/2015
País: Bolivia
Etapa de proyecto: Concluido
Referencias: Adriana Troche
http://www.miga.org.bo
CONCLUSIONES
La Administración de Bases de Datos con PostgreSQL, muestra de forma
práctica la administración de este tipo de sistemas, el cual tiene un amplio
uso en la industria de desarrollo de software. Mientras que las bases de
datos son la herramienta que requieren las empresas que necesitan
almacenar la información que generan, es en este tipo de sistemas donde se
guarda ésta. De ahí la importancia de entender y aplicar los conceptos de
administración estándar que se usa en la industria. Se usa el sistema
PostgreSQL debido a que ofrece los mecanismos que tienen otros sistemas
similares pero de carácter propietario. PostgreSQL se ofrece bajo una licencia
PostgresSQL, lo que permite desde el punto de vista del propietario de un
sistema de información evitar el pago de costosas licencias por el uso de una
base de datos.
ANEXOS
• FUNDACIÓN ALCO – Información al Productor
• 17/06/2015
País: Bolivia
Etapa de proyecto: Concluido
Referencias: Hugo Gutierrez
http://www.informandoalproductor.org.bo
•
•
• NIEMANDSLAND
• 27/06/2015
País: Bolivia
Etapa de proyecto: Concluido
Referencias: Teresa Torres-Heuchel
http://www.niemandsland.net.bo/
GRACIAS

Más contenido relacionado

La actualidad más candente

PostgreSql cheat sheet
PostgreSql cheat sheetPostgreSql cheat sheet
PostgreSql cheat sheetLam Hoang
 
Heap sort (Monticulos)
Heap sort (Monticulos)Heap sort (Monticulos)
Heap sort (Monticulos)leidy2220
 
12 reglas de codd
12 reglas de codd12 reglas de codd
12 reglas de coddenriquesyso
 
Introduction to PostgreSQL
Introduction to PostgreSQLIntroduction to PostgreSQL
Introduction to PostgreSQLJoel Brewer
 
Trends in Database Management
Trends in Database ManagementTrends in Database Management
Trends in Database ManagementMarlon Jamera
 
[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스
[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스
[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스PgDay.Seoul
 
Introduccion datawarehouse
Introduccion datawarehouseIntroduccion datawarehouse
Introduccion datawarehouseEduardo Castro
 
Programación 3: tablas de dispersión
Programación 3: tablas de dispersiónProgramación 3: tablas de dispersión
Programación 3: tablas de dispersiónAngel Vázquez Patiño
 
hashing y colisiones
hashing y colisioneshashing y colisiones
hashing y colisionesemiru48
 
My First 90 days with Vitess
My First 90 days with VitessMy First 90 days with Vitess
My First 90 days with VitessMorgan Tocker
 
Arboles B y Arboles B+
Arboles B y Arboles B+Arboles B y Arboles B+
Arboles B y Arboles B+neltherdaza
 
Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Alexander Calderón
 
OLTP+OLAP=HTAP
 OLTP+OLAP=HTAP OLTP+OLAP=HTAP
OLTP+OLAP=HTAPEDB
 
Archivo secuencial-indexado
Archivo secuencial-indexadoArchivo secuencial-indexado
Archivo secuencial-indexadoAleizapata
 

La actualidad más candente (20)

PostgreSql cheat sheet
PostgreSql cheat sheetPostgreSql cheat sheet
PostgreSql cheat sheet
 
Heap sort (Monticulos)
Heap sort (Monticulos)Heap sort (Monticulos)
Heap sort (Monticulos)
 
12 reglas de codd
12 reglas de codd12 reglas de codd
12 reglas de codd
 
Introduction to PostgreSQL
Introduction to PostgreSQLIntroduction to PostgreSQL
Introduction to PostgreSQL
 
Trends in Database Management
Trends in Database ManagementTrends in Database Management
Trends in Database Management
 
[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스
[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스
[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스
 
Clave foránea
Clave foráneaClave foránea
Clave foránea
 
Ordenamiento parte 2
Ordenamiento parte 2Ordenamiento parte 2
Ordenamiento parte 2
 
Introduccion datawarehouse
Introduccion datawarehouseIntroduccion datawarehouse
Introduccion datawarehouse
 
DB1 Unidad 10: New SQL
DB1 Unidad 10: New SQLDB1 Unidad 10: New SQL
DB1 Unidad 10: New SQL
 
Dbms orientados a objetos
Dbms orientados a objetosDbms orientados a objetos
Dbms orientados a objetos
 
Dispersión y tablas hash
Dispersión y tablas hashDispersión y tablas hash
Dispersión y tablas hash
 
Programación 3: tablas de dispersión
Programación 3: tablas de dispersiónProgramación 3: tablas de dispersión
Programación 3: tablas de dispersión
 
hashing y colisiones
hashing y colisioneshashing y colisiones
hashing y colisiones
 
My First 90 days with Vitess
My First 90 days with VitessMy First 90 days with Vitess
My First 90 days with Vitess
 
Arboles B y Arboles B+
Arboles B y Arboles B+Arboles B y Arboles B+
Arboles B y Arboles B+
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09
 
OLTP+OLAP=HTAP
 OLTP+OLAP=HTAP OLTP+OLAP=HTAP
OLTP+OLAP=HTAP
 
Archivo secuencial-indexado
Archivo secuencial-indexadoArchivo secuencial-indexado
Archivo secuencial-indexado
 

Similar a Administración BD PostgreSQL

Obvios herramientas de un SGDB
Obvios herramientas de un SGDBObvios herramientas de un SGDB
Obvios herramientas de un SGDBliras loca
 
Proyecto teórico práctico
Proyecto teórico prácticoProyecto teórico práctico
Proyecto teórico prácticoTitiushko Jazz
 
Proyecto teórico práctico
Proyecto teórico prácticoProyecto teórico práctico
Proyecto teórico prácticoTitiushko Jazz
 
Perspectiva practica de la administracion de base de datos
Perspectiva practica de la administracion de base de datosPerspectiva practica de la administracion de base de datos
Perspectiva practica de la administracion de base de datosDiana Vélez
 
Fundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQLFundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQLcamposer
 
Mysql posgresql
Mysql posgresqlMysql posgresql
Mysql posgresqldfavila69
 
Motor de base de datos
Motor de base de datos Motor de base de datos
Motor de base de datos maryciprian05
 
Administracion de base_de_datos
Administracion de base_de_datosAdministracion de base_de_datos
Administracion de base_de_datosLeonardoLpez43
 
Potsgrade emerson
Potsgrade emerson Potsgrade emerson
Potsgrade emerson HeidyGuzmn2
 
Base de Datos en Microsoft SQL Server
Base de Datos en Microsoft SQL ServerBase de Datos en Microsoft SQL Server
Base de Datos en Microsoft SQL ServerSuarezJhon
 

Similar a Administración BD PostgreSQL (20)

Obvios herramientas de un SGDB
Obvios herramientas de un SGDBObvios herramientas de un SGDB
Obvios herramientas de un SGDB
 
Base De Datos
Base De DatosBase De Datos
Base De Datos
 
Sql4
Sql4Sql4
Sql4
 
Proyecto teórico práctico
Proyecto teórico prácticoProyecto teórico práctico
Proyecto teórico práctico
 
Proyecto teórico práctico
Proyecto teórico prácticoProyecto teórico práctico
Proyecto teórico práctico
 
SGBD Postgresql
SGBD PostgresqlSGBD Postgresql
SGBD Postgresql
 
Perspectiva practica de la administracion de base de datos
Perspectiva practica de la administracion de base de datosPerspectiva practica de la administracion de base de datos
Perspectiva practica de la administracion de base de datos
 
Fundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQLFundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQL
 
Mysql posgresql
Mysql posgresqlMysql posgresql
Mysql posgresql
 
Motor de base de datos
Motor de base de datos Motor de base de datos
Motor de base de datos
 
Administracion de base_de_datos
Administracion de base_de_datosAdministracion de base_de_datos
Administracion de base_de_datos
 
Db2 10 afinamiento
Db2 10   afinamientoDb2 10   afinamiento
Db2 10 afinamiento
 
Taller 1, 2 y 3
Taller 1, 2 y 3Taller 1, 2 y 3
Taller 1, 2 y 3
 
Continuacion
ContinuacionContinuacion
Continuacion
 
Tema9
Tema9Tema9
Tema9
 
Tema9
Tema9Tema9
Tema9
 
Potsgrade emerson
Potsgrade emerson Potsgrade emerson
Potsgrade emerson
 
Base de dato
Base de  dato Base de  dato
Base de dato
 
Base de dato act4
Base de  dato act4Base de  dato act4
Base de dato act4
 
Base de Datos en Microsoft SQL Server
Base de Datos en Microsoft SQL ServerBase de Datos en Microsoft SQL Server
Base de Datos en Microsoft SQL Server
 

Administración BD PostgreSQL

  • 1. ADMINISTRACIÓN DE BASE DE DATOS RELACIONALES EN POSTGRESQL ESTUDIANTE: ALAN JUNIOR SILVA DURÁN
  • 2. INTRODUCCIÓN • La Administración de Base de Datos (ABD) es un punto de partida para conocer a detalle los servicios ofrecidos por el sistema PostgreSQL, este es un sistema de base de datos objeto-relacional que tiene las características de los sistemas de base de datos propietarios tradicionales. PostgreSQL es libre y el código fuente completo está disponible. Esta última característica es la más atractiva para desarrollar aplicaciones empresariales para el mercado latinoamericano, ya que evita el pago de costosas licencias. El software se ofrece bajo la licencia PostgreSQL. Este estudio se ha diseñado para proporcionar los conceptos y la experiencia necesarios para conocer detalladamente el sistema y conocer la parte correspondiente a la administración. •
  • 3. PROBLEMA • Conocimiento inconsistente e impreciso sobre la administración de Base de Datos en PostgreSQL, motivos por los cuales se realiza, y los métodos que se utilizan. ALCANCE • Mostrar pasos detallados por los cuales se puede realizar la Administración de Base de Datos en PostgreSQL, usuarios, ejemplos de líneas de códigos utilizadas.
  • 4. OBJETIVO GENERAL • Proveer conocimientos sobre administrar grupos y usuarios que acceden a una base de datos, así como a otorgar y revocar privilegios para limitar sus actividades usando las herramientas que ofrece el sistema de administración de base de datos PostgreSQL. OBJETIVOS ESPECÍFICOS • Obtención y análisis de la información. • Evaluación de la investigación. • Preparación del documento mediante perfil propuesto.
  • 5. DETALLE DE LA INVESTIGACIÓN ANÁLISIS • Administración de Base de Datos en PostgreSQL • PostgreSQL es un sistema de gestión de bases de datos objeto-relacional, distribuido bajo licencia BSD y con su código fuente disponible libremente. Es el sistema de gestión de bases de datos de código abierto más potente del mercado y en sus últimas versiones no tiene nada que envidiarle a otras bases de datos comerciales. Utiliza un modelo cliente/servidor y usa multiprocesos para garantizar la estabilidad del sistema. Un fallo en uno de los procesos no afectará el resto y el sistema continuará funcionando.
  • 6. • La última serie de producción es la 9.3. Sus características técnicas la hacen una de las bases de datos más potentes y robustas del mercado. Su desarrollo comenzo hace más de 16 años, y durante este tiempo, estabilidad, potencia, robustez, facilidad de administración e implementación de estándares han sido las características que más se han tenido en cuenta durante su desarrollo. PostgreSQL funciona muy bien con grandes cantidades de datos y una alta concurrencia de usuarios accediendo a la vez a el sistema. CARACTERÍSTICAS
  • 7. • Funciones/procedimientos almacenados (stored procedures) en numerosos lenguajes de programacion, entre otros PL/pgSQL (similar al PL/SQL de oracle), PL/Perl, PL/Python y PL/Tcl • Bloques anónimos de código de procedimientos (sentencias DO) • Numerosos tipos de datos y posibilidad de definir nuevos tipos. Además de los tipos estándares en cualquier base de datos, tenemos disponibles, entre otros, tipos geométricos, de direcciones de red, de cadenas binarias, UUID, XML, matrices, etc • Soporta el almacenamiento de objetos binarios grandes (gráficos, videos, sonido, ...) • APIs para programar en C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, PHP, Lisp, Scheme, Qt y muchos otros. PROCESO / DESARROLLO
  • 8. • Administración En PostgreSQL • A pesar de que el administrador local es responsable por la gestión general de la instalación de Postgre, algunas bases de datos instaladas pueden ser administradas por otra persona, llamada el administrador de la base de datos. La responsabilidad de la administración se delega en el momento en que se crea la base de datos. A un usuario se le puede dar privilegio para crear nuevas bases de datos y/o nuevos usuarios. Un usuario que tenga los dos tipos de privilegio puede realizar la mayoría de las labores administrativas en Postgres, pero normalmente no tendrá los mismos privilegios de sistema operativo que el administrador local.
  • 9. • Normalmente, al usuario postgres del sistema operativo no se le permitirá el acceso desde un shell ni tendrá contraseña asignada, por lo que deberemos convertirnos en el usuario root, para después convertirnos en el usuario postgres y realizar tareas en su nombre: • yo@localhost:~$ su Password: # su - postgres postgres@localhost:~$
  • 10. • Administración de Cuentas de Usuario • En la mayor parte de los ambientes, hay un mapeo uno a uno entre la identidad de los usuarios en el sistema operativo y la identidad de PostgreSQL. En efecto, tu nombre de usuario en PostgreSQL es frecuentemente identificado con tu nombre de usuario del sistema operativo. • • En algunos casos otras configuraciones son útiles. Por ejemplo, quizá quiera que la mayoría de los usuarios se identifique por ellos mismos de manera única mientras les proporciona una cuenta con privilegios de invitado. Quizá también tiene una aplicación cliente que se identifica por sí misma pero rara vez identifica al usuario (esto es útil para las aplicaciones que son ejecutadas por algún usuario dentro de algún proveedor de autentificación).
  • 11. • Asignación de Privilegios • Cuando se crea un nuevo usuario, se puede controlar algunas de las actividades que estos realizan en la base de datos, tal como el permiso de crear nuevas bases de datos. También puede controlar la actividad de crear nuevos usuarios. Dar al usuario el derecho de crear nuevas bases de datos o crear nuevos usuarios es un riesgo. Cuando asigna privilegios a un usuario con CREATEUSER, ese usuario llega a ser un súper usuario en el clúster. Se debe decir que ésta es una forma ligeramente diferente: un usuario que tiene privilegios por CREATEUSER puede sobrepasar todas las restricciones en el clúster de base de datos. Se puede negar explícitamente los privilegios con CREATEUSER especificando NOCREATEUSER, NOCREATEUSER es asumido si no se específica otro valor.
  • 12. • El usuario postgres puede crear nuevos usuarios utilizando el coman do createuser: • postgres@localhost:~$ createuser yo Shall the new user be allowed to create databases? (y/n) y Shall the new user be allowed to create more new users? (y/n) n CREATE USER • Los siguientes comandos eliminan bases de datos y usuarios, respectivamente: • postgres@localhost:~$ dropdb demo postgres@localhost:~$ dropuser yo
  • 13. • Privilegios • Los grupos permiten asignar privilegios a varios usuarios y su gestión es sencilla: • create group migrupo; • Para añadir o quitar usuarios de un grupo, debemos usar: • alter group migrupo add user marc, ... ; alter group migrupo drop user marc, ... ;
  • 14. • Administración de Grupos • Se pueden definir grupos de usuarios para hacer la administración mucho más fácil. Cada grupo puede incluir usuarios. Cada usuario puede llegar a pertenecer a uno o más grupos. Cuando se otorga o revocan privilegios para un objeto, se puede identificar un usuario específico o un grupo de usuarios. Cada usuario es automáticamente miembro de un grupo PUBLIC. PUBLIC es realmente un grupo virtual, no puede agregar o remover miembros y no puede borrar este grupo, pero se permite asociar privilegios con PUBLIC.
  • 15. • Vistas • Las vistas son pseudo-tablas, esto es, que no son tablas reales, sin embargo aparecen como tablas ordinarias para seleccionar. Una vista puede representar un subconjunto de una tabla real, seleccionando ciertas columnas o ciertas filas de una tabla ordinaria. Incluso, una vista puede representar a varias tablas unidas. Debido a que a las vistas se les asignan permisos por separado, se les puede usar para restringir acceso a una tabla. Las vistas son creadas utilizando el comando CREATE VIEW.
  • 16. • Copias de Seguridad • Hacer periódicamente copias de seguridad de la base de datos es una de las tareas principales del administrador de cualquier base de datos. En PostgreSQL, estas copias de seguridad se pueden hacer de dos maneras distintas: • • Volcando a fichero las sentencias SQL necesarias para recrear las bases de datos. • • Haciendo copia a nivel de fichero de la base de datos. • pg_dump es un programa cliente de la base de datos (como psql), lo que significa que podemos utilizarlo para hacer copias de bases de datos remotas, siempre que tengamos privilegios para acceder a todas sus tablas. En la práctica, esto significa que debemos ser el usuario administrador de la base de datos para hacerlo. • Si nuestra base de datos usa los OID para referencias entre tablas, debemos indicárselo a pg_dump para que los vuelque también (pg_dump -o) en lugar de volver a crearlos cuando inserte los datos en el proceso de recuperación. Asimismo, si tenemos BLOB en alguna de nuestras tablas, también debemos indicárselo con el parámetro correspondiente (pg_dump -b) para que los incluya en el volcado.
  • 17. • Mantenimiento A la Base de Datos. • Hay una serie de actividades que el administrador de un sistema gestor de bases de datos debe tener presentes constantemente, y que deberá realizar periódicamente. En el caso de PostgreSQL, éstas se limitan a un mantenimiento y limpieza de los identificadores internos y de las estadísticas de planificación de las consultas, a una reindexación periódica de las tablas, y al tratamiento de los ficheros de registro.
  • 18. • Vacuum • El proceso que realiza la limpieza de la base de datos en PostgreSQL se llama vacuum. La necesidad de llevar a cabo procesos de vacuum periódicamente se justifica por los siguientes motivos: • • Recuperar el espacio de disco perdido en borrados y actualizaciones de datos. • • Actualizar las estadísticas de datos utilizados por el planificador de consultas SQL. • • Protegerse ante la pérdida de datos por reutilización de identificadores de transacción. • • Reindexación • • La reindexación completa de la base de datos no es una tarea muy habitual, pero puede mejorar sustancialmente la velocidad de las consultas complejas en tablas con mucha actividad.
  • 19. • Ficheros de Registro • • Es una buena práctica mantener archivos de registro de la actividad del servidor. Por lo menos, de los errores que origina. Durante el desarrollo de aplicaciones puede ser muy útil disponer también de un registro de las consultas efectuadas, aunque en bases de datos de mucha actividad, disminuye el rendimiento del gestor y no es de mucha utilidad. En cualquier caso, es conveniente disponer de mecanismos de rotación de los ficheros de registro; es decir, que cada cierto tiempo (12 horas, un día, una semana...), se haga una copia de estos ficheros y se empiecen unos nuevos, lo que nos permitirá mantener un histórico de éstos (tantos como ficheros podamos almacenar según el tamaño que tengan y nuestras limitaciones de espacio en disco). • • PostgreSQL no proporciona directamente utilidades para realizar esta rotaci ón, pero en la mayoría de sistemas Unix vienen incluidas utilidades como logrotate que realizan esta tarea a partir de una planificación temporal.
  • 20. • Mantenimiento • Vacuum • Para llevar a cabo un vacuum, deberemos ejecutar periódicamente las sentencias vacuum y analyze. En caso de que haya algún problema o acción adicional a realizar, el sistema nos lo indicará: • demo=# VACUUM; • Reindexación • Se debe ejecutar el siguiente código para la reindexación: • demo=# reindex database demo;
  • 21. • Casos de Exito Sicirec – Sistema de Gestión de Proceso. Referencias: Anko Stillma Fecha de entrega: 31/03/2016 País: Bolivia Sistema de control de procesos orientado a administrar la información generada en la cadena de producción y comercialización de madera. Sistema de control de procesos orientado a administrar la información generada en la cadena de producción y comercialización de madera. El sistema también contará con los módulos del Sistema ArBolivia (http://www.enbolivia.com/cartera/cliente/arbolivia_sitio_web/210/) aprovechando la experiencia obtenida con este sistema.
  • 22. • Casos de Exito Colegio Aleman – La Paz Entregado: 02/02/2015 País: Bolivia Etapa de proyecto: Concluido Referencias: Christina Wrinkler http://nuevo.ds-lapaz.edu.bo/ MIGA – Movimiento de Integración Gastronómico Entregado: 10/07/2015 País: Bolivia Etapa de proyecto: Concluido Referencias: Adriana Troche http://www.miga.org.bo
  • 23. CONCLUSIONES La Administración de Bases de Datos con PostgreSQL, muestra de forma práctica la administración de este tipo de sistemas, el cual tiene un amplio uso en la industria de desarrollo de software. Mientras que las bases de datos son la herramienta que requieren las empresas que necesitan almacenar la información que generan, es en este tipo de sistemas donde se guarda ésta. De ahí la importancia de entender y aplicar los conceptos de administración estándar que se usa en la industria. Se usa el sistema PostgreSQL debido a que ofrece los mecanismos que tienen otros sistemas similares pero de carácter propietario. PostgreSQL se ofrece bajo una licencia PostgresSQL, lo que permite desde el punto de vista del propietario de un sistema de información evitar el pago de costosas licencias por el uso de una base de datos.
  • 24. ANEXOS • FUNDACIÓN ALCO – Información al Productor • 17/06/2015 País: Bolivia Etapa de proyecto: Concluido Referencias: Hugo Gutierrez http://www.informandoalproductor.org.bo • • • NIEMANDSLAND • 27/06/2015 País: Bolivia Etapa de proyecto: Concluido Referencias: Teresa Torres-Heuchel http://www.niemandsland.net.bo/