Vorteile
Tom2000
- datenbank
Hi!
Ich habe da mal eine Frage.
Was ist der Vorteil von einer Datenbank
(Postgresql) in Bezug zu einer normalen
"Textdatenbank". Also wo einfach nur in
einem File das gespeichert wird.
Wie sieht das aus mit der parallelen
Datenverarbeitung, also wenn jemand
in einer Textdatenbank etwas schreiben
will, dann muss man das File ja für die
Zeit für andere Aktivitäten sperren ["flock"], da
es sonst zu Verlusten kommen könnte.
Wie sieht das bei einer SQL Datenbank aus.
Vielen Dank für viele Vor- und auch Nachteile,
die Ihr mir schreiben könnt!!!
Sup!
Na, da stellen wir uns mal ganz dumm...
Nehmen wir an, wir haben 100 Namen in der Datenbank, und dazu gehören noch jeweils email und ein datum als parameter.
Nehmen wir an, wir wollen die eMail-Adresse von einer Person ändern... dann liest die "Text-Datenbank" die Datensätze ein, bis in einer Zeile die Person steht. Das ist einigermassen ineffizient, sobald ein paar Zeilen zusammengekommen sind.
Wenn man jetzt eine Person löschen will, dann muß man die Zeile löschen, und die Datei komplett neu schreiben - das kostet Zeit wegen der Dateioperationen. Wenn man eine Datensatz ändert, dann muß ebenfalls die ganze Datei neu geschrieben werden, zumindest, wenn der Datensatz kürzer oder länger wird.
Wenn man nun einen zweiten Typ von Datensätzen hat, in dem nochmal die eMail-Adresse (als Schlüssel) und dann weitere Informationen stehen, und man nun zu einem Namen die eMail-Adresse und dann zur eMail-Adresse die Zusatzinformationen suchen will, dann potenzieren sich dich Probleme langsam... Datenbanken haben z.B. eingebaute Mechanismen, abhängige Datensätze zu löschen, wenn also der Datensatz mit dem Namen und der eMail gelöscht wird, dann kann man auch den Datensatz mit der eMail-Adresse und den Zusatzinformationen löschen lassen, der ja nun keinen Sinn mehr hat.
Es gibt unendlich viele Vorteile einer richtigen Datenbank, sonst wären ja keine Datenbanken entwickelt worden - ich würde empfehlen, ein Buch über Datenbanken zu lesen.
Gruesse,
Bio
Hi,
Auch wenn ich mich da nicht sonderlich gut auskenne, so stelle ich mir das jedoch so vor :
Im Endeffekt sind auch postrelationale Datenbanken Dateien. Jedoch ist die Strukturierung/Aufbau, Art und Weise des Zugriffes unterschiedlich. Bei dateibasierenden Datenbanken spiegeln sich Tabellen in Form einer Datei wieder, wo hingegen bei den postrelationalen Datenbanken die Dateien strukturiert sind (storage class). Das bedeutet dass nicht die Dateien bzw. deren Zugehörigkeit zueinander die DB ausmachen sondern durch die Struktur der Daten in den Dateien, welche auf Objekte abbildbar sind. Somit ist es möglich gewisse Bereiche in den Speicher zu laden und schneller Bezüge herzustellen.
Timo
PS: Man möge mich verbessern
Sup!
Die meisten Datenbanken benutzen sogar Blockzugriffe, weil das relativ am OS vorbei und am schnellsten geht.
Gruesse,
Bio
Danke schonmal für Eure Kommentare.
Was mich besonders interessiert ist folgendes:
Ich habe ein Textfile XY, was über das Web via cgi
"angesprochen" werden kann. Nun wollen zwei User
gleichzeitig etwas in "XY" speichern - also
muss mein cgi-script mit "flock" die Datei sperren,
wenn der erste Benutzer gerade die Speicherung ausführt.
Erst wenn dieser fertig ist, kann Nutzer 2 seine
Speicherung ausführen.
Wie wäre dieser Fall in Postgresql.
Ich habe ein Table XY. Könnten hier nun die Datensätze
von User 1 und User 2 gleichzeitig gespeichert werden
oder muss Nutzer 2 auch hier warten, bis Nutzer 1
mit seinem "INSERT" fertig ist??
Sup!
Darum wird sich wohl der Postmaster (PostGreSQL Server) kümmern ;-)
Gruesse,
Bio
Hí,
Ich habe ein Table XY. Könnten hier nun die Datensätze
von User 1 und User 2 gleichzeitig gespeichert werden
oder muss Nutzer 2 auch hier warten, bis Nutzer 1
mit seinem "INSERT" fertig ist??
Eine gleichzeitige Speicherung ist rein physikalisch nicht möglich;)
Spaß beiseite, auch den DBMS kannst Du dazu veranlassen, Records zu blocken. Was das Warten anbetrifft, dass kommt darauf an ob Du asynchrone oder synchrone Verbindungen verwendest.
Timo
Hallo !
Was ist der Vorteil von einer Datenbank
(Postgresql) in Bezug zu einer normalen
"Textdatenbank". Also wo einfach nur in
einem File das gespeichert wird.
"1. What is PostgreSQL?
PostgreSQL is a [...] database management system [...]"
(Quelle: http://www.postgresql.org/idocs/index.php?preface.html)
DOS : Disk Operating System
Frage: Was ist der Unterschied zwischen einer Diskette und einem Betriebssystem?
Aha!
Gruß,
kerki
Was ist der Vorteil von einer Datenbank
(Postgresql) in Bezug zu einer normalen
Frage: Was ist der Unterschied zwischen einer Diskette und einem Betriebssystem?
Mit "(Postgresql)" wollte ich nicht sagen, daß das eine
Datenbank ist, sondern nur zum Ausdruck bringen, mit welchem
"Management-System" ich arbeite /arbeiten will.