Personal tools
You are here: o studio 110 110 OUT code | Inf classes Inf Informatik 09

Die einzige Konstante im Universum ist die Veränderung.

Heraklit von Ephesus

When you need a function, just declare it.

Anonymous 

 

Ego ist eine Illusion.

Marco Asam

Life is like a camera -
focus on what's important
capture the good times,
develop from the negatives
and if things don't work out
take another shot.

Anonymous

reset the rules.

sonnja genia riedl

creativity is subtraction.

Austin Kleon

Art is theft: It's not where you take things from, it's where you take them to. 

Daniel Cordera about the quote of Pablo Picasso

art ist for live, not live for art.

 

 

 

 

 

 

 

 

 

Informatik 09

— filed under: , , ,

Basisinformationen zu Informatik 09. In der Jahrgangsstufe 9 sind die großen Themenbereiche das Arbeiten mit Funktionen und Datenflüssen (anhand von Excel) sowie das Arbeiten mit Datenbanksystemen mit SQL.

Aufgaben in Informatik 9

1. LibreOffice Calc bzw. Microsoft Excel (Fkt)  

2. Aufgaben aus dem Informatik-Buch der Reihe nach selbständig bearbeiten. Das Buch ist bitte jede Informatik-Stunde mitzubringen.
Schreibe Deinen Lösungsvorschlag in Dein Heft.
Funktionale Programmierung: Lege EINE Datei an mit mehreren Blättern (tabs unten).  

3. Aufgabe Schreibtraining: Übe konzentriert, z.B. jede Unterrichtsstunde, zu Stundenbeginn ca 5 min. 

4. Referat Informatik (Präsentation) - 5 min Vortrag mit Hefteintrag (> alle)  

5. LibreOffice Calc, Microsoft Access (DB)  

6. Aufgaben aus dem Informatik-Buch der Reihe nach selbständig bearbeiten. Das Buch ist bitte jede Informatik-Stunde mitzubringen.
Schreibe Deinen Lösungsvorschlag in Dein Heft.
Datenmodellierung: Lege ZWEI Datenbanken an mit den benötigten Tabellen (LibreOffice Calc, Microsoft Access) zu den Themen "Musik" und "Photo/ Filmarchiv".  

7. Werkzeugkasten-Kapitel im Buch
Lies sie dir selbständig durch (ab S. 142 in Informatik I, Oldenbourg-Verlag)


Mögliche Referate Informatik 9 (5 min Vortrag)

wichtig ist hierbei jeweils: Beschreibung | Definition | Beispiel | Abbildung

Bei jedem Referat soll am Ende ein kurzer Hefteintrag (2-3 Sätze zum Abschreiben, Graphik oder Abbildung zum Abzeichnen) die letzte Seite sein.

Grundlagen der Informatik

      Geschichte/ Meilensteine der Informatik  
      Klasse Objekt Attribut Methode. Punktnotation  
      Klassenkarte Objektkarte Klassendiagramm | py
      Beziehungen und Kardinalitäten
      Methoden | py
      HTML | atom.io oder notepad++  
      Algorithmus/ algorithmisches Denken
      Struktogramme   
      Baum und Graph | Hierarchische Strukturen 
      Binäres Zahlensystem (vgl. S. 63)  
      Rechnerarchitektur

Funktionale Programmierung | py

      Funktionen  
      Vordefinierte Funktionen (vgl. S. 39)  
      Funktionen UNDODERNICHT  
      Logische Funktionen  
      Datenflussdiagramm  
      Bedingte Funktion: WENN-Funktion  
      while-Schleife  
      if-/else - Bedingte Anweisung  
      Zusammenfassen von Funktionen  
      Verknüpfung von Tabellen
      Verzweigung im Datenfluss
      Geschichte der Tabellenkalkulation (vgl. S. 62) 
      Tabellenkalkulation - Buchhaltung  
      Diagramme aus Tabellendaten    
      Kapital-Berechung (Kredit-Aufnahme, Geld-Anlegen, Zinsberechnung mit Zinstagen)
      Zusammengesetzte Daten (z.B. Brüche)
      Verkaufspreis mit Mengenrabatt
      Verkaufspreis mit Skonto 
      Kostenvoranschlag (Rechnung) mit Tabellenkalkulation  
      Adress-Listen mit Tabellen
      Diagramme in Tabellenkalkulation: Entwicklung der Weltbevölkerung (vgl. S. 61)
      Kopieren - relative und absolute Adressen
      Links - lokal und online z.B. in Tabellen  

Datenbanken | py

      DB statt Fkt - warum?
      Datentypen | py
      Relationales Datenbanksystem
      SQL-Abfragen
      Datenbankschema
      Datenpflege (UPDATE, INSERT, DELETE)     
      Datensicherheit und Datenschutz
      Klassendiagramm und Kardinalitäten  
      n:m - Beziehung  
      Das kartesische Produkt
      Aggregat-Funktionen von SQL (COUNT, AVG, MAX, MIN, SUM vgl. S. 103)
      Schlüssel, Fremdschlüssel und referentielle Integrität
      Datenpflege (Ändern, Einfügen, Löschen von Datensätzen | UPDATE, INSERT, DELETE)
      Änderungsanomalien bei der Datenpflege
      Datenkonsistenz
      Datensicherheit und Datenschutz
      Datenbankschema
      Datenbank-Design  
      Prüfziffer am Bsp. der ISBN-Nummer

Informatik und python

      if/else - Bedingung
      while - Schleife
      Objekte | py
      Klassen | py z.B. Liste (unsortiert, sortiert), Liste einfach verkettet, Schlange, Stapel, Baum, Graph (ungewichtet, gewichtet)
      Klassenkarten | py
      Objektkarten | py
      Klassendiagramm
      Objektdiagramm
      Zustandsdiagramm
      Variablen | py
      Methoden | py
      Anweisungen | py
      Strings (Zeichenketten) | py
      Vererbung | py
      Verzweigung/ Rekursion
      Bsp. Koch'sche Schneeflocke
      Bsp. Sierpinski-Dreieck
      Bsp. Fibonacci-Funktion
      Lastenheft/ Pflichtenheft in der Informatik
      Agile Softwareentwicklung (vs Wasserfall-Modell)
      Objektorientierte Programmierung - Diff. python, Java
      Biometrische Daten als Schlüssel 
      Künstliche Intelligenz (Artificial Intelligence AI)   
      Intuitive Bedienbarkeit/ User-Dialog/ GUI - Graphische Oberfläche und optisches Design
      Eclipse-Programmierumgebung 
      Android-Programmierung  
      python-Turtle-Programmierung  

Informatik 09

Grundwissen Informatik 06: Klasse, Objekt, Attribut, Methode

Objekte und Klassen

 

Objekt

Man kann die analoge und auch digitale Welt in Objekten verschiedener Art beschreiben. In Vektorgrafiken finden sich Linien, Kreise, Rechtecke oder Textblöcke; in (reinen) Rastergrafiken dagegen nur Objekte der Art Bildpunkt. Jedes Objekt benötigt zur eindeutigen Identifizierung einen innerhalb des jeweiligen Dokumentes eindeutigen Bezeichner, z.B. kreis1rechteck7 oder linie13.

Attribut

Die Eigenschaften der Objekte werden durch die Werte ihrer Attribute beschrieben. Bsp. (in Punktschreibweise): 

kreis1.füllfarbe = rot 
Klasse: KREIS

Klasse

Je nach Art der Attribute teilt man Objekte in Klassen ein. Objekte der gleichen Klasse haben dieselben Attribute und Methoden. Eine Klasse stellt einen Konstruktionsplan für bestimmte Objekte dar, der mit all seinen Informationen auch ohne diese Objekte existiert.

Methode

Objekte können auf Befehl bestimmte Operationen (Methoden) ausführen. Diese Operationen werden durch den Aufruf einer Methode ausgelöst. Bsp.: 

buchstabe1.horizontalSpiegeln() 
buchstabe5.horizontalVerschieben(2cm) 
Klasse: BUCHSTABE

Parameter

Bei vielen Methoden muss man durch ein oder mehrere Argumente (Parameter) festlegen, mit welchen Eingaben sie ausgeführt werden sollen, z.B. um welche Strecke ein Objekt verschoben werden soll. Die Parameter werden in einer festgelegten Reihenfolge in Klammern notiert. Bsp.: 
buchstabe1.verschieben(2cm, -3cm)

Variable

Objektkarte

Klassenkarte


Modellierung in der Informatik

reales System: Systemanalyse.  abgrenzen, abstrahieren, idealisieren, zusammenfassen
mentales Modell: Modellbildung. Basiskonzepte der Informatik
reales Modell: Normierte Darstellung, Programm

> neue Erkenntnisse (über das reale System)

Grundkonzepte der Informatik

(S. 8)

Modellbilden bedeutet:
- einen Ausschnitt aus dem realen System wählen und alle Einflüsse von außen weglassen,
- nur die wichtigen Dinge in diesem Ausschnitt betrachten.
- diese wichtigen Dinge so einfach wie möglich und so umfassend wie nötig wiedergeben,
- das Modell mit einer normierten Darstellungsform beschreiben.

Grundbegriffe  

(S. 10)
Viele Prozesse in Arbeitswelt und Technik lassen sich wegen ihrer Komplexität nur dadurch überschauen, dass man sie in Teilprozesse gliedert. In einem geeigneten Diagramm stellt man diese Teilprozesse dar und beschreibt den Materialfluss zwischen ihnen.

In der Informatik werden Daten verarbeitet. Ein Datum (Datenelement) umfasst dabei sowohl die Darstellungsform als auch die zugehörige Bedeutung.

(S. 12) 
Eine Funktion beschreibt einen klar umrissenen Vorgang (Prozess) innerhalb eines größeren Zusammenhangs. Sie ermittelt aus Eingabewerten nach einer festgelegten und eindeutigen Zuordnungsvorschrift einen Ausgabewert.
Jede Funktion hat einen Bezeichner und eine Zuordnungsvorschrift. Die Platzhalter für die nötigen Eingabewerte werden mit eindeutigen Bezeichnern festgelegt und heißen Eingangsparameter
Schreibweise:

Funktionsname(Eingangsparameter1; Eingangsparameter2; Eingangsparameter3; ...)

Beim Aufruf der Funktion werden die Eingangsparameter entsprechend ihrer Reihenfolge durch aktuelle Eingabewerte ersetzt. Mit diesen Werten wird der Ausgabewert bestimmt.

Logische Funktionen UND, ODER, NICHT

Mit Wahrheitswerten kann man logisch rechnen. 
Melde Dich, WENN du die Antwort weißt ODER eine Frage hast.  
Melde Dich, WENN jemand eine Frage gestellt hat UND du die Antwort kennst.
Frag nach, WENN du etwas NICHT verstanden hast.

Präs2 | Tabellenkalkulationssystem. Die Klasse ZELLE. Datentypen
Präs3 | Zusammenfassen von Funktionen. Treppenvolumen berechnen.
Präs4 | Verzweigung im Datenfluss. Malerkosten berechnen. 
Präs5 | Vordefinierte Funktionen. ANZAHL. SUMME. MITTELWERT.
Präs6 | Zusammengesetzte Daten. Bruchaddition.
Präs7 | Bedingte Funktionen. Mengenrabattsatz.

(S. 14)
Zur Berechnung komplexer Zusammenhänge lassen sich Funktionen kombinieren. Dabei wird der Ausgabewert einer Funktion zum Eingabewert einer anderen Funktion. In der grafischen Darstellung entsteht ein Datenflussdiagramm.
Elemente eines Datenflussdiagramms sind:

  • Funktionen, die Daten verarbeiten (Rechtecke, abgerundet)
  • Verbindungspfeile (zeigen von Datenflüssen). Bei vielen Tabellenkalkulationsprogrammen kann man sich die Datenflusspfiele aufgrund der Zuordnungsvorschriften nachträglich automatisch eintragen lassen.
  • Eingabewerte (Quellen)
  • Ausgabewert (Senke)

 

(S. 15)
Bei der funktionalen Modellierung werden komplexe Prozesse in einzelne Teilprozesse zerlegt und der Datenfluss zwischen den Prozessen analysiert. Das Datenflussidagramm ist eine grafische Darstellungsform für ein funktionales Modell.
Das funktionale Modellieren besteht in erster Linie aus den Schritten:

  • Identifizieren der Eingabewerte und des Ausgabewertes des Gesamtprozesses
  • Bestimmen der Teilprozesse und Datenflüsse
  • Erstellen des Datenflussdiagramms
  • Beschreiben der Teilprozesse durch Zuordnungsvorschriften.

Hinweis: Beim Erstellen eines Datenflussdiagramms betrachtet man jeden Teilprozess im ersten Moment als sogenannte "Blackbox". Das heißt, man weiß zwar, was der Teilprozess machen soll, aber noch nicht, wie dies im Detail durchzuführen ist. Erst im letzten Schritt beschäftigt man sich bei der funktionalen Modellierung mit dem "wie", also dem Entwickeln einer geeigneten und detaillierten Zuordnungsvorschrift.

Tabellenkalkulationssysteme

(S. 21)

Die Dokumente einer Tabellenkalkulation enthalten Rechenblätter. Ein Rechenblatt enthält Objekte der Klassen ZELLE, ZEILE und SPALTE.
Der Datentyp einer Zelle legt fest, welche Werte das Attribut Zellwert annehmen kann und welche Operationen (Rechenverfahren) auf diesen Werten möglich sind. Wichtige Datentypen in Tabellenkalkulationsprogrammen sind (Komma-)Zahl, Text, Zeitangabe, Wahrheitswert.
Der Wert des Attributes Zellwert einer Zelle kann eine vom Benutzer eingegebene Konstante oder das Ergebnis der Ausführung einer Zuordnungsvorschrift sein. Diese Zuordnungsvorschrift wird im Attribut Formel abgelegt, sie beginnnt mit einem "="-Zeichen und kann als formale Parameter die Adressen anderer Zellen enthalten.

Datentypen

(vgl. S. 19 Buch Inf9 Oldenbourg)
Eine Folge von Ziffern kann manchmal auch ein Text sein. Je nach festgelegtem Datentyp wird die Zeichenfolge "123" als die Zahl einhundertdreiundzwanzig oder als der Text eins-zwei-drei behandelt.
Auch die Zeitangaben werden intern als Zahl gespeichert, damit sie für Berechnungen verwendet werden können. Wahrheitswerte (logische Werte, boolsche Werte) werden ebenfalls intern als Zahlen dargestellt.

Datentypen (in python)

  • für ganze Zahlen: int (integer) und long
  • für Gleitkommazahlen: float (Kommazahl) und double
  • für komplexe Zahlen: complex
  • für boolsche Werte: bool (Wahrheitswert true/false)
  • einzelnes Zeichen: char (character) 
  • Wort, Zeichenkette: string
 

Primitive Datentypen - Übersicht

Python, Java


  Typname
Beschreibung Länge in Byte

    boolean Boole'scher Wert (wahr oder falsch, 1 Bit)
1
    char

einzelnes Zeichen (16 Bit)

2


    byte ganze Zahl (8 Bit)
1
    short ganze Zahl (16 Bit)
2
    int ganze Zahl (32 Bit)
4
    long ganze Zahl (64 Bit)
8
    float
Fließkommazahl (32 Bit)
4


double
Fließkommazahl (64 Bit)
8

Referenztypen (Objekttypen)

Python, Java
Zu den Referenztypen gehören Objekte, Strings und Arrays.

Typname Beschreibung Bsp
String Zeichenkette (Text)
"Hallo!"
Array (z.B. int[])
Feld (hier ganzzahlig)
{1, 2, 3, 4, 5}

Stings und Arrays sind streng genommen auch Objekte, können aber (in Java) ohne Aufruf des new-Operators erzeugt werden.

Exkurs: Python als Taschenrechner 

Für numerische Datentypen sind folgende arithmetische Operatoren definiert:
  • Addition: x+y
  • Subtraktion: x-y
  • Multiplikation: x*y
  • Division: x/y
  • Rest beim ganzzahligen Teilen: x%y
  • Ganzzahliger Anteil der Integer Division: x//y
  • Potenzieren: x**y
  • Negatives Vorzeichen: -x

In Python gibt es keine Operatoren für das Inkrementieren (x++) und Dekrementieren (x--). Es sind jedoch sogenannte erweiterte Zuweisungen der Form x+=y als kürzere Form für x=x+y möglich.

hdm-stuttgart.de/~maucher/Python/html/Datentypen.html

Zusammenfassen von Funktionen

(S. 29)
Mehrere Funktionen in einem Datenflussdiagramm kann man zu einer Funktion zusammenfassen und diese mit Eingangsparameter (ggf. mehreren) und einem Ausgang versehen.

Die Termschreibweise ist eine mathematische Darstellungsform eines funktionalen Modells. Bei dieser Schreibweise werden die einzelnen Funktionen entsprechend des Datenflusses zu einem Term zusammengesetzt.

Verzweigung im Datenfluss

(S. 33)
Mit dem Verteiler-Symbol wird ein Datenfluss im Datenflussdiagramm verzweigt, wobei in beiden Zweign dieselben Daten fließen. In der Termnotation erfolgt diese Verzweigung duch Mehrfachverwendung desselben Parameterbezeichners.

Vordefinierte Funktionen

(S. 42)
Tabellenkalkulationsprogramme stellen vordefinierte Funktionen bereit. Einige vordefinierte Funktionen haben eine beliebige Anzahl Eingangsparameter. In diesem Fall können Zellenbereiche angeben werden.

Zusammengesetzte Daten

(S. 46)
Datentypen, die aus zwei oder mehr Bestandteilen zusammengesetzt sind, bezeichnet man als Verbund. Im Datenflussdiagramm gibt es Symbole zum Aufspalten und Zusammenfassen von Verbunden.

vgl. Datentypen (Buch S. 75) 

Bedingte Funktionen

(S. 55)
Die WENN-Funktion hat drei Eingangsparameter: einen Wahrheitswert und zwei alternative Werte für die Ausgabe. Je nachdem, ob der Wahrheitswert WAHR oder FALSCH ist, nimmt der Ausgabewert den Wert der ersten oder der zweiten Alternative an. Schreibweise:

WENN(Wahrheitswert; AlternativeBeiWahr; AlternativeBeiFalsch)

Eine Funktion mit beliebigen Eingangsparametern, die als Ausgabewert einen Wahrheitswert liefert, bezeichnet man als Aussagefunktion. Eine Funktion mit Eingangsparametern vom Typ Wahrheitswert, die als ausgabewert einen Wahrheitswert liefert, bezeichnet man als logische Funktion. Beispiele sind UNDODER und NICHT.

Notationen

(vgl. S. 61)
Infixnotation: a*b+c

Präfixnotation: +*abc oder plus(mal(a;b);c)

Postfixnotation: ab*c+ 

Zahlendarstellung - Dezimal- und Dualsystem

(vgl. S. 63)
Zahlen werden im Computer intern im Zweiersystem (auch Dualsystem oder Binärsystem genannt) dargestellt. Die Stufenzahlen sind also nicht 1; 10; 100; 1000; 10000 ..., sondern 1; 2; 4; 8; 16; 32; 64 ...
Das setzt sich bei den Nachkommastellen fort: Statt 1/10; 1/100; 1/1000; 1/10000 ... lauten die Stellenwerte 1/2; 1/4; 1/8; 1/16; 1/32; 1/64 usw.

(S. 18)
Ein Rechenblatt besteht aus Zellen, die in Zeilen und Spalten angeordnet sind. Eine Aufteilung dieser Art wird auch als zweidimensionale Matrix bezeichnet. Die Zeilen werden mit Zahlen benannt und die Spalten mit Buchstaben. Die Position einer Zelle wird mit der Kombination aus zugehörigem Spaltenbuchstaben und Zeilennummer bestimmt. Die Anzahl an Zeilen und Spalten ist in der Regel begrenzt.

Datenmodellierung

Schlüssel: Primärschlüssel, Fremdschlüssel, künstlicher Schlüssel

Buch Inf 9. Merkekästchen S. 71, 79, 88, 92. Werkzeugkasten "Microsoft Access". S. 154/155 8.1 + 8.3 notieren

Tabellen anlegen > DB  

Thema: Erstellung eigener Datenbanken auf Grundlage entwickelter Klassendiagramme und beispielhafter Datensätze.

      Tabelle Einkauf  
      Tabelle Bibliothek  
      Tabelle Musik  
      Tabelle Sportverein  
      Tabelle Photo/ Filmarchiv

Die Tabellen anlegen und schrittweise erweitern, ergänzen, optimieren.

Aufgaben:
a) Erstellung eines Klassendiagramms mit den jeweiligen Attributen und den Beziehungen zwischen den Klassen zu einem der vorgeschlagenen Anwendungsfälle. 
b) Entwickle danach zu ALLEN folgenden Themen Klassendiagramme (auf Papier, ins Heft).  
c) Lege ZWEI Datenbanken an mit den benötigten Tabellen (in Microsoft Access) zu den Themen "Musik" und "Photo/ Filmarchiv".  
d) Erstellung der jeweiligen Tabellen in der Datenbank, Realisierung der Beziehungen. Dabei ist zu prüfen, ob referentielle Integrität gegeben ist. 
    Es müssen genügend viele Daten in die Tabelle eingegeben werden, um brauchbare Ergebnistabellen bei Abfragen zu erhalten. 
e) Überlegung, welche Benutzergruppen welche Rechte auf der Datenbank haben sollten.  
f) Erstellung von Abfragen mit SQL für eine Auswahl realitätsbezogener Fragestellungen an die Datenbank.  

Speichern großer Datenmengen in Datenbanken

(S. 69)
Für die Verwaltung großer Mengen strukturierter Daten gibt es spezielle Werkzeuge, die Datenbankverwaltungssysteme (Datenbanksysteme)
Diese bieten Möglichkeiten, die Struktur der Daten auf eine Datenbank zu übertragen, die Daten in dieser Datenbank zu speichern und zu pflegen und die gespeicherten Daten vielfältig abzufragen und auszuwerten. 

Objektorientiertes Datenmodell

(S. 71)  
Zur Analyse der benötigten Datenstruktur bewährt sich die objektorientierte Sichtweise. Das Erstellen des objektorientierten Datenmodells (Objektmodell) besteht in erster Linie aus den folgenden Schritten:  
Welche Objekte sind für die Aufgabenstellung wichtig? 
Zu welchen Klassen gehören diese Objekte?  
Welche aufgabengezogenen Attribute haben diese Klassen?  
Welche Beziehungen bestehen zwischen den Klassen?  
Die Struktur der Daten lässt sich im Klassendiagramm übersichtlich darstellen. 
Im Pflichtenheft werden neben der Datenstruktur die Nutzungsmöglichkeiten der geplanten Datenbank festgehalten.  

Relationales Datenbanksystem

(S. 79)
In relationalen Datenbanken werden die Daten in Form von Tabellen abgelegt. Das objektorientierte Datenmodell kann auf ein relationales Datenbankschema umgesetzt werden. Dabei werden den Klassen Tabellen zugeordnet, den Objekten Tabellenzeilen. Die Tabellenspalten entsprechen den Attributen der Klassen. In den Feldern eines Datensatzes (Tabellenzeile) stehen die Attributwerden eines Objekts. Der Wert NULL bedeutet "kein Wert eingegeben". 
Ein Schlüssel ist eine Spalte (eine Gruppe von Spalten), deren Wert jeweils einen Datensatz in der TAbelle eindeutig bestimmt (identifiziert). Muss eine neue Spalte zur eindeutigen Identifikation der Datensätze eingeführt werden, nennt man sie künstlichen Schlüssel

Datenbankabfragen

SQL  

Einfache Beziehungen zwischen Klassen

(S. 88) 
Das Resultat einer Abfrage ist eine Ergebnistabelle, die durch Selektion und Projektion festgelegt wird.
Zur Formulierung der Abfrage wird die Sprache SQL verwendet. Dort hat eine Abfrage den Aufbau: 
      SELECT <Spaltenliste> FROM <Tabellenliste> WHERE <Bedingung>
Eine Sortierung des Ergebnisses einer SQL-Abfrage wird durch den Zusatz ORDER BY festgelegt, die Sortierung ist normalerweise aufsteigend. Bei jeder Sortierspalte kann durch den Zusatz DESC eine absteigende Sortierung erreicht werden.  

Abfragen über mehrere Tabellen

(S. 92)
Im objektorientierten Datenmodell:
Beziehungen zwischen Objekten werden im Klassendiagramm beschrieben. 
Neben einem beschreibenden Kurztext der Beziehung wird ihre Kardinalität angegeben. 
Im relationalen Datenbankschema:
Bei einer 1:n-Beziehung bekommen die Datensätze auf der "n"-Seite eine zusätzliche Spalte (Fremdschlüssel), in dieser wird der Schlüssel des Datensatzes der "1"-Seite gespeichert, mit dem sie in Beziehung stehen.

(S. 96)  
Bei Anfragen an mehrere Tabellen werden alle beteiligten Tabellen zusammengeführt, es entsteht das kartesische Produkt.  
Bei der Formulierung einer Abfrage müssen alle beteiligten Tabellen angegeben werden sowie eine Bedingung, wie die Daten der verschiedenen Tabellen zu verknüpfen sind (natürlicher Verbund).  

Mehr Beziehungen zwischen Klassen

(S. 100)  
Die Information über jede n:m-Beziehung muss in jeweils einer eigenen Tabelle erfasst werden (Beziehungstabelle). Diese Tabelle nimmt die Schlüssel der zueinander in Beziehung stehenden Datensätze als Fremdschlüssel auf. Der Schlüssel für diese Tabelle ist das Paar der beiden Fremdschlüssel. 
Abfragen bei n:m-Beziehungen müssen drei Tabellen verknüpfen!

SQL-Abfragen - GROUP BY, ORDER BY

(S. 106)
Mit den Aggregatfunktionen COUNT, AVG, SUM, MAX oder MIN lassen sich aus den Datensätzen durch Berechnungen neue Informationen gewinnen. Mit ... AS <Name> können Namen für die Spalten der Ergebnistabelle vereinbart werden. 
Mit GROUP BY lassen sich die Ergebnisse einer Abfrage nach bestimmten Spalten gruppieren, insbesondere für die Anwendung der Aggregatfunktionen. Bedingungen an diese Gruppen werden mit HAVING festgelegt.
Die erweiterte Abfrageanweisung lautet:
      SELECT <Spaltenliste>  
            FROM <Tabellenliste> 
            WHERE <Bedingung> 
            GROUP BY <Spalte> 
            HAVING <Bedingung> 
            ORDER BY <Spaltenliste> 
Ergebnisse von Unterabfragen können im WHERE-Teil für Bedingungen verwendet werden. 
Ergebnisse von Abfragen können als Mengen interpretiert werden; der "Enthalten"-Operator wird als IN geschrieben.  

Datenbanken - komplett und gut entworfen (Qualitätsbetrachtung)

Betrachtung exemplarischer Datenbanken
      DB Einkauf  
      DB Bibliothek  
      DB Musik  
      DB Sportverein  
      DB Photo/ Filmarchiv

Verändern von Datensätzen | INSERT, UPDATE, DELETE  

(S. 117)
Durch sorgfältige Datenpflege wird der Datenbestand auf dem Laufenden gehalten. Die SQL-Anweisungen INSERTUPDATE und DELETE dienen zum EinfügenÄndern und Löschen von Datensätzen. Die melden die Anzahl der bearbeiteten Datensätze zurück.

Datenkonsistenz

(S. 121)
Das Datenbanksystem stellt Mechanismen zur Verfügung, um die Konsistenz (Stimmigkeit) der Daten zu sichern.
Referenzielle Integrität der Daten bedeutet, dass für jeden Fremdschlüsselwert auch ein Datensatz mit diesem Schlüsselwert existiert. Dies können Datenbanksysteme durch die Angabe von Fremdschlüsselbedingungen sicherstellen. 
Beim Versuch, einen referenzierten Schlüssel zu löschen, dann das Datenbanksystem die Löschung verbieten, den referenzierenden Datensatz ebenfalls löschen oder den referenzierenden Fremdschlüssel auf den Wert NULL setzen. 
Beim Ändern eines referenzierten Schlüssels kann das Datenbanksystem die Änderung verbieten oder alle Referenzen mit ändern.

Datensicherheit und Datenschutz

(S. 125)
Ziel des Datenschutzes und der Datensicherheit ist es, den Missbrauch, die Verfälschung, die Zerstörung und den Verlust personenbezogener Daten zu verhindern. 
Die Vergabe von Benutzerrechten ist ein zentraler Mechanismus für den Schutz von illegalem Zugriff auf Daten.  

Normalformen

(vgl. Buch Informatik I, Funktionale Modellierung, Datenmodellierung, Hg. Brichzin u.a., Oldenbourg-Verlag, S. 138)
Es bedarf eines "guten" Datenbankentwurfs, um Probleme mit widersprüchlichen Daten oder den Verlust noch benötigter Information zu vermeiden. Es gibt formale Grundregeln zur Datenmodellierung in den sog. Normalformen. So kann man diese Grundregeln auch in nicht ganz so offensichtlichen Fällen überprüfen und einhalten.  
Erfüllt eine Datenbank eine der Grundregeln, so sagt man: "Die Datenbank ist in der jeweiligen Normalform." Die Normalformen sind aufsteigend nummeriert, jede höhere Nummer schließt die Ansprüche aller niedrigeren Nummern mit ein.  

1. Normalform: Eine Tabelle enthält ausschließlich atomare (einelementige) Feldwerte.

Definition: Ein Attribut Y ist von einem Attribut X abhängig, wenn der Wert von X den Wert von Y festlegt.  

2. Normalform: Zusätzlich zur 1. Normalform muss gelten:
Jedes Nicht-Schlüsselattribut muss vom gesamten Schlüssel abhängen.  

Anmerkung: Besteht der Schlüssel nur aus einer Spate, ist die Tabelle immer in der zweiten Normalform.  

3. Normalform: Zusätzlich zur 2. Normalform muss gelten: 
Attribute sind nur vom Schlüssel, nicht voneinander abhängig.  

Anwendungsbeispiele DB - Analyse

Quelle: Brichzin, u.a. (Hg), "Informatik I. Funktionale Modellierung. Datenmodellierung", Oldenburg-Verlag 

 

Informatik 09 Grundwissen Funktionale Modellierung

Zellbezug
z. B.  A4:   A ist der Spaltenbezeichner, 4 ist die Zeilennummer 
relativer Zellbezug
Beim  Kopieren  von  Zellen,  die  Formeln  enthalten,  werden  die Zellbezüge  in  der Zielzelle entsprechend angepasst.   z. B. A4
absoluter Zellbezug
Soll  beim  Kopieren  einer  Zelle  mit  Formel  ein  Zellbezug  gleich  bleiben, verwendet  man  absolute  Zellbezüge.  Dazu  muss  man  der  Zeilennummer und/oder dem Spaltenbezeichner ein $-Zeichen voran stellen.   z. B. $A$4, $A4, A$4
iterative Berechnungen
Verwendet  man  das  Ergebnis  einer  Formel  in  der  jeweils  nachfolgenden Formel, spricht man von iterativen Berechnungen.
Datentypyen
Tabellenkalkulationen  arbeiten  intern nur mit  Zahlen und  Texten,  können aber über die Zellformatierung vieleweitere Datentypen darstellen: Zahl, Prozent, Währung, Datum, Zeit, Wissenschaft, Bruch, Wahrheitswert, Text. 
Funktionen
Eindeutige  Zuordnungen  heißen  Funktionen.  Sie  ordnen  jedem  Argument höchstens einen Funktionswert zu.
 Datenflussdiagramme
eva prinzip
Schreibweisen von zweistelligen Funktionen
Präfixschreibweise:   Der Funktionsbezeichner wird vor den beiden Parametern geschrieben.  z. B. SUMME(3;4) 
Infixschreibweise:     Der Funktionsbezeichner wird zwischen den beiden Parametern geschrieben.   z. B. 3+4
Verkettung von Funktionen
Funktionen  werden verkettet,  indem  man  den  Wert  einer  Funktion  einer weiteren Funktion als Argument übergibt. z. B.:
verkettung
Umwandlung des Datenflussdiagramms in einen Term:  Höhe = POTENZ(Geschwindigkeit, 2) / PRODUKT(2, Ortsfaktor)
Bedingte Terme
Eine Funktion kann,  abhängig von Bedingungen,  unterschiedliche Ergebnisse liefern:

WENN(Bedingung, Term1, Term2)

Term1  wird  ausgeführt,  wenn  die  Bedingung  den  Wahrheitswert  WAHR liefert, sonst wird Term2 ausgeführt.
Logische Funktionen
Man  verwendet  die UND-Funktion  zur  Verknüpfung mehrerer  Aussagen. Sie liefert den Wert WAHR, wenn alle Argumente WAHR sind.
Man  verwendet  die ODER-Funktion  zur  Verknüpfung  mehrerer  Aussagen. Sie  liefert  den  Wert  WAHR,  wenn  mindestens  eines  der  Argumente  den Wert WAHR hat.
Die Funktion NICHT kehrt den Wert einer logischen Aussage um.

 

Informatik 09 Grundwissen Datenmodellierung

Datenbanksystem 
Ein  Datenbanksystem (DBS) ist eine systematische und strukturierte Zusammenfassung von Daten eines Problembereichs (Datenbasis) einschließlich  der  zur Eingabe,  Verwaltung,  Auswertung  und  Ausgabe erforderlichen Software (Datenbankmanagementsystem, DBMS):  
DBS = Datenbasis + DBMS
Schema
Jede Tabelle wird durch ein Schema charakterisiert:
  • Name der Tabelle
  • Liste der Attribute (Spaltenliste)
  • Datentypen der jeweiligen Attribute
Darstellung eines Schemas:                          TABELLE(Attriubt_1: Datentyp_1, Attribut_2: Datentyp_2, ...)
Datentypen
Datentypen in einer MySQL-Datenbank:  z.B. für Buchstaben char (=Character = Buchstabe) sowie für Texte das Format varchar (= Character-Attribut mit vaiabler Länge). Für Zahlen finden wir integer (=Ganzzahl), float (=Gleitkommazahlen), für Zeitangaben z.B. date und time...
SQL-Abfrage
Das Ergebnis jeder Abfrage ist immer eine Tabelle, auch wenn das Ergebnis nur aus einem Datensatz mit einem Attribut besteht. Mit folgender Abfrage können wir uns den kompletten Inhalt einer Tabelle ausgeben lassen:
SELECT *FROM Tabellenname;
Selektion
Bei der Selektion werden die Datensätze einer Tabelle, die die angegebene Bedingung erfüllen, in einer neuen Tabelle ausgegeben:
SELECT*FROM Tabellenname WHERE Bedingung;
Projektion
Bei der Projektion werden von allen Datensätzen die angegebenen Spalten 
ausgegeben.
SELECT Spalte_1 [, Spalte_2, ..., Spalte_n] FROM Tabelle;
Aggregatsfunktionen
  • COUNT(*)
  • MAX(...)
  • MIN(...)
  • SUM(...)
  • AVG(...)
Möchte man neben demerhalten Wert noch weitere Attribute ausgeben, so muss man mit GROUP BY gruppieren!
Komplexere SQL-Abfrage

Komplexere SQL - Abfrage
Schlüssel
Der (Primär-) Schlüssel setzt sich aus einer (minimalen) Menge von Attributen zusammen, deren Wert  jeweils einen Datensatz  in  der  Tabelle eindeutig identifiziert. Muss eine neue Spalte zur eindeutigen Identifikation der Datensätze eingeführt werden, nennt man sie künstlichen Schlüssel (z. B. fortlaufende Nummerierung). 
Im Tabellenschema wird der Schlüssel unterstrichen.
Redundanz und Konsistenz
Unter Redundanz versteht  man  die  (überflüssige)  Mehrfachspeicherung von  Daten. Beim  Einfügen  oder  Ändern  von  Datensätzen  können  hierbei Probleme und Fehler, sogenannte Anomalien, auftreten:  UPDATE-/DELETE-/INSERT-Anomalie.
Ist  die  Datenbank ohne Widersprüche, so ist sie konsistent, enthält sie Unstimmigkeiten, so ist sie inkonsistent.
Datenmodellierung
Objekte mit gleichen Attributen legen eine Klasse fest. Die Attribute werden in einer Klassenkarte aufgelistet. Klassendiagramme zeigen, welche Beziehungen die Objekte der betrachteten Klassen eingehen können. Die Beziehungen zwischen Klassen werden durch Verbindungslinien dargestellt. Man unterscheidet dabei drei Beziehungsarten:  1:1/1:n/n:m-Beziehung 
Klassendiagramme umfassen somit:
  • alle Klassen mit ihren Attributlisten –jeweils als Klassenkarte dargestellt
  • alle Beziehungslinien mit den zugehörigen Kardinalitäten  und Beziehungsnamen.

Bsp.:

Klassendiagramm

Quelle Bild: http://www.peter-junglas.de/fh/vorlesungen/praktinfWI1/html/kap5-5.html

n:m-Beziehungen und 1:n-Beziehungen:
Für jede n:m-Beziehung wird eine Beziehungstabelle festgelegt. Diese enthält die Primärschlüssel der beiden Tabellen. Diese werden als Fremdschlüssel bezeichnet. Der Primärschlüssel dieser Beziehungstabelle sind alle Fremdschlüssel. 
1:n-Beziehungen: Bei einer 1:n-Beziehung  ist  eine  Beziehungstabelle nicht notwendig. Es wird  die Tabelle der Klasse mit der Kardinalität n um den Primärschlüssel der Klasse mit der Kardinalität 1 erweitert.  Dieser wird als Fremdschlüssel eingefügt.
1:1-Beziehungen: Bei einer 1:1-Beziehung ist auch keine Beziehungstabelle notwendig. Es wird die Tabelle einer beliebigen Klasse um den Primärschlüssel der   anderen Klasse erweitert.  Dieser wird  als Fremdschlüsseleingefügt. Fremdschlüssel werden gestrichelt unterstrichen.
Kreuzprodukt
Das  Kreuzprodukt  (kartesisches  Produkt)  TABELLE1  x  TABELLE2  bildet  aus zwei  Tabellen  eine  neue  Tabelle,  die  jeden  Datensatz  der  ersten  Tabelle mit jedem Datensatz der zweiten Tabelle verknüpft:
SELECT * FROM Tabelle_1, Tabelle_2;
Join
Eine  Hintereinanderausführung  von  Kreuzprodukt  und  Selektion  nennt sich Join. Nur die Zeilen des Kreuzproduktes, bei denen der Wert der Fremdschlüsselattribute mit den zugehörigen Werten der Primärschlüsselattribute übereinstimmen, enthalten die Daten der korrekten Beziehungspartner.  Diese werden mit der anschließenden Selektion gefiltert.
SELECT * FROM Tabelle_1 t1, Tabelle_2 t2 WHERE t1.Attribut = t2.Attribut;
Quelle: angelehnt an: http://www.mgf-kulmbach.de/neu/images/medien/unterrichtsfaecher/Informatik/grundwissen/inf9-grundwissen.pdf

 

 

s Tipps | Informatik  

Programmiere ein eigenes Informatik-Projekt! Ich helfe dir sehr gerne.  

Sonnja Genia Riedl

 

Document Actions