Autor Thema: Konsequenzen der Datenbank  (Gelesen 934 mal)

Martin Lemke

  • Administrator
  • *****
  • Beiträge: 14582
  • TK 2130 Lübeck, Schleswig-Holstein, Germany
    • Spinnenerfassung in SH
Konsequenzen der Datenbank
« am: 2010-11-12 23:25:32 »
Bekannterweise werden einige Artikelinhalte inzwischen über eine Datenbank automatisch erzeugt. Dies hat allerdings auch Seiteneffekte. Wir können/sollten nun nicht mehr einfach so irgend welche Artikel verfassen, denn durch die Datenerzeugung via Datenbank kommen werden mitunter einige Artikel nicht mehr in die Systematik eingelinkt. Das heißt, die Datenbank zwingt uns zu strenger Datenkonsistenz. Das ist an sich gut.

Damit kommt der Datenbank eine zentrale Rolle zu und die Richtigkeit ihres Inhaltes ist von immenser Bedeutung.

Die wichtigste Aufgabe ist deshalb für mich, ein Interface zu erfinden und zu bauen, das für die Mitarbeiter des Wikis die Möglichkeit bietet, die taxonomischen Tabellen zu pflegen. Im Moment gibt es nur ein halbautomatisches Workaround, das nur ich bedienen kann und sollte.

Ein Interface für alle (oder ein spez. Team) kann auch hinsichtlich Fehlern viel besser kontrolliert werden. Im Moment fallen Fehler nur sporadisch auf, aber eine systematische Fehlersuche ist nur auf dem umständlichen Weg über die Betrachtung der Wiki-Seiten möglich, die prinzipbedingt solche Fehler nicht entdecken helfen kann, wo Daten im Wiki noch nicht auftauchen.

Die Möglichkeit, die taxonomischen Grundtabellen anzuzeigen und zu editieren, ist dringend nötig. Die nächste Platnick-Revision kommt bestimmt.

Ich kann nächste Woche nicht ins Forum schauen. Also nicht böse sein, wenn ich schweige.

Martin

Informeller Anhang:

Folgende taxonomische Tabellen existieren im Moment:

Tabelle der ...
* Ordnungen
* Familien
* Arten
* Synonyme

Diese Tabellen sind alle untereinander verknüpft:

Arten
id
id_familie => verweist uf id der Tabelle Familien
name
autor

Familien
id
id_ordnung => verweise auf id der Tabelle Ordnungen
name
autor

Synonyme
id
id_art => verweist auf id der Tabelle Arten
name

Wie zu sehen, existiert noch keine Tabelle, welche den Life Science Identifier (LSID) enthält. Eine solche Tabelle fehlt noch.

Ich stelle sie mir so vor:

life_science_indetifiers
id
id_taxon => verweist auf id_art, id_familien oder id_ordnung
taxontabelle (sonst ist es nicht eindeutig)
lsid (darum geht es ja)
« Letzte Änderung: 2010-11-13 11:00:03 von Martin Lemke »
DAS waren noch Zeiten: Nowegen 2011.

Michael Hohner

  • Administrator
  • *****
  • Beiträge: 4757
  • Wo ist nun der versprochene Wurm?
    • Meine Spinnenfunde in Bayern
Re: Konsequenzen der Datenbank
« Antwort #1 am: 2010-11-13 08:09:07 »
Die LSID würde ich direkt mit in die Tabellen der Arten, Gattungen und Familien aufnehmen. Die sind schließlich für die drei Ebenen auch unterschiedlich.

Martin Lemke

  • Administrator
  • *****
  • Beiträge: 14582
  • TK 2130 Lübeck, Schleswig-Holstein, Germany
    • Spinnenerfassung in SH
Re: Konsequenzen der Datenbank
« Antwort #2 am: 2010-11-13 10:54:15 »
Die LSID würde ich direkt mit in die Tabellen der Arten, Gattungen und Familien aufnehmen.

Dagegen spricht, dass es eine LSID ausschließlich für Webspinnen gibt. Solifugidae, Opiliones, Tasterläufer und was sonst noch ins Wiki einfließen mag, haben keine. Deshalb halte ich eine separate Tabelle sowohl datenbanktheoretisch, als auch logisch für die sauberere Lösung. In der Handhabung ergibt sich daraus kein Nachteil.

Martin


edit:
Habe der lsid-Tabelle noch zwei Felder hinzugefügt.
« Letzte Änderung: 2010-11-13 11:01:45 von Martin Lemke »
DAS waren noch Zeiten: Nowegen 2011.

Michael Hohner

  • Administrator
  • *****
  • Beiträge: 4757
  • Wo ist nun der versprochene Wurm?
    • Meine Spinnenfunde in Bayern
Re: Konsequenzen der Datenbank
« Antwort #3 am: 2010-11-13 11:13:41 »
Du kannst ja für die LSID auch NULL-Werte zulassen.

So wie ich das sehe, brauchst du alleine 2 Felder, um überhaupt das zugehörige Taxon zu finden, und ein Feld, um die (eigentlich ohnehin schon eindeutige) LSID zu identifizieren. Nur 1 von 4 Feldern trägt überhaupt neue Information. Dafür eine neue Tabelle einzuführen, das macht die Abfragen nur noch langsamer und komplizierter, und wenn die LSID optional ist, brauchst du evtl. mehrere Abfragen, um die Information rauszuholen.

Martin Lemke

  • Administrator
  • *****
  • Beiträge: 14582
  • TK 2130 Lübeck, Schleswig-Holstein, Germany
    • Spinnenerfassung in SH
Re: Konsequenzen der Datenbank
« Antwort #4 am: 2010-11-13 11:59:08 »
Im Grunde wird die LSID gar nicht benötigt. Sie ist nur für den Fall interessant, wenn man eine Hilfe bauen will, welche vielleicht beim Anlegen eines neuen Artikels das Template schon mal weitgehend datenbestandskonform ausfüllt. Das ist in meinen Augen eine sinnvolles Angebot. In sofern greift das Argument, die separate Tabelle würde die Anfrage z. B. bei der Tabellenerzeugung verlangsamen, nicht, weil diese Angabe dabei gar nicht gefragt ist.

Felder, welche im Regelfall mit NULL gefüllt werden, zeugen für mein Empfinden von schlechtem Datenbankdesign. Das erinnert mich an die Tabellen der Forensoftware, wo für jedes Mitglied eine Vielzahl an Spalten vorhanden ist, die im Regelfall überhaupt nicht verwendet werden: Gender, birthdate, websiteTitle, websiteURL, ICQ, AIM, YIM, MSM, kamaBad, kamaGood, signature, smileySet ...

Kleine Auswahl:
SELECT count(memberName)
FROM smf_members
WHERE ICQ !=''


Von rund 300 Usern verwenden
ICQ 10
AIM 1
MSN 4
Gender 96
websiteTitle 46
websiteURL 49
personalText 14
karmaBad 0
karmaGood 0
usertitle 0

Martin
DAS waren noch Zeiten: Nowegen 2011.

Arno Grabolle

  • ******
  • Beiträge: 14437
    • mein g+
Re: Konsequenzen der Datenbank
« Antwort #5 am: 2010-11-14 01:22:48 »
Ich verstehe zwar nicht all zu viel davon, kann aber Michaels Argumente gut nachvollziehen. Dein letztes Argument (im Regelfall Null) sollte hier nicht gegeben sein, denn die Spinnen stellen die wesentlich größere Menge der Arten und damit der Regelfall. Und wer weiß, ob die Opiliones nicht auch in absehbarer Zeit eine LSID bekommen.

Arno

Martin Lemke

  • Administrator
  • *****
  • Beiträge: 14582
  • TK 2130 Lübeck, Schleswig-Holstein, Germany
    • Spinnenerfassung in SH
Re: Konsequenzen der Datenbank
« Antwort #6 am: 2010-11-14 02:07:26 »
Wie gesagt, die LSIDs wäre eine Zusatzinformation, welche wenn überhaupt, nur für besondere Aufgaben interessant ist und bisher überhaupt nicht gefragt ist. Möglicherweise kann man diese Information auch ganz weg lassen.

Ich habe viel Zeit darauf verwendet meine alte, schlecht konzipierte Datenbank durch etwas besseres zu ersetzen. Viele alte Funddaten sind noch immer nicht in die neue Datenbank eingetragen. Da bin ich deshalb bei der Datenbankkonzeption strikt. Es gibt keinen vernünftigen Grund, diesen Grundsatz zu verwässern. Ich hatte einfach zu viele Probleme mit den alten Datentabellen, welche voll mit redundanten Daten waren.

Zitat von: Arno
Ich verstehe zwar nicht all zu viel davon

Hier ein einfaches Beispiel:
Tabelle Familien
id
id_ordnung
name
autor

Tabelle Arten
id
id_familie
name
autor

Tabelle LSID
id
id_art
lsid

In der Regel werden nur die Daten der Tabelle Arten benötigt.

Als Beispiel mal die Abfrage aller Atypidae

SELECT Arten.name
FROM Arten, Familien
WHERE Familien.id=Arten.id_familie
AND familien.name='Atypidae'


Für einen Speziellen Fall will man auch die LSID haben:

SELECT Arten.name, lsid
FROM Arten, Familien, LSID
WHERE Familien.id=Arten.id_familie
AND familien.name='Atypidae'
AND LSID.id_art=Arten.id


Da ist wirklich kein großer Unterschied. Das ist eine Bedingung von dreien mehr.

Martin

« Letzte Änderung: 2010-11-14 02:10:18 von Martin Lemke »
DAS waren noch Zeiten: Nowegen 2011.

Arno Grabolle

  • ******
  • Beiträge: 14437
    • mein g+
Re: Konsequenzen der Datenbank
« Antwort #7 am: 2010-11-14 11:07:18 »
Die LSID ist doch eineindeutig. Kannst du die nicht gleich als ID für deine Art-, Gattungs- und Familientebellen benutzen? Ich kann nicht ganz nachvollziehen, dass man eine eigene Tabelle benötigt, um die ID der Art / Gattung / Familie wieder in eine andere ID zu übersetzen. In der Tabelle LSID wird doch in keinem Feld ein doppelter Wert vorkommen. Andernfalls hättest du ein paar Nullen in den Datensätzen der Opiliones und Pseudoscorpiones.

Wenn sich in der Artentabelle etwas ändert, weil eine Art gespittet wird, oder zwei Arten synonymisiert, muss man immer auch an die LSID-Tabelle denken und dort korrigieren oder? Andernfalls würde sich das von selbst ergeben, weil ich quasi gezwungen bin das Feld auszufüllen, wenn ich eine neue Art / Gattung / Familie eingeben. 

Arno

Martin Lemke

  • Administrator
  • *****
  • Beiträge: 14582
  • TK 2130 Lübeck, Schleswig-Holstein, Germany
    • Spinnenerfassung in SH
Re: Konsequenzen der Datenbank
« Antwort #8 am: 2010-11-14 14:19:11 »
Mich nervt diese Herumreiterei auf dem LSID. Ich hätte den gar nicht erwähnen sollen.

Fakt ist, dass der LSID derzeitig datenbankmäßig überhaupt nicht verwendet wird. Damit hat er absolut keine Bedeutung und es gibt keinen vernünftigen Grund, in als Index zu verwenden, weil nicht alle Arten und Familien einen LSID haben. Ein eindeutiger Index wird aber benötigt, um performant arbeiten zu können. Warum wider besseren Wissens und damit sehenden Auges ein gutes Datenbankkonzept kaputt machen?

Es gibt noch sehr viel sinnvolles in Zusammenhang mit Datenbank und Wiki zu verbessern und neu zu realisieren. Daher habe ich diesen Beitrag gepostet. Damit sich alle klar darüber sind, wohin die Reise geht. Der LSID könnte da eine verschwindend geringfügige Nebenrolle spielen, wobei er derzeit absolut keine Rolle spielt. Er ist also nicht im mindesten soviel Aufmerksamkeit wert, wie man hier den Eindruck gewinnen möchte.

Martin
« Letzte Änderung: 2010-11-14 14:22:08 von Martin Lemke »
DAS waren noch Zeiten: Nowegen 2011.