Krzysztof Nowak pisze:
Całość zagadnienia sprowadza się do tego jak zidentyfikować w bazie konkretną jednostkę, czyli do indeksowania. Jak zindeksować (czyli znaleźć) statek, który miał w ciągu swojego żywota na przykład 10 nazw. Wszystkie bazy danych są pod tym względem do niczego.
Sorki, że się wymądrzam

, ale to akurat jest stosunkowo proste do zrealizowania, przynajmniej w teorii. Co prawda bardzo trudno (ale nie jest to niemożliwe!) byłoby to zrobić w bazie jednotablicowej, ale w wielotablicowej (w końcu po to istnieją relacyjne bazy danych) nie ma większego problemu.
Najprostsze rozwiązanie:
1 tablica: id jednostki, nazwa, +ew. jakaś data lub określenie armatora, bandery itp. (id jest wartością - najczęściej numerem - unikalną, nazwa-wszystkie nazwy jednostek występujące w zbiorze danych)
2 tablica: referencje pomiędzy poszczególnymi id (np id=3 -> id=9 to ta sama jednostka pod inną nazwą)
3...n-ta tablica: tablice z danymi (najlepiej osobne dla każdego zagadnienia, np. daty i fakty, wymiary, wyporność/tonaż, napęd, załoga itp.), gdzie każdy rekord identyfikowany i wiązany jest z innymi poprzez id.
Cały problem sprowadza się do stworzenia oprogramowania aplikacyjnego zapewniającego interfejs użytkownika, integralność i walidację danych oraz do posiadania odpowiedniej platformy (engine'u) systemowej bazy danych.
AvM podał przykład pewnej bazy, Krzysztof również napisał w jaki sposób sobie z tym radzi, spora część innych osób gromadzących dane ma zapewne wdrożony swój sposób katalogowania. I jak to wszystko sprowadzić do wspólnego mianownika?!
Aby baza zapewniała relacyjność i integralność MUSI istnieć jednoznaczny i unikalny identyfikator. A nie ma niemal ŻADNEGO sposobu, by nawet po przeprowadzeniu konwersji swoich własnych zbiorów do jakiegoś zdefiniowanego formatu to zapewnić bez wykorzystania systemu on-line.
Jedynym wyjściem jest stworzenie najpierw podstawowej (tej przykładowej tablicy 1) listy, którą następnie można obudowywać danymi (od razu podpowiem, że to też chyba jest niewykonalne - co np. z różnymi standardami transkrypcji?).
To co, kto się podejmuje na ochotnika sporządzenia 'suchej' listy zawierającej kilkaset tysięcy pozycji?
Jeszcze tylko trochę wymądrzania
Istnieje jednak coś, co może rozwiązać sprawę właśnie jako półśrodek. Istnieją systemy mogące być niczym więcej niż repozytorium dokumentów (np. Lotus Notes - jest ich oczywiście więcej [choćby SQL Server, Sybase, Oracle], ale ten akurat troszkę znam. Te systemy mają naturalnie i inne możliwości, ale skupię się tylko na tej). Jak to działa? W bazie (może być rozproszona!!!) przechowywane są tylko i wyłącznie dokumenty w dowolnej postaci - obrazki, teksty, pliki. Wszystko to oczywiście właściciel dokumentu lub uprawniony użytkownik może opatrzyć (co jest najbardziej praco- i czasochłonne oraz sprzyja powstawaniu błędów i/lub opuszczeń [przy czym dane typu tekst mogą być indeksowane automatycznie w całości - każde słowo!]) identyfikatorami i słowami kluczowymi służącymi do indeksowania i wyszukiwania. Istnieje replikowana baza zawierająca wyłącznie możliwe do odnalezienia poprzez indeksy i opisy wskaźniki do owych dokumentów, dostępna dla każdego uprawniongo użytkownika. Co to daje? W bardzo krótkim czasie, pod warunkiem istnienia poprawnych w sensie formalnym opisów i słów kluczowych można odnaleźć i uzyskać dostęp do dokumentów istniejących na zdalnym komputerze.
Jak dla mnie to wygląda to na najlepsze rozwiązanie. Minusy? Te same co zwykle... Koszty - licencja na sam system i licencja dla każdego klienta, utrzymanie 'centralnej' maszyny replikującej bazę oraz łączy, konieczność szeroko pojętego administrowania całym systemem.
Ufff... Mam nadzieję, że nikt nie zasnął
Czy można poprosić Moderatora o przeniesienie części 'bazodanowej' wątku do topicu AvM o 'spółdzielni inaczej'?