Informatik Fachbegriffe: Unterschied zwischen den Versionen

Aus SibiWiki
Zur Navigation springen Zur Suche springen
(13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 12: Zeile 12:
* Attribut
* Attribut
* Entitätsmenge
* Entitätsmenge
* Entität
* Entität (=ein Objekt einer Entitätsmenge)
* Relation
* Relation (=Beziehung)
 
==relationales Datenmodell==
==relationales Datenmodell==
* Tabelle
* Tabelle
 
* Relationenschema (damit meint das Zentralabitur eine Tabelle)
* Datenbankschema (damit meint das Zentralabitur das ganze relationale Datenmodell)
* Attribut
* Attribut
* Primärschlüssel
* Primärschlüssel: <u>unterstrichen</u>
* Fremdschlüssel<br/>''...bezieht sich auf den Primärschlüssel der Tabelle ...''
* Fremdschlüssel: ↑<br/>''...bezieht sich auf den Primärschlüssel der Tabelle ...''
* kombinierter Primärschlüssel
* kombinierter Primärschlüssel
* Relationenschema (damit meint das Zentralabitur eine Tabelle)


==Normalisierung==
==Normalisierung==
* atomar
* atomar
* nicht eindeutiger Primärschlüssel
* nicht eindeutiger Primärschlüssel
* funktional abhängig von einem Teil des Primärschlüssel (2. NF)
* funktional abhängig von einem Teil des Primärschlüssel (Verstoß gegen 2. NF)
 
* funktional abhängig von einem Nicht-Schlüssel-Attribut (Verstoß gegen 3. NF)
* funktional abhängig von einem Nicht-Schlüssel-Attribut (3. NF)
* Anomalien
** Einfüge-Anomalie
** Änderungs-Anomalie
** Lösch-Anomalie
** die können nach Normalisierung nicht mehr auftreten!


==SQL==
==SQL==
* Kartesisches Produkt
* Kartesisches Produkt: "jede(r) mit jedem"
* Abgleich zwischen Tabellen
* Abgleich zwischen Tabellen
* “Drückeberger”
* Verknüpfen (Join) von zwei Tabellen, wobei ... mit ... abgeglichen wird.
* Differenz
* ''"Drückeberger"'': <code>... LEFT JOIN ... WHERE ... IS NULL</code>
* Vereinigung
* Differenz: <code>NOT IN</code>
* Vereinigung: <code>UNION</code>
* selbstdefinierte Tabelle
* selbstdefinierte Tabelle
* Alias
* Alias: <code>AS</code>
* zusammenfassen von Zeilen (mit GROUP BY)
* zusammenfassen von Zeilen: <code>GROUP BY</code>
* sortieren
* sortieren nach: <code>ORDER BY</code>
 
==mit Java auf Datenbanken zugreifen==
==mit Java auf Datenbanken zugreifen==
* DatabaseConnector
* DatabaseConnector
Zeile 104: Zeile 110:
* Methode verlassen <code>return;</code>
* Methode verlassen <code>return;</code>
* zurückgeben: <code>return ergebnis;</code>
* zurückgeben: <code>return ergebnis;</code>
* ausgeben: <code>System.out.println("Hallo");
* ausgeben: <code>System.out.println("Hallo");</code>


=Binärbäume und binäre Suchbäume=
=Binärbäume und binäre Suchbäume=
Zeile 127: Zeile 133:
* Deterministischer endlicher Automat (DEA)
* Deterministischer endlicher Automat (DEA)
** A, Z, d, Q<sub>0</sub>, E: ''allen Zuhörern doofen Quatsch erzählen''
** A, Z, d, Q<sub>0</sub>, E: ''allen Zuhörern doofen Quatsch erzählen''
* Der DEA '''erkennt''' eine Sprache
* Der DEA '''erkennt''' eine reguläre Sprache
* Der DEA '''überprüft''' ein Wort.
* Der DEA '''überprüft''' ein Wort, ob es zur Sprache gehört.
* Nicht-deterministischer endlicher Automat (NEA)
* Nicht-deterministischer endlicher Automat (NEA)
** ''"es gibt einen Weg"''
** ''"es gibt einen Weg"''
Zeile 135: Zeile 141:
**Endzustände
**Endzustände
* Übergang
* Übergang
* Epsilon (): <br>damit kann man den Endzustand erreichen. (Das vereinfacht das "Übersetzen" einer regulären Grammatik in einen Automaten.)
* Epsilon (ε): <br>damit kann man den Endzustand erreichen. (Nur bei Keller-Automaten im LK.)
* Alphabet
* Alphabet
* Zustands-Übergangs-Graph
* Zustands-Übergangs-Graph
* Zustands-Übergangs-Tabelle
* Zustands-Übergangs-Tabelle
* Zustandsfolge
* Zustandsfolge
** für einen NEA ggf. mit geschweifter Klammer mehrere Zustände zusammenfassen.
* Senke (=ein Zustand, aus dem es keinen Ausweg mehr gibt)
* Senke (=ein Zustand, aus dem es keinen Ausweg mehr gibt)
* Potenzmengenkonstruktion
* Potenzmengenkonstruktion
* Potenzmenge (=eine Menge von Zuständen)
* Potenzmenge (=eine Menge von Zuständen)
==Kellerautomaten (nur LK)==
* Keller-Alphabet
* Keller-Zeichen


==reguläre Grammatik==
==reguläre Grammatik==
* G = {N, T, S, P} ''Nerds testen Sonys Playstation''
* G = {N, T, S, P} ''Nerds testen Sonys Playstation''
* linkslineare Grammatik
* linkslineare Grammatik: Nicht-Terminal links
* rechtslineare Grammatik
* rechtslineare Grammatik: Nicht-Terminal rechts
** <i>linkslineare und rechtslineare Regeln nicht mischen!!!<br/>z.B.: <code>S → aS | Sb</code><br/>ist nicht regulär!!!</i>
* Terminal-Symbol
* Terminal-Symbol
* Nicht-Terminal-Symbol
* Nicht-Terminal-Symbol
Zeile 158: Zeile 162:
* Produktion eines Wortes
* Produktion eines Wortes
* die RG erzeugt eine (reguläre) Sprache
* die RG erzeugt eine (reguläre) Sprache
==Kellerautomaten (nur LK)==
* Keller-Alphabet
* Keller-Zeichen


==kontextfreie Grammatik (nur LK)==
==kontextfreie Grammatik (nur LK)==
* lässt sich durch Kellerautomaten prüfen


==Parser==
==Parser==
* für DEA
* für DEA
** mit switch-case:<br/><code>switch(zustand){<br/>&nbsp;&nbsp;&nbsp;case 1: ...</code>
** mit if-else if: <br/><code>if(zustand == 1){<br/>&nbsp;&nbsp;&nbsp;...<br/>}<br/>else if(zustand == 2){<br/>&nbsp;&nbsp;&nbsp;...<br/>}<br/>else{<br/>&nbsp;&nbsp;&nbsp;...<br/>}</code> 
* für Kellerautomaten (nur LK)
* für Kellerautomaten (nur LK)
** Keller (=<code>Stack</code>)


=Graph (nur LK!)=
=Graph (nur LK!)=

Version vom 4. März 2022, 10:51 Uhr


Hier werden die wesentlichen Fachbegriffe zusammengestellt, die für das Informatik-Abitur relevant sind.

Kursiv sind "interne" Begriffe, die anschaulich sind, aber keine echten Fachbegriffe.

Datenbanken

Entity-Relationship-Modellierung

  • Kardinalität
  • 1:n
  • n:m
  • Primärschlüssel
  • Attribut
  • Entitätsmenge
  • Entität (=ein Objekt einer Entitätsmenge)
  • Relation (=Beziehung)

relationales Datenmodell

  • Tabelle
  • Relationenschema (damit meint das Zentralabitur eine Tabelle)
  • Datenbankschema (damit meint das Zentralabitur das ganze relationale Datenmodell)
  • Attribut
  • Primärschlüssel: unterstrichen
  • Fremdschlüssel: ↑
    ...bezieht sich auf den Primärschlüssel der Tabelle ...
  • kombinierter Primärschlüssel

Normalisierung

  • atomar
  • nicht eindeutiger Primärschlüssel
  • funktional abhängig von einem Teil des Primärschlüssel (Verstoß gegen 2. NF)
  • funktional abhängig von einem Nicht-Schlüssel-Attribut (Verstoß gegen 3. NF)
  • Anomalien
    • Einfüge-Anomalie
    • Änderungs-Anomalie
    • Lösch-Anomalie
    • die können nach Normalisierung nicht mehr auftreten!

SQL

  • Kartesisches Produkt: "jede(r) mit jedem"
  • Abgleich zwischen Tabellen
  • Verknüpfen (Join) von zwei Tabellen, wobei ... mit ... abgeglichen wird.
  • "Drückeberger": ... LEFT JOIN ... WHERE ... IS NULL
  • Differenz: NOT IN
  • Vereinigung: UNION
  • selbstdefinierte Tabelle
  • Alias: AS
  • zusammenfassen von Zeilen: GROUP BY
  • sortieren nach: ORDER BY

mit Java auf Datenbanken zugreifen

  • DatabaseConnector
  • Query (=Abfrage)
  • Variablen (z.B. Parameter) im SQL-Statement
  • Zeilenzahl: int zeilenZahl = queryResult.getRowCount();
  • Array (2-dim): String[][] data = queryResult.getData();
    • durchlaufen:
      for(int i=0; i<data.length; i++){
         String name = data[i][0];
         String vorname = data[i][1];
  • In Zahl konvertieren: int zahl = Integer.parseInt(data[i][0]);

Objektorientierte Modellierung und Programmierung

  • erbt von (bzw. "ist ein")
  • Super-Klasse
  • Sub-Klasse
  • Polymorphie
    • polymorphe Methode
  • abstrakte Methode
  • abstrakte Klasse (=Klasse mit mind. einer abstrakten Methode)
  • hat/kennt-Beziehung
  • Attribut
  • lokale Variable
  • Methode
  • Parameter
  • Rückgabetyp
  • public / private
  • Konstruktor
  • Klasse
  • Schnittstelle (interface, vgl. ComparableContent)
  • Objekt
  • ContentType
  • Struktogramm
  • Anweisung
  • Methodenaufruf
  • Bedingung
  • Schleife
    • Zählschleife (for)
    • bedingte Schleife (while)
    • mit Schleife ein Array durchlaufen: for(int i=0; i<array.length; i++)

Java-Programmierung mit linearen Datenstrukturen

  • Schlange (vorne - hinten): Queue
  • Stapel (oben): Stack
  • Liste: List
    • anhängen: pList.append(...)
    • einfügen vor dem aktuellen Element: pList.insert(...);
  • durchlaufen (Liste, Array)
    • ein Array durchlaufen: for(int i=0; i<array.length; i++)
    • eine Liste durchlaufen: for(pList.toFirst(); pList.hasAccess(); pList.next())
  • aktuelles Element:
    • Array: array[i];
    • Liste: pList.getContent();
  • Hilfs-Stack
  • Hilfs-Queue
  • erzeugen eines Objektes: Person p = new Person("Mustermann", "Max");
  • erzeugen eines Arrays: int[] zahlen = new int[1000];
  • Schleife
    • mit einer for-Schleife ein Array durchlaufen: for(int i=0; i<array.length; i++)
  • Schleife verlassen: break;
  • Schleife beim nächsten Element fortsetzen: continue;
  • lokale Variable
  • Attribut
  • Methode verlassen return;
  • zurückgeben: return ergebnis;
  • ausgeben: System.out.println("Hallo");

Binärbäume und binäre Suchbäume

  • Rahmenmethode
  • rekursive Methode
  • Abbruchbedingung
  • Wurzelbehandlung
  • Sachlogik
  • rekursive Aufrufe
  • Traversierung
  • Preorder
  • Inorder (=im Suchbaum: Sortierte Ausgabe!)
  • Levelorder (nur LK)
  • Baumliste für Levelorder (nur LK)
  • ComparableContent
  • implementiert die Schnittstelle (ComparableContent)
  • Dummy: zum Suchen in Suchbäumen.

Automaten und Grammatiken

endliche Automaten

  • Deterministischer endlicher Automat (DEA)
    • A, Z, d, Q0, E: allen Zuhörern doofen Quatsch erzählen
  • Der DEA erkennt eine reguläre Sprache
  • Der DEA überprüft ein Wort, ob es zur Sprache gehört.
  • Nicht-deterministischer endlicher Automat (NEA)
    • "es gibt einen Weg"
  • Zustand
    • Anfangszustand
    • Endzustände
  • Übergang
  • Epsilon (ε):
    damit kann man den Endzustand erreichen. (Nur bei Keller-Automaten im LK.)
  • Alphabet
  • Zustands-Übergangs-Graph
  • Zustands-Übergangs-Tabelle
  • Zustandsfolge
    • für einen NEA ggf. mit geschweifter Klammer mehrere Zustände zusammenfassen.
  • Senke (=ein Zustand, aus dem es keinen Ausweg mehr gibt)
  • Potenzmengenkonstruktion
  • Potenzmenge (=eine Menge von Zuständen)

reguläre Grammatik

  • G = {N, T, S, P} Nerds testen Sonys Playstation
  • linkslineare Grammatik: Nicht-Terminal links
  • rechtslineare Grammatik: Nicht-Terminal rechts
    • linkslineare und rechtslineare Regeln nicht mischen!!!
      z.B.: S → aS | Sb
      ist nicht regulär!!!
  • Terminal-Symbol
  • Nicht-Terminal-Symbol
    • Startsymbol
  • Produktionsregeln
  • Produktion eines Wortes
  • die RG erzeugt eine (reguläre) Sprache

Kellerautomaten (nur LK)

  • Keller-Alphabet
  • Keller-Zeichen

kontextfreie Grammatik (nur LK)

  • lässt sich durch Kellerautomaten prüfen

Parser

  • für DEA
    • mit switch-case:
      switch(zustand){
         case 1: ...
    • mit if-else if:
      if(zustand == 1){
         ...
      }
      else if(zustand == 2){
         ...
      }
      else{
         ...
      }
  • für Kellerautomaten (nur LK)
    • Keller (=Stack)

Graph (nur LK!)

  • Knoten
  • Kante
  • markieren (Knoten oder Kante)
  • Markierung aufheben
  • Gewicht
  • Traversierung
  • Breitendurchlauf
  • Tiefendurchlauf
  • rekursiv (für Tiefendurchlauf)
  • Knotenliste (für Breitendurchlauf)
  • rote Liste (für Dijkstra-Algo)
  • gelbe Liste (für Dijkstra-Algo)

Datenschutz

  • Erlaubnisvorbehalt
  • Erforderlichkeit

Backtracking (nur LK!)

  • Stufe
  • Teillösungsschritt
  • Abbruchbedingung
    • Lösung erreicht
    • Lösung nicht mehr erreichbar
    • maximale Stufenzahl überschritten
  • rückgängig machen