DBMS
3. Sem.
3. Sem.
-
- 1 / 31
-
Flashcards
1. Was ist ein Informationssystem?
- System, das große gemeinsam benutzte Mengen an Daten / Information / Wissen verwaltet
- für mehrere / viele Anwendungsprogramme (> generische Informationssystem)
- Eigenschaften: sicher / zuverlässig / verlässlich, effizient / effektiv, mit versch. benutzerfreundlichen Schnittstellen
2. Was unterscheidet Informationen und Daten?
- Datenbanken / IT: nur informelles Verständnis der Begriffe, Präzisierung höchstens im speziellen Kontext (Datenmodell, Anwendung)
- intuitiv: Information ist Oberbegriff von Daten; Daten sind spezielle, einfache Informationen; Daten sind meist unzerlegbar – aber komplexe Daten (z.B. Objekte) können zerlegbar sein; es gibt Informationen, die keine Daten sind (z.B. Zusammenhänge, Kommentare)
3. Was ist Datenredundanz?
- Entstehung: untersch. Software speichert dieselbe Datei in versch. Formaten (ohne Datenbank)
- mehrfach gespeicherte Daten > Verschwendung von Speicherplatz, keine Synchronisation von Änderungen, keine zentralen Normen
- ohne Datenbank
4. Was ist Datenintegration?
- Entstehung: untersch. Software arbeitet auf denselben Daten, mit Datenbank
- Daten werden nur einmal gespeichert
- Vorteile: effiziente Verwaltung großer Datenmengen, Benutzer können parallel arbeiten, Datenunabhängigkeit, Datenschutz (Zugriff), Datensicherheit (Schutz vor Datenverlust)
5. Was ist ein Datenbanksystem?
- DBS = DBMS + n*DB (DBMS à anwendungsunabhängig; DB -> anwendungsspezifisch)
- Klassifizierung:
- Spezifische DBS (für spezielle Anwendungsfelder)
- Generische DBS (für beliebige Anwendungen)
- Relationale DB
- Objekt-orientierte DB
- Hierarchische DB
- Entity-Relationship DB
- Klassifizierung von generischen DBS nach Datenmodell (Datenmodell = Zusammenstellung best. Konzepte zum Modellieren von Daten in realen Welt / im Rechner)
6. Grundmerkmale von DBMS / Codd?
9 Coddsche Regeln:
1. Integration (einheitliche, nichtredundante Datenverwaltung)
2. Operationen (Speicher, Suchen, Ändern)
3. Katalog (Zugriff auf Datenbeschreibungen im Data Dictionary)
4. Benutzerschichten
5. Integritätssicherung (Korrektheit des Datenbankinhalts)
6. Datenschutz (Ausschluss unautorisierter Zugriffe)
7. Transaktionen (mehrere DB-Operationen als Funktionseinheit)
8. Synchronisation (parallele Transaktionen koordinieren)
9. Datensicherung (Wiederherstellung von Daten nach Systemfehlern)
7. Beschreiben Sie die 3-Ebenen Architektur von DBMS
1. Externes Schema (Ergebnis der Sichtdefinition)
2. Konzeptuelles Schema (Ergebnis der Datendefinition)
3. Internes Schema (Festlegung der Dateiorganisation und Zugriffspfade)
- Ziel: Trennung von Semantik und Speicherstruktur (physische Struktur) der Daten; Datenunabhängigkeit der Anwendungsprogrammen (unabhängig von phys. Datenspeicherung); Änderung der phys. Speicherung ohne Programmänderung
- Trennung von Schema und Instanz
- Datenbankschema = internes, externes, konzeptuelles Schema und Anwendungsprogramme
8. Was ist eine relationale Datenbank?
- Sammlung von Relationen / Menge von Tabellen
- Relation = Tabellen
9. Beschreiben Sie die Begriffe Relationenschema, Relation, Tupel, Attribut und Attributwert bei relationalen Datenbanken.
- Relationsschema = erste Zeile, die Spaltenbeschreibungen enthält
- Relation = weitere Einträge
- Tupel = 1 Zeile
- Attribut = 1 Zelle in Spaltenüberschrift / eine Spaltenbeschreibung
- Attributwert = 1 Eintrag/Zelle
10. Was kennzeichnet einen Schlüssel bei einem DBMS?
- Schlüssel identifiziert die Tupel (Datensätze) einer Relation (Tabelle) eindeutig
- Schlüssel ist eine Gruppe von Spalten, die so ausgewählt wird, dass jede Tabellenzeile über den Werten dieser Spaltengruppe eine einmalige Wertekombination hat
- Schlüsseleigenschaft = Attribut einer Spalte identifiziert eindeutig gespeicherte Tupel
- unterstrichen
- Fremdschlüssel = Schlüssel einer fremden Tabelle à eindeutiger Verweis
11. Was ist SQL?
- = Structured Query Language
- relationale Datenbanksprache (am weitesten verbreitet, populärste)
- jedes relationale DBMS versteht SQL
12. Beschreiben Sie jeweils in einem Satz, was folgende SQL Befehle machen:
- create database name1 + use name1
- create table name2
- insert into name2 values (x1, x2, x3)
- create database Name + use Name --> Erzeugung der Datenbank
- create table Tabellenname --> Erzeugung von Tabelle; Ablage des Relationsschemas im Data Dictionary; Vorbereitung einer leeren Basisrelation in DB
- insert into Tabellenname values (x1, x2, x3) --> Einfügen von Tupeln (x = Attribute)
13. Wie werden Daten aus SQL Datenbanken abgefragt, ausgelesen und auch verknüpfte Ergebnisse erzeugt?
- Abfrage: Anfrageoperationen
> select X,Y from Tabelle where Attribut=’Attributwert’
- Auslesen: Selektion = Auswahl von Zeilen einer Tabelle anhand von Selektionsprädikat; Projektion = Auswahl von Spalten durch Angabe einer Attributliste
- Erzeugung von verknüpften Ergebnisse: Verbund (natürlicher Verbund) verknüpft Tabellen über gleichbenannte Spalten, indem 2 Tupel verschmolzen werden, wenn sie gleiche Werte aufweisen
> Kreuzprodukt: select * from Tabelle1, Tabelle2
> Verbundbedingung: select * from Tabelle1, Tabelle2 where Tabelle1.X=Tabelle2.X
14. Was findet beim Datenbankentwurf vor dem konzeptionellen Entwurf statt, mit welcher Modellierung wird der konzeptionelle Entwurf gemacht und wie wird die Abbildung auf eine konkrete Implementierung bezeichnet?
- vor konzeptionellem Entwurf: Anforderungsanalyse
- Modellierung d. konzeptionellen Entwurfs: Entity-Relationship-Modell
- Abbildung auf konkrete Implementierung: logischer Entwurf
15. Beschreiben Sie das Entity-Relationship-Modell für den Datenbankentwurf
16. Was bedeutet die erste Normalform für Relationenschemata?
- Erlaubt nur atomare Attribute in den Realtionsschemata (= weisen nur einfach Attributwerte auf, nicht mehrfache / Keine Aufzählungen)
- als Attributwert sind Elemente von Standard-Datentyp wie int / string erlaubt, aber keine Konstruktoren (zusammengesetzter Typ) wie array / set
- > keine Aufzählungen / Zusammenfassungen erlaubt, sondern mehrere Zeilen notwendig
17. Was bedeutet die zweite Normalform für Relationenschemata?
- Eliminiert partielle Abhängigkeiten (bei Nichtschlüsselattributen) > keine Abhängigkeiten erlaubt
- Zerlegung (Dekompensation) der Relationen nur korrekt bei Verlustlosigkeit / Verbundtreue (= Informationen dürfen nicht verloren gehen) und Abhängigkeitserhaltung / Abhängigkeitstreue (= Abhängigkeiten dürfen nicht verloren gehen)
18. Was bewirken funktionale Abhängigkeiten zwischen Attributmengen und welche Maßnahme sollte man durchführen?
- wenn in jedem Tupel (Zeile) der Relation der Attributwert für x abhängig von y ist
- Haben 2 Tupel denselben x-Attributwert, müssen sie auch denselben y-Attributwert haben, um funktional abhängig zu sein
- Maßnahme: alle gegebenen funktionalen Abhängigkeiten umformen, ohne dabei semantische Informationen zu verlieren > Dekompensation (= Zerlegung der Tabelle)
> abhängiges Attribut und Schlüssel und neue Tabelle erstellen > in alten Tabelle ist nur noch der Schlüssel drin
19. Ziel des logischen Entwurfs?
- Abbildung des ER-Schemas auf Relationenschema
- Minimalität (minimale Anzahl von Relationenschemata, die die anderen Eigenschaften erfüllt) à>Normalform einhalten
- Redundanzen vermeiden
21. Beschreiben Sie jeweils kurz, was folgende SQL Befehle machen:
- ALTER TABLE ttt ADD COLUMN ccc vvv
- ORDER by sss
- DELETE FROM ttt WHERE xxx = yyy LIMIT ggg
- ALTER TABLE ttt ADD COLUMN ccc vvv à Tabelle bearbeiten: Spalten ccc und vvv zu Tabelle ttt hinzufügen
- ORDER by sss à Sortieren nach sss
- DELETE FROM ttt WHERE xxx = yyy LIMIT ggg à von der Tabelle ttt soll das Attribut xxx gelöscht werden, das den Wert yyy hat, aber nur bis zur Grenze/Schranke/Limit ggg
22. Was ist eine SQL-Injection? Beschreiben Sie anhand eines Beispiels die Funktionsweise.
- = Ausnutzen einer Sicherheitslücke in Zusammenhang mit SQL-Datenbanken
- Bsp.: in Formularfeld zusätzliche Daten via SQL eingeben
23. Welche Möglichkeiten hat ein PHP Programmierer, seine Datenbanken vor Injections zu schützen?
1. Formularfeld auf gefährliche Zeichen prüfen und diese entfernen (Komma, Anführungszeichen, Kommentarzeichen, Leerzeichen am Ende > typisch für SQL); (trim() > Leerzeichen entfernen und mysqli_real_escape_string () > Komma, Anführungs-, Kommentarzeichen entfernen)
2. Formularvalidierung > z.B. in Punktefeld, dürfen nur Zahlen eingetragen werden
24. Bei Verwendung der Skriptsprache PHP: wo läuft PHP, wie wird es aufgerufen und was erzeugt es?
- PHP läuft auf Server
- Aufruf: HTML-Datei mit eingebettetem PHP mit Dateiendung/typ .php
- erzeugt: HTML
25. Was machen folgende PHP-Funktionen:
- mysqli_connect();
- mysqli_query();
- myqli_close()
mysqli_connect() > Verbindung zu MySQL-Datenbank wird hergestellt
mysqli_query() > SQL-Abfrage auf MySQL-Datenbank wird durchgeführt
myqli_close() > Verbindung zu MySQL-Datenbank wird geschlossen
26. Was bedeutet bei PHP „$_Post“? Beschreiben Sie die Verwendung
- superglobale Variable
- vordefiniert, an jedem Punkt im Skript verfügbar
- ist ein Array
- Abspeichern von Daten in Variable
- $ > immer Variable
- $_Post = Sammlung von Speicherbehältern
27. Beschreiben Sie die Vorteile der Verwendung von PHP
- dient der Entwicklung von Internetanwendungen
- ermöglicht einfache Entwicklung von Programmen
- unterstützt versch. Plattformen
- lässt sich in beliebten Apache-Webserver integrieren
- ist erschwinglich und flexibel
28. Mit welchen Tags wird Anfang und Ende eines PHP-Skript's innerhalb einer Datei mit HTML-Code markiert
<?php
…
?>
29. Was findet bei Datenbankentwurf vor konzeptionellem Entwurf statt?
Anforderungsanalyse
30. Mit welcher Modellierung wird der konzeptionelle Entwurf gemacht?
Entity-Relationship-Modell
31. Wie wird die Abbildung auf eine konkrete Implementierung bezeichnet?
logischer Entwurf