Protocolos Gollum PDF
Protocolos Gollum PDF
PROTOCOLOS PARA LA
CREACIÓN Y USO DE BASES
DE DATOS ONLINE
Base de datos Gollum
Joan Gimenez.
Renaud de Stephanis
Febrero 2019
1
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
2
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
• Columnas
• Tipos de datos
• Explicación de los tipos de datos que menos pesan.
• Definir una PK
• Definir una FK
• Definir restricciones (CHECK)
8. Conexión a R
3
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
• El valor de cada fila debe ser único (no se puede repetir en otra fila).
• No puede contener valores nulos
Si no cumpliera alguna de las dos condiciones, alguna de las filas quedaría sin identificar
y esto imposibilitaría el funcionamiento de la base de datos relacional.
4
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
5
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
JOIN notas_publicadas
ON notas_enviadas.nota_id=notas_publicadas.nota_id
WHERE impacto > 5;
La ultima query es más compleja. En ella, cogemos datos de dos tablas diferentes
haciendo lo que se llama “JOIN”. La transcripción sería à seleccionar la columna
“medio_id” de la tabla notas_enviadas y la columna impacto de la tabla
“notas_publicadas”. Unimos las observaciones de la tabla “notas_enviadas” y la tabla
“notas_publicadas” en todos los casos donde la “nota_id” de “notas_enviadas” sea igual
a “nota_id” de la tabla “notas_publicadas”.
6
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
sobre una mesa y se pasa todo lo escrito en la libreta con rotuladores de diferentes
colores para los diferentes elementos, como, por ejemplo:
- Azul: tablas
- Rojo: relaciones
La función de este paso no es nada más que clarificar y dar espacio a la base de datos
para comprenderla mejor y poder encontrar errores. Probablemente la primera versión
de la base de datos sobre el mantel no quedará muy limpia y clara, y es posible que se
tenga que rehacer a limpio.
[Fotos de los manteles sucios y limpios].
Cuando tengamos la base de datos clara, estructurada y sin errores sobre papel,
podremos pasarla al ordenador, usando los diferentes softwares que nos permitirán
crear, visualizar y hacer cambios en la base de datos y su estructura. Esto se hace
mediante RDBMS (Relational Database Management Systems, 1.6). Los diferentes
programas que vamos a utilizar se detallan en el siguiente protocolo sobre presentación
y descarga de los mismos.
7
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
2. Descargar
3. Elección del sistema operativo: disponible para Mac, Windows y Linux. Aquí
procederemos con Windows.
8
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
9
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
7. Descarga finalizada
10
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
11
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
12
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
13
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
Esta interfaz no es muy user-friendly y por eso se usa pgAdmin4, un ambiente de trabajo
mucho más visual, y donde se puede trabajar con clicks además de con queries SQL.
PgAdmin4 ya está instalado en el ordenador después de la instalación de PostgreSQL,
así que procedemos a buscarlo en el equipo.
14
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
Vista principal del programa: A partir de ahora nos centraremos en la parte izquierda, la
barra que recorre la pantalla de arriba abajo (barra de operaciones)
15
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
16
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
SERVIDORES
BASES DE DATOS
ESTRUCTURA
TABLAS
No hace falta descargar ningún programa, ya que se trata de una página web. El
objetivo de nuestro uso de ElephantSQL es obtener los parámetros de una base de
datos online (1.5) para poderla administrar desde pgAdmin4.
17
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
18
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
ElephantSQL funciona mediante instancias. Podemos alojar una base de datos por instancia.
Dependiendo de las prestaciones que necesitemos (espacio, velocidad), alojaremos la base de
datos usando un plan de hosting u otro, Para crear una instancia tenemos que hacer click en
Create New Instance.
19
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
Aquí podemos ver todas las opciones de Región. Utilizamos la que más nos convenga y
hacemos click en Review.
20
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
1. Server: servidor.
2. User & Default database: nombre de la base de datos y nombre de usuario.
3. Password: contraseña para acceder al servidor.
4. Current database size: tamaño actual, está vacío porque lo acabamos de crear.
5. Max database size: 20 Mb, cambia según el plan que escojamos.
21
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
2. Abrir pgAdmin4:
22
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
23
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
ElephantSQL PgAdmin4 Comentarios
Server Host No introducir
name/adress la parte entre
paréntesis de
ElephantSQL
User & Default Maintenance
database database
User & Default Username
database
Password Password
24
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
25
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
3. Escoger versión y sistema operativo. Está disponible para Windows, Mac y Linux.
Aquí vamos a seguir el procedimiento para Windows, pero es similar para el resto
de sistemas operativos. Hacer click en Download.
26
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
27
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
28
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
Introducimos los valores en los diferentes campos y hacemos click en Connect. Como
podemos comprobar, en el recuadro llamado Connection message en la parte inferior,
todavía pone Disconnected.
29
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
30
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
Si nos hemos conectado correctamente, el icono que acompaña el nombre del servidor
va a cambiar a la cabeza de un elefante.
31
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
32
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
4.2. Usando un plan de pago: Blissful Butterfly en este caso. En vez de encontrar
una lista muy larga y ordenada alfabéticamente, sencillamente encontraremos la
base de datos que nos ha sido asignada. Además, el funcionamiento de la base de
datos será mucho más rápido. En este caso, la base de datos asignada es oyaglupl,
y es la única que aparece. Los pasos para la conexión al servidor, utilizando un plan
de pago son exactamente los mismos que los descritos anteriormente para TIny
turtle.
33
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
34
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
35
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
- Columnas: definir nombres para las columnas y tipo de datos que vamos a
introducir en ellas. Para añadir una columna nueva, hay que hacer click en el
signo + de la derecha de la pantalla.
36
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
Cuando hacemos click sobre +, aparece una fila en el menú con varios campos:
- Name: nombre para la columna
- Data type: tipo de datos que va a alojar la columna
- Length: número de caracteres
- Precision:
- Not NULL?: sirve para indicar si todas las filas de la columna tienen que tener
un valor, o, al contrario, puede haber registros nulos.
- Primary key?: sirve para definir la condición de una columna como Primary key,
es decir, que sus valores sean únicos y no nulos (1.2).
La primera tabla que vamos a crear será una tabla de protocolos, donde cada protocolo
tendrá un identificador numérico (entero, integer), llamado protocolo_id_code, un
nombre (text), llamado protocolo_id, y finalmente una columna que nos identificará al
autor del protocolo con un identificador numérico (entero, integer), llamado
autor_id_code.
37
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
38
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
Hacemos click en el signo + de la parte derecha de la pantalla para añadir una primary
key. Aparecen dos columnas, una para definir el nombre de la primary key y otra para
definir qué columna, de las definidas anteriormente, va a ser la primary key. Para definir
todo esto, debemos hacer click en icono de edición (libreta con lápiz).
39
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
Para definir la columna que actuará como primary key debemos hacer click en la
pestaña Definition.
40
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
41
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
Para comprobar que la tabla y la primary key ha sido creada correctamente, tenemos
que fijarnos en la barra de operaciones. En primer lugar, la tabla tabla_test tiene que
aparecer.
8. Relacionar tablas: para relacionar la tabla table_test con otra, primero tenemos que
crear otra tabla. El procedimiento es exactamente el mismo que el que acabamos de
seguir. La tabla que crearemos será una tabla que informe de los autores de los
protocolos, con una columna de identificadores: autor_id_code, y otra de nombres:
autor_id. Si observamos, autor_id_code es una de las columnas de la tabla
table_test. Para relacionar las tablas haremos que autor_id_code sea una foreign
key en la tabla table_test, así, solo con los identificadores numéricos podremos saber
quién es el autor de cada protocolo.
42
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
Para crear la Foreign key debemos ir a la tabla table_test de nuevo y hacer click
derecho en la pestaña Constraints à Create à Foreign key
Aparece un menú para definir las características de la foreign key, en primer lugar, en
la pestaña General definimos el nombre. Es recomendable usar el nombre de la
columna + _fk, para indicar que se trata de una foreign key. En pgAdmin4, la foreign
key se representa como una llave plateada.
43
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
Para definir las columnas que queremos relacionar hacemos click en la pestaña
Columns. Ahí encontramos varios desplegables a rellenar:
- Local column: columna que actuará como foreign key. Autor_id_code.
- References: tabla a la cual pertenece la columna original. Autores. Sale
[Link] porque la tabla autores está dentro del Schema public.
- Referencing: columna de la tabla original a la que nos referimos.
Autor_id_code.
Hacemos click en el signo + que sale a la derecha del menú para añadir la relación.
44
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
En este caso hemos creado una relación 1 – infinito, ya que un protocolo puede tener
un solo autor, pero un autor puede haber escrito más de un protocolo.
45
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
2. Aparece un mensaje: Select Look and Feel for DbVisualizer. En el botón inferior se da
una cuenta atrás, y continuará en Windows a no ser que lo cambiemos.
46
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
3. Programa abierto, aspecto general. Para realizar la conexión tenemos que hacer click en
el icono señalado. A partir de aquí, seguir los pasos del protocolo 3.4 para conectar
PostgreSQL con DbVisualizer (Pasos 5 y 6).
4. Una vez seguidos los pasos 5 y 6 del protocolo 3.4, nuestra base de datos online estará
conectada a DbVisualizer. Cuando esto suceda, podremos desplegar la pestaña
Database Connection y nos saldrá el nombre de la base de datos que hayamos
proporcionado, que a la vez es el que nos proporcionó ElephantSQL. Hacemos click en
el signo + a la izquierda del nombre de la base de datos.
47
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
5. Se nos despliegan 3 pestañas más. Una que se llama information_schema, otra pg_catalog y
otra public. Hacemos doble click encima del nombre public.
48
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
8.
49
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
9. Una vez se hayan cargado todas las tablas y relaciones veremos lo siguiente, con más o
menos tablas y relaciones según lo compleja y grande que sea la base de datos que hayamos
creado en PostgreSQL. ¡Así es como podremos ver como luce nuestra base de datos!
Nombre de la tabla
Primary Key
Tipo de datos
50
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
51
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
Panel SQL
Panel de Datos
Todas las operaciones CRUD se pueden hacer de dos formas distintas: a través del código
SQL y manualmente en el panel de datos. Aun así, para hacerlo con SQL, no se hace
desde el Panel SQL. Tenemos que seguir los siguientes pasos para abrir la q:
52
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
4. Aparece una pantalla con un panel superior que admite entrada de código. Aquí es
donde debemos introducir el código SQL para hacer las operaciones CRUD. Para correr
el código introducido debemos seleccionarlo primero y luego hacer click en el icono del
relámpago que aparece en la parte superior.
53
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
A continuación, describiremos cómo hacer las operaciones CRUD. Cada operación tiene
su apartado, y éste está dividido en dos apartados: uno mostrando cómo hacer las
operaciones en SQL y el otro mostrando cómo hacerlo manualmente. En el caso de SQL,
deberemos introducir el código proporcionado en la query tool en el paso 3.
CREATE
SQL: INSERT INTO autores VALUES(1,'Homer');
Manual:
54
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
A continuación, guardamos.
Vamos a introducir algunos registros más para poder hacer más claramente los
siguientes pasos.
READ
SQL:
SELECT*FROM [Link];//seleccionar toda la tabla autores.
55
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
UPDATE
SQL:
UPDATE [Link]
SET autor_id_code='345', autor_id='Milhouse'
WHERE student_id=5;
Con esta query estamos actualizando el autor con el código 5, que hasta ahora era
Maggie. Le cambiamos el nombre a Milhouse y el código a 345. El output es el
siguiente.
56
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
DELETE
SQL:
DELETE FROM [Link]
WHERE autor_id_code=5;
Manual: Hacemos click sobre la fila que queremos eliminar. Tiene que quedar
ressaltada en azul.
57
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
58
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
En la siguiente página hay el script con el que podemos realizar la conexión, las
operaciones CRUD y otras funcionalidades para trabajar y explorar nuestra base de
datos. En este protocolo se integran conceptos explicados en los otros protocolos:
base de datos online (1), parámetros de las bases de datos (1), SQL (1), CRUD (6). Si
ya disponemos de los parámetros de la base de datos, podemos copiar el código
directamente en un script de R y empezar a jugar con las diferentes funciones
explicadas en el mismo código.
##-----------------------------------##
## CONNECTION R - PostgreSQL ##
##-----------------------------------##
#######################################################################
# WARNING!!! put all the table names & fields in lowercase. Otherwise #
#######################################################################
[Link]("RPostgreSQL")
library(RPostgreSQL)
# Here you tell R what is the driver of the db. In this case PostgreSQL
# Db connection, db parameters extracted from elephantSQL. Replace xxxx for the parameters
that elephantSQL gives you.
user="xxxxxx", password="xxxxxxx")
# Function to know if a table exists in the database, if output = TRUE, it exists. Replace x for the
# name of the table that you want to know if exists.
dbExistsTable(con, "xxxxxx")
dbListTables(con)
#List fields in a specific table. . Replace x for the name of the table that you want the fields to
#be listed.
59
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.
Protocolos Gollum, hacia una armonización de protocolos de investigación en Cetáceos.
dbListFields(con,"xxxxx ")
#Read a whole table. . Replace x for the name of the table that you want to read.
sighting<-dbReadTable(con, "xxxxx")
#---------------------------------#
#---------------------------------#
#Insert data in the database. dbSendQuery + SQL code. CREATE. Take same order as columns
#Get data from the database. dbGetQuery + SQL code. READ. Public is written before the table
name because the table is in the public schema.
outputREAD<-dbGetQuery(con,"SELECT*FROM [Link];")
dbWriteTable(con, "VMSgpsdata",VMSgpsdata)
60
CIRCE, Conservación, Informaciín y Estudio sobre cetáceos.