Datenbank, DbManagementSysteme, Multi-User DBMS ?

Hallo, Leute,

Ich peil da irgendwas nicht:
Ich benutze seit ein paar Jahren Access, immer in der aktuellen Version. Ich hab auch schon Datenbanken gebaut, die über Netzwerke liefen, also mehrere Frontends, die alle auf ein zentral gelagertes Backend zugreifen (ist doch dann Multi-User, oder?). Alles ohne Probleme. Nun soll ich ein größeres Projekt verwirklichen und mir erzählen Hinz und Kunz, daß ich dafür Access nicht nutzen könne, weil es doch garkein Multi-User-Datenbank-Management-System wäre, ich bräuchte mindestens Oracle oder mySQL oder SQL Server von ms - mach ich da irgendwo einen Denkfehler, wenn ich sage, daß Access doch reicht? Kann mich in dem Punkt mal jemand aufklären???

völlig verwirrten Gruß
Sibylle

Hi,

mach ich
da irgendwo einen Denkfehler, wenn ich sage, daß Access doch
reicht?

Machst Du - oder auch nicht.
Pauschal kann ich das nicht beantworten - da müßte man mehr über die angepeilte Größe: Datenvolumen, Anzahl der konkurrierenden Benutzer, Wichtigkeit der Daten, Anforderungen an Ausfallsicherheit und Verfügbarkeit…

Ich hab auch schon Datenbanken gebaut, die
über Netzwerke liefen, also mehrere Frontends, die alle auf
ein zentral gelagertes Backend zugreifen (ist doch dann
Multi-User, oder?).

Ja und nein. Multi-User ist hier nur ein Problem. Es liegt woanders: die Aufteilung in Frontend/Backend ist bei Access nur halbherzig, Du verlegst nur die Datenhaltung auf einen zentralen Punkt, nicht aber deren Verwaltung.
Anders ausgedrückt, bei Access arbeitet IMMER der Frontend. Wenn Hinz z.B. auf seinem Rechner die Bestellung von Kunde 17 haben will, muß sein Frontend die Suche durchführen, d.h. alle benötigten Daten werden übers Netzwerk abgeholt, verglichen und verworfen, bis dien Nummer 17 gefunden wurde.
Bei einer „richtigen“ Datenbank werden die Daten aktiv verwaltet, d.h. Dein Frontend greift nicht auf die Daten zu, sondern fordert sie per SQL an. Ein Serverprozeß nimmt die Anfragen entgegen, sucht die Daten heraus und gibt nur die angeforderten ab. Das hat mehrere Vorteile:

  • Die Datenhaltung kann darauf optimiert werden, nur auf lokale Festplatten zugreifen zu müssen.
  • Konkurrierende Anfragen verschiedener Clients können erkannt und behandelt werden
  • Transaktionen können effizient verwaltet werden (Daten, die noch nicht committed sind, werden von anderen Clients nicht gesehen).
  • Ein funktionierendes Berechtigungssystem wird erst möglich

Darüber hinaus bieten SQL-Datenbanken (im Gegenstück dazu ist Access file-basiert) sehr ausgefeilte Mechanismen zur Absicherung gegen Datenverlust bei Systemausfällen.

Mit Access kommst Du schnell an die Grenzen, wenn mehrere Benutzer und / oder große Datenmengen ins Spiel kommen. Bis wieviele Benutzer es noch läuft hängt von der Beschaffenheit der Daten und der Art der Transaktionen ab; ich würde nicht ernsthaft mit mehr als 15 Benutzern arbeiten wollen, obwohl man von 50 und mehr erzählt.

völlig verwirrten Gruß

Na, ich hoffe, jetzt bist Du erst recht verwirrt. :smile:

Gruß

J.

Danke - und noch zwei Fragen
'n Abend, José,

Anders ausgedrückt, bei Access arbeitet IMMER der Frontend.
Wenn Hinz z.B. auf seinem Rechner die Bestellung von Kunde 17
haben will, muß sein Frontend die Suche durchführen, d.h. alle
benötigten Daten werden übers Netzwerk abgeholt, verglichen
und verworfen, bis dien Nummer 17 gefunden wurde.

Wenn ich unter Access mit VB arbeite, nutze ich doch auch SQL-Statements - ist das dann „Schummel“? Also holt sich das AccessFrontend trotzdem die komplette Tabelle und sortiert dann erst aus?

Bei einer „richtigen“ Datenbank werden die Daten aktiv
verwaltet, d.h. Dein Frontend greift nicht auf die Daten zu,
sondern fordert sie per SQL an.

Ist MySQL eine „richtige“ Datenbank?

Na, ich hoffe, jetzt bist Du erst recht verwirrt. :smile:

Nee, super Antwort - endlich mal was kapiert (is’ halt der Nachteil, wenn man ausschließlich autodidaktisch in den Kram einsteigt - einerseits kriegt man Sachen hin, die angeblich unmöglich sind, andererseits weiß man eigentlich nicht so ganz genau, was man da tut…)

Gruß
Sibylle

Hi,

Wenn ich unter Access mit VB arbeite, nutze ich doch auch
SQL-Statements - ist das dann „Schummel“? Also holt sich das
AccessFrontend trotzdem die komplette Tabelle und sortiert
dann erst aus?

Naja, Schummel nicht direkt. SQL als Abfragesprache ist schon sehr nützlich zum Formulieren von Statements. Und die ganze Tabelle wird wohl nicht geholt werden, sondern zunächst die Indexinformationen. Der wesentliche Tatbestand bleibt aber: es gibt nur einen aktiven Prozeß, das ist der im Frontend, und die Daten lagern woanders, also werden sie auch rübergeholt.

Ist MySQL eine „richtige“ Datenbank?

Ja! Und keine schlechte. Natürlich kann sie nicht mit Oracle oder DB2 konkurrieren, wenn es auf Verfügbarkeit und Ausfalltoleranz geht, aber sonst ist das eine ganz schicke Sache.

einerseits kriegt man Sachen hin, die angeblich
unmöglich sind, andererseits weiß man eigentlich nicht so ganz
genau, was man da tut…

PW: Du kennst den Unterschied zwischen Theorie und Praxis?
Oh. Falsches Brett. :smile:

Gruß und gute Nacht

J.

1 Like

Noch’n Danke
…bist ja 'n ganz schneller

guts Nächtle

Sibylle