Contenu | Rechercher | Menus

Annonce

DVD, clés USB et t-shirts Ubuntu-fr disponibles sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/05/2016, à 16:02

Sir Na Kraïou

Faire une base de données en sciences humaines

Bonjour !
Je suis doctorant, et j’aurais besoin de faire une base de données (et je n’y connais rien). En gros, je travaille sur des monastères médiévaux, dans une région particulière.

Déjà, je ne sais pas quel logiciel choisir : base me semble trop basique (ha, ha…) pour ce que je veux faire. On m’a conseillé Filemaker, de ce que j’en ai vu, ça répondrait à mes besoins… mais ce n’est pas Linux. En cherchant, j’ai trouvé Glom, mais ça manque de documentation je ne suis pas doué, et je n’arrive pas à faire ce que je veux. Cela dit, si on me conseille un autre logiciel, il n’y a pas de soucis pour changer.

Ensuite… J’aurais besoin d’un truc avec quatre type de données :

  • des monastères (j’aurais une fiche par monastère, avec son nom, sa localisation, ses dates d’activités, les sources qui en parlent, les articles qui en parlent, son rite, et éventuellement des commentaires)

  • des sources − les documents historiques − (une fiche par source, avec sa date, sa localisation, les monastères qu’il traite, les articles qui lui sont consacrés… et éventuellement des commentaires)

  • des articles d’historiens récents et des liens internet (une fiche par article/internet, avec son auteur, sa date, son titre…, les monastères qu’il cite, les autres articles qu’il cite, les sources qu’il cite… et éventuellement des commentaires)

(ce qui est en gras, ce serait les données qui feraient des liens entre les diverses sources : genre, une fiche monastère peut me permettre de retrouver toutes les fiches articles qui lui sont consacrés)

Je ne suis pas exhaustif, mais j’aurais besoin de pouvoir mettre comme valeur :

  • Du texte libre plus ou moins long (noms, commentaires, etc.)

  • Des valeurs boléennes (oui/non)

  • Du texte entre des choix prédéfinis (par exemple pour les rites, ça ne peut être que « latin », « grec », « inconnu » ou « particulier »)

  • Des dates plus ou moins précises

  • Des coordonnées géographiques (plus ou moins précises : parfois, je peux repérer un site dans Google earth, parfois j’ai juste très vaguement la région)

  • Des références bibtex

  • Des liens vers d’autres fiches déjà créées

  • Éventuellement des documents iconographiques (photos, plans…)

Enfin, très idéalement j’aimerais pouvoir utiliser cette base de donnée en lien avec un logiciel cartographique (Qgis ?), pour pouvoir faire des cartes à partir de ma future bdd, et en lien avec bibtex pour mes références.

Merci d’avance ! smile


Descendant de Charlemagne.
Bleu, en l'hommage d'un truc bleu. :'(
C'est pas du bleu.
C'est pas le lac de Genève, c'est le Lac Léman.

En ligne

#2 Le 09/05/2016, à 17:02

nam1962

Re : Faire une base de données en sciences humaines


[ Modéré ]

Hors ligne

#3 Le 09/05/2016, à 17:17

Elzen

Re : Faire une base de données en sciences humaines

Salut,

il y a probablement plein de manières de faire ça (et à vue de nez, je dirais que MongoDB est assez disproportionné). Pour moi (en tant qu'informaticien de formation, qui bosse un brin dans le domaine, et qui te connais à peu près tongue), je pense que la première question à se poser, c'est celle de la façon dont tu veux interagir avec le truc (comment tu veux aller chercher dedans/ajouter des infos, est-ce que c'est juste pour que tu puisses aller lire quand tu en as besoin, ou bien tu veux pouvoir extraire des infos pour coller dans un doc facilement, etc.)

La façon de le stocker, ensuite, on s'arrangera smile

Hors ligne

#4 Le 10/05/2016, à 13:45

Sir Na Kraïou

Re : Faire une base de données en sciences humaines

Je ne pense pas avoir besoin de passer les données de ma base à un document, exceptées les données géographiques vers un truc du genre qgis, sachant que ça, ce serait vraiment un plus (si ce n’est pas possible, ce n’est pas grave : de toute façon, je n’ai pas non plus des milliers de monastères et je peux les placer sur une carte à la main). Peut-être qu’il faudrait que j’y songe aussi pour ma biblo (pouvoir facilement récupérer les références des articles et livres, par exemple), mais ça, je n’ai pas encore trop envisagé les possibilités et c’est assez secondaire (je peux toujours me faire un fichier à côté que je remplirais au fur et à mesure).

L’idée, c’est d’avoir ça sous la main quand je bosse (si j’ai une nouvelle info à propos d’un monastère, pouvoir facilement trouver les relations : les autres articles ou sources que j’ai déjà lues sur ce monastère… Ou encore, si je décide de rédiger une partie sur tel aspect des choses, voir facilement tous les documents, articles, exemples… qui me seront utiles).

Puis mon problème, c’est aussi d’avoir un truc facile à utiliser, des fiches à remplir facilement. J’avais fait un dessin (ici), mais il paraît que ce n’est pas clair du tout… tongue En fait, une fois la base mise en place, j’aimerais avoir juste à remplir des fiches comme ça : par exemple, je décide de remplir une fiche « monastère », et paf, j’ai un formulaire où je n’ai plus qu’à compléter les champs (ce qui est entre crochets sur le dessin).

Dans l’idéal, si je pouvais intégrer des images (photos, plans, etc.) dans mes fiches, ce serait nickel.

Sur un autre forum, un gars m’a conseillé PostgreSQL et knoda4, mais pour ce dernier, il n’est plus dans les dépôts et ça a l’air un peu mort.

Dernière modification par Sir Na Kraïou (Le 10/05/2016, à 13:46)


Descendant de Charlemagne.
Bleu, en l'hommage d'un truc bleu. :'(
C'est pas du bleu.
C'est pas le lac de Genève, c'est le Lac Léman.

En ligne

#5 Le 10/05/2016, à 14:06

Elzen

Re : Faire une base de données en sciences humaines

Je trouve ton schéma plutôt pas mal, moi smile

À vue de nez, ce dont tu as besoin, c'est effectivement un système de gestion de base de données relationnelle avec l'interface qui va bien.

PostgreSQL est assez sympa (c'est ce que j'utilise la plupart du temps), mais c'est un serveur à faire tourner à part, ça peut aussi sembler disproportionné. Dans ton cas, j'aurais tendance à dire qu'une base SQLite (à utiliser avec un logiciel comme sqlitebrowser) serait le plus adapté.

On peut en causer sur IRC si tu veux tongue

Hors ligne

#6 Le 10/05/2016, à 14:18

Sir Na Kraïou

Re : Faire une base de données en sciences humaines

Quand j’aurais un vrai accès à internet. Je vais tester sqlitebrowser, en attendant.

Merci pour les conseils, en tous cas. smile


Descendant de Charlemagne.
Bleu, en l'hommage d'un truc bleu. :'(
C'est pas du bleu.
C'est pas le lac de Genève, c'est le Lac Léman.

En ligne

#7 Le 10/05/2016, à 16:39

Sir Na Kraïou

Re : Faire une base de données en sciences humaines

Du coup, dans sqlitebrowser, il faut que je fasse une base avec quatre tables (monastère, source, littérature, internet), et dans chaque table, un champ correspond à une ligne sur mon dessin ?

Ça signifie quoi, Integer, Text, Blob, real, numeric, non, cp, ia, u, défaut, vérifier, foreign key (quand je créé un champ) ? Et « without rowid » (quand je vais dans advanced, en créant ma table) ?

Ou pour prendre les choses dans l’autre sens, comment je fais pour avoir des entrées :

  • Du texte libre plus ou moins long (noms, commentaires, etc.)

  • Des valeurs boléennes (oui/non)

  • Du texte entre des choix prédéfinis (par exemple pour les rites, ça ne peut être que « latin », « grec », « inconnu » ou « particulier »)

  • Des dates plus ou moins précises

  • Des coordonnées géographiques (plus ou moins précises : parfois, je peux repérer un site dans Google earth, parfois j’ai juste très vaguement la région)

  • Des références bibtex

  • Des liens vers d’autres fiches déjà créées

  • Éventuellement des documents iconographiques (photos, plans…)


Descendant de Charlemagne.
Bleu, en l'hommage d'un truc bleu. :'(
C'est pas du bleu.
C'est pas le lac de Genève, c'est le Lac Léman.

En ligne

#8 Le 10/05/2016, à 17:36

Elzen

Re : Faire une base de données en sciences humaines

Pour tout ce qui est texte (noms, commentaires, bibtex, etc.), tu fais une colonne de type Text.
Pour les images (et autres trucs bizarres éventuels), tu fais une colonne de type Blob.
Pour tout le reste, Integer ou Real, selon le cas.

Le type booléen existe dans certaines bases de données, mais on dirait qu'il n'y a pas en SQLite. Conventionnellement, on met une valeur entière à la place, valant 0 pour faux et 1 pour vrai.

Non null signifie qu'il doit toujours y avoir une valeur dans ce champ.
CP signifie que la colonne est une clef primaire, c'est-à-dire un élément servant à identifier la ligne de façon unique.
IA signifie que la colonne va être automatiquement incrémentée (chaque nouvelle ligne prend la valeur précédente)
U signifie que le contenu de la colonne ne doit pas exister en deux exemplaire.
Défaut, c'est la valeur qui sera indiquée si tu ne précises rien.
Foreign key, ça veut dire que le contenu de la colonne doit faire référence à une colonne d'une autre table (ce qui correspond à peu près à tes flèches).

Le reste, a priori, tu ne devrais pas en avoir besoin. Je tâcherai de te trouver un peu de bonne doc' sur les bases de données quand j'aurai le temps.

Hors ligne

#9 Le 10/05/2016, à 17:52

Rufus T. Firefly

Re : Faire une base de données en sciences humaines

Sir Na Kraïou a écrit :

Du coup, dans sqlitebrowser, il faut que je fasse une base avec quatre tables (monastère, source, littérature, internet), et dans chaque table, un champ correspond à une ligne sur mon dessin ?

C'est peu plus compliqué que ça.

Un exemple : dans ta table Monastères, tu as un champ "Sources le citant". Ça suppose qu'il peut y avoir plusieurs sources pour un même monastère.
Evidemment, pour un monastère, tu peux stocker une liste avec des identifiants de la table Sources, séparés par exemple par des ";". Mais ce n'est pas très exploitable, si tu veux voir les sources.

Une méthode beaucoup plus élégante consiste à créer une table Mon_Sou qui contient 2 champs (en fait 3, parce qu'il vaut mieux avoir dans chaque table un identifiant unique genre auto_incrément, donc un numéro de fiche). Et ces 2 champs sont : identifiant monastère (mon_id), identifiant source(sou_id). Si bien que quand tu trouves une nouvelle source, tu l'enregistres dans la table Sources, mais tu l'enregistres aussi, s'il y a lieu, dans cette table de jointures, 1 ligne par monastère dont la source parle.
Ensuite, avec les requêtes sql appropriées (avec des jointures et des critères de sélection) tu peux sortir toutes les sources concernant un monastère.

C'est juste un aperçu. Parce qu'à l'usage, des cas imprévus peuvent apparaître. Un source parle d'un monastère que tu n'as pas inventorié, par exemple. S'il t'intéresse tu peux lui faire une fiche dans la table Monastères, provisoirement avec les éléments dont tu disposes (quitte à compléter par la suite), puis dans la table de jointure...

Edit 1 : si tu fais une table de jointure, le champ "Sources le citant" est évidemment inutile dans la table Monastères. En revanche il faut faire une requête pour visualiser toutes les sources pour un monastère donné.

Edit 2 : un peu de lecture ? J'avais complètement oublié.
http://sql.sh/cours/jointures

Dernière modification par Rufus T. Firefly (Le 11/05/2016, à 00:44)


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#10 Le 11/05/2016, à 14:16

Sir Na Kraïou

Re : Faire une base de données en sciences humaines

Ha, mince… Je pensais que ce serait possible de rentrer plusieurs réponses dans un seul champ (pour ceux qui sont au pluriel). hmm

Mais en fait, je n’en suis pas encore là : c’est pas possible de prédéfinir des réponses (pour remplir la base, il y aurait à sélectionner une des options, que ça soit « oui / non » ou des trucs plus complexes (du genre « grec/latin/inconnu/autre » ?).


Descendant de Charlemagne.
Bleu, en l'hommage d'un truc bleu. :'(
C'est pas du bleu.
C'est pas le lac de Genève, c'est le Lac Léman.

En ligne

#11 Le 11/05/2016, à 15:31

Rufus T. Firefly

Re : Faire une base de données en sciences humaines

Sir Na Kraïou a écrit :

Ha, mince… Je pensais que ce serait possible de rentrer plusieurs réponses dans un seul champ (pour ceux qui sont au pluriel). hmm

C'est possible, avec un caractère séparateur bien choisi entre les réponses. Mais si tu veux accéder aux sources en partant de ce champ, la requête sera beaucoup plus compliquée. Et il y a un autre inconvénient : les inévitables fautes de frappe. Si tu en fais une dans la liste de sources, la source en question sera perdue pour la requête, puisqu'il n'y aura rien dans la table de sources à ce nom-là... D'où cette règle de base : limiter les saisies au maximum. Il vaut mieux afficher la listes des sources, et affecter les bonnes au monastère que tu viens de créer, les résultats étant stockés dans la table de jointure.

Sir Na Kraïou a écrit :

Mais en fait, je n’en suis pas encore là : c’est pas possible de prédéfinir des réponses (pour remplir la base, il y aurait à sélectionner une des options, que ça soit « oui / non » ou des trucs plus complexes (du genre « grec/latin/inconnu/autre » ?).

Ça, en revanche, c'est très facile. Moi je connais surtout mysql (et access, mais comme ne le pratique plus depuis longtemps...).
Tu as le type de champ "boolean" pour faire du oui/non, vrai/faux, 1/0...
Tu peux aussi utiliser "enum" si tu veux "oui" ou "non " en clair, avec la possibilité en outre du choix entre plus de valeur prédéfinies que 2. Donc tu peux l'utiliser aussi pour le choix d'une langue (un seule) parmi un ensemble prédéfini.
Enfin, il y a aussi le type "set". C'est un peu pareil qu'enum, sauf que tu peux affecter plusieurs valeurs au champ parmi 64 (max) valeurs prédéfinies. C'est pratique pour les Serments de Strasbourg ou la pierre de Rosette et certainement aussi pour certaine chanson de Roland de Lassus (1 voix en français... paillard et une voix en latin... d'église !)...

Si je peux me permettre un conseil, cherche autour de toi quelqu'un qui maîtrise à peu près html/css, php, mysql et qui serait prêt à te consacrer un peu de temps. Parce que ce que tu veux faire n'est pas très compliqué, mais exige un certain nombre de connaissances.
Tu vois, un formulaire, c'est ça, en gros :

<?php
// routines php
?>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr" />
<head>
	<title>Monastères</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<!--<link rel="shortcut icon" href="favicon.ico" />
	<script src="js/routines javascript" type="text/javascript"></script>
	<link href="css/feuilles de style" type="text/css" rel="stylesheet" />-->
</head>
<body>
	<form id="frm" action="save_monastere.php" method="post">
		<table id="monastere">
			<thead><tr><th colspan="2">Monastère</th></tr></thead>
			<tbody>
			<tr><td>Nom fançais&#160;:&#160;</td><td><input id="mon_fr" type="text" name="monastere[fr]" /></td></tr>
			<tr><td>Nom italien&#160;:&#160;</td><td><input id="mon_it" type="text" name="monastere[it]" /></td></tr>
			<tr><td>Nom anglais&#160;:&#160;</td><td><input id="mon_en" type="text" name="monastere[en]" /></td></tr>
			<tr><td>Nom latin&#160;:&#160;</td><td><input id="mon_lt" type="text" name="monastere[lt]" /></td></tr>
			<tr><td>Nom grec&#160;:&#160;</td><td><input id="mon_gr" type="text" name="monastere[gr]" /></td></tr>
			<tr><td>Localisation&#160;:&#160;</td><td><input id="mon_coord" type="text" name="monastere[coord]" /></td></tr>
			<tr><td>Lieu-dit&#160;:&#160;</td><td><input id="mon_lieu" type="text" name="monastere[lieu]" /></td></tr>
			</tbody>
		</table>
		<p> Commentaires&#160;:&#160;<p/>
		<textarea id="notes" name="monastere[notes]"></textarea>
		<p id="boutons">
			<input id="rst" type="reset" value="Effacer" class="btn" />
			<input id="can" type="button" value="Annuler" class="btn" />
			<input id="sub" type="submit" value="Enregistrer" class="btn" />
		</p>
	</form>
</body>
</html>

Tu copies ça dans un fichier que tu nommes par exemple monastère.html et tu l'ouvres avec firefox...
Quand tu cliques sur enregistrer (ici il ne se passera rien, pour cause...), le formulaire fera ceci : action="save_monastere.php"
C'est-à-dire qu'il envoie son contenu au programme save_monastere.php sur serveur qui fera le nécessaire pour enregistrer ce qu'il faut dans la ou les tables adéquates.


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#12 Le 12/05/2016, à 17:07

Elzen

Re : Faire une base de données en sciences humaines

Plop o/

Ta problématique m'a donné quelques idées smile

Je suis en train de coder un petit utilitaire pour faciliter l'interaction avec la base (en gros, deux exécutables, l'un permettant de créer la base sur mesure, l'autre permettant de visualiser/modifier son contenu). À vue de nez, ça commence à marcher à peu près comme je veux ; maintenant, il me reste à gérer proprement les différents types complexes que tu demandes (choix multiples, coordonnées, etc.)

Je devrais avoir fini ça ce soir ou demain, si tu peux passer sur IRC, je pourrai te filer ça histoire qu'on teste ensemble et que j'ai tes retours en live.

Hors ligne

#13 Le 12/05/2016, à 17:32

Sir Na Kraïou

Re : Faire une base de données en sciences humaines

Rhaaa ! C’est super cool de ta part ! Je passe ce soir sur IRC !

Rufus T. Firefly : j’essaye de piger ce que tu dis et je reviens. tongue Merci.


Descendant de Charlemagne.
Bleu, en l'hommage d'un truc bleu. :'(
C'est pas du bleu.
C'est pas le lac de Genève, c'est le Lac Léman.

En ligne

#14 Le 18/05/2016, à 23:46

Elzen

Re : Faire une base de données en sciences humaines

Bon, du coup, l'outil en question est dispo (avec toutes les informations qui vont bien sur la page), au cas où ça intéresserait d'autres gens smile

Hors ligne

#15 Le 19/05/2016, à 00:48

Rufus T. Firefly

Re : Faire une base de données en sciences humaines

Comment tu fais pour des relations plusieurs à plusieurs ?
Parce que tu peux trouver un monastère dans plusieurs sources, et plusieurs monastères dans une même source... Et c'est encore pire dans la table internet, où un auteur peut écrire sur plusieurs monastères en citant plusieurs sources...

Sur ce que tu proposes, je ne vois a priori que des relations un à plusieurs. Ce qui est beaucoup plus simple.

Dernière modification par Rufus T. Firefly (Le 19/05/2016, à 00:52)


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#16 Le 19/05/2016, à 00:49

Elzen

Re : Faire une base de données en sciences humaines

Les relations sont gérées à part.

Si une source cite plusieurs monastères, tu crées un lien entre la source et chaque monastère cité, ça suffit smile


(Note: le but est de faire un truc simple et utilisable par tout un chacun ; évidemment, pour du plus précis, il faut attaquer directement du SQL)

Dernière modification par Elzen (Le 19/05/2016, à 00:51)

Hors ligne