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

Programmiertechnik. Prof. Dr. Stefan Enderle NTA Isny

Programmiertechnik. Prof. Dr. Stefan Enderle NTA Isny Programmiertechnik Prof. Dr. Stefan Enderle NTA Isny 9. Datenspeicherung Einleitung Benötigte Daten können auf viele Arten gespeichert werden. Entscheidend sind hierbei hauptsächlich Datenumfang / Menge

Mehr

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

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,

Mehr

Relationale Datenbanken in der Praxis

Relationale Datenbanken in der Praxis Seite 1 Relationale Datenbanken in der Praxis Inhaltsverzeichnis 1 Datenbank-Design...2 1.1 Entwurf...2 1.2 Beschreibung der Realität...2 1.3 Enitiy-Relationship-Modell (ERM)...3 1.4 Schlüssel...4 1.5

Mehr

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Datumsangaben, enthält mindestens Jahr, Monat, Tag Datenbanken mit SQL Informatik - Sprenger Häufig wird mit Tabellenkalkulationen gearbeitet, obwohl der Einsatz von Datenbanken sinnvoller ist. Tabellenkalkulationen wie Microsoft Excel oder LibreOffice

Mehr

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language) Einführung in SQL 1. Grundlagen Structured Query Language Viele Dialekte Unterteilung: i. DDL (Data Definition Language) ii. iii. DML (Data Modifing Language) DRL (Data Retrival Language) 1/12 2. DDL Data

Mehr

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt. Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.

Mehr

Datenbanken für Online Untersuchungen

Datenbanken für Online Untersuchungen Datenbanken für Online Untersuchungen Im vorliegenden Text wird die Verwendung einer MySQL Datenbank für Online Untersuchungen beschrieben. Es wird davon ausgegangen, dass die Untersuchung aus mehreren

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB Jörg Liedtke, Oracle Consulting Vortrag zum Praxis-Seminar B bei der KIS-Fachtagung 2007, Ludwigshafen Agenda

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

Access Grundkurs. M. Eng. Robert Maaßen

Access Grundkurs. M. Eng. Robert Maaßen Access Grundkurs M. Eng. Robert Maaßen Wer steht da? M. Eng. Robert Maaßen ich@robertmaassen.de www.robertmaassen.de Studium: Informatik Vertiefungsrichtung Medientechnik, Diplom Ingenieur (FH), HAWK,

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

Ein Schlüssel ist eine Menge von Attributen (also eines oder mehrere), die eine Datenzeile (Tupel) einer Tabelle eindeutig identifiziert

Ein Schlüssel ist eine Menge von Attributen (also eines oder mehrere), die eine Datenzeile (Tupel) einer Tabelle eindeutig identifiziert Maika Büschenfeldt Datenbanken: Skript 1 1. Was ist eine relationale Datenbank? In Datenbanken können umfangreiche Datenbestände strukturiert abgelegt werden. Das Konzept relationaler Datenbanken soll

Mehr

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

Mehr

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann. JDBC in 5 Schritten JDBC (Java Database Connectivity) ist eine Sammlung von Klassen und Schnittstellen, mit deren Hilfe man Verbindungen zwischen Javaprogrammen und Datenbanken herstellen kann. 1 Einrichten

Mehr

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung Inhalt Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle Daten und Tabellen Normalisierung, Beziehungen, Datenmodell SQL - Structured Query Language Anlegen von Tabellen Datentypen (Spalten,

Mehr

Sructred Query Language

Sructred Query Language Sructred Query Language Michael Dienert 11. November 2010 Inhaltsverzeichnis 1 Ein kurzer Versionsüberblick 1 2 SQL-1 mit einigen Erweiterungen aus SQL-92 2 3 Eine Sprache zur Beschreibung anderer Sprachen

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2 Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Zur Erinnerung: Aufteilung der Schichten GUI Vorlesung 17: 3-Schichten-Architektur 2 Fachkonzept Fachkonzept - Datenhaltung Datenhaltung

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2 Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Zur Erinnerung: Aufteilung der Schichten GUI Vorlesung 17: 3-Schichten-Architektur 2 Fachkonzept Fachkonzept - Datenhaltung Datenhaltung

Mehr

Tutorial: Eigene Module und Extensions entwickeln. Version: 0.1 Autor: Anja Beuth

Tutorial: Eigene Module und Extensions entwickeln. Version: 0.1 Autor: Anja Beuth Tutorial: Eigene Module und Extensions entwickeln Version: 0.1 Autor: Anja Beuth Inhaltsverzeichnis 1 2 2.1 2.2 2.3 2.4 3 4 4.1 4.2 4.3 5 5.1 6 6.1 6.2 Notwendigkeit prüfen... Ein Projekt in Visual Studio

Mehr

Die Grundbegriffe Die Daten Die Informationen

Die Grundbegriffe Die Daten Die Informationen Die Grundbegriffe Die Daten sind diejenigen Elemente, die vom Computer verarbeitet werden. Die Informationen sind Wissenselemente, welche durch die Analyse von Daten erhalten werden können. Die Daten haben

Mehr

Labor 3 - Datenbank mit MySQL

Labor 3 - Datenbank mit MySQL Labor 3 - Datenbank mit MySQL Hinweis: Dieses Labor entstand z.t. aus Scripten von Prof. Dr. U. Bannier. 1. Starten des MySQL-Systems MySQL ist ein unter www.mysql.com kostenlos erhältliches Datenbankmanagementsystem.

Mehr

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 Kapitel 33 Der xml-datentyp In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 995 996 Kapitel 33: Der xml-datentyp Eine der wichtigsten

Mehr

Inhaltsverzeichnis. jetzt lerne ich

Inhaltsverzeichnis. jetzt lerne ich Inhaltsverzeichnis jetzt lerne ich Einführung 15 1 Erste Schritte 21 1.1 Datenbanken und Datenbank-Managementsysteme 21 1.2 Zugriff auf Datenbanken 22 1.3 Was der Großvater noch wusste... 22 1.4 Einordnung

Mehr

Fachbereich Informatik Praktikum 1

Fachbereich Informatik Praktikum 1 Hochschule Darmstadt DATA WAREHOUSE SS2015 Fachbereich Informatik Praktikum 1 Prof. Dr. S. Karczewski Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 14.April.2015 1. Kurzbeschreibung In diesem Praktikum geht

Mehr

Arbeiten mit einem lokalen PostgreSQL-Server

Arbeiten mit einem lokalen PostgreSQL-Server Arbeiten mit einem lokalen PostgreSQL-Server Download für das Betriebssystem Windows PostgreSQL-Server und pgadmin: http://www.enterprisedb.com/products-servicestraining/pgdownload#windows pgadmin: http://www.pgadmin.org/download/windows.php

Mehr

Software Engineering. Prof. Dr. Stefan Enderle NTA Isny

Software Engineering. Prof. Dr. Stefan Enderle NTA Isny SoftwareEngineering Prof.Dr.StefanEnderle NTAIsny Nachtrag 4ArbeitsschrittAnalyse Begriffe Analyse: VorgangzurBeschreibungdergewünschten AnforderungenaneinSystem. DieAnforderungenwerdenineinemDokumentstrukturiert

Mehr

MySQL Installation. AnPr

MySQL Installation. AnPr Name Klasse Datum 1 Allgemeiner Aufbau Relationale Datenbank Management Systeme (RDBMS) werden im Regelfall als Service installiert. Der Zugriff kann über mehrere Kanäle durchgeführt werden, wobei im Regelfall

Mehr

Datenmanagement in Android-Apps. 16. Mai 2013

Datenmanagement in Android-Apps. 16. Mai 2013 Datenmanagement in Android-Apps 16. Mai 2013 Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer

Mehr

MySQL, phpmyadmin & SQL. Kurzübersicht

MySQL, phpmyadmin & SQL. Kurzübersicht MySQL, phpmyadmin & SQL Kurzübersicht Referenzen MySQL Documentation: http://dev.mysql.com/doc PHP 5 / MySQL5. Studienausgabe. Praxisbuch und Referenz (Kannengießer & Kannengießer) 2 Datenbank anlegen

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 08. Exkurs: Datenbanken 1 Motivation Datenbanksysteme

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2 5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 7 7. Datenbank-Zugriff Zum Beispiel aus PHP-Skripten: Client 7-2 Struktur einer Datenbank 7-3 Erzeugen von Datenbanken

Mehr

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung 6. Datenintegrität Motivation Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung nur sinnvolle Attributwerte (z.b. keine negativen Semester) Abhängigkeiten

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur UML-Klassendiagramme als Werkzeug im Unterricht Blitzlicht? In welcher Programmiersprache(n) unterrichten Sie?? In welchem Umfang unterrichten Sie Objektorientierung??

Mehr

Einführung in die Programmierung mit Java. Hörsaalübung

Einführung in die Programmierung mit Java. Hörsaalübung Einführung in die Programmierung mit Java Hörsaalübung Folie 1 Grundlagen der Objektorientierung Seit Anfang der Neunzigerjahre Standardmethode der Softwareentwicklung. Die OOP Objektorientierte Programmierung

Mehr

9. Einführung in Datenbanken

9. Einführung in Datenbanken 9. Einführung in Datenbanken 9.1 Motivation und einführendes Beispiel 9.2 Modellierungskonzepte der realen Welt 9.3 Anfragesprachen (Query Languages) 9.1 Motivation und einführendes Beispiel Datenbanken

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Informatik Datenbanken SQL-Einführung

Informatik Datenbanken SQL-Einführung Informatik Datenbanken SQL-Einführung Gierhardt Inhaltsverzeichnis 1 Vorbemerkungen 1 2 Auswahl-Abfragen mit SELECT 2 2.1 Selektion...................................... 2 2.2 Projektion.....................................

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Informationen zur Datenbank 1. Definition 1.1 Datenbank-Basis Eine Datenbank-Basis ist eine Sammlung von Informationen über Objekte (z.b Musikstücke, Einwohner,

Mehr

IV. Datenbankmanagement

IV. Datenbankmanagement Wirtschaftsinformatik 2 (PWIN) IV. Datenbankmanagement Kapitel 2: Datenmanipulationssprache SQL Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security 1 Agenda 1.

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software SQL Tutorial SQL - Tutorial SS 06 Hubert Baumgartner INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Inhalt des Tutorials 1 2 3 4

Mehr

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen C3: Structured Query Language Lernziele: Nach der Bearbeitung dieser Lektion haben Sie folgende Kenntnisse erworben: Sie können elementaren

Mehr

SQL (Structured Query Language) Schemata Datentypen

SQL (Structured Query Language) Schemata Datentypen 2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang

Mehr

Vorlesung 30.03.2009 1) Einführung

Vorlesung 30.03.2009 1) Einführung Vorlesung 30.03.2009 1) Einführung Was versteht man unter dem Begriff Datenbank? - Eine Datenbank ist eine Struktur zur Speicherung von Daten mit lesendem und schreibendem Zugriff - Allgemein meint man

Mehr

Datenbanken & Informationssysteme Übungen Teil 1

Datenbanken & Informationssysteme Übungen Teil 1 Programmierung von Datenbankzugriffen 1. Daten lesen mit JDBC Schreiben Sie eine Java-Anwendung, die die Tabelle Books in der Datenbank azamon ausgibt. Verwenden Sie dabei die SQL-Anweisung select * from

Mehr

Cassandra Query Language (CQL)

Cassandra Query Language (CQL) Cassandra Query Language (CQL) Seminar: NoSQL Wintersemester 2013/2014 Cassandra Zwischenpräsentation 1 Gliederung Basic facts Datentypen DDL/DML ähnlich zu SQL Besonderheiten Basic facts CQL kurz für

Mehr

8a. Exkurs.NET. 8a.1.NET Architektur

8a. Exkurs.NET. 8a.1.NET Architektur 8a. Exkurs.NET Inhalt: 8a.1.NET Architektur 8a.2 Kooperation von Anwendungen über ADO -.NET 8a.3 Unterschiede gegenüber gewöhnlicher WIN32- Programmierung 1 8a.1.NET Architektur Bislang wurden die C/C++

Mehr

TimeSafe Leistungserfassung

TimeSafe Leistungserfassung Keep your time safe. TimeSafe Leistungserfassung Adressimport 1/8 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 Allgemeines... 3 1.1 Adressen in der TimeSafe Leistungserfassung... 3 1.2 Organisationen und/oder

Mehr

XINDICE. The Apache XML Project 3.12.09. Name: J acqueline Langhorst E-Mail: blackyuriko@hotmail.de

XINDICE. The Apache XML Project 3.12.09. Name: J acqueline Langhorst E-Mail: blackyuriko@hotmail.de Name: J acqueline Langhorst E-Mail: blackyuriko@hotmail.de 3.12.09 HKInformationsverarbeitung Kurs: Datenbanken vs. MarkUp WS 09/10 Dozent: Prof. Dr. M. Thaller XINDICE The Apache XML Project Inhalt Native

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Oracle: Abstrakte Datentypen:

Oracle: Abstrakte Datentypen: Oracle: Abstrakte Datentypen: Oracle bietet zwei mögliche Arten um abstrakte Datentypen zu implementieren: Varying Array Nested Table Varying Array (kunde) kdnr kdname gekaufteart 1 Mustermann 1 4 5 8

Mehr

Dokumentation zur Anlage eines JDBC Senders

Dokumentation zur Anlage eines JDBC Senders Dokumentation zur Anlage eines JDBC Senders Mithilfe des JDBC Senders ist es möglich auf eine Datenbank zuzugreifen und mit reiner Query Datensätze auszulesen. Diese können anschließend beispielsweise

Mehr

Client/Server-Systeme

Client/Server-Systeme Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen

Mehr

Configuration Management mit Verbosy 17.04.2013 OSDC 2013. Eric Lippmann www.netways.de

Configuration Management mit Verbosy 17.04.2013 OSDC 2013. Eric Lippmann www.netways.de Configuration Management mit Verbosy 17.04.2013 OSDC 2013 Eric Lippmann Kurzvorstellung NETWAYS Expertise OPEN SOURCE SYSTEMS MANAGEMENT OPEN SOURCE DATA CENTER Monitoring & Reporting Configuration Management

Mehr

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing.

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing. PHP + MySQL Die MySQL-Datenbank Zusammenspiel Apache, PHP, PHPMyAdmin und MySQL PHPMyAdmin Verwaltungstool Nutzer Datei.php oder Datei.pl Apache HTTP-Server PHP Scriptsprache Perl Scriptsprache MySQL Datenbank

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 135 Programmierschnittstelle Notwendigkeit: Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für für Medientechnologen Dr. E. Schön Wintersemester 2015/16 Seite 146 Notwendigkeit: Programmierschnittstelle Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr

Java und XML 2. Java und XML

Java und XML 2. Java und XML Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik Java und XML Hauptseminar Telematik WS 2002/2003

Mehr

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

Mehr

SQL, MySQL und FileMaker

SQL, MySQL und FileMaker SQL, MySQL und FileMaker Eine kurze Einführung in SQL Vorstellung von MySQL & phpmyadmin Datenimport von MySQL in FileMaker Autor: Hans Peter Schläpfer Was ist SQL? «Structured Query Language» Sprache

Mehr

2 7 Erweiterungen. 7.1 Prozess-Kommunikation mit Datenbanken

2 7 Erweiterungen. 7.1 Prozess-Kommunikation mit Datenbanken 2 7 Erweiterungen 7 Erweiterungen 7.1 Prozess-Kommunikation mit Datenbanken Im Buch Einstieg in das Programmieren mit MATLAB wird im Abschnitt 4.8 das Thema Prozess-Kommunikation am Beispiel von MS-Excel

Mehr

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL Relationales Modell: SQLDDL SQL als Definitionssprache SQLDDL umfaßt alle Klauseln von SQL, die mit Definition von Typen Wertebereichen Relationenschemata Integritätsbedingungen zu tun haben Externe Ebene

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

Grundkonzepte von SQL

Grundkonzepte von SQL Internet Praktikum im Grundstudium: Grundlagen von SQL Nutzung von phpmyadmin Dr. Guido Rößling Dipl.-Ing. Andreas Hartl Grundkonzepte von SQL Relationale Datenbanken basieren auf Tabellen Objektorientierte

Mehr

Gliederung und Einordnung

Gliederung und Einordnung Gliederung und Einordnung 1. Objektorientierte Programmierung mit Object Pascal (5. Studienbrief, Kapitel 5) 9.4. + 16.4. 2. Software-Bausteine am Beispiel der Delphi-Komponenten (5. Studienbrief, Kapitel

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 in Großbuchstaben geschrieben mögliche, aber nicht zwingend erforderliche Teile

Mehr

IBM Informix SQL. Seminarunterlage. Version 11.04 vom

IBM Informix SQL. Seminarunterlage. Version 11.04 vom Seminarunterlage Version: 11.04 Version 11.04 vom 27. April 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

Mehr

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6 WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 6 Abgabe: Montag, 05.12.2011, 12.00 Uhr, Informatik

Mehr

Datenbanken. 5 Tabellen. Karl Meier karl.meier@kasec.ch 12.10.2010. Inhalt. Domänen verwenden Tabellen anzeigen, ändern, löschen Übung

Datenbanken. 5 Tabellen. Karl Meier karl.meier@kasec.ch 12.10.2010. Inhalt. Domänen verwenden Tabellen anzeigen, ändern, löschen Übung Datenbanken 5 Tabellen Karl Meier karl.meier@kasec.ch 12.10.2010 Tabellen erstellen en Integritätsregeln Inhalt Domänen verwenden Tabellen anzeigen, ändern, löschen Übung 2 1 Einfache Tabellen erstellen

Mehr

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 6: Datenbankabfragen mit SQL und PHP. Stand: 24.11.2014. Übung WS 2014/2015

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 6: Datenbankabfragen mit SQL und PHP. Stand: 24.11.2014. Übung WS 2014/2015 Übung WS 2014/2015 E-Commerce: IT-Werkzeuge Web-Programmierung Kapitel 6: Datenbankabfragen mit SQL und PHP Stand: 24.11.2014 Benedikt Schumm M.Sc. Lehrstuhl für ABWL und Wirtschaftsinformatik Katholische

Mehr

Softwarepraktikum - Verteidigung Entwurf LDAP-Interfaces für majordomo und Web

Softwarepraktikum - Verteidigung Entwurf LDAP-Interfaces für majordomo und Web Softwarepraktikum - Verteidigung Entwurf LDAP-Interfaces für majordomo und Web Michael Weiser, Steffen Wolf, 99IN 22. Mai 200 WEB-INTERFACE 2 Web-Interface. Softwareschnittstellen Webserver in Entwicklung

Mehr

C# - Einführung in die Programmiersprache Arbeiten mit ADO.NET. Leibniz Universität IT Services Anja Aue

C# - Einführung in die Programmiersprache Arbeiten mit ADO.NET. Leibniz Universität IT Services Anja Aue C# - Einführung in die Programmiersprache Arbeiten mit ADO.NET Leibniz Universität IT Services Anja Aue Experteneinstellungen in Visual Studio Express Extras Einstellungen Experteneinstellungen. Es werden

Mehr

6. Modellierung von Informationssystemen. 6.1 Einleitung 6.2 Konzeptuelles Modell 6.3 OASIS Spezifikation 6.4 Execution Model 6.

6. Modellierung von Informationssystemen. 6.1 Einleitung 6.2 Konzeptuelles Modell 6.3 OASIS Spezifikation 6.4 Execution Model 6. 6. Modellierung von Informationssystemen Spezialseminar Matr. FS 2000 1/10 Volker Dobrowolny FIN- ITI Quellen: Oscar Pastor, Jaime Gomez, Emilio Insfran, Vicente Pelechano The OO-Method approach for information

Mehr

105.3 SQL-Datenverwaltung

105.3 SQL-Datenverwaltung LPI-Zertifizierung 105.3 SQL-Datenverwaltung Copyright ( ) 2009 by Dr. W. Kicherer. This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License. To view a

Mehr

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL Datenmodifikation mit SQL Folie 45 SQL - Datenmodifikation Einfügen INSERT INTO Relation [(Attribut, Attribut,...)] VALUES (Wert, Wert,...) INSERT INTO Relation [(Attribut, Attribut,...)] SFW-Anfrage Ändern

Mehr

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL XAMPP-Systeme Teil 3: My SQL Daten Eine Wesenseigenschaft von Menschen ist es, Informationen, in welcher Form sie auch immer auftreten, zu ordnen, zu klassifizieren und in strukturierter Form abzulegen.

Mehr

Datenbanken. Ein DBS besteht aus zwei Teilen:

Datenbanken. Ein DBS besteht aus zwei Teilen: Datenbanken Wikipedia gibt unter http://de.wikipedia.org/wiki/datenbank einen kompakten Einblick in die Welt der Datenbanken, Datenbanksysteme, Datenbankmanagementsysteme & Co: Ein Datenbanksystem (DBS)

Mehr

Datenbanken: Datenintegrität. www.informatikzentrale.de

Datenbanken: Datenintegrität. www.informatikzentrale.de Datenbanken: Datenintegrität Definition "Datenkonsistenz" "in der Datenbankorganisation (...) die Korrektheit der gespeicherten Daten im Sinn einer widerspruchsfreien und vollständigen Abbildung der relevanten

Mehr

Datenbanken. Proseminar Objektorientiertes Programmieren mit.net und C# Sebastian Pintea. Institut für Informatik Software & Systems Engineering

Datenbanken. Proseminar Objektorientiertes Programmieren mit.net und C# Sebastian Pintea. Institut für Informatik Software & Systems Engineering Datenbanken Proseminar Objektorientiertes Programmieren mit.net und C# Sebastian Pintea Institut für Informatik Software & Systems Engineering Agenda 1. Datenbanken 2. SQL 3. ADO.NET DataProvider (providerabhängig)

Mehr

Themenkatalog der Schulungsinhalte

Themenkatalog der Schulungsinhalte IT-Training Themenkatalog der Schulungsinhalte Seite 1 von 6 Inhalt 1. DATENBANKEN... 3 1.1 Datenbank - Programmierung... 3 1.1.1 SQL - Structured Query Language / Compound Statements...3 1.2 Datenbank

Mehr

Software Engineering Analyse und Analysemuster

Software Engineering Analyse und Analysemuster Software Engineering Analyse und Analysemuster Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Klassendiagramme in der Analyse Im Rahmen der Anforderungsanalyse

Mehr

WIE KANN ICH ACCESS XML FÄHIGKEITEN UNABHÄNGIG VON DER VERSION BEIBRINGEN?

WIE KANN ICH ACCESS XML FÄHIGKEITEN UNABHÄNGIG VON DER VERSION BEIBRINGEN? XML 1 WIE KANN ICH ACCESS XML FÄHIGKEITEN UNABHÄNGIG VON DER VERSION BEIBRINGEN? Mit den verschiedenen Versionen von Access wurde die Unterstützung von XML immer mehr verbessert. Vollständig ist sie aber

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II Die Structured Query Language SQL Prof. Dr. Nikolaus Wulff SQL Das E/R-Modell lässt sich eins zu eins auf ein Tabellenschema abbilden. Benötigt wird eine Syntax, um Tabellen

Mehr

Übung 1: Ein Website News-System mit MySQL

Übung 1: Ein Website News-System mit MySQL Übung 1: Ein Website News-System mit MySQL In der Vorübung haben wir bereits mit Hilfe eines ERMs den Datenbankentwurf erstellt und daraus die folgenden Tabellen abgeleitet: Nun muss diese Datenbank in

Mehr

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr Raum: LF 230 Bearbeitung: 9.-11. Mai 2005 Datum Gruppe Vorbereitung Präsenz Aktuelle Informationen unter: http://www.is.informatik.uni-duisburg.de/courses/dbp_ss03/ Tabellen in IBM DB2 Tabellen Eine relationale

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

6SHLFKHUXQJYRQ5')LQ'DWHQEDQNHQ

6SHLFKHUXQJYRQ5')LQ'DWHQEDQNHQ RDF in wissenschaftlichen Bibliotheken 6SHLFKHUXQJYRQ5')LQ'DWHQEDQNHQ Um die spezielle Problematik, die RDF im Zusammenhang mit der Speicherung in Datenbanken verursacht, zu diskutieren, sollen zunächst

Mehr