SlideShare una empresa de Scribd logo
1 de 73
Descargar para leer sin conexión
Administración Avanzada del Sistema operativo
GNU/Linux
Asignatura: 3.2 Administración y análisis de datos
Docente: Msc. Mauricio Arancibia Patzi
Tema 1. Administración de bases de datos
2
CONTENIDO
✔
Introducción a la administración de bases de datos
✔
DBA con PostgreSQL
✔
DBA con MySQL
✔
Bases de datos NoSQL
3
Introducción a la administración de datos
✔
SGBD (Sistema Gestor de Base de Datos) o DBMS (DataBase
Management System) se compone de:
✔ Base de datos (BD): Colección de datos sobre un ente particular (empresa,
organización, etc)
✔ Programas (Software) para acceder y manipular los datos
✔ Otros elementos que puede considerar: Hardware y Usuarios
✔ Los SGBD son integrados y compartidos
✔
Integrado: Unificación de archivos e información (evitando redundacias, mejorando los
accesos)
✔
Compartida: Información utilizada por varios usuarios (total o parcialmente)
Tema 1.1 Introducción a la administración de datos
4
Que exigimos a un SGBD?
✔
Escalabilidad: Capacidad de mejorar con el incremento de recursos
invertidos
✔
Portabilidad: Exportación e importación de datos de una plataforma
a otra
✔
Rendimiento: Recuperación, actualización, concurrencia, etc de una
manera eficiente
✔
Universalidad: Múltiples tipos de datos
✔
Disponibilidad: 7x24x365
✔
Aplicaciones clientes
Tema 1.1 Introducción a la administración de datos
5
Que exigimos a un SGBD?
✔
Escalabilidad: Capacidad de mejorar con el incremento de recursos invertidos
✔
Portabilidad: Exportación e importación de datos de una plataforma a otra
✔
Rendimiento: Recuperación, actualización, concurrencia, etc de una manera
eficiente
✔
Universalidad: Múltiples tipos de datos
✔
Disponibilidad: 7x24x365
✔
Aplicaciones clientes
Tema 1.1 Introducción a la administración de datos
6
Esquema de un SGBD
Tema 1.1 Introducción a la administración de datos
7
Inconvenientes de las SGBD
✔
Redundancia (datos duplicados) e Inconsistencia (datos
contradictorios)
✔
Aislamiento de Datos
✔
Falta de integridad: Complicado mantener ciertas condiciones
en la informacion
✔
Problemas de atomicidad
✔
Problemas en el acceso concurrente
✔
Problemas de seguridad
Tema 1.1 Introducción a la administración de datos
8
Niveles de los SGBD
✔
Nivel Externo (o de Vistas), mayor nivel de abstraccion
✔ Nivel mas cercano a los usuarios y su forma de ver los datos
✔ Describe solo una parte de la BD
✔
Nivel Conceptual (o Lógico), conecta los otros dos niveles
✔ Describe que datos se almacenan en la BD y que relaciones existen entre ellos.
✔ Los programadores trabaja sobre este nivel
✔
Nivel Interno (o Físico), el más cercano al almacenamiento físico
✔ Describe como se almacenan realmente los datos (estructuras de datos complejas de
bajo nivel: registros, ficheros, bytes, datos, organización
✔ Los administradores de bases de datos (DBA) pueden conocer y controlar ciertos
aspectos de este nivel.
Tema 1.1 Introducción a la administración de datos
9
Clasificación de los SGBD
✔
Dependiendo del Modelo de Datos:
✔ Modelo relacional: Un conjunto de tablas
✔ Modelo Dirigido a Objetos: Un conjunto de objetos. Una clase es un tipo de objeto con las
mismas características.
✔ Modelo Relacional dirigido a Objetos
✔ Otros modelos antiguos: Jerárquico y en Red
✔
Dependiente del numero de usuarios:
✔ Monousuario y Multiusuario
✔
Dependiente del numero de sitios en los que esta la BD:
✔ SGBD centralizado
✔ SGBD distribuido
10
Tipos de usuarios de la base de datos
✔
Usuarios informáticos
✔ Diseñadores: lógicos y físicos
✔ Administradores
✔ Analistas y programadores
✔
Usuarios finales: habituales y esporádicos
Tema 1.1 Introducción a la administración de datos
11
Que es un administrador de datos (DBA)
“Un administrador de bases de datos (también
conocido como DBA, en inglés database
administrator) es aquel profesional que
administra las tecnologías de la información y la
comunicación, siendo responsable de los
aspectos técnicos, tecnológicos, científicos,
inteligencia de negocios y legales de bases de
datos.”
Wikipedia
Tema 1.1 Introducción a la administración de datos
12
Habilidades de un DBA
Debido a la importancia de los datos que están a su cargo, el administrador de bases de datos
debe ser experto en TI (tecnología de la información), teniendo particular conocimiento de
DBMS (sistemas de administración de bases de datos) y el lenguaje de consulta SQL. También
debe tener conocimiento de varios tipos de lenguaje de programación para poder
automatizar ciertas tareas.
Tema 1.1 Introducción a la administración de datos
13
Roles de administrador de BD (DBA)
✔
Diseñar de la base de datos
✔
Facilitar la accesibilidad a la BD
✔
Solucionar problemas de rendimiento
✔
Solucionar de problemas de almacenamiento
✔
Replicar los datos
✔
Dar mantenimiento a las tablas
Tema 1.1 Introducción a la administración de datos
14
Tareas del administrador de BD (DBA)
✔
Aprovisionamiento de servidores y bases de datos
✔Instalación y configuración de SGB comerciales en servidores
✔Creación de bases de las BD, asignación de datos y archivos de registro en dispositivos de almacenamiento adecuado.
✔
Mantenimiento de los archivos de bases de datos y objetos
✔Mantenimiento continuo → reducir la fragmentación de archivos
✔Asegurar la coherencia de la estructura de datos lógica y físico.
✔
Recuperación de las bases de datos en caso de fallos
✔Planificar copias de seguridad
✔Generar estrategias de recuperación
✔
Importación y exportación de datos
✔
Seguridad de los datos
✔Implementar políticas de seguridad
✔
Supervisión y solución de problemas de sistemas de bases de datos
15
Personal con el que interactúa el DBA
✔
Usuarios en general: para especificar los requisitos que debe cumplir la BD
✔
Directivos: que fijan los objetivos que la BD debera cumplir con los
objetivos generales de la empresa
✔
Analistas y programadores, para proporcionar información acerca de la
estructura de los datos
✔
Con operadores: procedimientos de recuperación ante fallos, normas de
copias de seguridad, re-arranque, etc
✔
Suministradores: para corregir errores en la BD, estar pendiente de nuevas
herramientas y actualizaciones.
✔
Personal de formación: para preparar planes adecuados de formación
sobre la BD
Tema 1.1 Introducción a la administración de datos
16
SGBD comerciales
✔
SGBD relacionales de código cerrado
✔ Oracle
✔ Microsoft SQL Server
✔ DB2
✔
SGBD relacionales de código abierto
✔ MySQL
✔ PostgreSQL
✔ Firebird
✔ Apache Derby
Tema 1.1 Introducción a la administración de datos
17
Bases de datos libres vs cerradas
Ventajas OpenSource
✔
Bajo costo de adquisición y uso
✔
Innovación tecnológica
✔
Requisitos de hardware menores
✔
Independencia del proveedor
Desventajas OpenSource
✔
Curva de aprendizaje mayor
✔
No existe compañías únicas que
respalden la tecnología
Ventajas Software propietario
✔
Control de calidad
✔
Amplio campo de expansión de uso en
Universidades
✔
Difusión de publicaciones acerca del uso
Desventajas Software Propietario
✔
Cursos de aprendizaje costosos
✔
Derecho exclusivo de innovación
✔
Descontinuación de una línea de
software
✔
Dependencia de proveedores
Tema 1.1 Introducción a la administración de datos
18
Factores de evaluación
OPEN SOURCE (ejemplo MYSQL)
✔
Costo. En la mayor parte el uso y los servicios no tiene costo
✔
Asistencia. Se puede obtener por medio de contratos o de las comunidades.
✔
Funcionalidad Dispone de algunos entornos y herramientas para la
programación
✔
Portabilidad: Se ejecuta en la mayoría de los sistemas operativos
✔
Facilidad de uso. Fácil de usar y administrar, además de poseer
herramientas potente y flexibles.
Tema 1.1 Introducción a la administración de datos
19
Factores de evaluación
PROPIETARIO (ejemplo Oracle)
✔
Costo. Uno de los más costos del mercado
✔
Asistencia. Se obtiene por medio de contratos con empresas que
ofrecen servicio.
✔
Funcionalidad. El entorno de programación es bastante intuitivo y
posee herramientas para el desarrollo.
✔
Portabilidad. Se ejecuta en la mayoría de los sistemas operativos.
✔
Facilidad de uso. Posee herramientas para el manejo, control de
procesos, vigilancia y monitoreo.
Tema 1.1 Introducción a la administración de datos
20
CONTENIDO
✔
Introducción a la administración de bases de datos
✔
DBA con PostgreSQL
✔
DBA con MySQL
✔
Bases de datos NoSQL
21
PostgreSQL
Características principales
✔ Es una base de daos 100% ACID (Atomic, Consistent,
Isolated, Durable)
✔ Soporta disntintos tipos de datos
✔ Incluye herencia entre tablas
✔ Copias de seguridad en caliente (Online/hot backups)
✔ Regionalización por columna
✔ Multi-version Concurry Control
✔ Multiples métodos de autentificación
✔ Acceso encriptado via SSL
✔ Licencia BSD
22
PostgreSQL
Ventajas
✔ Ampliamente popular
✔ Fácil de administrar
✔ Sintaxis SQL
✔ Capacidad de replicación de datos
✔ Soporte empresarial disponible
✔ Multiplataforma
Desventajas
✔ Es más lento comparado con MySQL
✔ Soporte en línea: hay foros oficiales, pero no hay una ayuda obligatoria
✔ Consumo más recurso que MySQL
23
DBA CON POSTGRESQL
Estructura de una instalación desde fuentes
✔
bin/ ubicación de los binarios
✔
include/ contiene los archivos de cabecera del
servidor
✔
lib/ localización de las librerías compartidas
✔
share/ archivos de ejemplo y extensiones de
configuración
Tema 1.2 DBA con PostgreSQL
24
Aplicaciones del cliente
✔
createdb: crea una base datos
✔
createlang: define un nuevo lenguaje procedural en una base de datos
✔
createuser: creación de usuarios
✔
dropdb: borra una base de datos
✔
droplang: borra un lenguaje procedural
✔
dropuser: borra un usuario
✔
ecpg: SQL C pre-pocesador embebido
✔
pg_config: recupera información sobre la versión instalada de PostgreSQL
✔
pg_dump: extrae una base de datos en un fichero script
✔
pg_dumpall: extrae un cluster de base de datos en un fichero script
✔
pg_restore: restaura una base de datos desde un fichero creado con pg_dump
✔
psql: terminal interactivo para la ejucuión de sentencias SQL
✔
reindexdb: reindexa una base de datos
✔
vacuumdb: reorgeniza y analiza una base de datos
25
Aplicaciones servidor
✔
initdb: crea un cluster de base de datos
✔
ipcclean: libera la memoria compartida y los semaforos de un
servidor PostreSQL
✔
pg_controldata: muestra información de control de un cluster de
base de datos
✔
pg_ctl: inicia, para o reinicia un servidor PostgreSQL
✔
pg_resetxlog: reinicia el write-ahead log (WAL) y otras informaciones
de control de un cluster de base de datos
✔
postgres: corre un servidor PostgreSQL en modo “single-user”
✔
postmaster: servidor de base de datos PostgreSQL multiusuario
26
Arquitectura
✔
Cliente/Servidor(postmaster)
✔
Proceso postmaster
✔Comunicación mediante TCP/IP
✔Puerto por defecto: 5432
✔
Memoria compartida
✔Gestiona recursos entre procesos backend
✔Gestiona cache del disco
✔
Almacenamiento físico
✔Normalmente se crea una variable de entorno PGData que apunte al directorio donde se crea el
cluster
✔Instalaciones automáticas (rpm, apt-get) crea un cluster por defecto con tres bases de datos:
template(), template1 y postgres
27
Archivos de configuración principales
✔
Postgresql.conf: fichero de configuración del servidor
✔
pg_hba.conf: fichero de configuración de la autenticación de
los clientes/usuarios y del acceso a las bases de datos del cluster
✔
pg_ident.conf: fichero accesorio al interior, determina como se
realiza la autenticación ident que contiene la correspondencia
entre usuarios del OS y de PostgreSQL
✔
PG_VERSION: fichero de texto con la version de software de
Postgres que crea el cluster
28
Otros archivos
✔
Postmaster.pid: se crea cuando el postmaster arranca,
contiene PID del proceso postmaster
✔
Postmaster.opts: contiene las opciones con las que se ha
iniciado el postmaster
✔
Recovery.conf, recovery.done: si se quiere o se ha hecho una
recuperación
29
Directorios
✔
Base: plantillas y las bases de datos
✔
Template0 (1): definiciones de las tablas del sistema, vistas, funciones y tipos estandar.
✔
Template1 (N): plantilla para crear nuevas BD
✔
Global: tablas e indices comunes a todas las bases de datos
✔
Pgstat.stat: para monitorear estadísticas
✔
pg_control: parámetros del cluster
✔
pg_log: ficheros de seguimiento del servidor
✔
pg_xlog: ficheros de diaro del servidor (WAL)
✔
pg_clog: ficheros de diarrio para transacciones (estado de cada transacción)
✔
pg_mutiaxct: contiene datos sobre el estado multi-transaccional
✔
pg_twhphase: ficheros de estado para transacciones preparadas
✔
pg_subtrans: para realizar “savepoints” en medio de transacciones
✔
pg_tblspc: información sobre tablespaces
30
Creación del cluster de bases de datos: initdb
✔
Creación del cluster:
$initdb –pgdata=$PGDATA –encoding=LATIN1 –locale=es_ES
Se crean tres bases de datos: template0, template1 y postgres
Iniciamos el postmaster del cluster
$postmaster -D $PGDATA o $pg_ctl -D $PGDATA -l $PGLOG start
Paramos el servidor:
$pg_ctl stop
31
Creación del cluster de bases de datos: initdb
Para ver la información inicializada:
$pg_control data/
32
Puesta en marcha y parada del servidor
La puesta en marcha del servidor se puede hacer de forma
manual con dos comandos:
- pg_ctl
Operaciones:
- start: puesta en marcha del servidor
- stop: parada del servidor
- restart: parada del servidor seguidad de puesta en marcha
- reload: envia al postmaster una señal para recargar la informacion de configuracion
- status: comprueba si hay un postamster en marcha y muestra el PID y sus opciones
- postmaster
33
Internacionalización y localización:
✔
Internacionalización: proceso de desarrollo de software de forma que pueda ser
usado en distintas ubicaciones
✔
Localización: proceso de adaptación de una aplicación para que sea usada en
una ubicación específica
✔Ventajas:
✔
Mensajes en varios idiomas
✔
Mensajes en varios juegos de caracteres
✔
Visualización de datos de usuario en diversos juegos de caracteres
✔
Diversos tipos de ordenaciones
✔
Clasificación de caracteres: mayusculas, puntuación, acentos, etc
✔
El cluster puede estar en un conjunto de caracteres y la base de datos en otro:
$ initdb -E unicode
$ createdb -E latin1 base1
34
Configuración del servidor
La configuración del servidor se
efectúa mediante cambios en el
fichero postgresql.conf
35
Conexiones de usuarios
Cuando un cliente inicia una conexión el cluster escanea el
fichero pg.hba.conf para obtener parámetros de conexión.
36
Creación de roles (usuarios)
Los roles son globales en el cluster, se almacenan en la tabla pg_authidy se pueden consultar en las vistas
pg_user y pg_roles.
$ createuser [opción] [rol]
Opciones:
-s, --superuser el rol será un superusuario
-S, --no-superuser el rol no será un superusuario
-d, --createdb el rol podrá crear bases de datos
-D, --no-createdb el rol no podrá crear bases de datos
-r, --createrole el rol podrá crear otros roles
-R, --no-createrole el rol no podrá crear otros roles
-l, --login el rol podrá conectarse (predeterminado)
-L, --no-login el rol no podrá conectarse
-i, --inherit el rol heredará los privilegios de los roles de los cuales es miembro (predeterminado)
-I, --no-inherit rol no heredará privilegios
-c, --connection-limit=N lÍmite de conexiones para el rol (predeterminado: sin lÍmite)
-P, --pwprompt asignar una contraseña al nuevo rol
-E, --encrypted almacenar la constraseña cifrada
-N, --unencrypted almacenar la contraseña sin cifrar
-e, --echo mostrar los comandos a medida que se ejecutan -q, --quiet no escribir ningún mensaje
--help desplegar esta ayuda y salir
--version desplegar información de versión y salir
37
Creación de roles (usuarios)
Opciones de conexión
-h, --host=ANFITRIÓN nombre del servidor o directorio del socket -p, --port=PUERTO puerto del servidor
-U, --username=NOMBRE nombre de usuario con el cual conectarse (no el usuario a crear)
-W, --password pedir contraseña para conectarse
Si no se especifican -s, -S, -d, -D, -r, -R o el ROL, se preguntará interactivamente
Creación de usuarios con SQL
38
Metodos de Conexión
✔
trust: La conexión es autorizada sin ninguna acción adicional.
✔
peer: La conexión es autorizada si el usuario del OS coincide
con el usuario de la base de datos.
✔
password: La conexión se establece si el usuario y la
contraseña coincide con los valores guardados en el pg.shadow.
✔
md5: Similar al método password, con mayor seguridad en la
codificación empleado el algoritmo md5.
✔
reject: La conexión se rechaza
39
Creación de bases de datos
$ createdb [opcion] [nombre] [descripcion]
Opciones:
Con SQL:
40
Creación de bases de datos
Con SQL
41
Esquemas
Contenedores logicos de objetos de bases de datos (tablas,
vistas, procedimientos, etc.)
✔
Tienen propietario
✔
Permiten el uso de bases de datos por multiples usuarios sin
interferencias
✔
Permiten instalar aplicaciones de terceros con el mismo
nombre de los objetios
✔
Esquema.objeto
42
Permisos
Todos los objetos (tablas, vistas, secuencias) tiene propietario
43
Permisos
Opciones:
44
Mantenimiento
✔
Mantenimiento y limpieza identificadores internos
✔
Estadísticas de planificación de consultas
✔
Reindexación periódica de las tablas
✔
Tratamiento de ficheros de registros
45
Vacuum
Proceso de limpieza de una base de datos
✔ Recuperar espacio de disco duro 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 muy antiguos debido al re-uso del
identificador de transacción
$ vacummdb nombreBD -v;
$ VACUMM VERBOSE ANALYZE
✔ Recomendaciones:
✔
Usar VACUUM FULL si alguna tabla ha cambiado mucho y no va a crecer en el futuro
✔
Ejecutar VACUUM diariamente en todas las bases de datos
46
Monitorización
Monitorización de la actividad del servidor PostgreSQL
✔ Uso de Swap (free, vmstat)
✔ Uso del disco (iostat)
✔ Monitoreo interactivo (top, ps, htop, pg_top)
47
Tareas administrativas: Copias de seguridad y
recuperación
Existen tres formas principales de realizar copias de seguridad:
✔ Copia de seguridad de ficheros SO
✔ Volcado SQL usando herramientos PostgreSQL: pg_dump, pg_restore
✔ Volcado en línea y recuperacion en el punto (PITR)
48
Copias de seguridad de ficheros del SO
Método más sencillo, pero el más ineficaz, se trata de ralizar una
copia de todos los fcheros de un cluster
$ su – postgres
$ cd /tmp/backup
$ tar cvfz copia.tar.gz $PGDATA
Desventajas del método:
✔ La base de datos debe estar parada
✔ No se puede recuperar partes del cluster (base de datos, esquemas, tablas, etc)
✔ La recuperación consiste en borrar todo el cluster y descomprimir el fichero
copia
49
Copias de seguridad con volcado SQL
✔
Se emplean herramientas que nos proporcionan PostgreSQL.
✔
Los volcados son muy flexibles y de gran utilidad
✔
Permiten copias de toda la BD o partes de ella
✔
Las herramientas sirven además para transmisión de datos entre bases de datos
Herramientas:
✔pg_dump: vuelca una D o parte de ella en un fichero, bien en texto plano o en formato propio de
PostgreSQL. El servidor debe estar en marcha.
✔pg_dumpall: vuelca un cluster completo
✔pg_restore: recupera los objetos volcados en una copia de seguridaden formato propio
PostgreSQL
✔psql: se usa para recuperar los volcados en texto plano
50
Ejemplos de copias de seguridad
Exportar una base de datos:
$ pg_dump -f nombrebackup.sql -h otro host -p 5432 nombreBD
$ pg_dump -Ft nombreBD>nombrebackup.tar
Exportar un cluster
$ pg_dumpall>micluster.sq
Recuperación con psql
$ psql [bd_destino]<fichero.sql
Recuperación con pg_restore
$ pg_restore -d nombreBD hr.tar
51
CONTENIDO
✔
Introducción a la administración de bases de datos
✔
DBA con PostgreSQL
✔
DBA con MySQL
✔
Bases de datos NoSQL
52
MySQL
Características principales
✔ Velocidad y robustez
✔ Soporta gran cantidad de tipos de datos para las
columnas
✔ Gran portabilidad entre sistemas y plataformas
✔ Aprovecha la potencia de sistemas multiproceso
✔ Flexible sistema de contraseñas y gestión de
usuarios
✔ El servidor soporta mensajes de error en distintas
lenguas
53
Instalación de MySQL
MySQL es un sevidor de Bases de datos SQL que se distribuye en dos versiones:
✔Version GPL (Software Libre)
✔Versión privativa llamada MySQL AB
✔Instalación:
$ sudo apt-get install mysql-server mysql-client
$ sudo mysql_secure_installation
✔Iniciar, reiniciar y detern el servidor MySQL
mysql [OPCION] (stop, start, restart)
✔Conectarse y desconectarse al servidor
$ mysql -u root -p
✔Comandos básicos
show database, use nombreBD, create database nombreBD, quit
54
PHPMyAdmin
Es una aplicación escrita completamente en PHP que provee
una interface para administrar MySQL.
Siendo open-source desde principios de su existencia, ha
recibido soporte de numerosos desarrolladores y traductores
(50 lenguajes)
55
Características de PHPMyAdmin
Características básicas
✔ Creación de bases de datos
✔ Creación de tablas
✔ Mantenimiento de estructur de la tablas
✔ Operaciones especiales en tablas (reparación, optimización, cambio de tipos)
✔ Inserción, modificación y borrado
✔ Navegación y ordenamiento de datos
✔ Búsquedas de información
✔ Consultas (queries)
✔ Exportación de estructuras en varios formatos, con compresió
✔ Configuracion de usuarios
56
Características de PHPMyAdmin
Características avanzadas
✔ Comentarios campo-nivel
✔ Llaves foráneas
✔ Anotaciones en consultas
✔ Diccionario de datos
✔ Historial de consultas SQL
✔ Transformacion de columnas basados en tipos MIME
✔ Configuración de temas (themes)
57
Características de PHPMyAdmin
Características como administrador (DBA)
✔ Manejo de usuarios y privilegios
✔ Chequeo de privilegios de las BD
✔ Verificaciones de información del servidor
✔ Exportación del servidor
✔ Generación y recuperación de backups
✔ Consola :)
58
Interface PHPMyAdmin
59
CONTENIDO
✔
Introducción a la administración de bases de datos
✔
DBA con PostgreSQL
✔
DBA con MySQL
✔
Bases de datos NoSQL
60
Base de datos NoSQL
Bases de datos relaciones
✔ En un RDBMS, los atributos de una entidad son almacenados en columnas
de una tabla
✔ Las columnas son definidas previamente
✔ Los valores son almacenados en todas las columnas de todos los elementos
o filas de las tablas
✔ Las BD relacionales siguen siendo una de las aplicaciones de software con
más exitoso de la historia
✔ Lo utilizan grande corporaciones que almanan terabytes de información
61
Desventajas de las BD relacionales
✔
Costo de lectura de datos, las consultas al modelo relacional
implica juntar grades conjuntos de datos que representa una
complejidad computacional
✔
Escalabilidad, fueron pensadas para correr en un solo servidor.
✔
Representación del modelo, programación con el paradigma
O.O → traducir objetos a un modelo relacional
62
Bases de datos NoSQL
NoSQL no es un sustituto a las BD relaciones, es solo un
movimiento que busca otras opciones para la manipulación de BD
con un rendimiento extremo.
✔ Su mayor ventaja es que están preparados para ser muy rápidos
✔ Según su tipo, cada una sigue una estrategia completamente diferente para
persistir la información
✔ Cada runtime se encarga que mediante el api se acceda directamente a los
datos
✔ Acceder a bajo nivel, tener en memoria los datos que nos interesa, se puede
obtener alto rendimiento en grandes volúmenes de datos
✔ No contiene esquemas (schema), no permiten JOINs
63
Características principales
✔
Fáciles de usar en clusters de balance de carga convencionales
→ facilitan la escalabilidad horizontal
✔
Guardan datos persistentes (no solo caches)
✔
Suelen tener un sistema de consultas propio en vez de usar un
lenguaje de consultas estándar
✔
Tiene propiedades ACID en un nodo cluster
64
Métodos de almacenamiento
✔
Orientado a columnas
✔
Por clave – valor
✔
En forma de documentos
✔
En forma de grafos
65
Orientado a columnas
✔
Guardar ls datos en columnas en lugar de filas
✔
Se almacena una clave y a esta se le asocia una super-columna
con nuestra información
✔
Evita almacenar valores nulos
✔
Se gana mucha velocidad de lectura
✔
No es eficiente para realizar escritura
✔
Utilidades: dataWarehouse, sistemas BI
✔
Software: Cassandra, Hbase
66
BD oriendato por clave - valor
✔
Son las BD más simples en cuanto a uso pero difícil su
implementación
✔
Almacenan valores identificados por una clave
✔
Los datos se almacenan como un arreglo de Bytes (BLOB)
✔
Puede almacenar cualquier tipo de valor
✔
Es irrelevante el tipo de contenido, solo importa la clave y el
valor asociado
✔
Software: Redis, Amazon SimpleDB, Oracle BerkeleyDB
67
BD oriendado a Documentos
✔
Son simplemente un almacén key-value
✔
El valor no se guarda solo como un campo binario, más bien
con un formado definido
✔
Altamente escalable
✔
Software: MongoDB, CouchDB
68
Arquitectura MongoDB
✔
Sencillo, potente y rápido
✔
Hace uso de JSON
69
Arquitectura MongoDB
70
Arquitectura MongoDB
✔
No contiene esquema
✔
Cada documento puede tener distinta estructura
✔
Uso de ODM (Objeto Document Mapper)
✔
Increíblemente flexible
71
BD orientado a grafos
✔
Representa la información como nodos de un grafo y sus
relaciones como aristas
✔
Significa que se puede usar teoría de grafos para recorre la
base de datos
✔
De alto rendimiento
✔
Búsquedas optimizadas en facebook y twitter
✔
Software: Ne4J, Hyperbase-DB, InfoGrid
72
Principales lenguajes donde se puede utilizar las
BD NoSQL
✔
Java
✔
Python
✔
Ruby
✔
PHP
73
Ranking de motores de bases de datos
Fuente: http://db-engines.com

Más contenido relacionado

La actualidad más candente

Consideraciones para elegir un buen DBMS
Consideraciones para elegir un buen DBMSConsideraciones para elegir un buen DBMS
Consideraciones para elegir un buen DBMSevavivez
 
Sistemas de Gestión de Bases de datos
Sistemas de Gestión de Bases de datosSistemas de Gestión de Bases de datos
Sistemas de Gestión de Bases de datosJesús Tramullas
 
SIstemas Manejadores De Base De Datos
SIstemas Manejadores De Base De DatosSIstemas Manejadores De Base De Datos
SIstemas Manejadores De Base De Datosrafael fonseca
 
El dba(administracion de base de datos)
El dba(administracion de base de datos)El dba(administracion de base de datos)
El dba(administracion de base de datos)UTN
 
Sistema GestióN De Bases De Datos
Sistema GestióN De Bases De DatosSistema GestióN De Bases De Datos
Sistema GestióN De Bases De DatosJeisson Nc
 
B a s e d e d a t o s
B a s e   d e   d a t o sB a s e   d e   d a t o s
B a s e d e d a t o sVicky García
 
Caracteristicas dbms (1)
Caracteristicas dbms (1)Caracteristicas dbms (1)
Caracteristicas dbms (1)Javier Plazas
 
Sistemas de gestión de base de datos
Sistemas de gestión de base de datosSistemas de gestión de base de datos
Sistemas de gestión de base de datosjudithmore16
 
Sistemas gestores de bases de datos
Sistemas gestores de bases de datosSistemas gestores de bases de datos
Sistemas gestores de bases de datosMalteadas
 
Administrador de Dase de Datos
Administrador de Dase de DatosAdministrador de Dase de Datos
Administrador de Dase de DatosPablo Juarez
 
La base de datos
La base de datosLa base de datos
La base de datosValerokl
 
Base de datos (conceptos básicos )
Base de datos (conceptos básicos )Base de datos (conceptos básicos )
Base de datos (conceptos básicos )juandavid1118
 

La actualidad más candente (19)

Base de datos
Base de datosBase de datos
Base de datos
 
Consideraciones para elegir un buen DBMS
Consideraciones para elegir un buen DBMSConsideraciones para elegir un buen DBMS
Consideraciones para elegir un buen DBMS
 
Sistemas de Gestión de Bases de datos
Sistemas de Gestión de Bases de datosSistemas de Gestión de Bases de datos
Sistemas de Gestión de Bases de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
SIstemas Manejadores De Base De Datos
SIstemas Manejadores De Base De DatosSIstemas Manejadores De Base De Datos
SIstemas Manejadores De Base De Datos
 
Basededatosconceptosbasicos
BasededatosconceptosbasicosBasededatosconceptosbasicos
Basededatosconceptosbasicos
 
El dba(administracion de base de datos)
El dba(administracion de base de datos)El dba(administracion de base de datos)
El dba(administracion de base de datos)
 
Sistema GestióN De Bases De Datos
Sistema GestióN De Bases De DatosSistema GestióN De Bases De Datos
Sistema GestióN De Bases De Datos
 
B a s e d e d a t o s
B a s e   d e   d a t o sB a s e   d e   d a t o s
B a s e d e d a t o s
 
Abd tema1 parteii
Abd tema1 parteiiAbd tema1 parteii
Abd tema1 parteii
 
Caracteristicas dbms (1)
Caracteristicas dbms (1)Caracteristicas dbms (1)
Caracteristicas dbms (1)
 
Gestores de base de datos
Gestores de base de datosGestores de base de datos
Gestores de base de datos
 
Sistemas de gestión de base de datos
Sistemas de gestión de base de datosSistemas de gestión de base de datos
Sistemas de gestión de base de datos
 
Sistemas gestores de bases de datos
Sistemas gestores de bases de datosSistemas gestores de bases de datos
Sistemas gestores de bases de datos
 
Administrador de Dase de Datos
Administrador de Dase de DatosAdministrador de Dase de Datos
Administrador de Dase de Datos
 
baseIntroduccion bd
baseIntroduccion bdbaseIntroduccion bd
baseIntroduccion bd
 
La base de datos
La base de datosLa base de datos
La base de datos
 
Base de datos (conceptos básicos )
Base de datos (conceptos básicos )Base de datos (conceptos básicos )
Base de datos (conceptos básicos )
 
Bdi unidad 1
Bdi unidad 1Bdi unidad 1
Bdi unidad 1
 

Similar a Administracion de bases de datos

Similar a Administracion de bases de datos (20)

Puestos y responsabilidades del personal de base de datos
Puestos y responsabilidades del personal de base de datosPuestos y responsabilidades del personal de base de datos
Puestos y responsabilidades del personal de base de datos
 
Gestor de Base de Datos
Gestor de Base de DatosGestor de Base de Datos
Gestor de Base de Datos
 
Sistemas Gestores de Base de Datos
Sistemas Gestores de Base de DatosSistemas Gestores de Base de Datos
Sistemas Gestores de Base de Datos
 
Tipos de BDD y SGBD
Tipos de BDD y SGBDTipos de BDD y SGBD
Tipos de BDD y SGBD
 
Abd1 intro
Abd1 introAbd1 intro
Abd1 intro
 
Funciones de un dba
Funciones de un dbaFunciones de un dba
Funciones de un dba
 
ADMINISTRACION DE BASE DE DATOS UNIDAD 1
ADMINISTRACION DE BASE DE DATOS UNIDAD 1ADMINISTRACION DE BASE DE DATOS UNIDAD 1
ADMINISTRACION DE BASE DE DATOS UNIDAD 1
 
Clase Base De Datos I
Clase Base De Datos IClase Base De Datos I
Clase Base De Datos I
 
Base De Datos
Base De DatosBase De Datos
Base De Datos
 
Base De Datos
Base De DatosBase De Datos
Base De Datos
 
introduccion bases de datos
introduccion bases de datosintroduccion bases de datos
introduccion bases de datos
 
Presentación base de datos sesión 1-2019.pdf
Presentación base de datos sesión 1-2019.pdfPresentación base de datos sesión 1-2019.pdf
Presentación base de datos sesión 1-2019.pdf
 
adm. base de datos intro.pdf
adm. base de datos intro.pdfadm. base de datos intro.pdf
adm. base de datos intro.pdf
 
Funciones del DBA (Database Administrator)
Funciones del DBA (Database Administrator)Funciones del DBA (Database Administrator)
Funciones del DBA (Database Administrator)
 
Base de datos
Base de datosBase de datos
Base de datos
 
119318
119318119318
119318
 
Base de datos
Base de datosBase de datos
Base de datos
 
Conceptos bd
Conceptos bdConceptos bd
Conceptos bd
 
diapositivasdesgbd-170504023703.pdf
diapositivasdesgbd-170504023703.pdfdiapositivasdesgbd-170504023703.pdf
diapositivasdesgbd-170504023703.pdf
 
Diapositivas de sgbd
Diapositivas de sgbdDiapositivas de sgbd
Diapositivas de sgbd
 

Último

Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 

Último (10)

Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 

Administracion de bases de datos

  • 1. Administración Avanzada del Sistema operativo GNU/Linux Asignatura: 3.2 Administración y análisis de datos Docente: Msc. Mauricio Arancibia Patzi Tema 1. Administración de bases de datos
  • 2. 2 CONTENIDO ✔ Introducción a la administración de bases de datos ✔ DBA con PostgreSQL ✔ DBA con MySQL ✔ Bases de datos NoSQL
  • 3. 3 Introducción a la administración de datos ✔ SGBD (Sistema Gestor de Base de Datos) o DBMS (DataBase Management System) se compone de: ✔ Base de datos (BD): Colección de datos sobre un ente particular (empresa, organización, etc) ✔ Programas (Software) para acceder y manipular los datos ✔ Otros elementos que puede considerar: Hardware y Usuarios ✔ Los SGBD son integrados y compartidos ✔ Integrado: Unificación de archivos e información (evitando redundacias, mejorando los accesos) ✔ Compartida: Información utilizada por varios usuarios (total o parcialmente) Tema 1.1 Introducción a la administración de datos
  • 4. 4 Que exigimos a un SGBD? ✔ Escalabilidad: Capacidad de mejorar con el incremento de recursos invertidos ✔ Portabilidad: Exportación e importación de datos de una plataforma a otra ✔ Rendimiento: Recuperación, actualización, concurrencia, etc de una manera eficiente ✔ Universalidad: Múltiples tipos de datos ✔ Disponibilidad: 7x24x365 ✔ Aplicaciones clientes Tema 1.1 Introducción a la administración de datos
  • 5. 5 Que exigimos a un SGBD? ✔ Escalabilidad: Capacidad de mejorar con el incremento de recursos invertidos ✔ Portabilidad: Exportación e importación de datos de una plataforma a otra ✔ Rendimiento: Recuperación, actualización, concurrencia, etc de una manera eficiente ✔ Universalidad: Múltiples tipos de datos ✔ Disponibilidad: 7x24x365 ✔ Aplicaciones clientes Tema 1.1 Introducción a la administración de datos
  • 6. 6 Esquema de un SGBD Tema 1.1 Introducción a la administración de datos
  • 7. 7 Inconvenientes de las SGBD ✔ Redundancia (datos duplicados) e Inconsistencia (datos contradictorios) ✔ Aislamiento de Datos ✔ Falta de integridad: Complicado mantener ciertas condiciones en la informacion ✔ Problemas de atomicidad ✔ Problemas en el acceso concurrente ✔ Problemas de seguridad Tema 1.1 Introducción a la administración de datos
  • 8. 8 Niveles de los SGBD ✔ Nivel Externo (o de Vistas), mayor nivel de abstraccion ✔ Nivel mas cercano a los usuarios y su forma de ver los datos ✔ Describe solo una parte de la BD ✔ Nivel Conceptual (o Lógico), conecta los otros dos niveles ✔ Describe que datos se almacenan en la BD y que relaciones existen entre ellos. ✔ Los programadores trabaja sobre este nivel ✔ Nivel Interno (o Físico), el más cercano al almacenamiento físico ✔ Describe como se almacenan realmente los datos (estructuras de datos complejas de bajo nivel: registros, ficheros, bytes, datos, organización ✔ Los administradores de bases de datos (DBA) pueden conocer y controlar ciertos aspectos de este nivel. Tema 1.1 Introducción a la administración de datos
  • 9. 9 Clasificación de los SGBD ✔ Dependiendo del Modelo de Datos: ✔ Modelo relacional: Un conjunto de tablas ✔ Modelo Dirigido a Objetos: Un conjunto de objetos. Una clase es un tipo de objeto con las mismas características. ✔ Modelo Relacional dirigido a Objetos ✔ Otros modelos antiguos: Jerárquico y en Red ✔ Dependiente del numero de usuarios: ✔ Monousuario y Multiusuario ✔ Dependiente del numero de sitios en los que esta la BD: ✔ SGBD centralizado ✔ SGBD distribuido
  • 10. 10 Tipos de usuarios de la base de datos ✔ Usuarios informáticos ✔ Diseñadores: lógicos y físicos ✔ Administradores ✔ Analistas y programadores ✔ Usuarios finales: habituales y esporádicos Tema 1.1 Introducción a la administración de datos
  • 11. 11 Que es un administrador de datos (DBA) “Un administrador de bases de datos (también conocido como DBA, en inglés database administrator) es aquel profesional que administra las tecnologías de la información y la comunicación, siendo responsable de los aspectos técnicos, tecnológicos, científicos, inteligencia de negocios y legales de bases de datos.” Wikipedia Tema 1.1 Introducción a la administración de datos
  • 12. 12 Habilidades de un DBA Debido a la importancia de los datos que están a su cargo, el administrador de bases de datos debe ser experto en TI (tecnología de la información), teniendo particular conocimiento de DBMS (sistemas de administración de bases de datos) y el lenguaje de consulta SQL. También debe tener conocimiento de varios tipos de lenguaje de programación para poder automatizar ciertas tareas. Tema 1.1 Introducción a la administración de datos
  • 13. 13 Roles de administrador de BD (DBA) ✔ Diseñar de la base de datos ✔ Facilitar la accesibilidad a la BD ✔ Solucionar problemas de rendimiento ✔ Solucionar de problemas de almacenamiento ✔ Replicar los datos ✔ Dar mantenimiento a las tablas Tema 1.1 Introducción a la administración de datos
  • 14. 14 Tareas del administrador de BD (DBA) ✔ Aprovisionamiento de servidores y bases de datos ✔Instalación y configuración de SGB comerciales en servidores ✔Creación de bases de las BD, asignación de datos y archivos de registro en dispositivos de almacenamiento adecuado. ✔ Mantenimiento de los archivos de bases de datos y objetos ✔Mantenimiento continuo → reducir la fragmentación de archivos ✔Asegurar la coherencia de la estructura de datos lógica y físico. ✔ Recuperación de las bases de datos en caso de fallos ✔Planificar copias de seguridad ✔Generar estrategias de recuperación ✔ Importación y exportación de datos ✔ Seguridad de los datos ✔Implementar políticas de seguridad ✔ Supervisión y solución de problemas de sistemas de bases de datos
  • 15. 15 Personal con el que interactúa el DBA ✔ Usuarios en general: para especificar los requisitos que debe cumplir la BD ✔ Directivos: que fijan los objetivos que la BD debera cumplir con los objetivos generales de la empresa ✔ Analistas y programadores, para proporcionar información acerca de la estructura de los datos ✔ Con operadores: procedimientos de recuperación ante fallos, normas de copias de seguridad, re-arranque, etc ✔ Suministradores: para corregir errores en la BD, estar pendiente de nuevas herramientas y actualizaciones. ✔ Personal de formación: para preparar planes adecuados de formación sobre la BD Tema 1.1 Introducción a la administración de datos
  • 16. 16 SGBD comerciales ✔ SGBD relacionales de código cerrado ✔ Oracle ✔ Microsoft SQL Server ✔ DB2 ✔ SGBD relacionales de código abierto ✔ MySQL ✔ PostgreSQL ✔ Firebird ✔ Apache Derby Tema 1.1 Introducción a la administración de datos
  • 17. 17 Bases de datos libres vs cerradas Ventajas OpenSource ✔ Bajo costo de adquisición y uso ✔ Innovación tecnológica ✔ Requisitos de hardware menores ✔ Independencia del proveedor Desventajas OpenSource ✔ Curva de aprendizaje mayor ✔ No existe compañías únicas que respalden la tecnología Ventajas Software propietario ✔ Control de calidad ✔ Amplio campo de expansión de uso en Universidades ✔ Difusión de publicaciones acerca del uso Desventajas Software Propietario ✔ Cursos de aprendizaje costosos ✔ Derecho exclusivo de innovación ✔ Descontinuación de una línea de software ✔ Dependencia de proveedores Tema 1.1 Introducción a la administración de datos
  • 18. 18 Factores de evaluación OPEN SOURCE (ejemplo MYSQL) ✔ Costo. En la mayor parte el uso y los servicios no tiene costo ✔ Asistencia. Se puede obtener por medio de contratos o de las comunidades. ✔ Funcionalidad Dispone de algunos entornos y herramientas para la programación ✔ Portabilidad: Se ejecuta en la mayoría de los sistemas operativos ✔ Facilidad de uso. Fácil de usar y administrar, además de poseer herramientas potente y flexibles. Tema 1.1 Introducción a la administración de datos
  • 19. 19 Factores de evaluación PROPIETARIO (ejemplo Oracle) ✔ Costo. Uno de los más costos del mercado ✔ Asistencia. Se obtiene por medio de contratos con empresas que ofrecen servicio. ✔ Funcionalidad. El entorno de programación es bastante intuitivo y posee herramientas para el desarrollo. ✔ Portabilidad. Se ejecuta en la mayoría de los sistemas operativos. ✔ Facilidad de uso. Posee herramientas para el manejo, control de procesos, vigilancia y monitoreo. Tema 1.1 Introducción a la administración de datos
  • 20. 20 CONTENIDO ✔ Introducción a la administración de bases de datos ✔ DBA con PostgreSQL ✔ DBA con MySQL ✔ Bases de datos NoSQL
  • 21. 21 PostgreSQL Características principales ✔ Es una base de daos 100% ACID (Atomic, Consistent, Isolated, Durable) ✔ Soporta disntintos tipos de datos ✔ Incluye herencia entre tablas ✔ Copias de seguridad en caliente (Online/hot backups) ✔ Regionalización por columna ✔ Multi-version Concurry Control ✔ Multiples métodos de autentificación ✔ Acceso encriptado via SSL ✔ Licencia BSD
  • 22. 22 PostgreSQL Ventajas ✔ Ampliamente popular ✔ Fácil de administrar ✔ Sintaxis SQL ✔ Capacidad de replicación de datos ✔ Soporte empresarial disponible ✔ Multiplataforma Desventajas ✔ Es más lento comparado con MySQL ✔ Soporte en línea: hay foros oficiales, pero no hay una ayuda obligatoria ✔ Consumo más recurso que MySQL
  • 23. 23 DBA CON POSTGRESQL Estructura de una instalación desde fuentes ✔ bin/ ubicación de los binarios ✔ include/ contiene los archivos de cabecera del servidor ✔ lib/ localización de las librerías compartidas ✔ share/ archivos de ejemplo y extensiones de configuración Tema 1.2 DBA con PostgreSQL
  • 24. 24 Aplicaciones del cliente ✔ createdb: crea una base datos ✔ createlang: define un nuevo lenguaje procedural en una base de datos ✔ createuser: creación de usuarios ✔ dropdb: borra una base de datos ✔ droplang: borra un lenguaje procedural ✔ dropuser: borra un usuario ✔ ecpg: SQL C pre-pocesador embebido ✔ pg_config: recupera información sobre la versión instalada de PostgreSQL ✔ pg_dump: extrae una base de datos en un fichero script ✔ pg_dumpall: extrae un cluster de base de datos en un fichero script ✔ pg_restore: restaura una base de datos desde un fichero creado con pg_dump ✔ psql: terminal interactivo para la ejucuión de sentencias SQL ✔ reindexdb: reindexa una base de datos ✔ vacuumdb: reorgeniza y analiza una base de datos
  • 25. 25 Aplicaciones servidor ✔ initdb: crea un cluster de base de datos ✔ ipcclean: libera la memoria compartida y los semaforos de un servidor PostreSQL ✔ pg_controldata: muestra información de control de un cluster de base de datos ✔ pg_ctl: inicia, para o reinicia un servidor PostgreSQL ✔ pg_resetxlog: reinicia el write-ahead log (WAL) y otras informaciones de control de un cluster de base de datos ✔ postgres: corre un servidor PostgreSQL en modo “single-user” ✔ postmaster: servidor de base de datos PostgreSQL multiusuario
  • 26. 26 Arquitectura ✔ Cliente/Servidor(postmaster) ✔ Proceso postmaster ✔Comunicación mediante TCP/IP ✔Puerto por defecto: 5432 ✔ Memoria compartida ✔Gestiona recursos entre procesos backend ✔Gestiona cache del disco ✔ Almacenamiento físico ✔Normalmente se crea una variable de entorno PGData que apunte al directorio donde se crea el cluster ✔Instalaciones automáticas (rpm, apt-get) crea un cluster por defecto con tres bases de datos: template(), template1 y postgres
  • 27. 27 Archivos de configuración principales ✔ Postgresql.conf: fichero de configuración del servidor ✔ pg_hba.conf: fichero de configuración de la autenticación de los clientes/usuarios y del acceso a las bases de datos del cluster ✔ pg_ident.conf: fichero accesorio al interior, determina como se realiza la autenticación ident que contiene la correspondencia entre usuarios del OS y de PostgreSQL ✔ PG_VERSION: fichero de texto con la version de software de Postgres que crea el cluster
  • 28. 28 Otros archivos ✔ Postmaster.pid: se crea cuando el postmaster arranca, contiene PID del proceso postmaster ✔ Postmaster.opts: contiene las opciones con las que se ha iniciado el postmaster ✔ Recovery.conf, recovery.done: si se quiere o se ha hecho una recuperación
  • 29. 29 Directorios ✔ Base: plantillas y las bases de datos ✔ Template0 (1): definiciones de las tablas del sistema, vistas, funciones y tipos estandar. ✔ Template1 (N): plantilla para crear nuevas BD ✔ Global: tablas e indices comunes a todas las bases de datos ✔ Pgstat.stat: para monitorear estadísticas ✔ pg_control: parámetros del cluster ✔ pg_log: ficheros de seguimiento del servidor ✔ pg_xlog: ficheros de diaro del servidor (WAL) ✔ pg_clog: ficheros de diarrio para transacciones (estado de cada transacción) ✔ pg_mutiaxct: contiene datos sobre el estado multi-transaccional ✔ pg_twhphase: ficheros de estado para transacciones preparadas ✔ pg_subtrans: para realizar “savepoints” en medio de transacciones ✔ pg_tblspc: información sobre tablespaces
  • 30. 30 Creación del cluster de bases de datos: initdb ✔ Creación del cluster: $initdb –pgdata=$PGDATA –encoding=LATIN1 –locale=es_ES Se crean tres bases de datos: template0, template1 y postgres Iniciamos el postmaster del cluster $postmaster -D $PGDATA o $pg_ctl -D $PGDATA -l $PGLOG start Paramos el servidor: $pg_ctl stop
  • 31. 31 Creación del cluster de bases de datos: initdb Para ver la información inicializada: $pg_control data/
  • 32. 32 Puesta en marcha y parada del servidor La puesta en marcha del servidor se puede hacer de forma manual con dos comandos: - pg_ctl Operaciones: - start: puesta en marcha del servidor - stop: parada del servidor - restart: parada del servidor seguidad de puesta en marcha - reload: envia al postmaster una señal para recargar la informacion de configuracion - status: comprueba si hay un postamster en marcha y muestra el PID y sus opciones - postmaster
  • 33. 33 Internacionalización y localización: ✔ Internacionalización: proceso de desarrollo de software de forma que pueda ser usado en distintas ubicaciones ✔ Localización: proceso de adaptación de una aplicación para que sea usada en una ubicación específica ✔Ventajas: ✔ Mensajes en varios idiomas ✔ Mensajes en varios juegos de caracteres ✔ Visualización de datos de usuario en diversos juegos de caracteres ✔ Diversos tipos de ordenaciones ✔ Clasificación de caracteres: mayusculas, puntuación, acentos, etc ✔ El cluster puede estar en un conjunto de caracteres y la base de datos en otro: $ initdb -E unicode $ createdb -E latin1 base1
  • 34. 34 Configuración del servidor La configuración del servidor se efectúa mediante cambios en el fichero postgresql.conf
  • 35. 35 Conexiones de usuarios Cuando un cliente inicia una conexión el cluster escanea el fichero pg.hba.conf para obtener parámetros de conexión.
  • 36. 36 Creación de roles (usuarios) Los roles son globales en el cluster, se almacenan en la tabla pg_authidy se pueden consultar en las vistas pg_user y pg_roles. $ createuser [opción] [rol] Opciones: -s, --superuser el rol será un superusuario -S, --no-superuser el rol no será un superusuario -d, --createdb el rol podrá crear bases de datos -D, --no-createdb el rol no podrá crear bases de datos -r, --createrole el rol podrá crear otros roles -R, --no-createrole el rol no podrá crear otros roles -l, --login el rol podrá conectarse (predeterminado) -L, --no-login el rol no podrá conectarse -i, --inherit el rol heredará los privilegios de los roles de los cuales es miembro (predeterminado) -I, --no-inherit rol no heredará privilegios -c, --connection-limit=N lÍmite de conexiones para el rol (predeterminado: sin lÍmite) -P, --pwprompt asignar una contraseña al nuevo rol -E, --encrypted almacenar la constraseña cifrada -N, --unencrypted almacenar la contraseña sin cifrar -e, --echo mostrar los comandos a medida que se ejecutan -q, --quiet no escribir ningún mensaje --help desplegar esta ayuda y salir --version desplegar información de versión y salir
  • 37. 37 Creación de roles (usuarios) Opciones de conexión -h, --host=ANFITRIÓN nombre del servidor o directorio del socket -p, --port=PUERTO puerto del servidor -U, --username=NOMBRE nombre de usuario con el cual conectarse (no el usuario a crear) -W, --password pedir contraseña para conectarse Si no se especifican -s, -S, -d, -D, -r, -R o el ROL, se preguntará interactivamente Creación de usuarios con SQL
  • 38. 38 Metodos de Conexión ✔ trust: La conexión es autorizada sin ninguna acción adicional. ✔ peer: La conexión es autorizada si el usuario del OS coincide con el usuario de la base de datos. ✔ password: La conexión se establece si el usuario y la contraseña coincide con los valores guardados en el pg.shadow. ✔ md5: Similar al método password, con mayor seguridad en la codificación empleado el algoritmo md5. ✔ reject: La conexión se rechaza
  • 39. 39 Creación de bases de datos $ createdb [opcion] [nombre] [descripcion] Opciones: Con SQL:
  • 40. 40 Creación de bases de datos Con SQL
  • 41. 41 Esquemas Contenedores logicos de objetos de bases de datos (tablas, vistas, procedimientos, etc.) ✔ Tienen propietario ✔ Permiten el uso de bases de datos por multiples usuarios sin interferencias ✔ Permiten instalar aplicaciones de terceros con el mismo nombre de los objetios ✔ Esquema.objeto
  • 42. 42 Permisos Todos los objetos (tablas, vistas, secuencias) tiene propietario
  • 44. 44 Mantenimiento ✔ Mantenimiento y limpieza identificadores internos ✔ Estadísticas de planificación de consultas ✔ Reindexación periódica de las tablas ✔ Tratamiento de ficheros de registros
  • 45. 45 Vacuum Proceso de limpieza de una base de datos ✔ Recuperar espacio de disco duro 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 muy antiguos debido al re-uso del identificador de transacción $ vacummdb nombreBD -v; $ VACUMM VERBOSE ANALYZE ✔ Recomendaciones: ✔ Usar VACUUM FULL si alguna tabla ha cambiado mucho y no va a crecer en el futuro ✔ Ejecutar VACUUM diariamente en todas las bases de datos
  • 46. 46 Monitorización Monitorización de la actividad del servidor PostgreSQL ✔ Uso de Swap (free, vmstat) ✔ Uso del disco (iostat) ✔ Monitoreo interactivo (top, ps, htop, pg_top)
  • 47. 47 Tareas administrativas: Copias de seguridad y recuperación Existen tres formas principales de realizar copias de seguridad: ✔ Copia de seguridad de ficheros SO ✔ Volcado SQL usando herramientos PostgreSQL: pg_dump, pg_restore ✔ Volcado en línea y recuperacion en el punto (PITR)
  • 48. 48 Copias de seguridad de ficheros del SO Método más sencillo, pero el más ineficaz, se trata de ralizar una copia de todos los fcheros de un cluster $ su – postgres $ cd /tmp/backup $ tar cvfz copia.tar.gz $PGDATA Desventajas del método: ✔ La base de datos debe estar parada ✔ No se puede recuperar partes del cluster (base de datos, esquemas, tablas, etc) ✔ La recuperación consiste en borrar todo el cluster y descomprimir el fichero copia
  • 49. 49 Copias de seguridad con volcado SQL ✔ Se emplean herramientas que nos proporcionan PostgreSQL. ✔ Los volcados son muy flexibles y de gran utilidad ✔ Permiten copias de toda la BD o partes de ella ✔ Las herramientas sirven además para transmisión de datos entre bases de datos Herramientas: ✔pg_dump: vuelca una D o parte de ella en un fichero, bien en texto plano o en formato propio de PostgreSQL. El servidor debe estar en marcha. ✔pg_dumpall: vuelca un cluster completo ✔pg_restore: recupera los objetos volcados en una copia de seguridaden formato propio PostgreSQL ✔psql: se usa para recuperar los volcados en texto plano
  • 50. 50 Ejemplos de copias de seguridad Exportar una base de datos: $ pg_dump -f nombrebackup.sql -h otro host -p 5432 nombreBD $ pg_dump -Ft nombreBD>nombrebackup.tar Exportar un cluster $ pg_dumpall>micluster.sq Recuperación con psql $ psql [bd_destino]<fichero.sql Recuperación con pg_restore $ pg_restore -d nombreBD hr.tar
  • 51. 51 CONTENIDO ✔ Introducción a la administración de bases de datos ✔ DBA con PostgreSQL ✔ DBA con MySQL ✔ Bases de datos NoSQL
  • 52. 52 MySQL Características principales ✔ Velocidad y robustez ✔ Soporta gran cantidad de tipos de datos para las columnas ✔ Gran portabilidad entre sistemas y plataformas ✔ Aprovecha la potencia de sistemas multiproceso ✔ Flexible sistema de contraseñas y gestión de usuarios ✔ El servidor soporta mensajes de error en distintas lenguas
  • 53. 53 Instalación de MySQL MySQL es un sevidor de Bases de datos SQL que se distribuye en dos versiones: ✔Version GPL (Software Libre) ✔Versión privativa llamada MySQL AB ✔Instalación: $ sudo apt-get install mysql-server mysql-client $ sudo mysql_secure_installation ✔Iniciar, reiniciar y detern el servidor MySQL mysql [OPCION] (stop, start, restart) ✔Conectarse y desconectarse al servidor $ mysql -u root -p ✔Comandos básicos show database, use nombreBD, create database nombreBD, quit
  • 54. 54 PHPMyAdmin Es una aplicación escrita completamente en PHP que provee una interface para administrar MySQL. Siendo open-source desde principios de su existencia, ha recibido soporte de numerosos desarrolladores y traductores (50 lenguajes)
  • 55. 55 Características de PHPMyAdmin Características básicas ✔ Creación de bases de datos ✔ Creación de tablas ✔ Mantenimiento de estructur de la tablas ✔ Operaciones especiales en tablas (reparación, optimización, cambio de tipos) ✔ Inserción, modificación y borrado ✔ Navegación y ordenamiento de datos ✔ Búsquedas de información ✔ Consultas (queries) ✔ Exportación de estructuras en varios formatos, con compresió ✔ Configuracion de usuarios
  • 56. 56 Características de PHPMyAdmin Características avanzadas ✔ Comentarios campo-nivel ✔ Llaves foráneas ✔ Anotaciones en consultas ✔ Diccionario de datos ✔ Historial de consultas SQL ✔ Transformacion de columnas basados en tipos MIME ✔ Configuración de temas (themes)
  • 57. 57 Características de PHPMyAdmin Características como administrador (DBA) ✔ Manejo de usuarios y privilegios ✔ Chequeo de privilegios de las BD ✔ Verificaciones de información del servidor ✔ Exportación del servidor ✔ Generación y recuperación de backups ✔ Consola :)
  • 59. 59 CONTENIDO ✔ Introducción a la administración de bases de datos ✔ DBA con PostgreSQL ✔ DBA con MySQL ✔ Bases de datos NoSQL
  • 60. 60 Base de datos NoSQL Bases de datos relaciones ✔ En un RDBMS, los atributos de una entidad son almacenados en columnas de una tabla ✔ Las columnas son definidas previamente ✔ Los valores son almacenados en todas las columnas de todos los elementos o filas de las tablas ✔ Las BD relacionales siguen siendo una de las aplicaciones de software con más exitoso de la historia ✔ Lo utilizan grande corporaciones que almanan terabytes de información
  • 61. 61 Desventajas de las BD relacionales ✔ Costo de lectura de datos, las consultas al modelo relacional implica juntar grades conjuntos de datos que representa una complejidad computacional ✔ Escalabilidad, fueron pensadas para correr en un solo servidor. ✔ Representación del modelo, programación con el paradigma O.O → traducir objetos a un modelo relacional
  • 62. 62 Bases de datos NoSQL NoSQL no es un sustituto a las BD relaciones, es solo un movimiento que busca otras opciones para la manipulación de BD con un rendimiento extremo. ✔ Su mayor ventaja es que están preparados para ser muy rápidos ✔ Según su tipo, cada una sigue una estrategia completamente diferente para persistir la información ✔ Cada runtime se encarga que mediante el api se acceda directamente a los datos ✔ Acceder a bajo nivel, tener en memoria los datos que nos interesa, se puede obtener alto rendimiento en grandes volúmenes de datos ✔ No contiene esquemas (schema), no permiten JOINs
  • 63. 63 Características principales ✔ Fáciles de usar en clusters de balance de carga convencionales → facilitan la escalabilidad horizontal ✔ Guardan datos persistentes (no solo caches) ✔ Suelen tener un sistema de consultas propio en vez de usar un lenguaje de consultas estándar ✔ Tiene propiedades ACID en un nodo cluster
  • 64. 64 Métodos de almacenamiento ✔ Orientado a columnas ✔ Por clave – valor ✔ En forma de documentos ✔ En forma de grafos
  • 65. 65 Orientado a columnas ✔ Guardar ls datos en columnas en lugar de filas ✔ Se almacena una clave y a esta se le asocia una super-columna con nuestra información ✔ Evita almacenar valores nulos ✔ Se gana mucha velocidad de lectura ✔ No es eficiente para realizar escritura ✔ Utilidades: dataWarehouse, sistemas BI ✔ Software: Cassandra, Hbase
  • 66. 66 BD oriendato por clave - valor ✔ Son las BD más simples en cuanto a uso pero difícil su implementación ✔ Almacenan valores identificados por una clave ✔ Los datos se almacenan como un arreglo de Bytes (BLOB) ✔ Puede almacenar cualquier tipo de valor ✔ Es irrelevante el tipo de contenido, solo importa la clave y el valor asociado ✔ Software: Redis, Amazon SimpleDB, Oracle BerkeleyDB
  • 67. 67 BD oriendado a Documentos ✔ Son simplemente un almacén key-value ✔ El valor no se guarda solo como un campo binario, más bien con un formado definido ✔ Altamente escalable ✔ Software: MongoDB, CouchDB
  • 68. 68 Arquitectura MongoDB ✔ Sencillo, potente y rápido ✔ Hace uso de JSON
  • 70. 70 Arquitectura MongoDB ✔ No contiene esquema ✔ Cada documento puede tener distinta estructura ✔ Uso de ODM (Objeto Document Mapper) ✔ Increíblemente flexible
  • 71. 71 BD orientado a grafos ✔ Representa la información como nodos de un grafo y sus relaciones como aristas ✔ Significa que se puede usar teoría de grafos para recorre la base de datos ✔ De alto rendimiento ✔ Búsquedas optimizadas en facebook y twitter ✔ Software: Ne4J, Hyperbase-DB, InfoGrid
  • 72. 72 Principales lenguajes donde se puede utilizar las BD NoSQL ✔ Java ✔ Python ✔ Ruby ✔ PHP
  • 73. 73 Ranking de motores de bases de datos Fuente: http://db-engines.com