Rédacteur |
K3rn€l P4n1k |
Date |
samedi 22 avril 2017 |
État |
Rédigé |
Ce programme est un logiciel libre ; vous pouvez le redistribuer ou le modifier suivant les termes de la GNU General Public License telle que publiée par la Free Software Foundation ; soit la version 3 de la licence,soit (à votre gré) toute version ultérieure.
Ce programme est distribué dans l’espoir qu’il sera utile, mais SANS AUCUNE GARANTIE ; sans même la garantie tacite de QUALITÉ MARCHANDE ou d’ADÉQUATION à UN BUT PARTICULIER. Consultez la GNU General Public License pour plus de détails.
Vous devez avoir reçu une copie de la GNU General Public License en même temps que ce programme ; si ce n’est pas le cas, consultez http://www.gnu.org/licenses."
Documente l’installation et l’usage de PrimeDB
PrimeDB est une base de données construite à partir des données disponnible sur http://primes.utm.edu/lists/small/millions. Ce repository contient les sources permettant:
-
Le téléchargement des données
-
L’import de ces données dans une base SQLite3
-
Un client très sommaire
-
Quelques scripts et templates sql pour automatiser le requêtage
Important
|
Prévoir 1,5 Giga (estimation large) de libre pour l’installation. Le fichier final fait un peu moins de 700 Méga. |
Profiter de la capacité de stockage pour économiser du temp de calcul.
Description | Dépendance | Source |
---|---|---|
Système d’exploitation |
GNU/Linux |
http://www.getgnulinux.org/fr/switch_to_linux/try_or_install/ |
Interpreteur |
bash |
|
Gestion de version |
git |
|
Base de données |
SQLite3 |
git clone https://github.com/Phreno/prime-database.git
./prime-database/database/bin/primeDB_setup
- database
-
-
bin, fichiers d’installation de la base de données
-
data, instance de la base de données
-
lib, dépendances des fichiers d’installation
-
base.profile
Les constantes -
core.profile
Les fonctions -
error.profile
Gestion des erreurs (source stackoverflow) -
setup.profile
Fonctions d’installation
-
-
sql, fichiers de création de la table et template d’import
-
test, pour des tests mannuels
-
- LICENSE
-
-
gpl-3.0.txt
, license GNU GPL v3 -
LICENSE
, déclaration de permission de copie
-
- sql
-
-
template, modèle de requête à mettre à jour
-
En assumant pour la suite du document le paramètrage suivant:
PRIME_DB="/chemin/vers/la/racine/du/projet"
DATABASE="${PRIME_DB}/database/data/primeDB.db"
SQL="${PRIME_DB}/sql"
TEMPLATE="${SQL}/template"
sqlite3 "${DATABASE}"
sqlite3 sqlite> select rowid, value from prime where rowid < 10;
# Résultat
# 2
# 3
# 5
# 7
# 11
# 13
# 17
# 19
# 23
${SQL_QUERY}
SQL_QUERY="$(mktemp)"
echo "select rowid, value from prime where rowid < 10;" > "${SQL_QUERY}"
cat "${SQL_QUERY}" | sqlite3 "${DATABASE}"
# Résultat
# 2
# 3
# 5
# 7
# 11
# 13
# 17
# 19
# 23
prime-db
est un client sommaire qui encapsule le deuxième type de requête utilisé dans l’explication précédante.
${PRIME_DB}/prime-db <file.sql>
|
obligatoire |
Fichier sql qui sera joué dans SQLite3 |
${PRIME_DB}/prime-db "${SQL}/query_max_value.sql"
# Résultat
# 982451653
SQL_QUERY="$(mktemp)"
cat "${PRIME_TEMPLATE}/template_get_value.sql" | sed 's/#rowid/85460/g' > "${SQL_QUERY}"
${PRIME_DB}/prime-db "${SQL_QUERY}"
# Résultat
# 1096379
L’utilisation de SQLite3 s’est faite tardivement dans l’application, si bien que core.profile
& setup.profile
contiennent quelques fonctions obsolètes, qui étaient destinées pour travailler sur les fichiers plats.
Numberphile |
|
njwildberger |