Teil_5 Flashcards
Was sind die ACID-Regeln und warum sind sie wichtig?
- Atomicity: Daten müssen in einem Stück gespeichert werden.
- Consistency: Daten müssen zu jedem Zeitpunkt konsistent sein.
- Isolation: Störungsfreier Mehrbenutzerbetrieb muss möglich sein. Keine Transaktion stört eine andere.
- Durability: Datenänderungen müssen persistent sein.
Was ist Object-Relational Mapping (ORM)?
Object-Relational Mapping (ORM) ist eine Technik, um zwischen den Objekten der Anwendung und den relationalen Datensätzen in der Datenbank zu konvertieren.
Was ist der Object-Relational Mismatch?
Der Object-Relational (Impedance) Mismatch beschreibt die Inkompatibilität zwischen den objektorientierten Prinzipien der Anwendungsentwicklung und dem relationalen Paradigma von Datenbanken. Die wesentlichen Unterschiede sind:
- Objektorientiertes Paradigma (Anwendung): Nutzt Klassen und Objekte mit Kapselung, Vererbung und Polymorphismus.
- Relationales Paradigma (Datenbank): Nutzt Tabellen, Tupel und Fremdschlüssel, wobei keine direkten Entsprechungen für Vererbung oder Polymorphismus existieren. Diese Unterschiede erfordern eine aufwändige Konvertierung zwischen den beiden Systemen, was den Entwicklungsprozess komplexer macht und als häufige Fehlerquelle gilt.
- ORM-Techniken (Object-Relational Mapping) versuchen, diese Lücke zu schließen.
Welche Paradigmen dominieren die Anwendungschicht?
- Abstraktion: Entitäten werden durch Klassen repräsentiert.
- Kapselung: Implementierungsdetails sind vor dem Benutzer versteckt.
- Vererbung: Eigenschaften können vererbt werden.
- Polymorphismus: Objekte können verschiedene Datentypen annehmen.
Welche Paradigmen dominieren die Datenbankschicht?
- Relationales Modell: Daten werden als Menge von Tupeln gespeichert.
- Normalisierung: Daten werden auf Tabellen verteilt, um Anomalien zu vermeiden.
- Beziehungen: Über Fremdschlüssel implementiert.
- Navigation: Erfolgt über Joins zwischen Tabellen.
Was macht ein ORM-Framework wie Hibernate?
Hibernate konvertiert zwischen der objektorientierten und relationalen Welt, automatisiert das Erstellen von Datenbankschemata und SQL-Abfragen.
Welche Vorteile bietet Hibernate?
- Vollständig automatisierte Erzeugung von Datenbankschemata.
- Keine direkte Arbeit mit SQL nötig.
- Unterstützung von objektorientierten Abfragesprachen wie HQL und Criteria API.
Welche zwei Arten von Objekt-Mapping gibt es in Hibernate?
- XML-Datei: Mapping der Objekte kann über XML erfolgen.
- Java-Annotations: Mapping erfolgt direkt in den Java-Klassen mit Annotations.
Welche Abfragemethoden bietet Hibernate?
- SQL: Direkte SQL-Abfragen.
- HQL: Hibernate Query Language, objektorientierte Abfragen.
- Criteria API: Abfrage-API, um dynamische und typsichere Abfragen zu erstellen.
Was sind POJOs im Kontext von Hibernate?
POJOs (Plain Old Java Objects) sind einfache Java-Klassen, die keine speziellen Abhängigkeiten haben und für das Domain Model verwendet werden.
Was ist die MVC-Architektur und wie funktioniert sie?
Die MVC-Architektur (Model-View-Controller) ist ein Entwurfsmuster, das die Struktur einer Anwendung in drei Hauptkomponenten unterteilt:
- Model: Repräsentiert die Daten und Geschäftslogik der Anwendung.
- View: Stellt die Benutzerschnittstelle dar, zeigt Daten an und empfängt Benutzereingaben.
- Controller: Vermittelt zwischen Model und View, verarbeitet Benutzereingaben, aktualisiert das Model und sorgt dafür, dass die View die aktuellen Daten anzeigt.
Dieses Muster fördert eine saubere Trennung der Verantwortlichkeiten und erleichtert die Wartung und Erweiterung der Anwendung.
Was ist ein Domain Model und welche Rolle spielt es in einer Anwendung?
- Das Domain Model repräsentiert die Entitäten und Geschäftslogik einer bestimmten Domäne in einer Anwendung.
- Es besteht aus Klassen, die die Objekte und deren Beziehungen im System modellieren. Diese Klassen enthalten Attribute und Methoden, die das Verhalten der Entitäten beschreiben.
- Das Domain Model bildet das Herzstück der Business-Logik und ist entscheidend für die Kapselung und Verwaltung der Anwendungsdaten.
Was ist der Persistence Layer und welche Aufgaben erfüllt er?
Der Persistence Layer kapselt den Zugriff auf die Datenbank und sorgt für die Verwaltung der Daten. Seine Hauptaufgaben sind:
- Lesen von Daten aus der Datenbank und Erzeugung der entsprechenden Objekte des Domain Models.
- Speichern von Objekten des Domain Models in der Datenbank.
- Er bildet die Schnittstelle zwischen dem Domain Model bzw. der Business-Logik und der Datenbank durch Data Access Objects (DAO). Diese bieten eine abstrakte und datenbankunabhängige API mit Funktionen wie Fetch, Insert, Update und Delete.
- In diesem Layer findet das Object-Relational Mapping (ORM) statt, das die Objekte der Anwendung in relationale Daten umwandelt und umgekehrt.