- 1 Abschnitt
- 7 Lektionen
- Um den Kurs in deinem Profil zu hinterlegen klicke oben auf Starten
alles ausklappenalles einklappen
Datenbanken und Datenquellen
Datenbanken und Datenquellen spielen eine zentrale Rolle in der Softwareentwicklung. Sie ermöglichen die Speicherung, Verwaltung und Abfrage großer Datenmengen, die für den Betrieb von Anwendungen und Systemen unerlässlich sind. Das Verständnis der verschiedenen Arten von Datenbanken und deren Einsatzmöglichkeiten ist entscheidend für die erfolgreiche Umsetzung von Softwareprojekten.
Datenbankmanagementsysteme (DBMS)
1. Relationale Datenbanken:
- Definition: Relationale Datenbanken speichern Daten in Tabellen, die durch Beziehungen (Relationen) miteinander verknüpft sind.
- Eigenschaften: Verwenden SQL (Structured Query Language) für Datenabfragen und -manipulation.
- Beispiele:
- MySQL: Weit verbreitetes Open-Source-DBMS, bekannt für seine hohe Leistung und Zuverlässigkeit.
- PostgreSQL: Open-Source-DBMS, das erweiterte Funktionen wie komplexe Abfragen, Transaktionen und erweiterbare Datentypen bietet.
- Microsoft SQL Server: Leistungsstarkes DBMS mit umfassenden Verwaltungs- und Sicherheitsfunktionen.
2. NoSQL-Datenbanken:
- Definition: NoSQL-Datenbanken sind nicht-relationale Datenbanken, die für spezielle Anwendungsfälle entwickelt wurden, wie die Speicherung von großen Mengen unstrukturierter Daten.
- Eigenschaften: Skalierbar, flexibel, unterstützen verschiedene Datenmodelle (Dokument, Key-Value, Spalten, Graph).
- Beispiele:
- MongoDB: Dokumentenorientierte Datenbank, speichert Daten in JSON-ähnlichen Dokumenten.
- Cassandra: Verteilte, hoch skalierbare Spaltenorientierte Datenbank, besonders geeignet für große Datenmengen.
- Redis: In-Memory Key-Value Store, bekannt für hohe Geschwindigkeit und Leistung.
Datenbankdesign
1. Normalisierung:
- Definition: Prozess zur Strukturierung einer Datenbank, um Redundanzen zu minimieren und Datenintegrität zu gewährleisten.
- Stufen der Normalisierung:
- 1. Normalform (1NF): Sicherstellung, dass alle Attributwerte atomar sind.
- 2. Normalform (2NF): Erfüllung der 1NF und keine partiellen Abhängigkeiten.
- 3. Normalform (3NF): Erfüllung der 2NF und keine transitiven Abhängigkeiten.
2. Entity-Relationship-Modell (ER-Modell):
- Definition: Grafische Darstellung von Entitäten und deren Beziehungen zueinander.
- Komponenten:
- Entitäten: Objekte oder Dinge im System (z.B. Kunde, Bestellung).
- Attribute: Eigenschaften der Entitäten (z.B. Name, Bestelldatum).
- Beziehungen: Verbindungen zwischen Entitäten (z.B. Kunde bestellt Produkt).
Beispiel eines ER-Diagramms:
+-------------+ +--------------+
| Kunde | | Bestellung |
+-------------+ +--------------+
| KundeID (PK)|<------>| BestellID (PK)|
| Name | | KundeID (FK) |
| Adresse | | Datum |
+-------------+ +--------------+
Datenzugriff
1. SQL (Structured Query Language):
- Definition: Standardisierte Sprache zur Verwaltung und Abfrage relationaler Datenbanken.
- Grundlegende SQL-Befehle:
- SELECT: Datenabfrage.
- Beispiel:
SELECT * FROM Kunde WHERE KundeID = 1;
- Beispiel:
- INSERT: Einfügen neuer Datensätze.
- Beispiel:
INSERT INTO Kunde (Name, Adresse) VALUES ('Max Mustermann', 'Beispielstraße 1');
- Beispiel:
- UPDATE: Aktualisierung vorhandener Datensätze.
- Beispiel:
UPDATE Kunde SET Adresse = 'Neue Straße 2' WHERE KundeID = 1;
- Beispiel:
- DELETE: Löschen von Datensätzen.
- Beispiel:
DELETE FROM Kunde WHERE KundeID = 1;
- Beispiel:
- SELECT: Datenabfrage.
2. ORM-Frameworks (Object-Relational Mapping):
- Definition: ORM-Frameworks ermöglichen die Abbildung von Objekten auf relationale Datenbanken, wodurch die Arbeit mit Datenbanken in objektorientierten Programmiersprachen erleichtert wird.
- Beispiele:
- Hibernate (Java): Automatisiert das Mapping zwischen Java-Klassen und Datenbanktabellen.
- Entity Framework (C#): Ermöglicht die Arbeit mit Datenbanken in .NET-Anwendungen mittels .NET-Objekten.
- SQLAlchemy (Python): Bietet eine vollständige Suite von Persistenzmustern für Python.
