Rename folders, add DB parser and improve DB setup
This commit is contained in:
171
docs/Project.md
Normal file
171
docs/Project.md
Normal 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
|
||||
|
||||

|
||||
|
||||
### Diagramas de flujo
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### Diagrama de caja negra
|
||||
|
||||

|
||||
|
||||
### Diagrama Entidad-Relación
|
||||
|
||||
\newpage
|
||||
|
||||

|
||||
|
||||
Bibliografía
|
||||
------------
|
||||
146
docs/Project.org
Normal file
146
docs/Project.org
Normal 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
BIN
docs/Project.pdf
Normal file
Binary file not shown.
162
docs/UML.org
Normal file
162
docs/UML.org
Normal 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]]
|
||||
Reference in New Issue
Block a user