Rename folders, add DB parser and improve DB setup

This commit is contained in:
2020-01-04 17:44:51 +01:00
parent b7a6b4c9d6
commit 7c4ba27dc5
29 changed files with 264 additions and 47 deletions

171
docs/Project.md Normal file
View File

@@ -0,0 +1,171 @@
IGDB: Base de datos internacional de glaciares
==============================================
Descripción del problema
------------------------
Pretendemos crear una base de datos que incluye información general y
específica de los principales glaciares. Nuestro fin es compartir
información con la comunidad científica, sin ánimo de lucro, y
concienciar a un número máximo de personas sobre los devastadores
efectos del cambio climático.
La IGDB ofrecerá dos interfaces distintas para la consulta de
información, una con información extensiva enfocada para el uso
científico (se podrán incluir los datos en cualquier documento
científico, mencionándola en la bibliografía), y otra con información
general y mucho más visual para el público general. Para el uso
científico, ofreceremos estadísticas individuales de un glaciar y la
posibilidad de comparar dos glaciares para observar la correlación entre
sus tasas de cambio. Para el público general, añadiremos un conjunto de
tablas y gráficas, junto con valores estadísticos que permiten
visualizar el impacto del cambio climático de forma muy intuitiva.
Nos basaremos en la base de datos @wgms-db, ya que ésta contiene una
mucha información acerca de gran número de glaciares. IGDB simplificará
la WGMS, escogiendo únicamente los datos relevantes para estudios acerca
del cambio climático, y acotando éstos a la década actual (2010-2018).
Requisitos
----------
### Datos
1. **RD1**: Datos del glaciar
- País - *Cadena de 30 caracteres máximo*
- Nombre del glaciar - *Cadena de 30 caracteres máximo*
- ID del glaciar (Compatible con la WGMS) - *Entero de 5 dígitos*
2. **RD2**: Datos anuales de un glaciar
- ID del glaciar (Compatible con la WGMS) - *Entero de 5 dígitos*
- Área - *Entero de 10 dígitos*
- Volumen - *Entero de 10 dígitos*
- Grosor - *Entero de 10 dígitos*
- Año - *Entero de 10 dígitos*
3. **RD3**: Datos de cambio de un glaciar
- ID del glaciar (Compatible con la WGMS) - *Entero de 5 dígitos*
- Variación de área - *Entero de 10 dígitos*
- Variación de volumen - *Entero de 10 dígitos*
- Variación de grosor - *Entero de 10 dígitos*
- Año - *Entero de 10 dígitos*
4. **RD4**: Datos del administrador
- ID - *Entero de 4 dígitos*
- Fecha de alta - *Fecha en formato dd-mm-yyyy*
### Funcionales
1. **RF1**: Alta de un glaciar
Se añade un glaciar al sistema a partir de los datos de la WGMS
- Entrada: **RD1**
2. **RF2**: Inclusión de datos anuales
Añade los datos relevantes de cada año para un glaciar
- Entrada: **RD2**
3. **RF3**: Cálculo de las variaciones anuales
Calcula las variaciones anuales de grosor, área y volumen para un
glaciar
- Entrada: **RD2**
- Manejo: **RD3**
4. **RF4**: Alta del administrador
Crea un usuario de tipo administrador, encargado de monitorizar el
sistema y resolver conflictos
- Entrada: **RD4**
5. **RF5**: Actualización de la base de datos
Añade nuevos datos a partir de nuevas versiones de la WGMS
- Entrada: **RD2**
6. **RF6**: Resolución de conflictos
Permite al administrador la resolución de conflictos de datos al
actualizar la base de datos
### No Funcionales
1. **RNF1**: Seguridad
La página web de consulta será accesible únicamente mediante HTTPS,
y la base de datos tendrá su propio usuario de acceso
2. **RNF2**: Escalabilidad
Se podrá aumentar el rendimiento de IGDB mediante una mejora del
hardware del servidor, o montando un cluster
3. **RNF3**: Disponibilidad
La IGDB estará disponible 24/7, y en caso de necesidad de
mantenimiento, se procederá a mostrar un snapshot de la página
4. **RNF4**: Tolerancia a fallos
Se usará un cluster para permitir que la IGDB siga siendo
disponible, aunque falle algún servidor
5. **RNF5**: Copias de seguridad
Se harán copias de seguridad diarias del sistema, además de
enviarlas a otro servidor en caso de que se pierdan los datos
locales de backup
6. **RNF6**: Rotación de logs
Se eliminarán los logs del sistema antiguos, cada semana
### Restricciones Semánticas
1. **RS1**: No podrá haber dos glaciares con el mismo ID
2. **RS2**: No podrá haber más de un administrador del sistema
3. **RS3**: El atributo año solo podrá estar comprendido entre
2010-2018, inclusive
Diagramas
---------
Para el diseño del sistema, procederemos con la modelización de
diagramas estandarizados, dado que es una herramienta imprescindible en
Ingeniería del Software.
### Diagrama funcional
![](./FD.png)
### Diagramas de flujo
![](./DF1.png)
![](./DF2.png)
![](./DF3.png)
![](./DF4.png)
![](./DF5.png)
![](./DF6.png)
### Diagrama de caja negra
![IGDB](./BB.png)
### Diagrama Entidad-Relación
\newpage
![](./ER.png)
Bibliografía
------------

146
docs/Project.org Normal file
View File

@@ -0,0 +1,146 @@
* IGDB: Base de datos internacional de glaciares
** Descripción del problema
Pretendemos crear una base de datos que incluye información general y específica de los principales glaciares. Nuestro fin es compartir información con la comunidad científica,
sin ánimo de lucro, y concienciar a un número máximo de personas sobre los devastadores efectos del cambio climático.
La IGDB ofrecerá dos interfaces distintas para la consulta de información, una con información extensiva enfocada para el uso científico (se podrán incluir los datos
en cualquier documento científico, mencionándola en la bibliografía), y otra con información general y mucho más visual para el público general.
Para el uso científico, ofreceremos estadísticas individuales de un glaciar y la posibilidad de comparar dos glaciares para observar la correlación entre sus tasas de cambio.
Para el público general, añadiremos un conjunto de tablas y gráficas, junto con valores estadísticos que permiten visualizar el impacto del cambio climático de forma muy intuitiva.
Nos basaremos en la base de datos cite:wgms-db, ya que ésta contiene una mucha información acerca de gran número de glaciares. IGDB simplificará la WGMS, escogiendo únicamente los
datos relevantes para estudios acerca del cambio climático, y acotando éstos a la década actual (2010-2018).
** Requisitos
*** Datos
1. *RD1*: Datos del glaciar
- País - /Cadena de 30 caracteres máximo/
- Nombre del glaciar - /Cadena de 30 caracteres máximo/
- ID del glaciar (Compatible con la WGMS) - /Entero de 5 dígitos/
2. *RD2*: Datos anuales de un glaciar
- ID del glaciar (Compatible con la WGMS) - /Entero de 5 dígitos/
- Área - /Entero de 10 dígitos/
- Volumen - /Entero de 10 dígitos/
- Grosor - /Entero de 10 dígitos/
- Año - /Entero de 10 dígitos/
3. *RD3*: Datos de cambio de un glaciar
- ID del glaciar (Compatible con la WGMS) - /Entero de 5 dígitos/
- Variación de área - /Entero de 10 dígitos/
- Variación de volumen - /Entero de 10 dígitos/
- Variación de grosor - /Entero de 10 dígitos/
- Año - /Entero de 10 dígitos/
4. *RD4*: Datos del administrador
- ID - /Entero de 4 dígitos/
- Fecha de alta - /Fecha en formato dd-mm-yyyy/
*** Funcionales
1. *RF1*: Alta de un glaciar
Se añade un glaciar al sistema a partir de los datos de la WGMS
- Entrada: *RD1*
2. *RF2*: Inclusión de datos anuales
Añade los datos relevantes de cada año para un glaciar
- Entrada: *RD2*
3. *RF3*: Cálculo de las variaciones anuales
Calcula las variaciones anuales de grosor, área y volumen para un glaciar
- Entrada: *RD2*
- Manejo: *RD3*
4. *RF4*: Alta del administrador
Crea un usuario de tipo administrador, encargado de monitorizar el sistema y resolver conflictos
- Entrada: *RD4*
5. *RF5*: Actualización de la base de datos
Añade nuevos datos a partir de nuevas versiones de la WGMS
- Entrada: *RD2*
6. *RF6*: Resolución de conflictos
Permite al administrador la resolución de conflictos de datos al actualizar la base de datos
*** No Funcionales
1. *RNF1*: Seguridad
La página web de consulta será accesible únicamente mediante HTTPS, y la base de datos tendrá su propio usuario de acceso
2. *RNF2*: Escalabilidad
Se podrá aumentar el rendimiento de IGDB mediante una mejora del hardware del servidor, o montando un cluster
3. *RNF3*: Disponibilidad
La IGDB estará disponible 24/7, y en caso de necesidad de mantenimiento, se procederá a mostrar un snapshot de la página
4. *RNF4*: Tolerancia a fallos
Se usará un cluster para permitir que la IGDB siga siendo disponible, aunque falle algún servidor
5. *RNF5*: Copias de seguridad
Se harán copias de seguridad diarias del sistema, además de enviarlas a otro servidor en caso de que se pierdan los datos locales de backup
6. *RNF6*: Rotación de logs
Se eliminarán los logs del sistema antiguos, cada semana
*** Restricciones Semánticas
1. *RS1*:
No podrá haber dos glaciares con el mismo ID
2. *RS2*:
No podrá haber más de un administrador del sistema
3. *RS3*:
El atributo año solo podrá estar comprendido entre 2010-2018, inclusive
** Diagramas
Para el diseño del sistema, procederemos con la modelización de diagramas estandarizados, dado que es una herramienta imprescindible en
Ingeniería del Software.
*** Diagrama funcional
[[./FD.png]]
*** Diagramas de flujo
[[./DF1.png]]
[[./DF2.png]]
[[./DF3.png]]
[[./DF4.png]]
[[./DF5.png]]
[[./DF6.png]]
*** Diagrama de caja negra
#+CAPTION: IGDB
[[./BB.png]]
\clearpage
*** Diagrama Entidad-Relación
[[./ER.png]]
** Bibliografía

BIN
docs/Project.pdf Normal file

Binary file not shown.

162
docs/UML.org Normal file
View File

@@ -0,0 +1,162 @@
* Diagramas UML
** Functional
#+begin_src plantuml :file ../Assets/Diagrams/FD.png
:Script|
split
:Alta de un glaciar;
split again
:Inclusión de datos anuales;
split again
:Cálculo de las variaciones anuales;
split again
:Actualización de la base de datos;
split again
:Alta del administrador;
:Administrador|
:Resolución de conflictos;
endsplit
:IGDB|
#+end_src
#+RESULTS:
[[file:../Assets/Diagrams/FD.png]]
** Data-flow
#+begin_src plantuml :file ../Assets/Diagrams/DF1.png
:Script|
:Alta del Glaciar;
-> Nuevo glaciar;
:Glaciar<
:IGDB|
#+end_src
#+RESULTS:
[[file:../Assets/Diagrams/DF1.png]]
#+begin_src plantuml :file ../Assets/Diagrams/DF2.png
:Script|
:Inclusión de datos anuales;
-> Añadir información;
:Glaciar<
:IGDB|
#+end_src
#+RESULTS:
[[file:../Assets/Diagrams/DF2.png]]
#+begin_src plantuml :file ../Assets/Diagrams/DF3.png
:Script|
:Cálculo de las variaciones anuales;
:Inclusión de datos anuales;
-> Añadir información;
:Glaciar<
:IGDB|
#+end_src
#+RESULTS:
[[file:../Assets/Diagrams/DF3.png]]
#+begin_src plantuml :file ../Assets/Diagrams/DF4.png
:Script|
:Alta del administrador;
-> Nuevo administrador;
:Administrador<
:IGDB|
#+end_src
#+RESULTS:
[[file:../Assets/Diagrams/DF4.png]]
#+begin_src plantuml :file ../Assets/Diagrams/DF5.png
:Script|
:Actualización de la base de datos;
:Inclusión de datos anuales;
-> Añadir información;
:Glaciar<
:IGDB|
#+end_src
#+RESULTS:
[[file:../Assets/Diagrams/DF5.png]]
#+begin_src plantuml :file ../Assets/Diagrams/DF6.png
:Script|
:Administrador<
:Resolución de conflictos;
-> Selecciona los datos correctos;
:Actualización de la base de datos;
:IGDB|
#+end_src
#+RESULTS:
[[file:../Assets/Diagrams/DF6.png]]
** Black box
#+begin_src plantuml :file ../Assets/Diagrams/BB.png
@startuml
start
:WGMS|
:**Sistema**;
:IGDB|
end
@enduml
#+end_src
#+RESULTS:
[[file:../Assets/Diagrams/BB.png]]
** Entity Relationship
#+begin_src plantuml :file ../Assets/Diagrams/ER.png
@startuml
hide circle
skinparam linetype ortho
entity "Glacier" as e01 {
,* **glacier_id** : number <<generated>>
--
,*glacier_name : text
--
,*glacier_country: text
}
entity "Glacier yearly data" as e02 {
,* **glacier_id** : number <<FK>>
--
,*glacier_volume: number
--
,*glacier_area: number
--
,*glacier_thickness: number
--
,*glacier_year: number
}
entity "Glacier yearly fluctuation" as e03 {
,* **glacier_id** : number <<FK>>
--
,*glacier_area_change: number
--
,*glacier_volume_change: number
--
,*glacier_thickness_change: number
--
,*glacier_year: number <<FK>>
}
entity "Admin" as e04 {
,*admin_id : number <<generated>>
--
,*admin_creation_date: date
}
e01 ||..|{ e02
e02 ||..|| e03
e01 ||..|{ e03
e04 ||..o| e01
@enduml
#+end_src
#+RESULTS:
[[file:../Assets/Diagrams/ER.png]]