Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Proyecto Final
PostgreSQL es una de las opciones más interesantes en bases de datos relacionales open-
source. Michael Stonebraker inició el proyecto bajo el nombre Post Ingres a mediados de los
80’s con la idea de solucionar problemas existentes en las bases de datos en esa época.
MySQL fue por mucho tiempo el motor más popular; pero hoy es propiedad de Oracle y esto
limita su evolución. Es gratuito y libre, además de que hoy nos ofrece una gran cantidad de
opciones avanzadas. De hecho, es considerado el motor de base de datos más avanzado en la
actualidad.
• OPEN SOURCE: Una de las principales razones para usar PostgreSQL es que está
desarrollado bajo código abierto (Open Source), lo podemos encontrar disponible en
su página oficial y descargarlo sin ningún tipo de costo. Gracias a su libertad en el
desarrollo permite tener a profesionales colaboradores por todo el mundo que
constantemente están incluyendo nuevos desarrollos.
• MULTIPLATAFORMA: Se encuentra disponible prácticamente en todas las
versiones de los sistemas operativos Unix y también para Windows, dándonos la
oportunidad de tenerla instalada localmente, realizar una conexión remota a través de
su administrador PgAdmin o también desde la aplicación que se esté desarrollando.
• FACILIDAD DE MANEJO: PgAdmin es el principal administrador de base de datos
de Postgre, es muy sencillo de manejar, esta herramienta prácticamente hace todo con
unos simples clics, siendo óptima para las personas que no tienen mucha experiencia.
• SEGURIDAD DE LA INFORMACIÓN.
El Proyecto
“Salvando Vidas” es un proyecto de monitoreo de accidentes automovilísticos. La
finalidad de este proyecto es poder facilitar la correcta atención paramédica a los
involucrados en un accidente automovilístico. Esto se logra mediante el registro de los
ciudadanos en una base de datos donde se almacenarán los datos básicos de su expediente
clínico, incluyendo enfermedades crónicas, antecedentes personales y familiares, alergias y
datos generales del paciente. Esta base de datos podrá ser accedida por los paramédicos.
Requerimientos Funcionales
RF1 Administrador/Médico El médico será el único encargado de dar de alta, dar de baja
(Eliminar), Buscar y Editar los datos de todos los pacientes
registrados por él.
RF2 Administrador/Médico Al iniciar se abrirá una pestaña en el navegador donde pedirá
dos campos a llenar, que será usuario y password, además de
un botón que diga aceptar el cual al presionarlo revisará que
estén correctos tanto el usuario, como la contraseña y dar
acceso al Administrador/Médico.
RF3 N/A El logo será un corazón atravesado por una onda del
electrocardiograma, el cual será de color negro con fondo azul
y estará ubicado en la parte superior derecha de la página.
RF4 N/A Se tendrá un menú que contará con las secciones: Dar de alta,
Dar de baja, Editar, Buscar paciente y Salir, el cual al dar clic
nos direccionará a lo indicado en cada sección.
RF5 N/A En la parte superior izquierda se mostrará el nombre del
médico el cual se encuentra en sesión.
RF6 N/A Sección Dar de alta: Se abrirá una nueva pestaña con las
opciones de nuevo registro con los siguientes campos:
Nombre(s), Apellido Materno, Apellido Paterno, RFC, Peso,
Talla, Alergias, Sexo, Edad, Ocupación, Motivo de la Consulta,
Antecedentes personales Patológicos y no Patológicos,
Antecedentes Familiares, Antecedentes Gineco-obstétricos y
Exploración física donde el RFC es el ID.
RF7 N/A Sección dar de baja: se contará con una barra de búsqueda en
la cual se debe escribir el apellido paterno del paciente.
RF8 N/A Al dar clic en el botón de buscar se redireccionará a una
pestaña donde mostraremos en una
tabla los campos: nombre, apellido paterno, apellido
materno, edad, y sexo con un botón al final el cual al hacer
clic eliminara según sea el botón seleccionado.
RNF10 El identificador para cada paciente será asignado siguiendo un patrón similar al del RFC
RNF14 La restricción del súper administrador se validará mediante un inicio de sesión único
RNF16 El súper Administrador será el único que podrá dar de alta otros médicos
RNF22 La base de datos contará con mecanismos de replicación necesarios para garantizar la
disponibilidad de los datos
Diagramas
Diagrama Entidad-Relación 1
Diagrama Relacional 1
Diccionario de Datos
Guardar información de los roles usados en la base de datos y los usuarios a los que están
ligados asi como las contraseñas de los usuarios del rol
2.- Empleado
Guardar información de los empleados con el fin de tener un control del personal
Guarda información de los pacientes y sus antecedentes médicos asi como sus estudios
recientes
4.- Percance
Guarda información cerca de los padecimientos del paciente asi como del diagnostico, el
motivo de la consulta y el paramédico que lo atiende
------EMPLEADO------
-------PACIENTE-------
Indices
Como índice secundario con campo clave, se empleará el campo “RFC” de la tabla
paciente, debido a que éste es una llave secundaria y se emplea en las consultas.
Migración
Los comandos a ejecutar para la creación de los archivos .csv de la base de datos
“salvandovidas” en PostgreSQL 10 son los siguientes:
-Rol
-Empleado
COPY empleado ("cedprof", "pass", "Nombre", "Apaterno",
"Amaterno", "rol", "Activo")
TO 'C:\salvando\empleado.csv' DELIMITERS ',' WITH CSV
HEADER;
-Paciente
-Percance
-Empleado historial
-Paciente historial
Consideraciones
• Las sintaxis de los triggers varían entre gestores. Investigar la sintaxis del gestor a
usar.
• Investigar asignación de roles en el gestor a usar. Puede variar la manera de
asignación.
• Investigar la sintaxis de índices en el gestor receptor.
• Aplicar replicación y respaldo correspondientes.
• Aplicar herramientas de monitoreo correspondientes
Tipos de datos
A continuación, se muestra una tabla con equivalencias de los tipos de datos utilizados en
esta base de datos con otros gestores.
Auditoria
Para realizar auditorías en esta base de datos se hará uso únicamente de los triggers antes
mencionados, además de realizar la activación de los archivos log en el sistema gestos.
Para activar los logs de PostgreSQL y poder visualizar los query que estamos ejecutando
en tiempo real debemos editar el archivo de configuración de PostgreSQL de la siguiente
manera:
nano /etc/postgresql/8.4/main/postgresql.conf
log_statement = ‘all’
/etc/init.d/postgresql restart
Luego para visualizar los logs en tiempo real aplicamos la siguiente instrucción:
tail -f /var/log/postgresql/postgresql-8.4-main.log
Para Windows son los mismos pasos solo que cambiará la ruta en vez de ser etc será la
ruta donde este postgresql por default es
Para verificar los logs en tiempo real en la línea de comandos o cmd se usa el comando:
Eventvwr
Monitoreo
Para realizar el monitoreo de la base de datos, se decidió utilizar la herramienta Zabbix.
Zabbix es un sistema para monitorear la capacidad, el rendimiento y la disponibilidad de los
servidores, equipos, aplicaciones y bases de datos. Además, ofrece características avanzadas
de monitoreo, alertas y visualización, que incluso, algunas de las mejores aplicaciones
comerciales de este tipo no ofrecen.
• Agregar y monitorear servidores, equipos, servicios, aplicaciones específicas,
dispositivos físicos como impresoras, routers, entre otros
• Reporte en tiempo real a través de gráficas, datos y alertas visuales que muestran
el estado y rendimiento de los servicios y equipos monitoreados
• Inventario de equipos para mantener al día la infraestructura tecnológica
• Mapas de la red de la empresa
• Configuración de notificaciones vía correo electrónico
• Perfiles de usuarios para el uso del administrador Web
• Permite monitorear las métricas en tiempo real recopiladas de máquinas virtuales,
servidores del sistema o cualquier tipo de dispositivo de red conectado.
• Las métricas ayudan a identificar el estado de su infraestructura de TI y los
problemas relacionados con los componentes de hardware y software.
• Las métricas o la información se pueden almacenar en una variedad de formatos
de base de datos que se pueden analizar más adelante para comprender y mejorar
la condición del servidor.
• Esta aplicación utiliza una arquitectura cifrada cliente-servidor y un método de
comunicación entre los agentes del servidor y los clientes para recopilar los datos
y enviarlos al servidor.
• Los datos o la información están bien protegidos mientras se transfieren a través
de redes inseguras debido a su cifrado.
• Los datos o las métricas se pueden ver o analizar y la configuración del sistema se
puede configurar a través de una interfaz web intuitiva.
• Zabbix es maduro, una plataforma de nivel empresarial para monitorear entornos
de TI a gran escala.
• Ofrece agentes para monitorear host remoto.
• Zabbix también admite la supervisión del sistema a través de SNMP, TCP e ICMP.
Replicacion
Para la creación de una réplica de base de datos usando PostgreSQL 10 en Ubuntu 18.04,
se emplearán dos maquina virtuales cada una con su instancia de PostgreSQL corriendo.
Lo primero que se deberá hacer es crea un usuario con permisos de replicación sobre la
base, el cual será usado para darle acceso de replicación en la bd-esclavo.
Se ubica la línea
wal_level = logical
Y se reinicia postgresql
Lo siguiente es montar la base de datos en ambas instancias, y una vez compleatado esto,
se usan las siguientes sentencias SQL en la instancia maestra
El ultimo comando se repite hasta la cantidad de tablas a replicar, con esto terminaríamos
en la instancia maestra.
Pasando a la instancia esclavo se introducen las siguientes sentencias SQL