13

Informatik (Fach) / Datenbankschicht (Lektion)

db sql

Diese Lektion wurde von fatamorgana erstellt.

Lektion lernen

Anzeige
  • Ausführen von SQl Queries mit JDBC (Mapper Klassen), 5 Schrtitte? 1. Verbindung zur DB aufbauen Connection con = DBConnection.connection(); 2. Leeres SQL-Statement (JDBC) anlegen Statement stmt = con.createStatement(); 3. Query ausführen ResultSet rs = stmt.executeQuery("SELECT nutzerID, FROM nutzer "+ "WHERE nutzerID= " + id); ResultSet rs = stmt.executeUpdate("INSERT INTO nutzer 4. Ergebnis auswerten, prüfen ob Ergebnis vorliegt 5. if (rs.next()) { Nutzer n = new Nutzer(); n.setId(rs.getInt("nutzerID")); return n; }
  • Erkläre die Unterteilung von SQL: DDL, DML und DCL. c
  • ein CREATE STATEMENT anfertigen von ner Tabelle und dem Attribut nen Primärschlüssel ? x
  • Java-Code von Datenbank-Abfrage x
  • JDBC: Java Database Connection (Treiber zur Datenbank Verbindung, DBConnection.java) Es muss zunächst der passende DB-Treiber geladen und registriert werden: DriverManager.registerDriver(new AppEngineDriver()); 2. Connection Instanz mit einer Datenbank erzeugen, Driver Manager baut Verbindung über url auf und speichert Daten in variable con für zukünftige Verwendung con = DriverManager.getConnection("jdbc:google:rdbms://socialmediapinnwand2:instanz/socialm ediapinnwand", "root", "");
  • Persistenz der Daten: Speicherung in Relationalen Datenbank Management Systemen (RDBMS) ·         Objekte müssen Laufzeit des Programms überdauern, daher -> Daten der Objekte müssen persistent gemacht werden (Speicherung der Daten in DB) -> Objekt kann bei Bedarf wieder aus DB rekonstruiert werden ·         Speicherung von Fakten und Relationen durch Serialisierung
  • public class DBConnection Verwalten einer Verbindung zur Datenbank. Vorteil:Sehr einfacher Verbindungsaufbau zur Datenbank. Nachteil:Durch die Singleton-Eigenschaft der Klasse kann nur auf eine fest vorgegebene Datenbank zugegriffen werden. In der Praxis kommen die meisten Anwendungen mit einer einzigen Datenbank aus. Eine flexiblere Variante für mehrere gleichzeitige Datenbank-Verbindungen wäre sicherlich leistungsfähiger. Dies würde allerdings den Rahmen dieses Projekts sprengen bzw. die Software unnötig verkomplizieren, da dies für diesen Anwendungsfall nicht erforderlich ist. Connection con = DBConnection.connection();
  • Relationale Datenbank? + 3 NF  Basiert auf relationaler Algebra  Abfragen lassen sich über relationales Schema Realisieren, (Tabelle)  Datenbanksprache SQL Datenintigrität – Verhinderung das Daten gelöscht werden können die von anderen Tabelle Abhängig sind (Fremdschlüßel) 1 Normalform: Werte müssen Atomar sein, es gibt keine zusammengesetzten Werte  jedes Feld einzelne Werte (eine Tabele, single table inheritance) 2 Normalform: 1NF + jedes Nichtschlüßel-Attribute sind von Schlüßel-Attributen voll funktional abhängig  Werte der Tabelle vom Primärschlüßel abhängig (mehrere Tabellen, class ta inheritance) Änderungsanomalie vermeiden: 3 Normalform: 2NF + kein Attribut ist von Schlüssel-Attribut beidseitig abhängig, führt zu mehrfach Einträgen in der DB  Vermeidung von mehrfach Einträgen (Redundanzen) Gefahr der Daten inkonsistenz (Änderungsanomalien) durch trennung der Tabellen mit Fremdschlüsseln (mehrere Tabellen, class table inheritance)
  • Unterschied zwischen nem Primärschlüssel und nem Fremdschlüssel erklären. x
  • Warum haben nur die Mapper Klassen Zugriff auf die db?(Soc) Grund: Seperate of Concerns (Trennung von Aufgabenbereichen) ermöglicht eine Zerlegung des Problems in teileprobleme und bearbeitung jedes Teilproblems für sich.
  • Anzeige
  • Was ist ein Singleton? Entwurfsmuster welches sicherstellt das nur eine Instanz eines Objektes existiert. Klasse von der es nur eine Instanz gibt, die nur einmal instanztiiert wird –. (Mapper Klassen, DBConnection) Durch static
  • Was sind Mapper Klassen und welche Aufgabe haben Sie? Sie gehören der Datenbank-Schicht an und bilden die objektorientierte Sicht der Applikationslogik auf die relationale organisierte Datenbank ab. Stellt Verbindung zwischen Applogik und datenbank her. Sie besitzt Methoden um Objekte zu suchen, erzeugen, bearbeiten, löschen Mapping ist bidirektional, d.h Umwandlung von Objekten in DB-Strukturen(Tabellen und Tupel) und umgekehrt ist möglich
  • wie kann man Objekte in eine DB schreiben? Durch SQL Befehle können Objekte in die DB geschrieben werden und aus Datensätzen(Tupel), Objekte erstellt werden Tabelle repräsentiert KLasse Zeile repräsentiert Objekt