Datenbank Theorie Fragen

b1zarRe

Bekanntes Mitglied
Hi, ich habe mal ein paar Theoretische Fragen zu Datenbanken... ich hoffe mir kann hier weitergeholfen
werden, da unser Professor die Sachen nicht besprechen möchte und ich mit
Hilfe des Skripts hier und da nicht schlau werde...

btw. Hoffe ich hab das richtige Forum gewählt...ansonsten pls verschieben in Softwareentwicklung. danke.

1) Werden Daten in einem Datenbanksystem einmal oder zur Sicherheit mehrmals
abgespeichert??? -> Ich hätte nun gesagt, dass prinzipiell das DBMS diese gespeicherten
verwaltet aber für die Speicherung egtl. direkt die Dateiverwaltung mithilfe einer
externen Festplatte/ oder mehrerer abzusichern.

2) Thema Datensatz: Meiner Meinung nach werden jedem User bestimmte Rechte
vergeben (nur Leserecht, oder Lese+Schreibrecht); der Admin darf auf alle
Daten zugreifen und wenn irgendetwas geändert wird am Datensatz kriegen die
anderen User eine Schreibsperre damit nicht mehrere Benutzer zeitgleich Daten
ändern können. Ein Datensatz darf aber während des Änderns von anderen
Benutzern gelesen werden.

3) Suchen in einer Datenbank -> Effizienz. Dauert es doppelt solange eine
Kennnummer in einem Datensatz von 20 000 gesicherten Daten zu suchen als
in einer von 10 000.? Ich würde sagen nein. Aus dem Grund, weil die "Liste" nicht
sukzessive abgearbeitet wird sondern beispielsweise mit einem Kennschlüssel sortiert
werden kann bzw. hier der Kennnummer und es sicherlich nicht immer
doppelt solange dauert... wenn überhaupt im worst case.

4) "Aus einer konventionellen Datenbank kann man nur die Daten zurückgewinnen,
die auch explizit eingespeichert wurden" - Das verstehe ich leider garnicht.

5) In einer Datenbank können nur wahre Informationen gespeichert werden. - Falsch,
ob die Daten "richtig" oder "korrekt" sind muss ansich der Nutzer entscheiden, aber
ein DBMS versichert eine konsistente Integritätsbedingungen.
 

homer65

Top Contributor
1) Werden Daten in einem Datenbanksystem einmal oder zur Sicherheit mehrmals
abgespeichert??? -> Ich hätte nun gesagt, dass prinzipiell das DBMS diese gespeicherten
verwaltet aber für die Speicherung egtl. direkt die Dateiverwaltung mithilfe einer
externen Festplatte/ oder mehrerer abzusichern.
Sie werden einmal abgespeichert. Zur Sicherheit macht man Backups.
Außerdem werden Änderungen in Logs abgelegt, so das man mithilfe von Backup und Log
immer zum aktuellen Zeitpunkt recovern kann.
2) Thema Datensatz: Meiner Meinung nach werden jedem User bestimmte Rechte
vergeben (nur Leserecht, oder Lese+Schreibrecht); der Admin darf auf alle
Daten zugreifen und wenn irgendetwas geändert wird am Datensatz kriegen die
anderen User eine Schreibsperre damit nicht mehrere Benutzer zeitgleich Daten
ändern können. Ein Datensatz darf aber während des Änderns von anderen
Benutzern gelesen werden.
Da bieten Datenbanksysteme sehr ausgefeilte Konzepte, die den Rahmen hier sprengen werden.
Es ist erheblich komplizierter.
3) Suchen in einer Datenbank -> Effizienz. Dauert es doppelt solange eine
Kennnummer in einem Datensatz von 20 000 gesicherten Daten zu suchen als
in einer von 10 000.? Ich würde sagen nein. Aus dem Grund, weil die "Liste" nicht
sukzessive abgearbeitet wird sondern beispielsweise mit einem Kennschlüssel sortiert
werden kann bzw. hier der Kennnummer und es sicherlich nicht immer
doppelt solange dauert... wenn überhaupt im worst case.
Sofern ein passender Index vorhanden ist, dauert es nicht doppelt so lange
4) "Aus einer konventionellen Datenbank kann man nur die Daten zurückgewinnen,
die auch explizit eingespeichert wurden" - Das verstehe ich leider garnicht.
Ich auch nicht
5) In einer Datenbank können nur wahre Informationen gespeichert werden. - Falsch,
ob die Daten "richtig" oder "korrekt" sind muss ansich der Nutzer entscheiden, aber
ein DBMS versichert eine konsistente Integritätsbedingungen.
Häh???
 
N

nillehammer

Gast
2) Thema Datensatz: Meiner Meinung nach werden jedem User bestimmte Rechte
vergeben (nur Leserecht, oder Lese+Schreibrecht); der Admin darf auf alle
Daten zugreifen und wenn irgendetwas geändert wird am Datensatz kriegen die
anderen User eine Schreibsperre damit nicht mehrere Benutzer zeitgleich Daten
ändern können. Ein Datensatz darf aber während des Änderns von anderen
Benutzern gelesen werden.


Da bieten Datenbanksysteme sehr ausgefeilte Konzepte, die den Rahmen hier sprengen werden.
Es ist erheblich komplizierter.
Stimmt, es ist etwas komplizierter. Stichwort ist hier Isolation Level (Isolation (database systems) - Wikipedia, the free encyclopedia ). Welche unterstützt werden, hängt von der jeweiligen Datenbank ab. Der von Dir beschriebene wird aber in jedem Fall unterstützt.
4) "Aus einer konventionellen Datenbank kann man nur die Daten zurückgewinnen,
die auch explizit eingespeichert wurden" - Das verstehe ich leider garnicht.
Könnte in dieser Frage vielleicht verklausuliert sein, dass eine Transaktion committed sein muss, bevor die Daten wirklich gespeichert werden und damit auch zurück gewonnen werden können?
 
Zuletzt bearbeitet von einem Moderator:

b1zarRe

Bekanntes Mitglied
@homer65

"1)
Sie werden einmal abgespeichert. Zur Sicherheit macht man Backups.
Außerdem werden Änderungen in Logs abgelegt, so das man mithilfe von Backup und Log
immer zum aktuellen Zeitpunkt recovern kann."

-> Stimmt! Das mit der Logdatei hatten wir auch in der Vorlesung... ich erinnere mich :)


2) Kannst Du mir vllt. ein Link oder Ähnliches dazu nahe legen?

"3)
Sofern ein passender Index vorhanden ist, dauert es nicht doppelt so lange
"
-> Wie kann man die Indexe den vorteilsweise verteilen?

@nillehammer
4) "Könnte in dieser Frage vielleicht verklausuliert sein, dass eine Transaktion committed sein muss, bevor die Daten wirklich gespeichert werden und damit auch zurück gewonnen werden können?"
-> Ich glaube nicht daran... bzw. bin mir unsicher, da eine andere Frage lautete, was passiert, wenn ein Stromausfall in
einer Bank auftritt... Und das hat ja eher was mit mit Transaktion zutun(diese wird dann ja nicht vollständig abgearbeitet und somit zurückgesetzt).


Zu 5.) Ich glaube das stimmt echt:
"5) In einer Datenbank können nur wahre Informationen gespeichert werden. - Falsch,
ob die Daten "richtig" oder "korrekt" sind muss ansich der Nutzer entscheiden, aber
ein DBMS versichert eine konsistente Integritätsbedingungen."
-> Ich habe gerade bei Wiki gelesen, dass es logische und technische Fehler geben kann. (Ich würde auch noch semantische Fehler mit einbeziehen)...:
Und zwar beziehen die Integritätsbedingungen sich, wenn ich es richtig verstanden habe, darauf, dass ein DBMS überprüft und sicherstellt, wer welche Rechte zur Datenveränderung hat und zb. sicherstellt, dass wenn jemand eine Tabelle löschen möchte, eine andere Tabelle die im Kontext mit der zur löschenden Tabelle doch nicht gelöscht wird, weil die Daten
noch gebraucht werden.

Alle Fragen sollten sich egtl. auf das Relationale Datebankmodell beziehen, da wird die anderen 3 oder 4 Modelle die es so gibt nur kurz angesprochen habe und uns eher auf das relationale beziehen.


5) In einer Datenbank können nur wahre Informationen gespeichert werden. - Falsch,
ob die Daten "richtig" oder "korrekt" sind muss ansich der Nutzer entscheiden, aber
ein DBMS versichert eine konsistente Integritätsbedingungen.
Häh???
 
N

nillehammer

Gast
b1zarRe hat gesagt.:
-> Wie kann man die Indexe den vorteilsweise verteilen?
Die Indexe werden von der Datenbank selbst verwaltet. Das einzige, was man als Administrator machen kann, ist die Datenbank anzuweisen, auf bestimmte Spalten einen Index zu legen. Bei Primary Keys macht es die DB automatisch. Ansonsten kommen Spalten in Frage, die als Suchbedingung in SQL-Statements benutzt werden.

b1zarRe hat gesagt.:
Und zwar beziehen die Integritätsbedingungen sich, wenn ich es richtig verstanden habe, darauf, dass ein DBMS überprüft und sicherstellt, wer welche Rechte zur Datenveränderung hat und zb. sicherstellt, dass wenn jemand eine Tabelle löschen möchte, eine andere Tabelle die im Kontext mit der zur löschenden Tabelle doch nicht gelöscht wird, weil die Daten
noch gebraucht werden.
Die Rechteüberprüfung macht eine Datenbank natürlich auch. Aber (Referentielle) Integrität mein etwas anderes. Daten haben untereinander Beziehungen (Relationen) z.B. Mitarbeiter ist Abteilung zugeordnet. Du hättest also in der Tabelle Mitarbeiter eine Spalte AbtId mit Fremdschlüssel auf die Tabelle Abteilung. Wenn jetzt jemand versucht, eine Abteilung (und zwar eine Zeile und nicht die ganze Tabelle) zu löschen, in der noch Mitarbeiter zugeordnet sind, würde referentielle Integrität verletzt und die Datenbank würde das nicht zulassen.
 

b1zarRe

Bekanntes Mitglied
Ok vielen dank dafür!!!

Noch 2-3 kleinere Fragen auf die ich im Netz bisher noch nichts gefunden habe(leider auch im Skript nicht weiter erläutert...):

1) Definition IB
2) Defition AWP (nicht die Waffe, sondern natürlich in DB Kontext :b)
3) Wir haben eine Tabelle im Skript die zeigt, wie man bei einer Synchronisation vorgehen kann
(mithilfe von sperren):

Read Write
Read + -
Write - -

Irgendwie kann ich nur die erste Zeile deuten. Also wenn jemand nur Leserecht hat, dann kann er natürlich nur lesen und nicht schreiben... Aber warum bei Write zweimal ein - oO?! Hätte er gedacht 2 +e ??
 
N

nillehammer

Gast
Read Write
Read + -
Write - -

Irgendwie kann ich nur die erste Zeile deuten. Also wenn jemand nur Leserecht hat, dann kann er natürlich nur lesen und nicht schreiben... Aber warum bei Write zweimal ein - oO?! Hätte er gedacht 2 +e ??

So ohne Formatierung ist sehr schwer zu erkennen, was die Tabelle bedeuten soll. Deswegen habe ich sie nochmal in Code-Tags gepackt:
Code:
       Read   Write
Read   +         -
Write  -         -
Ich interpretiere das so: Wenn jemand lesend zugreift (Zeile Read: ), dann bekommt er eine Read-Sperre. Hier können nun auch andere lesend zugreifen (also weitere Read-Sperren anfordern). Das hat keine negativen Auswirkungen. Während gelesen wird, darf nicht geändert werden, weil dann die Daten möglicherweise inkonsistent gelesen werden.

Wenn jemand schreibt (Zeile Write: ), darf kein anderer schreiben, weil sich sonst die Datenänderungen überholen könnten und nur Mist geschrieben wird. Es darf aber zu der Zeit auch niemand lesen, weil der Schreibvorgang ja noch läuft und deswegen möglicherweise inkonsistente Daten gelesen würden.

Es geht hier also nicht um Lese- / Schreibrechte im Sinne von ein Admin vergibt diese, sondern im Sinne von "Ich fordere das Recht an und gebe es wieder ab." In dem Zusammenhang ist Recht auch ein blöder Begriff. Besser wäre "Sperre"
 
Zuletzt bearbeitet von einem Moderator:

b1zarRe

Bekanntes Mitglied
Danke!

dann wären nurnoch diese Fragen offen:

1) Definition IB
2) Defition AWP (nicht die Waffe, sondern natürlich in DB Kontext :b)
3) Kann ein Admin wirklich alle Datensätze(auch von anderen Usern erstellt) bearbeiten, verändern etc.?
 
N

nillehammer

Gast
Zu 1) und 2): Hab ich beides noch nicht gehört. Ich würde hier also nur Links aus dem Web zitieren können. (Das bringt Dich ja nicht wirklich weiter)
Zu 3) Ich kenne nur Oracle, MySql und HSQLDB. Hier ist es so, dass der Administrator (SYSTEM, root, sa) volle Rechte hat, also auch Daten änder darf.
 

Neue Themen


Oben