Finden anhand von Aspekten
Find Using Notions

31.10.04

Implementierung: Datenbankstruktur

Die für MOM vorgesehene Datenbank besteht aus elf Tabellen:
  • label enthält Bezeichnungen. In dieser Tabelle ist angegeben, in welcher Sprache eine Bezeichnung steht. Die Sprache ist durch einen Secondary Key repräsentiert, der sich auf den Primary Key von language bezieht.
  • language führt diejenigen Begriffe auf, die eine Sprache repräsentieren. Dabei wird eine Begriff-ID verwendet, die auf den Primary Key von notion referenziert.
  • notion repräsentiert einen Begriff. Da ein solcher durch seine Eigenschaften repräsentiert wird, diese aber selbst Begriffe sind, ergo auch separat in der Datenbank abgelegt sind, hat die notion-Tabelle keine weiteren Eigenschaften als den Primary Key und die u.a'en Hilfsfelder wie Urheber, Zugriffsrecht, Datum der letzten Änderung u.a.
  • notion_label stellt den Zusammenhang zwischen Bezeichnung und Begriff her. Diese Tabelle referenziert auf die Primary Keys von notion und label.
  • Der Urheber einer Angabe, etwa eines Begriffes, wird in author verzeichnet. author weist den Namen des Autors und eine EMail-Adresse aus.
  • Will man einem solchen Urheber eine Mail schreiben, ist wichtig zu wissen, welche Sprachen dieser gut versteht. Deswegen existiert eine Tabelle preferred_language. Diese ordnet einem Urheber Sprachen zu und verzeichnet zusätzlich, wie gewandt der Urheber in einer Sprache ist. – Die Angabe, wie gut jemand eine bestimmte Sprache versteht, ist auch relevant für den lokalen Nutzer: Dadurch kann die Anzeige von Begriff-Benennungen auf jene Sprachen beschränkt werden, die der Nutzer versteht.
  • Zugriffsrechte auf Angaben werden in access_right festgesetzt. Diese Tabelle enthält die Bezeichnung und das Datum der letzten Änderung des Zugriffsrechtes, sowie Angaben darüber, ob und wenn ja zu welchem Preis die entsprechende Angabe "gekauft" werden kann. Auch ein Passwort für den Zugriff kann angegeben sein.
  • Untereinander stehen die Begriffe durch Verknüpfungen miteinander in Beziehung. Diese werden in relationship gespeichert. Diese Tabelle referenziert auf zwei Primary Keys von notion: auf den eines Begriffs und den eines Merkmals dieses Begriffes. Zusätzlich wird (anhand der Häufigkeit der Nutzung) vermerkt, wie wichtig eine Relation ist. Der Typ der Relation wird durch den Primary Key von relationship_mode angegeben.
  • relationship_mode enthält nichts weiter als die Klartextbezeichnung der Relationstypen: IS / N.A., IS / MUST, MUST NOT / N.A. und MUST NOT / IS NOT.
  • Aufgrunddessen, dass Sprachen nicht unmittelbar definiert sind, sondern lediglich durch eine Referenz auf einen Begriff in notion, wäre prinzipiell möglich, Sprachen zu löschen, so wie es auch für gewöhnliche Begriffe möglich ist. Doch kann eine Bezeichnung ausschließlich dann angelegt werden, wenn angegeben wird, in welcher Sprache sie steht. Deswegen sollten solche Begriffe, die Sprachen repräsentieren, möglichst nicht so ohne weiteres gelöscht werden können. Deswegen existiert eine weitere Tabelle, entries_used_by_MOM, die diejenigen Tabellen und Zeilen verzeichnet, die tunlichst nicht ohne weiteres gelöscht werden sollten. Anhand der Einträge innerhalb dieser Tabelle wird entschieden, inwieweit ein Eintrag einer anderen Tabelle verändert oder gar gelöscht werden kann.
  • Die Tabelle tables schließlich weist für entries_used_by_MOM die Tabellennamen aus.

Im Hinblick darauf, dass Einzeldaten der Datenbank in einem Peer-To-Peer-Umfeld möglicherweise gehandelt werden sollen, enthalten mehrere dieser elf Tabellen Felder für die ID eines Urhebers, die Wichtigkeit, Zugriffsrechte und den Zeitpunkt der letzten Änderung eines Eintrages.


———
[lokal referenziert von: Struktur: Back-End: Datenzugriff: Ebene 3: EntriesUsedByMOMTableAccessor]