Software Engineering. Prof. Dr. Stefan Enderle NTA Isny

Größe: px
Ab Seite anzeigen:

Download "Software Engineering. Prof. Dr. Stefan Enderle NTA Isny"

Transkript

1 Software Engineering Prof. Dr. Stefan Enderle NTA Isny

2 5 Arbeitsschritt Entwurf

3 5.1 Einführung Analyse: Beschreibung des Systems auf abstrakte Art, unabhängig von der verwendeten Technologie. Entwurf: Berücksichtigung von konkreten Technologien Grundlage für unmissverständliche Implementierung

4 Produkte von Analyse und Entwurf

5 Ausgangspunkt Produkte der Analyse: Anwendungsfälle Analysemodell Domänenmodell Analyseprototyp Stand der Technik / Erfahrung: Qualitätsanforderungen User Interface Design Fehlerbehandlung Architekturkonzepte

6 Ergebnis Produkte des Entwurfs: Architekturbeschreibung Systemaufteilung (Subsysteme) Anwenderschnittstelle (User Interface) Datenbasis Geschäftslogik

7 Ergebnis graphisch

8 5.2 Analyse technischer Varianten Beispiel: Auswahl einer Entwicklungsumgebung 2 Möglichkeiten: Möglichkeit 1: Nutzen der Standard-Entwicklungsumgebung, Systementwurf nach deren Möglichkeiten Möglichkeit 2: Wahl einer optimalen geeigneten Entw.umgeb. Auswahl durch wenige, entscheidende Projektmerkmale

9 Vor- / Nachteile Möglichkeit 1: Bestehende Entwicklungsumgebung: Vorteile: Erfahrung im Unternehmen Gute Programmierer Einsparen von Schulungskosten Nachteile: Entwicklung auf bestimmte Technologien begrenzt Einschränkungen bei der Implementierung (Projekt evtl. nicht realisierbar oder suboptimal) Innovation ist ausgeschlossen

10 Vor- / Nachteile Möglichkeit 2: Auswahl einer optimal geeigneten Entw-.Umg: Vorteile: Flexibilität Innovation (Theoretisch) optimale Lösung Nachteile: Hohes Risiko: Entwickler / Erfahrung vorhanden? Evtl. hoher Schulungsaufwand Auswahl selbst ist evtl. schwierig und langwierig

11 Merkmale von Entw.Umg. Die Auswahl einer Entwicklungsumgebung können verschiedene Merkmale beeinflussen: Unterstützung von Architekturkonzepten z.b. Datenbanken, Client-Server-Lösungen,... Leistung einzelner Komponenten z.b. Bibliotheken, User-Interface,... Verfügbarkeit von User-Interface Editor/Bibliothek (Eigenentwicklungen haben sehr schlechtes Kosten/Nutzen-Verhältnis) Unterstützung von Sprachkonzepten z.b. Objektorientierung, Fehlerbehandlung,... Portierbarkeit der Applikation Unterstützung von Versionsmanagement Eliminieren von Fehlern mit externen Programmen

12 Merkmale von Entw.Umg. (2) Merkmale unabhängig vom aktuellen Entwurf: Qualität einzelner Tools Compiler, Debugger, Editor Integration in Systemumgebung Betriebssystem, Zusammenarbeit mit anderen Tools Erweiterbarkeit und Anpassbarkeit Hersteller und Preis Oft umfangreicher aber teurer Support

13 Analyse technischer Varianten Allgemein müssen häufig Varianten von Systemen verglichen werden: Merkmalstabelle

14 Beispiel: UML-Tool Auswahl eines geeigneten UML-Tools: ArgoUML Visual Paradigm Merkmalstabelle! Siehe Praktikum...

15 5.3 Systemarchitekturen Shaw '96: Software-Architektur beinhaltet die Beschreibung von Elementen, aus denen Systeme gebaut werden, Interaktionen zwischen diesen Elementen, Muster, die deren Zusammensetzung steuern, und Einschränkungen in Bezug auf diese Muster. Ein bestimmtes System wird beschrieben durch die Sammlung von Komponenten und Interaktionen zwischen diesen Komponenten.

16 Beispiele Administratives Stand-Alone System vs. Embedded-/Echtzeitsystem

17 Beispiel Verteiltes System (Client-Server)

18 Schnittstellen Input: Daten Steuerinformation Je nach Systemarchitektur verschiedene Schnittstellen: Stand-Alone System: Über User-Interface Bei Embedded-system: Über Hardware Bei verteiltem System: Über mehrere UIs, Netzwerk

19 Stand-Alone vs. Verteiltes System Stand-Alone System: System, das auf einem einzelnen Rechner ausführbar ist. Ohne Netzwerk. Verteilte Systeme: Client/Server-System: Über ein Netzwerk zusammenarbeitende Anwendungen Jeweils Server (Dienst-Anbieter) oder Client (Nutzer) Server meist auf leistungsfähigen Rechnern Peer-to-Peer-System: Anwendungen haben ähnliche Fähigkeiten Jede Anwendung bietet und nutzt Dienste gleichermaßen Master/Slave-System: Master-Anwendung übt Kontrolle über Slaves aus

20 Schichten-Architekturen Eine Anwendung als EINEN Block zu sehen ist keine Architektur! Einfachste Unterteilung unterteilt in zwei Bereiche Zwei-Schichten Architektur

21 Zwei-Schichten-Architektur 2 Schichten: Anwendung Datenbank Eine oder mehrere verteilte Applikationen Datenbank können auch strukturierte Dateien sein Applikationen enthalten UI und Logik

22 Drei-Schichten-Architektur 3 Schichten: Anwendung Datenbank Domäne / Logik Domäne / Logik übersetzt zwischen User-Interface und Datenbank Bsp: Objekte <-> XML

23 Mehr-Schichten-Architekturen Hauptsächlich bei verteilten Systemen kann es sinnvoll sein, mehr als drei Schichten zu definieren. Beispiel: Architektur der Ticket-Line

24 5.4 Darstellung von Systemarchitekturen in UML Prinzip Divide-and-Conquer ( Teile und Herrsche ) Durch die Unterteilung eines Systems in Module können folgende Eigenschaften erzielt werden: Aufgabenteilung Gut für Fehlersuche (wegen Begrenzung) und für Änderungen Skalierbarkeit Leichteres Erweitern oder Entfernen von Modulen, ohne das Gesamtsystem zu beeinflussen Wartbarkeit Leichteres Austauschen von Modulen,

25 Diagramm-Arten Zur Darstellung von Systemarchitekturen werden meist folgende UML-Diagrammarten verwendet: Subsystemdiagramm Implementierungsdiagramm Auslieferungsdiagramm

26 Subsystemdiagramm Zeigt die Aufteilung eines Systems in Subsysteme Subsystem = Rechteck mit Tab und Gabel Schnittstelle (Service) = kleiner Kreis Zugriff auf Schnittstelle = gestrichelter Pfeil

27 Subsystemdiagramm Subsysteme: Administration, Kassa, Kiosk Kiosk greift auf Administration über Schnittstelle Daten zu. Administration verwendet eine Schnittstelle von Kassa. <<stub>> deutet an, dass es sich nur um einen Stellvertreter handelt, der die Daten weiterleitet oder Standardantworten z.b. für Testzwecke schickt.

28 Subsystemdiagramm Eine Schnittstelle kann auch genauer spezifiziert sein, dann wird eine Schnittstellenklasse verwendet (mit <<interface>>). Beispiel: Schnittstelle Daten von vorher

29 Subsystemdiagramm In einem Subsystemdiagramm können zusätzlich Zusammenhänge zu Elementen der Analyse dargestellt werden: Zwei Hälften: Specification Elements = Analyse (z.b. Anwendungsfälle), Realization Elements = Entwurf

30 Implementierungsdiagramm Zeigt die Aufgliederung des Quellcodes und gegenseitige Abhängigkeit Komponenten = Rechteck mit 2 kleineren Rechtecken Komponenten bestehen meist aus mehreren Klassen

31 Implementierungsdiagramm Admin greift auf Admin DB und auf Admin Kommunikation zu. Kiosk greift über Kiosk Kommunikation auf Admin Kommunikation zu.

32 Auslieferungsdiagramm Zeigt die Maschinen/Geräte der Zielumgebung z.b. PCs, Server, Controller Maschine = 3D Rechteck Innerhalb der 3D Rechtecke wieder Komponenten (wie im Implementierungsdiagramm) + Komponenten der Zielumgebung Instanzen!

33 Auslieferungsdiagramm Zwei Maschinenklassen: Server und InfoTerminal Administration und Kiosk wurden zufammengefasst Jedes Kiosk greift auf den Server über die AdministrationSchnittstelle zu Administration benutzt die Datenbank des Servers

34 5.4 Umsetzung der Analyse-Anforderungen Aus den Anforderungen der Analyse müssen hauptsächlich folgende Teile entworfen werden: Anwenderschnittstelle (User Interface) Geschäftslogik Datenbasis

35 5.4.1 Entwurf der Anwenderschnittstelle Über das User-Interface müssen Mensch und Maschine zusammenarbeiten Funktionelle Dinge: Effektive Dateneingabe Schnelle Steuerung Subjektive Dinge: Reaktivität Vertrauensvoll Keine grafische Überladung o.ä. Gimmicks Gesamtfunktionalität muss passen

36 Entwurf der Anwenderschnittstelle Aus Maci '92: Know your Audience Konsistente Gestaltung Metaphern (Konzepte aus anderem Zusammenhang) Direkte Interaktion (Erfolg, Misslingen,...) Benutzerführung vs. geführter Benutzer Feedback bei längeren Aktionen Fehlertoleranz (Rückgängig-machen)

37 Beispiele Ist folgende Anwenderschnittstelle besonders gut oder schlecht?

38 Beispiele Schlecht! Zu viele Informationen Vermischen von Kundendaten Passwort, PIN... Tabelle mit EINER sichtbaren Zeile

39 Beispiele Gut / Schlecht?

40 Beispiele Schlecht! Schlechte Anordnung der Elemente Fenstersteuerung fehlt Schriftgrößen eher zufällig

41 Typischer Entwurfsablauf Grafischer Entwurf mit später verwendeter Entwicklungsumgebung Vorteil: Weiterverwendung für Implementierung Aber: Aufbereitung als Entwurf: Separate Archivierung Dokumentation mit Screenshots

42 Inhalt: Entwurf Anwenderschnittstelle Ein Entwurf der Anwenderschnittstelle sollte beinhalten: Name der Klasse Bild/Grafik der Anwenderschnittstelle Initialisierung aller Elemente Objekte, deren Attribute durch die Anwenderschnittstelle angezeigt/verändert werden Dynamisches Verhalten des Dialogs Aktionen, die über die Anwenderschnittstelle ausgelöst werden können: über Menüs bei Aktivierung oder Verlassen von Dialogelementen über Kontextmenüs direkte Manipulation (Drag&Drop, Doppelklick,...) Fehlerhafte Aktionen ( Bearbeiten ohne Auswahl etc.) Aktionen, die beim Schließen des Dialogs auszuführen sind.

43 Beispiel: Entwurf User-Interface (1)

44 Beispiel: Entwurf User-Interface (2) Verwendete Obekte: In ListBox Suchergebnis werden Objekte der Klasse Veranstaltung angezeigt Dynamisches Verhalten: Das Fenster kann nicht vergrößert oder verkleinert, aber minimiert werden. Aktionen: Suchen: Die Werte aus den Feldern der Gruppen Aufführungsort, Veranstaltung und Stammdaten werden als Suchkriterium verwendet. Das Suchergebnis wird in Listbox Suchergebnis dargestellt. Übernehmen: Der ausgewählte Eintrag wird an das aufrufende Fenster zurückgeliefert. Schließen: Das Fenster wird geschlossen Doppelklick auf Eintrag in Listbox Suchergebnis zeigt den Datensatz im Detail in UIVeranstaltung an

45 Benutzbarkeitstest Zwei Möglichkeiten: Usability-Richtlinien Tausende spezifische Regeln Heuristische Evaluation Wenige Heuristiken Vorteile der Heuristischen Evaluation: Kann auch von Nicht-UserInterface-Experten durchgeführt werden Schneller Günstiger

46 Heuristische Evaluation (1) Allgemein akzeptierte Heuristiken für User-Interfaces: Einfache und natürliche Dialoge Keine irrelevanten Informationen Natürliche Abfolge der Informationen Sprache des Benutzers Keine Gedächtnisbelastung Der Benutzer sollte nicht gezwungen sein, sich Informationen von einem Dialog zum nächsten zu merken. Konsistenz Gleiche Begriffe, Aktionen, Situationen sollen immer das Gleiche bedeuten. System-Aktion durch Benutzer-Aktion. Feedback: Information des Benutzers, was gerade passiert.

47 Heuristische Evaluation (2) Klare Ausstiegspunkte Situationen vermeiden, in denen der Anwender keinen Ausgang findet Zurück oder Abbruch Shortcuts Abkürzung aufwändiger Dialoge für geübte Benutzer Gute Fehlermeldungen Defensiv: Darlegung des Problems, Keine Kritik! Präzise: Exakte Information über die Ursachen des Problems Konstruktiv: Vorschlag von Lösungen Verhindere Fehler: Gutes Design kann viele Fehler verhindern

48 5.4.2 Entwurf der Geschäftslogik Geschäftslogik = Funktionalität des Systems: Statischer Teil (Klassen, Daten) Dynamischer Teil (Abläufe) Ansatz: Analysemodell bietet bereits mögliche Einteilung in Klassen Erweiterung um zusätzliche Details

49 UML Klassendiagramm Beispiel: Analyse des Ticket Systems als Klassendiagramm Ticket {abstract} Veranstaltung Aufführungssaal Datum Platz-Ticket Platz Platz_zuweisen Platz_ändern Typen? Sichtbarkeit? verkaufen stornieren suchen Zähl-Ticket Anzahl_Plätze Anzahl_zuweisen Anzahl_ändern

50 Erweiterungen Sichtbarkeit der Attribute: Angaben durch Zeichen vor dem Attributnamen: + = public: Systemweiter Zugriff - = protected: Zugriff nur durch Instanzen der Klasse # = protected: Instanzen der Klasse und Unterklassen unterstrichen = class-scope (static): Systemweiter Zugriff ohne Instanz (Eigenschaft der Klasse) Fenster Standardgröße +aktuellegröße -tags #owner

51 Erweiterungen Typen der Attribute: Angabe des Typs nach : hinter dem Attributnamen: Fenster Standardgröße: Rechteck +aktuellegröße: Rechteck -tags: byte #owner: Fenster*

52 Erweiterungen Initialisierung der Attribute: Initialisierungswerte werden nach = hinter dem Typ angegeben: Fenster Standardgröße: Rechteck = (200,100) +aktuellegröße: Rechteck -tags: byte = 128 #owner: Fenster* = NULL

53 Erweiterungen Sichtbarkeit der Methoden: Angabe von +, -, #, _ wir bei Attributen: Fenster Standardgröße: Rechteck = (200,100) +aktuellegröße: Rechteck -tags: byte = 128 #owner: Fenster* = NULL -zeigefenster +öffnen +anzkinder #minimiereallekinder

54 Erweiterungen Typen der Parameter und Rückgabewerte von Methoden: Wie bei Attributen: Name : Typ: Fenster Standardgröße: Rechteck = (200,100) +aktuellegröße: Rechteck -tags: byte = 128 #owner: Fenster* = NULL -zeigefenster() +öffnen(owner:fenster*):boolean +anzkinder():int #minimiereallekinder()

55 Vereinbarungen Um das Klassendiagramm nicht zu überladen, wurde vereinbart, dass folgende Kategorien von Methoden weggelassen werden: Konstruktoren: Initialisierung des Objekts Destruktoren: Maßnahmen vor Beendigung des Objekts Set-Methoden: Setzen (einzelner) Attributwerte Get-Methoden: Lesen (einzelner) Attributwerte

56 Fehlerbehandlung Zur statischen Systembeschreibung gehört auch die Fehlerbehandlung Typischer Fehlerursachen: Falscheingabe des Benutzers Abbruch eines Algorithmus aufgrund bekannter Bedingungen Abbruch eines Vorgangs durch den Benutzer Inkonsistenzen von Daten im Speicher oder Datenbank Abbruch eines Vorgangs aufgrund ungültiger oder unvollständiger Daten

57 Fehlerbehandlung Mögliche Maßnahmen zur Fehlerbehandlung: Fehler ignorieren unbestimmbares und oft untragbares Verhalten Abbruch der gesamten Applikation meist unzumutbar Wert für die Ungültigkeit eines Ergebnisses gute Dokumentation! Statusvariablen gute Dokumentation + Benutzung! Statusmethoden (wie oben) Einer der Rückgabewerte als Fehlerwert OK, aber unschön Exception-Handling Sauberste Lösung, Trennen von Code und Ferhlerbehandlung

58 Wdh: Exceptions Beispiel: Werfen einer Ausnahme mit throw: double squareroot(double value) { if (value < 0) throw Wert kleiner 0 ; return sqrt(value); } Es können beliebige Typen/Klassen geworfen werden.

59 Wdh: Exceptions Exception-Handler mit try/catch: try { a = sqareroot(1.0); b = sqareroot(-1.0); c = sqareroot(2.0); } catch (const char* exc) { cerr << Fehler: << exc << endl; exit(1); }

60 Fehlerbehandlung Vorschlag: Eigenes Dokument Fehlerbehandlung mit Definition aller Mechanismen z.b. Exceptions und globale Variablen Definition aller Konstanten z.b. Exception-Klassen und Werte für globale Variablen Definition von Standard-Fehlermeldungen an den Benutzer z.b. Keine gültige Zahl verschiedene Sprachen?

61 5.4.3 Dynamische Abläufe Das Analysemodell besitzt auch bereits dynamische Diagramme : Kollaborationsdiagramm Sequenzdiagramm Zustandsdiagramm Im Entwurf werden diese überprüft an Datentypen angepasst ggfs. erweitert oder verändert.

62 Wdh: Sequenzdiagramm

63 Wdh: Zustandsdiagramm

64 5.4.4 Datenbasis Das Analysemodell besitzt eine objektorientierte Beschreibung der Datenbasis Beim Entwurf: Übergang zum tatsächlichen Speichermedium. Beispiele/Möglichkeiten: Strukturierte Dateien Relationale Datenbanken XML (Objektorientierte Datenbanken)

65 Strukturierte Dateien Die zu speichernden Daten werden in eine Datei geschrieben. Oft wird das ASCII-Format benutzt. Trennung durch White spaces (Leerzeichen, Tab, Newline) Problem: Strukturierung nur durch Abfolge der Daten Beispiel: Konfigurationsdatei ; lame configuration [InputFileTypes] Audio-Files=*.wav;*.aif;*.aiff;*.mp3;*.mp2;*.mp1 Wave-Files=*.wav MP3-Files=*.mp3 MPx-Files=*.mp3;*.mp2;*.mp1 AIFF-Files=*.aif;*.aiff...

66 Strukturierte Dateien Die Struktur der Datei muss in einem eigenen Dokument beschrieben werden Für komplexere Dateistrukturen bietet sich die Definition einer Grammatik an Beispiel: Grammatik Datei = Dateikopf Dateikopf Dateirumpf Dateikopf = Autorenname Datum Zweck Dateirumpf = Ausdruck Befehl Dateirumpf Ausdruck Dateirumpf Befehl Ausdruck = Zahl Ausdruck + Zahl Ausdruck Zahl Befehl = Text Autorenname = Text Datum = tt.mm.jjjj Zweck = Text

67 XML XML = Extensible Markup Language Sprache für Datenaustausch und Dokumentenmarkierung ASCII Datei

68 XML Ein XML-Dokument besteht aus Elementen. Ein Element ist Text, der in zueinander passende öffnende und schließende Tags eingeschlossen ist. Beispiel: <book> Mein Lieblingsbuch </book>

69 XML Innerhalb eines Elements kann stehen: gewöhnlicher Text wieder Elemente beides Beispiel: <book> Mein Lieblingsbuch <autor> Stefan Enderle </autor> </book>

70 XML Tags markieren die Struktur des Dokuments Der Text stellt den Inhalt dar.

71 XML <bibliographie> <buch> <artikel> <autor> E.F. Codd <autor> S. Abiteboul </autor> </autor> <titel> A Relational Model of Data Banks <autor> R. Hull </autor> </titel> <journal> Communications of the ACM <titel> Foundation of Databases </titel> </journal> <jahr> 1970 <verlag> Addison-Wesey </jahr> </verlag> </artikel> <jahr> </bibliographie> 1985 </jahr> </buch>

72 XML Die Gesamtstruktur ist immer ein Baum. Welche Knoten welche Unterknoten haben können wird durch eine separate Datei definiert: Document Type Definition DTD Die DTD ist im wesentlichen eine kontextfreie Grammatik!

73 XML Beispiel: Bisherige Schreibweise: bibliographie buch artikel autoren autor titel journal jahr verlag (buch artikel)* autoren titel verlag jahr autoren titel journal jahr autor autor autoren text text text text text

74 XML Beispiel: DTD Schreibweise: <!ELEMENT bibliographie (buch artikel)+ > <!ELEMENT buch (autor+,titel,verlag,jahr)> <!ELEMENT artikel (autor+,titel,journal,jahr)> <!ELEMENT autor PCDATA> <!ELEMENT titel PCDATA> <!ELEMENT journal PCDATA> <!ELEMENT jahr PCDATA> <!ELEMENT verlag PCDATA>

75 XML Das heißt: Die DTD ist die Grammatik, die eine Sprache definiert (nämlich die erlaubten XML Dateien). Eine konkrete XML Datei ist dann EIN mögliches Wort aus dieser Sprache, mit einem bestimmten Ableitungsbaum.

76 XML Verarbeitung Verarbeitung: Lesen und Auswerten der XML Datei Speichern von Daten als XML Datei XML Dateien werden meist durch eines der beiden Frameworks gelesen: SAX DOM

77 SAX SAX = Simple API for XML Erlaubt Verarbeitung einer XML-Datei schon während des Einlesens. Hierzu werden Events generiert, die dem XML-Stream entsprechen. Ereignisbasiert

78 SAX Beispiel: <book> Mein Lieblingsbuch </book> Events: start-tag( book ) character-data( Mein Lieblingsbuch ) end-tag( book )

79 SAX Vorteil: Kein Einlesen der gesamten Datei nötig Nachteil: Kein späterer Zugriff auf Daten möglich

80 DOM DOM = Document Object Model Liest komplette XML-Datei ein... und wandelt sie in einen Baum um.

81 DOM Beispiel: Ausschnitt aus HTML-Datei DOM Baum

82 DOM Zugriff auf die Baumstruktur: Elemente des Baumes können dann mit bestimmten Funktionen verarbeitet werden: Elemente lesen Elemente suchen Elemente verändern Elemente löschen

83 DOM Beispiel: Zugriff auf Elemente (Qt): Dokument spezifizieren: QDomDocument doc("mydocument"); Oberstes Element lesen: QDomElement docelem = doc.documentelement(); Ersten Kind-Knoten lesen: QDomNode n = docelem.firstchild(); Nächsten Kind-Knoten lesen: n = n.nextsibling();

84 XML Verarbeitung in Qt s. Übung

85 Datenbanken XML: XML dient der strukturierten Speicherung von Daten in separaten Dateien (XML Datei). Die Inhalte der XML Dateien können baumartig strukturiert sein. (Relationale) Datenbanken: Datenbank unterstützen ebenfalls die strukturierte Speicherung von Dateien. Zusätzliche Features: Einfaches Suchen und Einfügen von Datensätzen Client-Server-Betrieb Replikation Relationale Datenbank: Tabellen zur Strukturierung

86 Datenbanken Querbezug: Hierarchisches Datenbankmodell Beispiel: DOS oder UNIX Dateisystem eintspricht dem hierarchischen Datenbankmodell Hierarchie = Baum Es sind nur 1:n Beziehungen möglich Jedes Verzeichnis kann beliebig viele Unterverzeichnisse (mit Daten) enthalten. Umgekehrt jedoch nur genau eines! DOS / UNIX Kommandos können als Tools zur Benutzung der Datenbank betrachtet werden.

87 Relationale Datenbanken Ein Relationales Datenbanksystem besteht aus Datenbank Die eigentliche Datenmasse. Besteht ggfs. aus vielen Dateien, die jeweils Tabellen mit Daten beinhalten. Datenbank Management System (DBMS) Vielzahl von Werkzeugen, mit denen die Daten eingegeben geändert, verwaltet geschützt gesichert abgefragt bzw. gesucht werden können.

88 Relationale Datenbanken In einer relationalen Datenbank werden Objekte mit deren Attributen gespeichert. Die Haupt-Beschreibungseinheit ist eine Tabelle. Die Überschriften der Tabelle entsprechen den Attributen einer Klassendefinition Für jedes Attribut genau eine Spalte. In jeder Zeile der Tabelle befindet sich dann genau ein Objekt der Klasse

89 Relationale Datenbanken Beispiel Klasse in UML: Datenbank-Schema: Dozent Kürzel : char[3] Vorname : string Nachname : string Raum : string Telefon : int Tabelle Dozenten

90 Relationale Datenbanken Primärschlüssel: Für den eindeutigen Zugriff auf ein Objekt, muß mindestens eine Spalte das Schlüsselattribut Primärschlüssel enthalten. Durch den Primärschlüssel müssen die Zeilen der Tabelle eindeutig voneinander zu unterscheiden sein. Gegebenenfalls muß ein Schlüsselattribut zusätzlich "erfunden" werden, wenn keines der Attribute die Bedingung der Eindeutigkeit erfüllt. Beispiel: Index

91 Relationale Datenbanken Problem: Manche Dozenten halten sich oft in zwei oder mehr Räumen auf. Schlechte Lösungen: Noch eine Zeile mit anderem Raum ( fast gleiches Objekt nochmal) Weitere Spalten Raum 2, Telefon 2,... ( Wieviele?)

92 Relationale Datenbanken Gute Lösung: Aufteilen der Tabelle in Wiederholungsdaten und sich nicht wiederholende Daten. Tabelle Dozenten Tabelle Räume

93 Relationale Datenbanken Tabelle Dozenten Tabelle Räume In Dozenten ist Kürzel der Primärschlüssel In Räume ist Kürzel der Fremdschlüssel und kann auch mehrfach vorkommen.

94 Relationale Datenbanken Tabelle Dozenten Tabelle Räume 1. Problem gelöst: Ein neuer Raum für einen Dozenten wird einfach als weitere Zeile in Räume hinzugefügt.

95 Relationale Datenbanken Tabelle Dozenten Tabelle Räume Neues Problem: Räume und zugehörige Telefonnummern tauchen mehrfach auf. Was tun, wenn sich die Tel.Nr. eines Raumes ändert?

96 Relationale Datenbanken Man sieht, dass ein sauberer Entwurf einer Datenbank wichtig ist. Einige Regeln: Zeilen können jederzeit hinzugefügt werden, Spalten nicht! Keine Redundanz! Jede Angabe über eine Person oder Sache sollte nur einmal gespeichert sein. Unveränderliche Daten immer bevorzugen (Geburtstag anstatt Alter, usw.)

97 Relationale Datenbanken Beispiel: Ein Dozent will für sich selbst eine kleine Datenbank mit Studenten und deren Prüfungsleistungen anlegen. Er benötigt folgende Daten: Matrikelnummer Name Vorname Geburtsdatum Fach Semester Prüfungsdatum Note Note in Worten Wie könnte(n) die Tabelle(n) aussehen?

98 SQL Zugriff auf eine Relationale Datenbank PC Anwendungen mit Oberfläche: früher Borland mit dbase jetzt Access weitere: FoxPro, Paradox Auf Großrechnern und Client-Server Lösungen: SQL Structured Query Language SQL findet man in Oracle, DB/2, Informix,... Seit 1989 genormt (ANSI und ISO)

99 SQL Wichtige Befehle in SQL Anlegen einer neuen Datenbank: CREATE DATABASE dbname ; Löschen einer Datenbank: DROP DATABASE dbname ;

100 SQL Wichtige Befehle in SQL Anlegen einer neuen Tabelle: CREATE TABLE tabname ( Attribut Datentyp [, Attribut Datentyp,...] ); Einige Datentypen: INTEGER DECIMAL(i,n) DATE CHAR(n) Ganze Zahlen Dezimalzahl mit insgesamt i Stellen (einschließlich Dezimalpunkt), davon n Nachpunktstellen Datum, Format entsprechend Landeseinstellung, z. B.: tt.mm.jjjj String mit n Zeichen

101 SQL Beispiel: CREATE TABLE Student ( MatNum CHAR(7), Name CHAR(20), VName CHAR(15), GebDat DATE ) ;

102 SQL Wichtige Befehle in SQL Anlegen einer neuen Tabelle: INSERT INTO tabname VALUES ( Wert [, Wert... ] ) ; Beispiel: INSERT INTO Student VALUES ( , Korn, Klara, { } ) ;

103 SQL Wichtige Befehle in SQL Ändern einer Zeile: UPDATE tabname SET Attribut=Ausdruck [, Attribut=Ausdruck... ] WHERE Bedingung ; Löschen einer Zeile: DELETE FROM tabname WHERE Bedingung ;

104 SQL Beispiel: UPDATE Student SET GebDat={ } WHERE Name= Korn ; DELETE FROM Student WHERE MatNum= ; Achtung: Die Aktionen können mehrere Zeilen betreffen!

105 SQL Wichtige Befehle in SQL Auswählen / Suchen von Daten: SELECT Ausdruck [, Ausdruck... ] * FROM tabname [ WHERE Bedingung ] [ ORDER BY Attribut ] ;

106 SQL Beispiel: SELECT * FROM Student; SELECT Name, VName, MatNum FROM Student WHERE GebDat < { } ORDER BY Name;

107 SQL SELECT genauer: SELECT Ausdruck [, Ausdruck... ] * FROM tabname [ WHERE Bedingung ] [ ORDER BY Attribut ] ; in Ausdruck kann vorkommen: Attribute (Spalten-Überschriften), Operatoren (z. B.: + * / ), Klammern, Funktionen und komplette SELECT-Anweisungen (in Klammern).

108 SQL SELECT genauer: Funktionen können sein: Spaltenfunktionen MIN(Attribut) Minimum der Spalte Maximum der Spalte MAX(Attribut) AVG(Attribut) Durchschnitt der Spalte SUM(Attribut) Summe der Spalte COUNT(*) Anzahl der Zeilen Mathematische Funktionen String-Funktionen Datumsfunktionen...

109 SQL Weitere Beispiele: SELECT COUNT (*) FROM Student ; Anzahl der Eintragungen in der Tabelle Student. SELECT INT ((DATE () GebDat)/365) FROM Student WHERE MatNum= ; Alter eines Studententen SELECT AVG (Note) FROM Note WHERE Fach= Mathe ; Durchschnitt aller Noten der Mathe-Prüfung. SELECT AVG (Zensur) FROM Zensuren WHERE (Fach = Mathe1 OR Fach = Mathe2 ) AND Note <= 4 ; Notendurchschnitt aller bestandenen Prüfungen in den Fächern Mathe1 und Mathe2.

110 SQL in C++/Qt Beispiele: Datenbank-Verbindung herstellen: QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.sethostname("bigblue"); db.setdatabasename("flightdb"); db.setusername("acarlson"); db.setpassword("1utbsbas"); bool ok = db.open(); Anfrage: QSqlQuery query; query.exec("select name, salary FROM employee WHERE salary > 50000"); Anfrage auswerten/anzeigen: while (query.next()) { QString name = query.value(0).tostring(); int salary = query.value(1).toint(); qdebug() << name << salary; }

111

112 Relationale Datenbanken s. Übung

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7 1 Data Definition Language (DDL)... 2 1.1 Tabellen erstellen... 2 1.1.1 Datentyp...... 2 1.1.2 Zusätze.... 2 1.2 Tabellen löschen... 2 1.3 Tabellen ändern (Spalten hinzufügen)... 2 1.4 Tabellen ändern

Mehr

D1: Relationale Datenstrukturen (14)

D1: Relationale Datenstrukturen (14) D1: Relationale Datenstrukturen (14) Die Schüler entwickeln ein Verständnis dafür, dass zum Verwalten größerer Datenmengen die bisherigen Werkzeuge nicht ausreichen. Dabei erlernen sie die Grundbegriffe

Mehr

Relationales Datenbanksystem Oracle

Relationales Datenbanksystem Oracle Relationales Datenbanksystem Oracle 1 Relationales Modell Im relationalen Modell wird ein relationales Datenbankschema wie folgt beschrieben: RS = R 1 X 1 SC 1... R n X n SC n SC a a : i=1...n X i B Information

Mehr

Es geht also im die SQL Data Manipulation Language.

Es geht also im die SQL Data Manipulation Language. 1 In diesem Abschnitt wollen wir uns mit den SQL Befehlen beschäftigen, mit denen wir Inhalte in Tabellen ( Zeilen) einfügen nach Tabelleninhalten suchen die Inhalte ändern und ggf. auch löschen können.

Mehr

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. 1 In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. Zunächst stellt sich die Frage: Warum soll ich mich mit der Architektur eines DBMS beschäftigen?

Mehr

Folien php/mysql Kurs der Informatikdienste

Folien php/mysql Kurs der Informatikdienste Folien php/mysql Kurs der Informatikdienste 1. Einführung in die Datenbank MySQL Kursbeispiel und Kursziele 1.1 Das Kursbeispiel: eine kleine Personalverwaltung 1.2 Was brauchen wir? 1.3 Ziele Kurs AEMS1,

Mehr

Datenbanken. Zusammenfassung. Datenbanksysteme

Datenbanken. Zusammenfassung. Datenbanksysteme Zusammenfassung Datenbanksysteme Christian Moser Seite 1 vom 7 12.09.2002 Wichtige Begriffe Attribut Assoziation API Atomares Attribut Datenbasis DBMS Datenunabhängigkeit Datenbankmodell DDL DML DCL ER-Diagramm

Mehr

Datenmodellierung VU Einführung SS 2016

Datenmodellierung VU Einführung SS 2016 184.685 Datenmodellierung VU Einführung SS 2016 Nysret Musliu, Sebastian Skritek Institut für Informationssysteme Technische Universität Wien Nysret Musliu, Sebastian Skritek Seite 1 1. Motivation Motivation

Mehr

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15 Vorwort..................................................... 13 Kapitel 1 Einleitung.......................................... 15 Kapitel 2 SQL der Standard relationaler Datenbanken... 19 2.1 Die Geschichte................................

Mehr

In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was

In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was 1 In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was die wichtigsten Konzepte sind. Den Themenbereich XML

Mehr

Grundlagen der Informatik 2

Grundlagen der Informatik 2 Grundlagen der Informatik 2 Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Gliederung 1. Einführung

Mehr

Das Grundlagenbuch zu FileMaker Pro 7- Datenbanken erfolgreich anlegen und verwalten

Das Grundlagenbuch zu FileMaker Pro 7- Datenbanken erfolgreich anlegen und verwalten Das Grundlagenbuch zu FileMaker Pro 7- Datenbanken erfolgreich anlegen und verwalten SMART BOOKS Inhaltsverzeichnis..««... Vorwort 13 Kapitel 1 - Einführung 17 Crashkurs: FileMaker Pro 7 anwenden 19 Eine

Mehr

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 9. Zeiger Arbeitsspeicher / Adressen Der Arbeitsspeicher des Computers (RAM) besteht aus einem Feld von Speicherzellen, beginnend bei Adresse

Mehr

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken 31. V. 2016 Outline 1 Organisatorisches 2 SQL 3 OLTP, OLAP, SAP, and Data Warehouse OLTP and OLAP SAP 4 Objekt-relationale Datenbanken Beispiel

Mehr

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) DDL ist Teil von SQL (Structured

Mehr

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1 Kapitel 10 JDBC und SQLJ 1 JDBC und SQLJ Bisher: Einbettung von SQL (statisch bzw. dynamisch) in C, C++, COBOL, ADA (embedded SQL) bzw. prozedurale Erweiterungen für SQL in Oracle (PL/SQL) Was ist mit

Mehr

Klausur Grundlagen der Programmierung

Klausur Grundlagen der Programmierung Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel

Mehr

Algorithmen und Datenstrukturen 06

Algorithmen und Datenstrukturen 06 31. Mai 2012 1 Besprechung Blatt 5 Fragen 2 Objektorientierte Programmierung Allgemein Sichtbarkeit Konstanten 3 Unified Modeling Language (UML) Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung

Mehr

Datenbanken Unit 3: Das relationale Modell

Datenbanken Unit 3: Das relationale Modell Datenbanken Unit 3: Das relationale Modell 8. III. 2016 Outline 1 Das ER Modell Zusammenfassung 2 Das Relationale Modell 3 SQL Organisatorisches Wissensüberprüfung: heute zwei Aufgaben statt nur einer

Mehr

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH 1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch

Mehr

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13 Auf einen Blick Vorwort 13 Teil 1 Vorbereitung Kapitel 1 Einleitung 17 Kapitel 2 SQL - der Standard relationaler Datenbanken 21 Kapitel 3 Die Beispieldatenbanken 39 Teil 2 Abfrage und Bearbeitung Kapitel

Mehr

Datenbanken mit OpenOffice.org 2.3 Base und HSQLDB

Datenbanken mit OpenOffice.org 2.3 Base und HSQLDB Thomas Krumbein Datenbanken mit OpenOffice.org 2.3 Base und HSQLDB Galileo Press 1.1 Zur 2. Auflage dieses Buches 14 1.2 OpenOffice.org 14 1.2.1 DasProjektOpenOffice.org 15 2.1 Einführung in Datenbanken

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

Mehr

3. Semester : 1. Prüfung

3. Semester : 1. Prüfung 3. Semester : 1. Prüfung Name : Die gesamte Prüfung bezieht sich auf die!! Prüfungsdauer: 90 Minuten mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter geschrieben werden

Mehr

Aufgabe 1: XML Retrieval (theoretisch / praktisch)

Aufgabe 1: XML Retrieval (theoretisch / praktisch) In dieser Übung wollen wir XML Retrieval auf einer relationalen Datenbank implementieren (siehe entsprechende Ansätze bei Textretrieval). Hierzu sei das folgende Beispiel XML Dokument gegeben. a) Für ein

Mehr

2. Übung zu Software Engineering

2. Übung zu Software Engineering 2. Übung zu Software Engineering WS 2007/2008 Organisatorisches [SE] als Teil des E-Mail-Betreffs nicht: SE, Software Engineering, Blatt 01 etc. Abgabe: EINE pdf-datei, spätestens 11:30 Uhr nicht: xls,

Mehr

Introduction to Data and Knowledge Engineering. 6. Übung SQL

Introduction to Data and Knowledge Engineering. 6. Übung SQL Introduction to Data and Knowledge Engineering 6. Übung SQL Aufgabe 6.1 Datenbank-Schema Buch PK FK Autor PK FK ISBN Titel Preis x ID Vorname Nachname x BuchAutor ISBN ID PK x x FK Buch.ISBN Autor.ID FB

Mehr

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird. Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Unified Modeling Language (UML) Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Unified Modeling Language (UML)

Mehr

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 2. Spezifikation Schrittweise Verfeinerung

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 2. Spezifikation Schrittweise Verfeinerung UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 2 Spezifikation Schrittweise Verfeinerung Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69,

Mehr

Finalklausur zur Vorlesung Datenbanksysteme I Wintersemester 2003/2004 Prüfer: Prof. R. Bayer, Ph.D. Datum: Zeit: 16.

Finalklausur zur Vorlesung Datenbanksysteme I Wintersemester 2003/2004 Prüfer: Prof. R. Bayer, Ph.D. Datum: Zeit: 16. Finalklausur zur Vorlesung Datenbanksysteme I Wintersemester 2003/2004 Prüfer: Prof. R. Bayer, Ph.D. Datum: 13.02.2004 Zeit: 16. Uhr Hinweis: Die Bearbeitungszeit beträgt 90 Minuten. Bitte benutzen Sie

Mehr

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList

Mehr

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme Institut für Computational Science Prof. Dr. H. Hinterberger Praxismodul 1 Einführung in die Programmierung Erste Programme Einführung in die Programmierung 2 Institut für Computational Science, ETH Zürich,

Mehr

Defensive T-SQL Datenbankentwicklung

Defensive T-SQL Datenbankentwicklung Defensive T-SQL Datenbankentwicklung Frank Geisler 13.07.2013 Organizer 13.06.2015 SQLSaturday Rheinland 2015 Bronze Sponsor 13.06.2015 SQLSaturday Rheinland 2015 Silver Sponsor 13.06.2015 SQLSaturday

Mehr

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

4. Objektrelationales Typsystem Kollektionstypen. Nested Table Nested Table Bei einer Nested Table handelt es sich um eine Tabelle als Attributwert. Im Gegensatz zu Varray gibt es keine Beschränkung bei der Größe. Definition erfolgt auf einem Basistyp, als Basistypen

Mehr

Arbeiten mit Suchergebnissen

Arbeiten mit Suchergebnissen Arbeiten mit Suchergebnissen Inhalt 1. Gruppieren... 2 2. Filter... 5 3. Sortieren... 7 4. Feldauswahl... 8 4.1. neue Felder hinzufügen... 8 4.2. bestehende Felder entfernen... 9 5. Summen bilden... 10

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

Mehr

BKSYS Brandschutzklappen-Kleinsteuerung

BKSYS Brandschutzklappen-Kleinsteuerung Software-Bedienungsanleitung BKSYS Brandschutzklappen-Kleinsteuerung Inhaltsverzeichnis Übersicht und Sprache... 2 Verbindung... 3 Zustand... 4 Protokoll... 5 Einstellung... 7 SCHAKO Ferdinand Schad KG

Mehr

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 10 Pkt.) a) Geben

Mehr

DATENBANKEN MIT DELPHI. Herausgegeben von der Redaktion. Toolbox. Computer & Literatur Verlag GmbH

DATENBANKEN MIT DELPHI. Herausgegeben von der Redaktion. Toolbox. Computer & Literatur Verlag GmbH DATENBANKEN MIT DELPHI 11 Herausgegeben von der Redaktion Toolbox ИЗ Computer & Literatur Verlag GmbH Inhaltsverzeichnis Fundamente 9 1 Die Grundlagen von Datenbanken 11 1.1 Das Speichern von Daten 15

Mehr

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung Wiederholung VU Datenmodellierung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

Mehr

TRACES. Hochladen von Daten. Verwendung von csv-dateien. durch. Niedersächsisches Landesamt für Verbraucherschutz und Lebensmittelsicherheit

TRACES. Hochladen von Daten. Verwendung von csv-dateien. durch. Niedersächsisches Landesamt für Verbraucherschutz und Lebensmittelsicherheit Niedersachsen TRACES Niedersächsisches Landesamt für Verbraucherschutz und Lebensmittelsicherheit Hochladen von Daten durch Verwendung von csv-dateien 2 Hochladen von Daten durch Verwendung von csv-dateien

Mehr

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05. Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational

Mehr

Dataport IT Bildungs- und Beratungszentrum. Access Grundlagenseminar Access Aufbauseminar... 3

Dataport IT Bildungs- und Beratungszentrum. Access Grundlagenseminar Access Aufbauseminar... 3 Inhalt Access 2010 - Grundlagenseminar... 2 Access 2010 - Aufbauseminar... 3 Access 2010 - Von Excel zu Access... 4 Access 2010 - Programmierung Teil 1... 5 Access 2010 - Programmierung Teil 2... 6 Grundlagen

Mehr

zur Verfügung gestellt durch das OpenOffice.org Dokumentations-Projekt

zur Verfügung gestellt durch das OpenOffice.org Dokumentations-Projekt Serienbriefe Wie Sie einen Serienbrief mittels Calc und Writer erstellen zur Verfügung gestellt durch das OpenOffice.org Dokumentations-Projekt Inhaltsverzeichnis 1. Erzeugen einer Quelldatei 2. Erzeugung

Mehr

Hochschule Darmstadt Fachbereich Informatik

Hochschule Darmstadt Fachbereich Informatik Hochschule Darmstadt Fachbereich Informatik Entwicklung webbasierter Anwendungen Praktikumsaufgaben 1 5. & 6. Übung: Zielsetzung und allgemeine Hinweise Zielsetzung Sie sollen die Datenbankanbindung mit

Mehr

Es geht also um die sogenannte SQL- Data Definition Language.

Es geht also um die sogenannte SQL- Data Definition Language. In diesem Abschnitt werden wir uns die SQL Befehle ansehen, mit denen ein sogenanntes Datenbankschema angelegt, gepflegt und auch wieder gelöscht werden kann. Es geht also um die sogenannte SQL- Data Definition

Mehr

Entwicklung der Datenbanksysteme

Entwicklung der Datenbanksysteme Entwicklung der Datenbanksysteme Die Entwicklung der Datenbanksysteme ist eng an die der Hardware gekoppelt und wird wie jene in Generationen eingeteilt: 1. Generation: In den fünfziger Jahren waren die

Mehr

Klausur Programmieren 2 WS2016/17

Klausur Programmieren 2 WS2016/17 Klausur Programmieren 2 WS2016/17 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweise: Formulieren Sie Ihre Lösungen auf dem Aufgabenblatt

Mehr

Stefan Schröder Hard- und Softwareentwicklungen. Anleitung TSImport. Zum Neetzekanal Brietlingen

Stefan Schröder Hard- und Softwareentwicklungen. Anleitung TSImport. Zum Neetzekanal Brietlingen Stefan Schröder Hard- und Softwareentwicklungen Anleitung TSImport Stefan Schröder Hard- und Softwareentwicklungen Zum Neetzekanal 19 21382 Brietlingen e-mail: schroeder@sshus.de Internet: http://www.sshus.de

Mehr

Dipl.-Hdl., Dipl.-Kfm. ACCESS 2007

Dipl.-Hdl., Dipl.-Kfm. ACCESS 2007 Dipl.-Hdl., Dipl.-Kfm. Werner Geers Arbeiten mit ACCESS 2007 Datenbanken mit Datenmodellierung Tabellen, Abfragen, Formularen und Berichten Beziehungen Makros Datenaustausch SQL Structured Query Language

Mehr

Mein eigenes Wörterbuch Lehrerhandbuch. Verwaltung von Wörterbüchern. Hinzufügen eines Wörterbuches. Verändern der generellen Daten des Wörterbuchs

Mein eigenes Wörterbuch Lehrerhandbuch. Verwaltung von Wörterbüchern. Hinzufügen eines Wörterbuches. Verändern der generellen Daten des Wörterbuchs Mein eigenes Wörterbuch Lehrerhandbuch Innerhalb Ihrer Schule können Sie als Lehrer die Bereiche Wörterbücher, Schulverwaltung, Mein Profil bearbeiten und haben Zugang zu bestimmten Benutzerstatistiken

Mehr

Visual Basic Editor CATIA V5

Visual Basic Editor CATIA V5 Visual Basic Editor CATIA V5 Daniel Frauenrath Allgemein Der Visual Basic Editor ist fester Bestandteil von CATIA V5. Im Gegensatz zum internen Editor für CATScript und CATVbs hat der Visual Basic Editor

Mehr

Visual Basic.NET mit Methode

Visual Basic.NET mit Methode Heinrich Rottmann Visual Basic.NET mit Methode Software entwickeln mit der.net Klassenbibliothek- Grundlagen, Windows, ADO.NET, ASP.NET, Webservices und Remoting vieweg Inhaltsverzeichnis JL Grundlegende

Mehr

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

C++ Notnagel. Ziel, Inhalt. Programmieren in C++ C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt

Mehr

UML (Unified Modelling Language) von Christian Bartl

UML (Unified Modelling Language) von Christian Bartl UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...

Mehr

6 Implementierung komplexer Systeme. 6.2 Datenbank-Anbindung

6 Implementierung komplexer Systeme. 6.2 Datenbank-Anbindung 6 Implementierung komplexer Systeme 6.2 Datenbank-Anbindung Analyse Entwurf Implementierung Test, Integration Wartung Literatur: Balzert LE 24-26, 31 Ambler Kap. 10 Einsatz von Datenbanksystemen Persistente

Mehr

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT SQL SQL SELECT Anweisung Mit der SQL SELECT-Anweisung werden Datenwerte aus einer oder mehreren Tabellen einer Datenbank ausgewählt. Das Ergebnis der Auswahl ist erneut eine Tabelle, die sich dynamisch

Mehr

Installationsanleitung All.Relation V

Installationsanleitung All.Relation V Installationsanleitung All.Relation V4.0.1004.0002 Installation 1. Kopieren Sie die Datei AxRelation.dll in das PROFFIX-Programmverzeichnis. 2. Erstellen Sie im PROFFIX-Programmverzeichnis einen Ordner

Mehr

MySQL, Java und einiges mehr

MySQL, Java und einiges mehr MySQL, Java und einiges mehr Client Der Browser Firefox Chrome Safari Internet Explorer URL http://localhost:8080/html/index.html Internet Die darzustellende Webseite HTML Server Apache Tomcat Jetty

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

- dynamisches Laden -

- dynamisches Laden - - - Fachbereich Technik Department Elektrotechnik und Informatik 21. Juni 2012 1/23 2/23 s dynamisch Code kann von mehreren Programmen genutzt werden => kleinere Programme einzelne Teile eines Programms

Mehr

Um einen neuen Konnektor anzulegen klicken sie auf die Schaltfläche Neue Konfiguration > Befüllung folgender Felder:

Um einen neuen Konnektor anzulegen klicken sie auf die Schaltfläche Neue Konfiguration > Befüllung folgender Felder: Konnektoren Ein Konnektor dient im Normalfall zum Abgleich bzw. Synchronisation zweier "Seiten" (Quellbzw. Zielkonnektor), wie z.b. um die Gruppen aus dem Ta-Modul (Zeitwirtschaft) mit den Gruppen aus

Mehr

Einleitung Erste Abfrage erstellen...2

Einleitung Erste Abfrage erstellen...2 Einleitung...7 1 Einführung in Power Query... 11 1.1 Power Query installieren und aktivieren... 11 1.2 Power Query aktivieren bzw. deaktivieren... 12 Was tun, wenn das Register nicht angezeigt wird...

Mehr

Datenformat zum Import von CSV-Dateien

Datenformat zum Import von CSV-Dateien Datenformat zum Import von CSV-Dateien (Eingabe für das BJ 2015; Stand Dez. 2015) Allgemeines Zur Vereinfachung der Dateneingabe für die Deutsche Bibliotheksstatistik (DBS) haben die Fachstellen die Möglichkeit,

Mehr

Kontakte. Inhaltsverzeichnis

Kontakte. Inhaltsverzeichnis Kontakte Inhaltsverzeichnis 1 Einleitung... 3 2 Kontakt anlegen... 3 3 Kontakt (Firma / Person)... 3 3.1 Menü: Kontakt, Löschen, Aktivität, Kalender öffnen... 3 3.1.1 Kontakt - zusammenführen... 3 3.1.2

Mehr

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2010/11 Lokale und globale Variablen Namensräume Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund

Mehr

S.M. Hartmann GmbH IT Solutions

S.M. Hartmann GmbH IT Solutions S.M. Hartmann GmbH 82008 Unterhaching Prager Straße 7 www.smhsoftware.de S.M. Hartmann GmbH IT Solutions Software für den modernen Handel SMH-Connect/400 Version V6.0 Beschreibung SMH-Connect: iseries

Mehr

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle OO Programmiersprache vs relationales Model Vorgehen bisher Erstellen eines ER-Diagramms Übersetzen in das relationale Datenmodell Zugriff auf das relationale Datenmodell aus z.b. Java ER rel. Modell OO

Mehr

Tag 2 Inhaltsverzeichnis

Tag 2 Inhaltsverzeichnis Tag 2 Inhaltsverzeichnis Relationales Modell Relation und Schema Umsetzung ER-Modell --> relationales Schema DB Schema: Empfehlungen Typen von Abfragesprachen SQL Teil 1 Ziel und Geschichte Daten- und

Mehr

untermstrich SYNC Handbuch

untermstrich SYNC Handbuch Handbuch 03/2017 Inhaltsverzeichnis 1. Einleitung... 2 2. Installation... 3 2.1 Systemanforderungen... 3 2.2 Vorbereitungen in Microsoft Outlook... 3 2.3 Setup... 4 3. SYNC-Einstellungen... 6 3.1 Verbindungsdaten...

Mehr

SQL-Befehlsliste. Vereinbarung über die Schreibweise

SQL-Befehlsliste. Vereinbarung über die Schreibweise Vereinbarung über die Schreibweise Schlüsselwort [optionale Elemente] Beschreibung Befehlsworte in SQL-Anweisungen werden fett und in Großbuchstaben geschrieben mögliche, aber nicht zwingend erforderliche

Mehr

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans Graphische Benutzungsoberflächen mit Java Einführung in NetBeans Graphische Benutzungsoberflächen! Interaktion mit dem Programm! Datenein- und ausgabe! Rückmeldungen über Verarbeitung der Daten! Visualisierung

Mehr

SQL,Teil 2: SELECT. W. Spiegel. Übersicht SELECT. Mehrfache Werte vermeiden: SELECT DISTINCT. Ausgabe ordnen: ORDER BY. Projektion.

SQL,Teil 2: SELECT. W. Spiegel. Übersicht SELECT. Mehrfache Werte vermeiden: SELECT DISTINCT. Ausgabe ordnen: ORDER BY. Projektion. SQL,Teil 2: SELECT W. Spiegel Übersicht SELECT Mehrfache Werte vermeiden: SELECT DISTINCT Ausgabe ordnen: ORDER BY Projektion Selektion: WHERE Join mit SELECT Beispiel Aufgaben 1 SELECT Die SELECT-Anweisung

Mehr

Softwaretechnik 2015/2016

Softwaretechnik 2015/2016 Softwaretechnik 2015/2016 PST Lehrstuhl Prof. Dr. Matthias Hölzl HAUPT-/ BACHELOR- SEMINAR ADAPTIVE SYSTEME PST Joschka PROF. DR. Rinke WIRSING 14. JUNI 2009 VORNAME NAME AGENDA Übung 11: 14.01.2016 Schon

Mehr

Application Engineering Grundlagen für die objektorientierte Softwareentwicklung mit zahlreichen Beispielen, Aufgaben und Lösungen

Application Engineering Grundlagen für die objektorientierte Softwareentwicklung mit zahlreichen Beispielen, Aufgaben und Lösungen I " t3ildungsmedien Informatik Application Engineering Grundlagen für die objektorientierte Softwareentwicklung mit zahlreichen Beispielen, Aufgaben und Lösungen Hansruedi Tremp und Markus Ruggiero Application

Mehr

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen Klassenvariablen Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit aller Studentenobjekte.

Mehr

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!! !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!! Erste Zeile eines PERL-Scripts: #! /usr/bin/perl Variablen in PERL: Normale Variablen beginnen mit einem $-Zeichen Array-Variablen beginnen mit

Mehr

Einrichten und Verwenden der Solutio Charly PA-Konzepte Schnittstelle

Einrichten und Verwenden der Solutio Charly PA-Konzepte Schnittstelle Einrichten und Verwenden der Solutio Charly PA-Konzepte Schnittstelle Version 1.3.11 vom 22.11.2016 Haftungsausschluss Die Firma PA-Konzepte GbR übernimmt keinerlei Support, Garantie und keine Verantwortung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition

Mehr

Statische und Nichtstatische Methoden Properties/ Eigenschaften

Statische und Nichtstatische Methoden Properties/ Eigenschaften Statische und Nichtstatische Methoden Properties/ Eigenschaften Statische Methoden Definition und Merkmale von Properties Modifizierer Beispiele Nebeneffekte Dr. Beatrice Amrhein Statische / Nichtstatische

Mehr

Lösungen der Übungsaufgaben von Kapitel 4

Lösungen der Übungsaufgaben von Kapitel 4 Lösungen der Übungsaufgaben von Kapitel 4 1. Machen Sie einen Entwurf für die Oberfläche einer Applikation, mit der Sie Ihr Adressbuch verwalten wollen. Wenn Sie können, entwerfen und realisieren Sie sogar

Mehr

Aufgabe 1: Quer durch Java (4 Punkte) super abstract abstract protected

Aufgabe 1: Quer durch Java (4 Punkte) super abstract abstract protected Universität Augsburg, Institut für Informatik Sommersemester 2006 Prof. Dr. Werner Kießling 14. Oktober 2006 Markus Endres, Alfons Huhn, Timotheus Preisinger Informatik II Klausur 2 Hinweise: Die Bearbeitungszeit

Mehr

Generic Interface. Einfacher Datenaustausch zwischen Drittanwendungen und OTRS.

Generic Interface. Einfacher Datenaustausch zwischen Drittanwendungen und OTRS. Einfacher Datenaustausch zwischen Drittanwendungen und OTRS. Das Generic Interface von OTRS OTRS ist weltweit eine der am weitesten verbreiteten Open Source Help Desk Software-Lösungen und der Integrationsbedarf

Mehr

16. Dezember 2004 Dr. M. Schneider, P. Ziewer

16. Dezember 2004 Dr. M. Schneider, P. Ziewer Technische Universität München WS 2004/2005 Fakultät für Informatik Lösungsvorschläge zu Blatt 8 A. Berlea, M. Petter, 16. Dezember 2004 Dr. M. Schneider, P. Ziewer Übungen zu Einführung in die Informatik

Mehr

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen

Mehr

b.i.m.m PARAMETEREXPORTER 2013 Benutzerhandbuch b.i.m.m GmbH September 2012 Version

b.i.m.m PARAMETEREXPORTER 2013 Benutzerhandbuch b.i.m.m GmbH September 2012 Version b.i.m.m PARAMETEREXPORTER 2013 Benutzerhandbuch b.i.m.m GmbH September 2012 Version 2013.0.1.0 COPYRIGHT Dieses Handbuch dient als Arbeitsunterlage für Benutzer der b.i.m.m-tools. Die in diesem Handbuch

Mehr

Er ermöglicht die Suche nach allen verfügbaren Informationen, die in diesem Feld eingetragen werden können (z. B. Kontonummer, Artikelname usw.).

Er ermöglicht die Suche nach allen verfügbaren Informationen, die in diesem Feld eingetragen werden können (z. B. Kontonummer, Artikelname usw.). Matchcode Der Matchcode, der über die Lupe aufgerufen werden kann, steht für Personenkonten, für Artikel, für Arbeitnehmer, für Projekte usw. (je nach Lizenz bzw. Status des angemeldeten Benutzers) zur

Mehr

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum Programmieren I Martin Schultheiß Hochschule Darmstadt Sommersemester 2012 1 / 19 Rückblick Themen Erste GUI-Anwendung Praktikum 2 / 19 Inhalt von Teil 1 Algorithmen Elementare Datentypen Operatoren Bedingte

Mehr

Modbus/TCP- Kommunikation über IE CP

Modbus/TCP- Kommunikation über IE CP FAQ 02/2015 Modbus/TCP- Kommunikation über IE CP SIMATIC Modbus/TCP CP, SIMATIC S7-300/S7-400 http://support.automation.siemens.com/ww/view/de/75312612 Dieser Beitrag stammt aus dem Siemens Industry Online

Mehr

Allgemeine Informatik II SS :30-13:30 Uhr

Allgemeine Informatik II SS :30-13:30 Uhr TU Darmstadt FB Informatik Prof. J. Fürnkranz Vordiplomsklausur - Lösungsvorschlag Allgemeine Informatik II SS 2005 15.09.2005 11:30-13:30 Uhr Hinweise: Als Hilfsmittel ist nur ein schwarzer oder blauer

Mehr

Vorlesung Datenbank-Entwurf Klausur

Vorlesung Datenbank-Entwurf Klausur Dr. Stefan Brass 3. Juli 2002 Institut für Informatik Universität Giessen Vorlesung Datenbank-Entwurf Klausur Name: Geburtsdatum: Geburtsort: (Diese Daten werden zur Ausstellung des Leistungsnachweises

Mehr

Globale Variablen Diverses. Globale Variablen. Globale Variablen

Globale Variablen Diverses. Globale Variablen. Globale Variablen lokale Variablen Variablen bisher nur am Anfang von Funktionen auch erlaubt: am Anfang innerer Codeblöcke (innerhalb geschweifter Klammern) in C99 und als gcc-erweiterung: an beliebiger Stelle innerhalb

Mehr

OpenOffice - Base G. Laner 1

OpenOffice - Base G. Laner 1 OpenOffice - Base G. Laner 1 BASE - OpenOffice Erstellen einer Datenbank Einteilung einer Datenbank in TABELLEN, die FELDER enthalten, die einem bestimmten DATENTYP zugeordnet sind. Die einzelnen Datensätze

Mehr

Inhaltsverzeichnis 1 Einführung Die Software JGIS Grundlagen raumbezogener Daten

Inhaltsverzeichnis 1 Einführung Die Software JGIS Grundlagen raumbezogener Daten 1 Einführung... 1 1.1 Was wird vermittelt?... 1 1.2 Hinweise zum Buch... 3 1.3 Hinweise zur Buch-CD... 4 1.4 Hinweise zum Forum... 4 1.5 Allgemeine Hinweise... 5 2 Die Software JGIS... 7 2.1 Start des

Mehr

Einführung in die Programmierung Wintersemester 2016/17

Einführung in die Programmierung Wintersemester 2016/17 Einführung in die Programmierung Wintersemester 2016/17 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Gültigkeitsbereiche Inhalt Lokale und globale

Mehr

Beispiele zu den Verknüpfungs-Technologien-5.3.0

Beispiele zu den Verknüpfungs-Technologien-5.3.0 5.6.4. Beispiele zu den Verknüpfungs-Technologien-5.3.0 5.6.4. Beispiele zu den Verknüpfungs-Technologien Beispiel 1: Direkte Verknüpfungs-Technologie Wenn Sie diese Verknüpfungs-Technologie zwischen einer

Mehr

Name: Klausur Informatik III WS 2003/04

Name: Klausur Informatik III WS 2003/04 1 : Methodenimplementierung ca. 42 Punkte Gegeben ist die Klasse Mitarbeiter. Listing 1: (./Code1/Mitarbeiter.h) using namespace std; // globale Variable fuer Ausgabedatei // kann entsprechend

Mehr