Ganane: DBMS / Verständnisfrage

Beitrag lesen

Hallo zusammen,

Ich habe da einige fragen, die wiki nicht plastisch genug vermittelt.
Eine Datenbank (DB) ist im prinzip eine Datei mit Werten z. B. getrennt durch Kommata (z. B. CSV oder SEQ Datei). Dann benötigt man ein Programm, das die DB verwaltet. Das macht das Datenbankmanagementsystem (DBMS). Beides zusammen (DB+DBMS) ergeben dann das Datenbanksystem (DBS). Bis hierhin habe ich das glaube ich richtig verstanden.

Naja, in Wirklichkeit ist das ganze viel komplexer, aber die Grundidee stimmt. So in etwa kann eine Datenbank aufgebaut sein.

Soviel zur Theorie, nun zur Praxis:

Mit dem Befehl open, kan ich eine beliebige Datei (werte.seq) öffnen. Beim Öffnen muss ich aber den Parameter angeben, wie die Datei zu öffnen ist:

OUTPUT=zum (Über)schreiben
INPUT=zum Lesen
APPEND=zum schreiben an das ende der geöffneten Datei.

OPEN Dateiname FOR Zugriffsmodus AS Dateinummer

So, nun die Fragen:

  1. Wie soll der Programmierer bei drei Werten in der Datei, nur den 2. Wert (Frau)ändern?

Der Programmierer tut das (normalerweise) gar nicht. Das macht das DBMS für ihn. Dabei gibt es zwei Möglichkeiten: jedes Feld (jeder Wert zwischen den Kommas) hat eine feste maximale Größe und ist niemals größer oder kleiner oder jedes Feld hat eine Variable Größe.
Haben alle Felder die gleiche feste Größe, kann man aufgrund der Gesamtlänge einfach an die entsprechende Position springen. Das nennt man auch RAM.
Haben die Felder aber nicht alle eine feste Größe, müssen erst alle Werte in einer Zeile ausgelesen werden, bis man beim gesuchten Wert angekommen ist.

  1. Eine Datei kann genau nur einmal geöffnet werden. Das heisst, wenn einer die Datei für einen Schreibzugriff geöffnet hat, kann kein Zweiter die Datei zum Lesen öffnen. (Error:File already open). Das fürt mich zu der Frage, wie das bei grossen Datenbanken gemacht wird, wo _gleichzeitig_ beispielsweise 50 Leute daten lesen und ändern.

Gar nicht. Dieses "gleichzeitig" kommt dir nur so vor, weil die Abfragen sehr schnell hintereinander ausgeführt werden.