Datenbanken allgemein

Hallo,

kann mir jemand mit einfachen Worten den Unterschied zwischen einer Datenbank und einer Datenhaltung in ISAM-Dateien erklÀren?

Ich habe gelesen, dass das Halten von Daten in ISAM-Dateien uralt ist, aber noch verwendet wird. Ich habe auch schon ISAM-Dateien gesehen und ich kenne z.B. eine Access-Datenbank. Optisch ist das schon was anderes. Aber wie lĂ€sst sich am besten die Datenbankeigenschaft erklĂ€ren? Wiki habe ich schon bemĂŒht, klingt schlĂŒssig, aber es hat noch nicht „klick“ bei mir gemacht.

Vielleicht hat einer von Euch die richtigen Worte oder einen schönen Link?

Danke und viele GrĂŒĂŸe
Monroe

Eigener ErklÀrungsversuch
 So richtig?
ich habe da gerade was gefunden, demnach habe ich das so verstanden:

Im Grunde ist es egal, ob man Daten per Datenbank oder Datei speichert. Allerdings bringt die Datenbank diverse Dinge „von Natur aus“ mit. Zum Beispiel die Zugriffsmöglichkeiten und Benutzerrechte.

Bei einer ISAM-Datei muss das alles mĂŒhselig programmiert werden. Die Benutzerrechte können nicht einfach auf ein Feld gelegt werden, sondern mĂŒssen einzelnd abgefragt werden. FĂŒr den schnellen Zugrif mus manuell ein Index auf die gewĂŒnschten Felder gelegt werden.

Neue Felder können in einer Datenbank einfach hinzugefĂŒgt werden, bei einer ISAM-Datei geht das nicht so fix und die ganze Datei muss hinterher reorganisiert werden.

Wenn das so korrekt ist, wĂŒrde mir das schon mal reichen :smile:

VG
Monroe

Fast beinahe
Moin, Monroe,

das ist alles nicht falsch, trifft es aber nicht ganz. Eine Datenbank zeichnet sich dadurch aus, dass Beziehungen zwischen den Daten selbst Bestandteil der Daten sind und dass diese Beziehungen vom DBMS abgesichert werden.

Bei ISAM weiß kein Satz etwas von einem anderen, bei IMS gibt es nur die Parent-Child-Beziehung (mit Tricks noch ein wenig mehr), SQL nutzt die KardinalitĂ€t und die OprtionalitĂ€t zur Konstruktion der Beziehungen und befreit den Datendesigner von den hierarchischen AbhĂ€ngigkeiten des IMS.

Wichtigstes Kriterium jedoch sind die Datendefinitions- und die Datenmanipulationssprache - das sind offene, sauber dokumentierte Schnittstellen, nichts wird in selbstgestrickten Programmen versteckt. GrĂ¶ĂŸter Vorteil: Eine Datenbank kann ohne Anwendungsprogramm weitergegeben werden.

Gruß Ralf

Hallo Ralf und Monroe,
das möchte ich aber noch ein wenig ergĂ€nzen. Eigentlich ist die Frage ja „etwas schief“, weil sie zwei verschiedene Ebenen zusammenbringt. Eine DB (oder eigentlich ein Datenbanksystem) abstrahiert ja den Datenzugriff und verbirgt damit die Art des Zugriffes auf die Daten vor dem User. Insofern ist die DB die obere Ebene und der Zugriff (z.B. eben ISAM) mindestens eine Ebene tiefer angesiedelt. Das eine schliesst das andere nicht aus, nicht umsonst ist die wohl hĂ€ufigste Speicher/Zugriffs-Methode von MySQL die MyISAM-Engine, eine Weiterentwicklung von ISAM
http://de.wikipedia.org/wiki/MyISAM
http://de.wikipedia.org/wiki/MySQL#Offizielle_Engines

Beides zu vergleichen heisst nun nicht unbedingt Äpfel mit Birnen zu vergleichen, aber vielleicht Äpfel mit Boskoop oder Autos mit Motoren :wink:

Viele GrĂŒĂŸe
Marvin

Jetzt verstehe ich gar nichts mehr :frowning:
Hallo,

verstehe ich nicht. Wahrscheinlich fehlt mir der Hintergrund. Letztendlich war ich nach der letzten Antwort halbwegs sicher, das ein wenig verstanden zu haben und das hat mir fĂŒr mein heutiges Vorhaben Sicherheit gegeben. Es wurde nicht danach gefragt, also aktuell nicht mehr so wichtig.

FĂŒr mich als neugieriges Kind wĂ€re es natĂŒrlich trotzdem klasse, das zu verstehen. Ich habe schon ISAM-Dateien, z.B. auf einer Unix-Shell gesehen und ich habe z.B. Tabellen aus SQL-Abfragen gesehen (das ist doch eine DB?). Nur sehe ich nix ausser einen optischen Unterschied und den schon im Posting vorher genannten Punkten.

Vielleicht habe ich nÀchste Woche die Chance, dass mir das jemand am lebenden Beispiel erklÀrt. Mag einfacher sein.

Danke fĂŒr Eure MĂŒhen, ich denke, dass mir da wirklich ein wenig Hintergrund zum Verstehen fehlt.

VG
Monroe

Moin, Monroe,

ich auch nicht :smile:))

ISAM1 erlaubt die SĂ€tze auf zwei Arten auszulesen: In der Zugangsfolge oder einzeln per Satznummer („Der 28. Satz“), mehr nicht. Eine Datenbank gibtdie Daten in beliebiger Reihenfolge zurĂŒck, was aber viel wichtiger ist, sie liefert die (vorher festgelegten) ZusammenhĂ€nge zwischen den Daten.

Jetzt mal kurz zu den Grundlagen:

Wenn Du einen DatentrÀger anschaust, findest Du nichts als Bytes, hintereinander angeordnet. Um an die Daten zu kommen, musst Du wissen, wie sie organisiert sind.

Einfachster Fall: SAM, Sequential Access Method - ein Satz nach dem anderen, auseinanderzuhalten durch einen Delimiter oder durch Angabe der SatzlĂ€nge. Kein gezielter Zugriff auf einzelne SĂ€tze (außer dem ersten) ist nicht möglich.

Verbesserung: ISAM, Indexed Sequential Access Method. Zur sequentiellen Datei wird ein Verzeichnis hinzugefĂŒgt, das aus einer Satz(reihenfolge-)nummer und einer physikalischen Adresse besteht, nĂ€mlich der Position des Satzanfangs relativ zum Dateianfang. Eine kleine Software, die access method, kriegt die Satznummer, rechnet die Byteadresse aus und liefert den gesuchten Satz zurĂŒck.

VSAM noch in aller KĂŒrze: Indextabelle besteht aus SchlĂŒsselwert und Zeiger, damit ist das Suchen nach SchlĂŒsselwerten möglich. Eine VSAM-Datei hat beliebig vile Satzarten; wie die Satzarten zusammenspielen, weiß nur der Programmierer.

Erst jetzt kommt die Datenbank: Wie Satzarten logisch zusammenhĂ€ngen, wird in speziellen Tabellen (meist SysCatalog genannt) per Data Definition Language beschrieben beschrieben. Eine Data Manipulation Language erlaubt das EinfĂŒgen, Ändern, Löschen, vor allem aber das sinnvolle Anordnen von SĂ€tzen, die zusammengehören.

Uff.

Nochmal zur Erinnerung: Auf dem DatentrÀger ist auch eine relationale Datenbank erstmal nur eine endlose Folge von Bytes. So, wie sie der Anwender sieht, können die Daten nicht abgelegt werden, deshalb kommt erstmal die DML, dann irgendeine access method, bei DB2-Datenbanken zB VSAM.

Gruß Ralf

1Mein letzter Zugriff auf eine ISAM-Datei muss etwa 1976 erfolgt sein.

1 Like

Moin, Marvin,

Eigentlich ist die Frage ja „etwas schief“

mitnichten:

kann mir jemand mit einfachen Worten den Unterschied zwischen
einer Datenbank und einer Datenhaltung in ISAM-Dateien erklÀren?

Gruß Ralf

Hallo Monroe,

verstehe ich nicht.

Um Himmelswillen, ich wollte dich nicht verwirren. Mach es wie in Gerichtsfilmen, wenn der Richter zu den Geschworenen sagt: „Vergessen sie alles, was der Verteidiger gerade gesagt hat und berĂŒcksichtigen sie es nicht bei ihrer Urteilsfindung.“ Halte dich einfach an das, was Ralf gesagt hat. Das ist schon ok (hoffe, das verwirrt dich nicht noch mehr).

FĂŒr mich als neugieriges Kind wĂ€re es natĂŒrlich trotzdem
klasse, das zu verstehen. Ich habe schon ISAM-Dateien, z.B.
auf einer Unix-Shell gesehen und ich habe z.B. Tabellen aus
SQL-Abfragen gesehen (das ist doch eine DB?). Nur sehe ich nix
ausser einen optischen Unterschied und den schon im Posting
vorher genannten Punkten.

Aber da ich es nicht lassen kann (ĂŒberlies es, wenn Du magst), alles was ich sagen wollte, war folgendes: Auch unter MySQL gibt es MyISAM-Dateien (moderne ISAM-Dateien), nur daß Du sie eben nicht siehst, bzw. nichts mit ihnen zu tun hast, weil MySQL sie vor dir verbirgt, bzw. dir die Arbeit abnimmt.

Tut mir leid, daß ich dich so durcheinander gebracht habe.
Viele GrĂŒĂŸe
Marvin

Hallo Ralf,

Eigentlich ist die Frage ja „etwas schief“

mitnichten:

kann mir jemand mit einfachen Worten den Unterschied zwischen
einer Datenbank und einer Datenhaltung in ISAM-Dateien erklÀren?

Na gut, Du hast Recht, so schief war die Frage nicht. Allerdings denke ich, wenn ich deine Antwort lese
/t/datenbanken-allgemein/5207927/6
daß wir beide das gleiche gemeint haben, Du als alter Datenbank-Hase hast es nur besser ausgedrĂŒckt :wink:
Ich als pedantischer Mensch wollte einfach darauf hinweisen, daß Datenbanksysteme und ISAM-Dateien sich auf verschiedenen Ebenen bewegen, einer sehr abstrakten (DBS) und einer sehr maschinennahen (ISAM) und daß da kein Gegensatz bestehen muss, sondern sich das eine (DBS) sehr wohl des anderen (ISAM) bedienen kann.
Aber wie ich sehe, war dies nicht so sehr die Frage und den Gegensatz habe ich da mehr in die Frage (und wohl auch in deine erste Antwort) hineininterpretiert.

Viele GrĂŒĂŸe
Marvin

so vielleicht?
Hallo,

ich hoffe, dass jetzt richtig verstanden zu haben

Wenn ich das nochmal ganz banal mit eigenen Worten formulieren darf: Eine ISAM-Datei ist an sich „dumm“. Ohne ein StĂŒck Software, die auf diese Datei zugreift, die Daten sortiert, löscht, Ă€ndert usw. ist sie wertlos.

Dieses „StĂŒck“ Software muss wahrscheinlich genau die Dateistruktur kennen, um darauf zuzugreifen?

Bei eine Datenbank ist an sich schon ĂŒberlebensfĂ€hig, weil sie die logischen ZusammenhĂ€nge zwischen den Daten und deren Anordnung selbst verwaltet?

Aus Endverbrauchersicht ist es aber zunÀchst mal egal, wie die Daten gehalten werden, so lange die eingesetzte Software die ISAM-Dateien verwaltet. Nur das weitergeben der Daten wird sich schwierig gestalten, weil sie keinem Standard entsprechen. Richtig?

Danke Euch :smile:

VG
Monroe

Hallo Monroe,

verstehe ich nicht.

Um Himmelswillen, ich wollte dich nicht verwirren. Mach es wie
in Gerichtsfilmen, wenn der Richter zu den Geschworenen sagt:
„Vergessen sie alles, was der Verteidiger gerade gesagt hat
und berĂŒcksichtigen sie es nicht bei ihrer Urteilsfindung.“
Halte dich einfach an das, was Ralf gesagt hat. Das ist schon
ok (hoffe, das verwirrt dich nicht noch mehr).

Kein Problem :smile: Ist ja auch nicht ganz einfach, wenn hier so unterschiedliche WissenstĂ€nde aufeinander prallen
 Ich habe nie eine Ausbildung in dem Bereich genossen, sehe aber im Job oft diese ISAM Dateien. Man schnappt so einiges auf und eben auch „mit einer Datenbank wĂ€re es einfacher“. Nur den Hintergrund habe ich nie so richtig verstanden.

VG
MOnroe

VG
Monroe

Hi Monroe,

Dieses „StĂŒck“ Software muss wahrscheinlich genau die
Dateistruktur kennen, um darauf zuzugreifen?

eigentlich ist es noch viel schlimmer: Die Software lÀsst sich so schreiben, dass nur dieser eine Programmierer versteht, was da ablÀuft.

Der Rest deiner Überlegungen passt schon.

Gruß Ralf

Hi Marvin,

was ich noch vergessen hatte:

Beides zu vergleichen heisst nun nicht unbedingt Äpfel mit
Birnen zu vergleichen, aber vielleicht Äpfel mit Boskoop

nö, Apfel mit Butzen :smile:))

Gruß Ralf

Hallo,

vielen Dank fĂŒr die Antworten und die Geduld.

Das hier:

eigentlich ist es noch viel schlimmer: Die Software lÀsst sich
so schreiben, dass nur dieser eine Programmierer versteht, was
da ablÀuft.


 erklĂ€rt ĂŒbrigens Vieles :smile:)

VG und schöne Pfingsten
Monroe