Umfassender Lernzielkatalog zum Projekt SmartHome (LS05.2)

Grundlagen der Datenbankmanagementsysteme und Software-Architektur

  • Unterscheidung zwischen Datenbank-Server und Datenbank-Managementsystem (DBMS):

    • Ein Datenbank-Server ist die physische oder virtuelle Hardware-Instanz, auf der die Daten gespeichert werden und auf der das DBMS läuft. Er stellt die Ressourcen (CPU, RAM, Speicherplatz) bereit.
    • Ein Datenbank-Managementsystem (DBMS) ist die spezialisierte Software, die das Erstellen, Verwalten und Abfragen von Datenbanken ermöglicht (z. B. MySQL, PostgreSQL, Microsoft SQL Server). Es dient als Schnittstelle zwischen den Endanwendern/Applikationen und der Datenbank.
  • Nicht-relationale Datenbanksysteme (NoSQL):

    • Neben relationalen Systemen existieren alternative Architekturen wie Dokumenten-orientierte Datenbanken (z. B. MongoDB), Key-Value-Stores (z. B. Redis), Graph-Datenbanken (z. B. Neo4j) oder Wide-Column-Stores (z. B. Cassandra).
    • Diese Systeme werden oft genutzt, wenn Daten unstrukturiert sind, eine hohe Skalierbarkeit erforderlich ist oder die strikten ACID-Eigenschaften (Atomicity, Consistency, Isolation, Durability) relationaler Systeme zugunsten von Geschwindigkeit (BASE-Prinzip) vernachlässigt werden können.
  • Installation und Administration:

    • Die Installation eines relationalen DB-Systems umfasst das Setup der Software-Umgebung auf einem Host-System.
    • Schema-Anlage: Nach der Installation muss eine Datenbank (Schema) angelegt werden, die als Container für Tabellen, Sichten und Indizes dient.
    • Zugriffssteuerung: Zur Sicherheit muss der Zugriff über Benutzerkonten gesteuert werden. Dies beinhaltet das Anlegen von Usern und das Zuweisen spezifischer Privilegien (z. B. GRANT SELECT, GRANT INSERT) auf bestimmte Datenbanken oder Tabellen.
  • Netzwerk-Kommunikation beim Datenbank-Zugriff:

    • Port 3306: Dies ist der Standard-Port für MySQL- und MariaDB-Datenbanksysteme. Er muss in Firewalls freigegeben sein, damit externe Applikationen mit dem DB-Server kommunizieren können.
    • IP-Adresse / DNS-Name: Diese Angaben im Connection-String identifizieren den Host, auf dem der Datenbank-Server erreichbar ist. Ohne korrekte IP oder Auflösung des DNS-Namens kann keine TCP-Verbindung aufgebaut werden.

Datenmodellierung und SQL-Modifikation

  • Entwurfsmethodik: ERM und Relationenmodell:

    • Entity-Relationship-Modell (ERM): Ein grafisches Tool zur Planung der Datenbankstruktur. Es besteht aus Entitäten (Rechtecke), Attributen (Ovale) und Beziehungen (Rauten).
    • Relationenmodell (RM): Die Überführung des ERM in eine logische Tabellenstruktur. Hier werden Primärschlüssel (Primary Keys) und Fremdschlüssel (Foreign Keys) explizit definiert.
  • Tabellenbeziehungen (1:n-Beziehung):

    • In einer 1:n-Beziehung kann ein Datensatz aus Tabelle A mehreren Datensätzen in Tabelle B zugeordnet sein, aber ein Datensatz in Tabelle B nur genau einem in Tabelle A.
    • Die technische Umsetzung erfolgt über einen Foreign Key (FK) in der "n"-Tabelle, der auf den Primary Key (PK) der "1"-Tabelle verweist.
    • CONSTRAINT: Zusätzliche Regeln (z. B. NOT NULL, UNIQUE, CHECK), die die Datenintegrität sicherstellen.
  • SQL-Operationen:

    • Tabellenmodifikation: Mit dem Befehl ALTER TABLE können bestehende Tabellenstrukturen verändert werden (z. B. Spalten hinzufügen, Datentypen ändern oder Constraints löschen).
    • INSERT-Vorgänge: Das Einfügen neuer Datensätze erfolgt über die Syntax INSERT INTO Tabellenname (Spalte1, Spalte2) VALUES (Wert1, Wert2).
    • SELECT-Statements: Das Abrufen von Daten erfolgt mittels SELECT, wobei Filter (WHERE), Sortierungen (ORDER BY) und Verknüpfungen (JOIN) genutzt werden können.

Datenbank-Integration in C# (Projekt SmartHome)

  • Connection-String:

    • Ein spezieller String, der alle notwendigen Informationen für den Verbindungsaufbau der Applikation zur Datenbank enthält. Typische Parameter sind Server, Database, Uid (User ID) und Pwd (Password).
    • Beispiel: "Server=127.0.0.1; Port=3306; Database=SmartHome; Uid=root; Pwd=passwort;".
  • Datenmanipulation via Code:

    • Innerhalb eines C#-Programms werden Datenbankbefehle meist über Objekte wie MySqlCommand (bei MySQL) ausgeführt.
    • Ein INSERT-Vorgang wird programmiert, indem ein SQL-Kommando als String erstellt und über eine geöffnete Verbindung an den Server gesendet wird.

Betriebswirtschaftliche Aspekte im IT-Umfeld

  • Rechtsformen und Körperschaften:

    • Unternehmen müssen sich für eine Rechtsform entscheiden (z. B. Einzelunternehmen, Personengesellschaften wie OHG/KG oder Kapitalgesellschaften/Körperschaften wie GmbH/AG).
    • Körperschaften sind juristische Personen des privaten oder öffentlichen Rechts, die rechtlich eigenständig handeln können.
  • Beschaffungsprozess:

    • Umfasst alle Schritte von der Bedarfsermittlung über die Markterforschung, die Angebotsprüfung und den Vergleich bis hin zur Bestellung und Warenannahme.
  • Wertschöpfungsprozess:

    • Beschreibt die Transformation von Input-Gütern in höherwertige Output-Güter (Produkte/Dienstleistungen). Ziel ist es, einen Mehrwert zu generieren, der über den Kosten der eingesetzten Ressourcen liegt.
  • Optimale Bestellmenge (Andler-Formel):

    • Die Ermittlung der Menge, bei der die Summe aus Bestellfixkosten und Lagerhaltungskosten am geringsten ist.
    • Mathematische Darstellung:     xopt=200×A×kBp×qx_{opt} = \sqrt{\frac{200 \times A \times k_B}{p \times q}}
    • Dabei stehen:
      • AA für den Jahresbedarf (Menge).
      • kBk_B für die fixen Kosten pro Bestellung.
      • pp für den Einstandspreis pro Mengeneinheit.
      • qq für den Lagerhaltungskostensatz (in Prozent).

Agiles Projektmanagement mit SCRUM

  • Struktur und Hierarchie der Arbeitsaufgaben:

    • Backlog: Eine geordnete Liste aller Anforderungen und Funktionen, die im Projekt umgesetzt werden sollen.
    • Epic: Eine große Anforderungseinheit, die zu umfangreich ist, um in einem einzelnen Sprint bearbeitet zu werden. Sie wird in mehrere Tasks oder User Stories zerlegt.
    • SCRUM-Task: Die kleinste Arbeitseinheit, die innerhalb eines Sprints erledigt wird. Ein Task beschreibt eine konkrete technische oder administrative Aufgabe.
  • Rollen und Zeitplanung:

    • SCRUM-Master/Mistress: Verantwortlich für die Einhaltung des SCRUM-Prozesses, das Coaching des Teams und das Beseitigen von Hindernissen (Impediments).
    • Sprints: Zeitlich begrenzte Arbeitsphasen (Iterationen). Die Gesamtdauer des Projekts "SmartHome" ergibt sich aus der Anzahl der durchgeführten Sprints.

Projektdaten (Stammdaten)

  • Projektname: Projekt SmartHome
  • Lernfeld: LS05.2
  • Autoren: Rüdiger Berg & Nathalie Münsterberg
  • Institution: it.schule stuttgart (Breitwiesenstraße 20-22)
  • Version: 5.3.2021