Lernzettel Softwareentwicklung zur GAP1 in den IT-Berufe

Dieser Lernzettel richtet sich nach den möglichen Themen von Teil 1 der gestreckten Abschlussprüfung (GAP) in den IT-Berufen vom IT-Berufe-Podcast.

Inhaltsverzeichnis

Vor- und Nachteile verschiedener Programmierparadigmen

ProgrammierparadigmaBeschreibungVorteileNachteile
Unstrukturierte Programmierung– Programmierung ohne definierte Struktur
– Keine klare Trennung zwischen Daten und Programmlogik
– Flexibilität
– Einfache Implementierung kleiner Programme
– Schwierige Wartbarkeit
– Schlechte Lesbarkeit
– Schlechte Skalierbarkeit
Strukturierte Programmierung– Strukturierte Herangehensweise an Programmierung
– klare Trennung zwischen Daten und Programmlogik
– Verwendung von Kontrollstrukturen
Bessere Lesbarkeit und Wartbarkeit, klarere Struktur, weniger Fehleranfälligkeit– Schwierigere Implementierung komplexer Programme
– Hoher Planungsaufwand
Prozedurale Programmierung– Programmierung mit Fokus auf Prozeduren, die nacheinander abgearbeitet werdenKlare Struktur, einfache Implementierung kleiner Programme, hohe Performance– Schlechte Skalierbarkeit
– Schlechte Wiederverwendbarkeit
Funktionale Programmierung– Programmierung mit Fokus auf Funktionen, die keine Seiteneffekte haben
– Keine Zustandsänderungen
Bessere Wartbarkeit, höhere Performance bei paralleler Verarbeitung, Vermeidung von Nebeneffekten– Schwierige Implementierung von benutzerdefinierten Datentypen
– Schwierigkeiten bei der Fehlersuche
Objektorientierte Programmierung– Programmierung mit Fokus auf Objekte, die Daten und Methoden kapseln und über Schnittstellen kommunizierenWiederverwendbarkeit, Erweiterbarkeit, gute Lesbarkeit, hohe Abstraktion– Komplexität
– Höherer Speicherbedarf
– Langsamere Performance
Logische Programmierung– Programmierung auf Basis von logischen Aussagen und Regeln
– Keine direkte Steuerung des Programmablaufs
Einfache Implementierung von komplexen Systemen, geringe Fehleranfälligkeit– Schwierige Fehlersuche
– Schlechte Performance bei großen Datenmengen
Vor- und Nachteile verschiedener Programmierparadigmen

Programmiersprachen nach Sprachhöhe unterscheiden

SprachhöheBeschreibungBeispiele
1GL (Niedrig-Ebene)Binärcode, der direkt von der Hardware ausgeführt wird
2GL (Niedrig-Ebene)Assembler-Code, der von der Hardware ausgeführt wirdAssembler
3GL (Hochsprachen)Abstraktion von Assembler-Code, benutzt Compiler/Interpreter zur AusführungC, C++, Java, Python, Ruby, PHP
4GL (Höhere Abstraktion)Fokussiert auf beschreibende ProgrammierungSQL, Natural
Verschiedene Sprachhöhen im Vergleich

Identifikation und Auswahl einer für das jeweilige „Realweltproblem“ passenden Sprache

Bei der Identifikation und Auswahl einer passenden Programmiersprache für ein Realweltproblem gibt es einige Faktoren zu berücksichtigen:

  1. Das Problem selbst: Welche Anforderungen hat das Problem? Welche Funktionalität muss die Lösung bereitstellen?
  2. Das Team: Welche Fähigkeiten und Erfahrungen hat das Team in verschiedenen Programmiersprachen?
  3. Die Ressourcen: Welche Ressourcen sind verfügbar, um das Problem zu lösen (z.B. Budget, Zeit)?
  4. Die Skalierbarkeit: Wird die Lösung auf lange Sicht wachsen oder sich ändern müssen? Welche Skalierbarkeit bietet die ausgewählte Sprache?
  5. Die Performance: Wie wichtig ist die Performance der Lösung? Welche Sprache bietet die beste Performance für das Problem?
  6. Die Verfügbarkeit von Tools und Bibliotheken: Welche Tools und Bibliotheken gibt es für die ausgewählte Sprache, die bei der Lösung des Problems helfen könnten?

Basiswissen Softwarelogik und grundlegende Programmelemente

  • Softwarelogik bezieht sich auf die Logik, die hinter dem Schreiben von Computerprogrammen steht. Dies beinhaltet die grundlegenden Konzepte wie Variablen, Datentypen, Zuweisungen, Kontrollstrukturen und Funktionen.
  • Grundlegende Programmelemente sind die Bausteine, aus denen Computerprogramme bestehen. Dazu gehören zum Beispiel Aussagen, Schleifen, Verzweigungen und Funktionen.

Darstellungsformen für Programmabläufe

  • Eine Möglichkeit, den Ablauf eines Programms darzustellen, ist die Verwendung von Ablaufdiagramm oder Struktogrammen. Diese Diagramme zeigen die verschiedenen Schritte und Verzweigungen in einem Programm auf einem Graph.
  • Eine weitere Möglichkeit ist die Verwendung von Pseudocode, der eine Art „Übersetzung“ eines Programms in eine verständliche, aber nicht-programmierbare Sprache ist. Beispiel für Pseudocode, der den Algorithmus zur Berechnung des Durchschnitts von zwei Zahlen darstellt:
Eingabe: a, b

durchschnitt = (a + b) / 2

Ausgabe: durchschnitt (Zahl)

Aussagenlogik

In der Aussagenlogik gibt es verschiedene logische Operatoren, die verwendet werden, um Aussagen miteinander zu verbinden oder zu verneinen.

  • UND (&&): Verbindet zwei Aussagen und ist wahr, wenn beide Aussagen wahr sind. Beispiel: „Es ist Montag und der Himmel ist bedeckt.“
  • ODER (||): Verbindet zwei Aussagen und ist wahr, wenn mindestens eine der Aussagen wahr ist. Beispiel: „Es ist Montag oder der Himmel ist bedeckt.“
  • NICHT (!): Verneint eine Aussage und ist wahr, wenn die Aussage falsch ist. Beispiel: „Es ist nicht Montag.“

Programmstrukturen

Eine Programmstruktur ist die Art und Weise, wie ein Programm aufgebaut ist und wie die verschiedenen Elemente miteinander verbunden sind. Es gibt verschiedene Programmstrukturen, wie zum Beispiel:

Lineare Strukturen: Ein Programm mit linearer Struktur besteht aus einer Folge von Anweisungen, die in der angegebenen Reihenfolge ausgeführt werden.

Verzweigte Strukturen: Ein Programm mit verzweigter Struktur enthält Verzweigungen, die es ermöglichen, den Ablauf des Programms an bestimmten Stellen zu beeinflussen.

Schleifenstrukturen: Ein Programm mit Schleifenstruktur enthält Schleifen, die es ermöglichen, bestimmte Teile des Programms mehrfach auszuführen.

Algorithmen

Ein Algorithmus ist eine detaillierte Anweisung zur Lösung eines Problems. Ein Algorithmus besteht aus einer Folge von Schritten, die in einer bestimmten Reihenfolge ausgeführt werden.

Compiler, Linker, Interpreter

Compiler sind Programme, die Quellcode in Maschinencode übersetzen.

Linker sind Programme, die mehrere, in Maschinencode übersetzte Programme miteinander verbinden. Sie werden verwendet, um Programme aus mehreren Dateien zusammenzufügen und sicherzustellen, dass alle benötigten Ressourcen verfügbar sind.

Interpreter sind Programme, die Quellcode „on-the-fly“ in Maschinencode übersetzen und ausführen.

Prozedurale und objektorientierte Herangehensweise

In der Softwareentwicklung gibt es zwei Hauptansätze: die prozedurale und die objektorientierte Herangehensweise.

Bei der prozeduralen Herangehensweise wird das Programm als Folge von Prozeduren betrachtet. Die Prozeduren können miteinander kommunizieren und sich gegenseitig aufrufen.

Die objektorientierte Herangehensweise betrachtet das Programm als Sammlung von Objekten, die miteinander interagieren. Jedes Objekt hat bestimmte Eigenschaften (Attribute) und kann bestimmte Aktionen ausführen (Methoden).

Variablen, Datentypen und -strukturen, Zuweisungen

  • Variablen sind Behälter, die für Werte verwendet werden. Sie haben einen Namen und einen bestimmten Datentyp.
  • Datentypen beschreiben, welche Art von Wert eine Variable haben kann.
    • byte: ein Datentyp, der eine 8-Bit-Ganzzahl speichert. Der Wertebereich reicht von -128 bis 127.
    • short: ein Datentyp, der eine 16-Bit-Ganzzahl speichert. Der Wertebereich reicht von -32.768 bis 32.767.
    • int: ein Datentyp, der eine 32-Bit-Ganzzahl speichert. Der Wertebereich reicht von -2.147.483.648 bis 2.147.483.647.
    • long: ein Datentyp, der eine 64-Bit-Ganzzahl speichert. Der Wertebereich reicht von -2^63 bis 2^63-1
    • float: ein Gleitkomma-Datentyp, der eine 32-Bit-Fließkommazahl speichert. Der Wertebereich und die Genauigkeit hängen von der Implementierung ab.
    • double: ein Gleitkomma-Datentyp, der eine 64-Bit-Fließkommazahl speichert. Der Wertebereich und die Genauigkeit hängen von der Implementierung ab.
    • boolean: ein Datentyp, der entweder true oder false speichert.
    • char: ein Datentyp, der ein einzelnes Zeichen speichert.
  • Datenstrukturen sind spezielle Arten von Datentypen, die es ermöglichen, komplexere Daten zu organisieren und zu verarbeiten. Beispiele für Datenstrukturen sind z.B. Listen.
  • Zuweisungen sind Anweisungen, die verwendet werden, um einer Variablen einen Wert zuzuweisen.

Kontrollstrukturen, z.B. Verzweigung, Schleife

Kontrollstrukturen sind Anweisungen, die den Ablauf eines Programms beeinflussen.

Verzweigungen: Verzweigungen ermöglichen es, den Ablauf des Programms an bestimmten Stellen zu beeinflussen. Beispiele für Verzweigungen sind if-Anweisungen und switch-Anweisungen.

Schleifen: Schleifen ermöglichen es, bestimmte Teile des Programms mehrfach auszuführen. Beispiele für Schleifen sind for-Schleifen und while-Schleifen.

Prozeduren, Funktionen

Prozeduren sind Abschnitte eines Programms, die aus einer Reihe von Anweisungen bestehen und können von anderen Teilen des Programms aufgerufen werden.

Funktionen sind ähnlich wie Prozeduren, aber sie geben einen Wert zurück.

Objekte, Klassen, Methoden, Attribute

Objekte sind Instanzen von Klassen. Eine Klasse ist eine Art Vorlage, die die Eigenschaften und Verhaltensweisen eines Objekts festlegt.

Methoden sind Funktionen, die Teil eines Objektes sind.

Attribute sind Eigenschaften, die Teil eines Objektes sind.

Vererbung, Polymorphie

Vererbung ist ein Konzept in der objektorientierten Programmierung, bei dem eine Klasse von einer anderen abgeleitet wird. Die abgeleitete Klasse erbt alle Eigenschaften und Methoden der Elternklasse.

Polymorphie (Vielgestaltigkeit) ist ein Konzept in der objektorientierten Programmierung, bei dem ein Objekt mehrere Formen annehmen kann. Dies wird erreicht, indem mehrere Klassen von einer gemeinsamen Basisklasse abgeleitet werden und dieselbe Methode implementieren. Wenn eine Methode aufgerufen wird, wird die konkrete Implementierung der Methode in der aktuellen Klasse verwendet.

Bibliotheken, Frameworks

Bibliotheken sind Sammlungen von vorgefertigten Funktionen und Klassen, die von einem Programm verwendet werden können. Sie ermöglichen es, Code zu teilen und wiederverwenden, anstatt ihn immer wieder von Grund auf neu zu schreiben.

Frameworks sind strukturierte Sammlungen von Bibliotheken und Tools, die es ermöglichen, komplexere Anwendungen schneller zu entwickeln. Die zu entwickelnde Software passt sich an das Framework (Rahmenwerk) an.

Skriptsprachen, z.B. Shell-Skript, Macros

Skriptsprachen sind Programmiersprachen, die mit einem Interpreter ausgeführt werden. Sie werden „interpretiert“, weil sie nicht vor der Ausführung kompiliert werden müssen, sondern von einem Interpreter „on-the-fly“ ausgeführt werden.

Shell-Skripte sind Programme, die in der Unix-Shell ausgeführt werden.

Macros sind kleine Skripts, die in Anwendungen verwendet werden, um wiederkehrende Aufgaben zu automatisieren.

Debugging, formale und inhaltliche Fehler

Debugging ist der Prozess, Fehler in einem Computerprogramm zu finden und zu beheben. Es gibt verschiedene Tools und Techniken, die beim Debugging verwendet werden können, wie zum Beispiel das Setzen von Haltepunkten und das Überwachen von Variablenwerten.

Formale Fehler sind Fehler in der Syntax des Programmcodes. Sie werden normalerweise von einem Compiler oder Interpreter erkannt und führen dazu, dass das Programm nicht korrekt ausgeführt wird.

Inhaltliche Fehler sind Fehler in der Logik des Programms. Sie können schwieriger zu finden sein, da sie sich nicht durch Syntaxfehler zeigen. Inhaltliche Fehler können zu unerwartetem Verhalten oder falschen Ergebnissen führen.

Abbildung der Kontrollstrukturen mittels Struktogramm (Nassi-Shneiderman), PAP oder Pseudocode als didaktisches Hilfsmittel

Struktogramme (auch als „Nassi-Shneiderman-Diagramme“ bezeichnet): Struktogramme sind grafische Darstellungen von Programmabläufen, die durch eine Kombination von Rechtecken, Rauten und Linien erstellt werden.

PAP (Programmablaufpläne): PAPs sind grafische Darstellungen von Programmabläufen, die durch eine Kombination von Rauten, Kreisen und Linien erstellt werden.

Pseudocode: Pseudocode ähnelt in vielen Aspekten einer normalen Programmiersprache, enthält aber keine Syntax-Regeln oder spezielle Schlüsselwörter.

Verzweigungen (if, switch), Wiederholungen (kopf-/fußgesteuert)

Verzweigungen sind Kontrollstrukturen, die den Ablauf eines Programms an bestimmten Stellen beeinflussen. Die häufigsten Verzweigungen sind if-Anweisungen und switch-Anweisungen.

Wiederholungen (auch als „Schleifen“ bezeichnet) sind Kontrollstrukturen, die es ermöglichen, bestimmte Teile des Programms mehrfach auszuführen. Es gibt zwei Arten von Wiederholungen:

Kopfgesteuerte Wiederholungen: Bei kopfgesteuerten Wiederholungen wird zu Beginn einer Schleife festgelegt, wie oft die Schleife ausgeführt wird.

Fußgesteuerte Wiederholungen: Bei fußgesteuerten Wiederholungen wird erst am Ende einer Schleife festgelegt, ob die Schleife wiederholt wird oder nicht.

Use Cases, Klassendiagramm

Use Cases sind Beschreibungen von Szenarien, in denen eine Anwendung verwendet wird. Sie werden verwendet, um die Anforderungen an eine Anwendung zu beschreiben und zu dokumentieren.

Klassendiagramme sind Diagramme, die in der objektorientierten Programmierung verwendet werden, um die Struktur und Beziehungen von Klassen in einer Anwendung darzustellen. Sie zeigen die Attribute und Methoden einer Klasse, sowie die Beziehungen zwischen Klassen, wie zum Beispiel Vererbungen.

Komposition, Aggregation, Assoziation

Komposition: Bei der Komposition hängt eine Klasse von der Existenz einer anderen Klasse ab.

Aggregation: Bei der Aggregation kann eine Klasse auch unabhängig von einer anderen Klasse existieren. Hierbei verwaltet eine Klasse die andere.

Assoziation: Bei der Assoziation existieren zwei Klassen unabhängig voneinander, aber diese kennen sich gegenseitig. Die Klassen verwalten sich nicht gegenseitig.

Entwurf der Bildschirmausgabemasken (Softwareergonomie, Barrierefreiheit)

Softwareergonomie: Die Softwareergonomie befasst sich mit der Gestaltung von Benutzeroberflächen, damit sie für die Benutzer möglichst intuitiv und effektiv zu bedienen sind.

Barrierefreiheit: Die Barrierefreiheit bezieht sich auf die Gestaltung von Benutzeroberflächen, damit sie auch von Benutzern mit Behinderungen oder Einschränkungen genutzt werden können.

Mockup, Wireframe

Mockups sind Grafiken oder Prototypen, die dazu dienen, die visuelle Gestaltung einer Benutzeroberfläche zu planen und zu testen. Sie zeigen in der Regel, wie eine Benutzeroberfläche aussehen wird, aber nicht, wie sie funktioniert.

Wireframes sind einfache grafische Darstellungen von Benutzeroberflächen, die dazu dienen, die Funktionalität und den Aufbau einer Anwendung zu planen und zu testen. Wireframes zeigen in der Regel nicht, wie eine Benutzeroberfläche aussehen wird, sondern nur, wie sie aufgebaut ist und wie sie funktioniert.

Anforderungen: funktionale und nicht-funktionale Anforderungen

Funktionale Anforderungen sind Anforderungen an eine Anwendung, die beschreiben, was die Anwendung tun soll. Sie können zum Beispiel beschreiben, welche Funktionen eine Anwendung bereitstellen soll oder wie Benutzer mit der Anwendung interagieren sollen.

Nicht-funktionale Anforderungen sind Anforderungen an eine Anwendung, die nicht direkt die Funktionalität der Anwendung betreffen, sondern andere Aspekte wie zum Beispiel Performance, Sicherheit oder Skalierbarkeit.

Datenbanken

Datenbanken sind Systeme zur strukturierten Speicherung und Verwaltung von Daten. Sie werden häufig in Anwendungen verwendet, um große Mengen von Daten zu speichern und zu verarbeiten.

Stammdaten und Bewegungsdaten

Stammdaten sind Daten, die über einen längeren Zeitraum hinweg unveränderlich bleiben. Sie beschreiben zum Beispiel die Eigenschaften von Produkten.

Bewegungsdaten sind Daten, die sich über einen Zeitraum hinweg ändern. Sie beschreiben zum Beispiel die Geschäftstransaktionen eines Unternehmens oder die Lagerbestände von Produkten.

Aufgaben eines DBMS

Ein DBMS (Database Management System) ist eine Software, die verwendet wird, um Datenbanken zu erstellen, zu verwalten und zu nutzen. Die Hauptaufgaben eines DBMS sind:

Erstellen und Verwalten von Strukturen: Ein DBMS ermöglicht es, Tabellen und andere Datenbankobjekte zu erstellen, zu verändern und zu löschen. Es verwaltet auch die Beziehungen zwischen den Tabellen und sorgt dafür, dass die Daten integer bleiben.

Verarbeiten von Datenbankabfragen: Ein DBMS kann Daten aus der Datenbank abfragen und daraus Ergebnisse erstellen. Es unterstützt verschiedene Abfragesprachen, wie zum Beispiel SQL.

Verwalten von Benutzerberechtigungen: Ein DBMS verwaltet die Berechtigungen von Benutzern, um sicherzustellen, dass nur autorisierte Benutzer auf bestimmte Daten oder Funktionen zugreifen können.

Einfache ER-Modelle mit Entity-Relationship-Modell und Tabellenmodell erstellen

ER-Modelle (Entity-Relationship-Modelle) sind Diagramme, die verwendet werden, um die Struktur von Daten in einer Datenbank zu beschreiben. Sie zeigen die Entitäten (oder „Objekte“) in einer Datenbank und die Beziehungen zwischen ihnen.

Es gibt zwei Arten von ER-Modellen:

Entity-Relationship-Modelle: Diese Modelle zeigen die Entitäten und Beziehungen zwischen ihnen in Form von Symbolen und Linien. Sie sind besonders nützlich, um die Struktur von Daten auf einem hohen Abstraktionsniveau zu beschreiben.

Tabellenmodelle: Diese Modelle zeigen die Entitäten und Beziehungen zwischen ihnen in Form von Tabellen. Sie sind besonders nützlich, um die Struktur von Daten auf einem tieferen Abstraktionsniveau zu beschreiben und um die konkrete Implementierung in einer Datenbank zu planen.

SQL: DDL, DCL, DML, TCL, DQL

SQL (Structured Query Language) ist eine Datenbanksprache, die verwendet wird, um Daten in Datenbanken zu verarbeiten und zu verwalten. Es gibt verschiedene Arten von SQL-Anweisungen, die für verschiedene Zwecke verwendet werden:

DDL (Data Definition Language) ist eine Untergruppe von SQL-Anweisungen, die verwendet werden, um die Struktur einer Datenbank zu definieren oder zu verändern. Beispiele für DDL-Anweisungen sind CREATE, ALTER und DROP.

DCL (Data Control Language) ist eine Untergruppe von SQL-Anweisungen, die verwendet werden, um die Berechtigungen von Benutzern zu verwalten und zu überwachen. Beispiele für DCL-Anweisungen sind GRANT und REVOKE.

DML (Data Modification Language) ist eine Untergruppe von SQL-Anweisungen, die verwendet werden, um die Daten in einer Datenbank zu verändern. Beispiele für DML-Anweisungen sind SELECT, INSERT, UPDATE und DELETE.

TCL (Transaction Control Language) ist eine Untergruppe von SQL-Anweisungen, die verwendet werden, um die Ausführung von Transaktionen in einer Datenbank zu kontrollieren. Beispiele für TCL-Anweisungen sind COMMIT und ROLLBACK.

DQL (Data Query Language) ist eine Untergruppe von SQL-Anweisungen, die verwendet werden, um Daten aus einer Datenbank abzufragen. Die SELECT-Anweisung ist das wichtigste Beispiel für eine DQL-Anweisung.

SELECT bezogen auf eine Tabelle (inkl. Klauseln wie WHERE, ORDER BY, GROUP BY)

Die SELECT-Anweisung in SQL wird verwendet, um Daten aus einer oder mehreren Tabellen abzufragen. Sie kann mit verschiedenen Klauseln ergänzt werden, um die abzufragenden Daten einzuschränken oder zu sortieren:

Die WHERE-Klausel wird verwendet, um festzulegen, welche Datensätze abgefragt werden sollen. Sie kann zum Beispiel verwendet werden, um nur Datensätze mit bestimmten Werten in bestimmten Spalten abzufragen.

Die ORDER BY-Klausel wird verwendet, um festzulegen, in welcher Reihenfolge die abgefragten Datensätze angezeigt werden sollen. Sie kann zum Beispiel verwendet werden, um die Datensätze nach einer bestimmten Spalte zu sortieren.

Die GROUP BY-Klausel wird verwendet, um die abgefragten Datensätze nach bestimmten Spaltenwerten zu gruppieren. Sie wird häufig in Verbindung mit Aggregatsfunktionen wie SUM oder COUNT verwendet, um zusammengefasste Ergebnisse zu erhalten.

Aggregatsfunktionen wie SUM, COUNT, AVG

Aggregatsfunktionen sind SQL-Funktionen, die verwendet werden, um zusammengefasste Ergebnisse aus einer Gruppe von Datensätzen zu erhalten. Beispiele für Aggregatsfunktionen sind:

SUM: Die SUM-Funktion wird verwendet, um die Summe der Werte in einer Spalte zu berechnen.

COUNT: Die COUNT-Funktion wird verwendet, um die Anzahl der Datensätze in einer Tabelle oder einer Spalte zu zählen.

AVG: Die AVG-Funktion wird verwendet, um den Durchschnittswert der Werte in einer Spalte zu berechnen.

Normalisierung

Die Normalformen sind Konzepte in der relationalen Datenbanktheorie, die sich auf die Struktur von Datenbanktabellen beziehen.

Erste Normalform (1NF)

Eine Tabelle ist in erster Normalform, wenn alle Werte in jeder Spalte atomar sind. Das bedeutet, dass keine Mehrfachwerte in einer Zelle vorhanden sein dürfen. Beispiel einer nicht normalisierten Tabelle:

MitarbeiternummerMitarbeiterBekannte ProgrammierspracheTypisierung
1Max MustermannJava, Python, C#statisch, dynamisch, statisch
2Maria SchmidtJava, Rubystatisch, dynamisch
Unnormalisierte Tabelle

Diese Tabelle ist nicht in 1NF, da Mehrfachwerte in den Spalten „Bekannte Programmiersprache“ und „Typisierung“ vorkommen. Um sie in 1NF zu bringen, muss jede Programmiersprache und Typisierung in einer separaten Zeile aufgeführt werden:

MitarbeiternummerMitarbeiterBekannte ProgrammierspracheTypisierung
1Max MustermannJavastatisch
1Max MustermannPythondynamisch
1Max MustermannC#statisch
2Maria SchmidtJavastatisch
2Maria SchmidtRubydynamisch
Tabelle in der 1. Normalform. Wenn man es ganz richtig machen möchte, würde man auch den Mitarbeiternamen in Vorname und Nachname trennen.

Zweite Normalform (2NF)

Eine Tabelle ist in zweiter Normalform, wenn sie in 1NF ist und jedes Nichtschlüsselattribut voll funktional vom Primärschlüssel abhängt und nicht von einem Teil davon. Beispiel:

MitarbeiternummerMitarbeiter
1Max Mustermann
2Maria Schmidt
Tabelle in der 2. Normalform
ProgrammiersprachennummerBekannte ProgrammierspracheTypisierung
1Javastatisch
2Pythondynamisch
3C#statisch
4Rubydynamisch
Tabelle in der 2. Normalform
MitarbeiternummerProgrammiersprachennummer
11
12
13
21
24
Tabelle in der 2. Normalform

Dritte Normalform (3NF)

Eine Tabelle ist in dritter Normalform, wenn sie in 2NF ist und kein Nichtschlüsselattribut transitiv von einem Schlüsselattributen abhängig ist. Beispiel:

MitarbeiternummerMitarbeiter
1Max Mustermann
2Maria Schmidt
Tabelle in der 3. Normalform
ProgrammiersprachennummerBekannte ProgrammierspracheTypisierungsnummer
1Java1
2Python2
3C#1
4Ruby2
Tabelle in der 3. Normalform
TypisierungsnummerTypisierung
1statisch
2dynamisch
Tabelle in der 3. Normalform
MitarbeiternummerProgrammiersprachennummer
11
12
13
21
24
Tabelle in der 3. Normalform

Weiteres Lernmaterial

Die hier genannten Bücher/Lernkarten besitze ich ebenfalls und nutze Sie zur Prüfungsvorbereitung.

Die mit Sternchen (*) gekennzeichneten Links sind sogenannte Affiliate-Links. Wenn du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekomme ich von dem betreffenden Online-Shop oder Anbieter eine Provision. Für dich verändert sich der Preis nicht.

Arbeitsbuch

Prüfungsvorbereitung aktuell Teil 1 der gestreckten Abschlussprüfung: Einrichtung eines IT-gestützten Arbeitsplatzes*

Lernkarten

IT-Berufe Abschlussprüfung Teil 1: AO 2020 von René Neumann*

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen