Objektorientiertes Programmieren mit.net und C# Datenbanken

Größe: px
Ab Seite anzeigen:

Download "Objektorientiertes Programmieren mit.net und C# Datenbanken"

Transkript

1 Objektorientiertes Programmieren mit.net und C# Datenbanken Simon Bastian Abstract: Der Datenbankzugriff im.net Framework wird durch die ADO.NET Objekte abgewickelt. Durch ADO wird die nötige Basisfunktionalität geboten und seit.net 3.5 SP1 werden ebenfalls erweiterte Funktionen angeboten, wie z.b. Objekt relationiales Mapping. Im folgenden wird kurz auf die einzelnen Objekte von ADO.NET eingegangen und an einem Beispiel veranschaulicht wie ein Datenbankzugriff mit C# und ADO.NET aussehen könnte. Weiterhin wird das Konzept des Objekt relationalem Mappings kurz erklärt und die Umsetzung in ADO.NET sowie Alternativen vorgestellt. 1 ADO.NET Die ADO.NET Bibliotheken enthalten Klassen für die Verbindung und Übermittlung von Abfragen an Datenquellen, sowie die Verarbeitung von Ergebnissen. Im Normalfall wird ADO.NET zum Einsatz kommen, wenn eine.net Anwendung mit einer Datenbank interagiert. Merkmale von ADO.NET sind: Stabilität (.NET Plattform) Unabhängigkeit von Datenbankerstellern Plattformunabhängigkeit und Integration verteilter Komponenten (XML) Skalierbarkeit und Performance (Datasets) Die Klassen von ADO.NET sind im Namespace System.Data zu finden. Datenprovider findet man in weiteren Namespaces wie z.b. System.Data.SqlClient oder System.Data.OleDB. 2 Objektmodell Das ADO.Net Objektmodell ist, wie in Abbildung 1 erkennbar, in zwei Teile unterteilbar. Einen verbunden- und einen unverbundenen Block. Der verbundene Block, in der Graphik

2 die linke Hälfte, hat eine Verbindung zur Datenbank. Dieser Block stellt die typischen Funktionen für Datenbankzugriffe zur Verfügung. Und der unverbundene Block, in der Graphik die rechte Hälfte, bei dem keine Verbindung besteht. Der unverbundene Teil ist eine Besonderheit die man nicht in jeder Programmiersprache findet. Es wird die Möglichkeit geboten Daten aus der Datenbank zu sichern, zu bearbeiten und wieder in die Datenbank zu integrieren. Der DataAdapter fungiert als Brücke zwischen beiden Blöcken. Abbildung 1: Das ADO.Net Objektmodell 3 Connection Objekt Durch das Connection Objekt wird eine Verbindung zur Datenbank repräsentiert, es stellt die Methoden.Open() und.close() bereit zum Herstellen einer Verbindung und zum Schließen dieser. Mittels einer Verbindungszeichenfolge ist es möglich ein solches Objekt zu erstellen. Um z.b. eine Verbindung mit der lokalen Instanz SQLEXPRESS und der Datenbank Northwind aufzubauen könnte man wie folgt vorgehen: connectionstring Catalog=Northwind;" +"Integrated Security=SSPI"; SqlConnection = new SqlConnection(connectionString)

3 3.1 Builder für Verbindungszeichenfolgen Da es nicht immer möglich ist Verbindungszeichenfolgen zur Entwurfs- oder Laufzeit zu erstellen bietet ADO.NET einen Builder für diese an. Die vorige Verbindungszeichenfolge könnte auch so erstellt werden: SqlConnectionStringBuilder conbuild = new SqlConnectionStringBuilder(); conbuild.datasource conbuild.initialcatalog = "Northwind"; conbuild.integratedsecurity = true; Es wäre z.b. denkbar dass die Anwendung die Verbindungsinformationen aus einer Konfigurationsdatei bezieht und die Logindaten per Eingabe in einem Formular übermittelt bekommt. Weiter wichtige Eigenschaften des Builders sind UserID und Password. Durch den Aufruf von.tostring() oder.connectionstring() wird eine gültige Verbingungszeichenfolge zurückgegeben, die dem Connection Objekt übergeben werden kann. 3.2 Verbindungspooling ADO.NET führt intern ein Verbindungspooling durch, dass bedeutet offene Verbindungen werden nach dem Schließen noch nicht direkt geschlossen, sondern sie werden in einem Pool gespeichert. Wird nach längerer Zeit nicht mehr auf die Verbindung zugegriffen wird sie geschlossen. Sollte die Verbindung allerdings wieder benötigt werden ist sie bereits vorhanden. Dies kann bei vielen Verbindungen zu erheblichen Leistungsverbesserungen führen. 4 Command Objekt Die Klasse SqlCommand dient zum Ausführen von Abfragen im ADO.NET Objektmodell. Es gibt verschiedene Möglichkeiten ein Command Objekt zu erzeugen die bei anderen Objekten sehr ähnlich sind, deswegen werden sie der Vollständigkeit halber aufgezählt: // Methode des Connection-Objekts SqlCommand command = connection.createcommand(); // parameterloser Konstruktor SqlCommand command = new SqlCommand(); command.connection = connection;

4 // In Beiden fällen folgt die Zuweisung des eigentlichen Befehls command.commandtext = querystring; //Alternative: ein parametrisierter Konstruktor SqlCommand command = new SqlCommand(queryString, connection); 4.1 Methoden Methode Execute Reader ExecuteNonQuery ExecuteScalar Prepare Cancel BeginExecute... EndExecute... Funktionalität Ruft Ergebnisse in einem SqlDataReader ab. Erwartet keine Rückgabe (Insert, Update, Delete, Stored Procedures) Führt Abfrage aus, ruft erste Spalte der ersten Zeile ab. Bereitet eine Version der Abfrage vor. Bricht die Ausführung der Abfrage ab. Startet asynchrone Abfrage. Beendet Ausführung der asynchronen Abfrage. Durch BeginExcuteReader wird die asynchrone Ausführung eines DataReaders gestartet. Der Vorteil an der asynchronen Ausführung kann sein, dass nicht auf jeden einzelnen Befehl gewartet werden muss, sondern dass die Befehle asynchron ausgeführt werden. 4.2 Parametrisierte Abfragen ADO.NET unterstützt parametrisierte Abfragen, d.h. es ist möglich in Abfragen Variablen zu nutzen deren Belegung nicht statisch ist. Ein Anwendungsfall wäre z.b. ein Login bei dem ID und Password eingegeben und mit der Datenbank vergleichen werden sollen. Durch eine parametrisierte Abfrage kann man SQL Injections vorbeugen, da es nicht möglich ist den Befehl zu escapen. querystring = "SELECT COUNT(*) FROM Users" +"WHERE ID AND PW "admin"); "passwort"); Natürlich sollten im Normalfall keine hart codierten Daten hinterlegt werden, sondern beispielsweise bei einem Login die Nutzereingaben verwendet werden.

5 5 DataReader Der DataReader ist ein effizientes und kompaktes Objekt, das einen sequentiellen Lesezugriff auf die Daten ermöglicht. Die Klasse ähnelt sehr anderen Readern in.net wie z.b. dem StreamReader oder dem TextReader. Das Objekt wird durch den Aufruf der Methode ExecuteReader des Command Objektes initialisiert. Man sollte unbedingt sobald der Reader nicht mehr benötigt wird die.close() Methode aufrufen, um ungewollte Verbindungsprobleme zu vermeiden. Typischerweise verwendet man einen DataReader wenn man nur lesenden Zugriff auf Datensätze benötig, da er einfach am leichtgewichtigsten ist. Eine Anwendung des DataReaders könnte wie folgt aussehen: SqlDataReader reader = command.executereader(); while(reader.read()) Console.WriteLine("ID: 0", reader["customerid"]); reader.close(); 6 DataSet Eigentlich ist das DataSet Objekt eine Datenmenge, die Daten sind allerdings nicht mit der Datenbank verbunden. Im Gegensatz zum DataReader kann man beliebig auf die Daten zugreifen. Es ist möglich zu sortieren, zu suchen und zu filtern. Änderungen lassen sich zwischenspeichern, auf relationale Fehler überprüfen und gegen den Stand der Datenbank vergleichen. Zusätzlich ist es möglich die geänderten Daten in die Datenbank zu migrieren. Da in ADO.NET DataSet Objekte und XML Dokumente fast gleich sind, ist es leicht möglich zwischen beiden Datenstrukturen zu konvertieren. 6.1 Modell Das DataSet, siehe Abbildung 2, besteht aus DataTables die den eigentlichen Relationen in der Datenbank entsprechen, Relations den Beziehungen zwischen den Relationen, und XML Schema Informationen. Die DataTables lassen sich weiterhin in einzelene Einträge (DataRows) und Felder (Data- Columns) unterteilen, mit ihren Einschränkungen (Constraints).

6 Abbildung 2: Das ADO.NET Dataset 6.2 Methoden des DataSets Methode Clear Load Merge GetXml WriteXmlSchema Funktionalität Entfernt alle DataRow Objekte. Lädt Daten von einem DataReader. Führt Daten mehrer DataSets zusammen. Gibt den Inhalt als XML aus. Schreibt das Schema als XML in eine Datei. 6.3 DataTable Das DataTable Objekt stellt eine Relation mit den zu erwartenden Inhalten da. Die DataTable stellt eine Reihe von verschiedenen Methoden bereit, die gebräuchlichsten davon sind: Methode Funktionalität NewRow Gibt ein neues DataRow Objekt für die Table zurück. Reset Setzt die Table auf den ursprünglichen Status zurück. Load Lädt Daten von einem DataReader. Select Gibt ein Array mit DataRows zurück. GetErrors Gibt ein Array mit fehlerhaften DataRows zurück. ImportRow Importiert eine bestehende DataRow. CreateDataReader Erstellt einen DataTableReader mit dem Inhalt der Table. Das folgende Beispiel zeigt wie man einen bestehenden Eintrag eines DataTable Objekts verändern kann unter Verwendung der Find Methode und DataRows: DataTable table = DataTable("Customers");

7 DataRow row = table.rows.find("alfki") if (row == null) Console.WriteLine("Kunde wurde nicht gefunden"); else row["companyname"] = "New Company Name"; 6.4 DataView Es ist möglich Daten aus einem DataSet durch die.select() Methode des DataTable Objekts aufzurufen, dies aber nicht immer besonders effizient. Weiterhin kann man die Ergebnisse des.select() Aufrufs nicht an Windows- oder Webformulare binden. Deswegen wurde das DataView Objekt eingeführt, das beides ermöglicht. DataTable table = new DataTable("TabellenName"); DataView view; view = new DataView(table); Einige wichtige Methoden des DataView Objekts sind: DataView Methode Find FindRows Sort ToTable CopyTo Funktionalität Durchsucht DataView nach einer DataRow. Durchsucht DataView nach mehreren DataRows. Legt die Sortierreihenfolge für den DataView fest, bzw. zeigt sie an. Erzeugt eine DataTable aus dem DataView. Kopiert DataView in ein Array. 7 DataAdapter Die Klasse DataAdapter dient als Brücke zwischen den Daten in der Datenbank und einem DataSet, das offline verfügbar ist. Der DataAdapter kann in einem DataSet zwischengespeicherte Änderungen an die Datenbank übermitteln. Im Gegensatz zu einem Command Objekt wird das Öffnen und Schließen der Verbindung durch den DataAdapter verwaltet. DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(queryString, connectionstring); da.fill(ds);

8 Fill führt die Abfrage aus und speichert die Ergebnisse in einem DataSet. Durch die Methode.Update() können Änderungen an die Datenbank übermittelt werden. 8 Transaction Bietet die Möglichkeit alle Änderungen an der Datenbank auf einmal zu übermitteln. Entweder sind alle Änderungen erfolgreich oder alle werden verworfen. Ein Anwendungsszenario wäre z.b. eine Überweisung bei der das Geld erst dann gutgeschrieben wird, wenn das Abbuchen auch erfolgreich war. SqlTransaction ta = connection.begintransaction(); SqlCommand command = connection.createcommand(); command.transaction = ta; try command.commandtext = "INSERT INTO Customers.NewCol1 Values( 1 )"; command.executenonquery(); command.commandtext = "INSERT INTO Customers.NewCol1 Values( 2 )"; command.executenonquery(); ta.commit(); catch (Exception e) ta.rollback(); 9 Beispiel Das Query gegen die Beispieldatenbank Northwind ermittelt die Kunden, deren Bestellungen von Ms. Dodsworth (EmployeeID 9) bearbeitet wurden. Der Einfachheit halber wird in dem Beispiel auf Parameter verzichtet und die Anfrage wurde nicht optimiert. Ebenfalls ist die Fehlerbehandlung für die Praxis in dieser Form nicht zu empfehlen, in den Beispielen wurde bewusst auf eine gezielte Behandlung der möglichen Fehler verzichtet. string connectionstring = conbuild.tostring(); string querystring = "SELECT DISTINCT c.customerid, c.companyname" +" FROM dbo.customers c" +" JOIN dbo.orders o ON c.customerid = o.customerid" +" JOIN dbo.employees e ON o.employeeid = e.employeeid" +" WHERE e.employeeid = 9" +" ORDER BY c.customerid";

9 using (SqlConnection connection = new SqlConnection(connectionString)) SqlCommand command = connection.createcommand(); command.commandtext = querystring; try connection.open(); SqlDataReader reader = command.executereader(); while (reader.read()) Console.WriteLine("\t0\t1", reader[0], reader[1]); reader.close(); catch (Exception e) Console.WriteLine(e.Message); In der Konsole würden nun KundenID und Name der jeweiligen passenden Einträge ausgegeben werden. Durch den DataReader werden Strings sequentiell gelesen und ausgegeben. Es handelt sich in diesem Beispiel um keine Objekte, die zurückgegeben werden. 10 O/R Mapping Bei steigender Komplexität der Logik wird es immer schwieriger eine Übersicht über die Struktur zu bewahren. Bisher im Bezug auf ADO.NET war es nötig das Mapping zwischen Logik und Daten selbst vorzunehmen. Ein Mapper stellt eine Vermittlung zwischen Daten und Objekten da. Ein relationales Modell wird in ein Objektmodell überführt. In einem einfachen Fall werden Tabellen auf Klassen abgebildet. Jeder Datensatz enspricht der Instanz eines Objekts. Dabei müssen auch einige Punkte an das Objektmodell erfüllt werden, die von einem relationalen Datenmodell normalerweise nicht vollständig unterstüzt werden: Objektidentität (Primärschlüssel kann auf unterschiedliche Art und Weise abgebildet werden) Vererbung Nebenläufigkeit Kapselung Seit ADO.NET 3.5 SP1 ist das Entity Framework, ein O/R Mapper Bestandteil von ADO.NET.

10 11 ADO.NET Entity Framework 11.1 Allgemein Das ADO.NET Entity Framework ist ein Objekt relationaler Mapper der seit Version 3.5 SP1 Bestandteil von.net ist. Durch einen in Visual Studio integrierten Assistenten wird eine sehr leichte Bedienung ermöglicht, die für einfache Anwendungsszenarien ausreichend ist. Im Vergleich zu LINQ werden z.b. N:M Relationen unterstütz. LINQ2SQL unterstützt zunächst nur 1:1 Relationen, für komplexere Relationen wird eine Mappingtabelle benötigt. Zusätzlich unterstützt das ADO.NET Entity Framework eine große Auswahl an Datenbankprovidern (MS SQL Server, Oracle, DB2, MYSQL, PostgreSQL). Abbildung 3: Das ADO.NET Entityframework CSDL MSL SSDL Conceptual Schema Definition Language Mapping Schema Language Store Schema Definition Language Wie in der Graphik (Abbildung 3) erkennbar greift die eigentliche Logik nur noch auf die Conceptual Ebene zu. Also die Ebene in der die Daten als Entitäten repräsentiert werden. Die eigentlichen relationalen Daten werden in der Logical Store Ebene repräsentiert. Als Verbindung zwischen den beiden Ebenen dient die Mapping Ebene, die Informationen über das Mapping enthält.

11 11.2 ADO.NET EF Beispiel Das vorige Beispiel wurde nun mit dem ADO.NET Entity Framework umgesetzt. Allerdings wurde hierbei nicht nur der Assistent genutzt, sondern auch einige Anpassungen vorgenommen. Auffallend ist hier das nun ein deutlich einfacheres Query das gewünschte Resultat liefert. using (NorthwindEntities nw = new NorthwindEntities()) try string querystring = "SELECT VALUE c FROM NorthwindEntities.Customers" +" AS c WHERE c.employeeid = 9"; ObjectQuery<Customers> custquery = new ObjectQuery<Customers>(queryString, nw, MergeOption.NoTracking); foreach (Customers result in custquery) Console.WriteLine("\t0\t1",result.CustomerID, result.companyname); catch (Exception e) Console.WriteLine(e.Message); Man sollte sich aber auf jedenfall vor Augen führen, dass obwohl diese Anfrage erheblich einfacher ist, der Aufwand diese Anfrage zu ermöglichen um einiges höher ist als das vergleichbare Aufwand für eine reine ADO.NET Abfrage. 12 Alternative O/R Mapper Neben dem ADO.NET Entity Framework wurde mit.net 3.5 auch LINQ eingeführt. Allerdings gab es bereits vor dieser Entwicklung Objekt relationale Mapper für die.net Plattform. Beispielsweise die komerzielle Lösungen Genome oder das aus der Java Welt portierte NHibernate. Im folgen wird ein kurzer Überblick über LINQ und NHibernate geliefert. Dies bedeutet aber nicht, dass Genome oder andere O/R Mapper keine Bedeutung haben. Um das Thema aber nicht zu sehr in die Tiefe zu ziehen, wird auf eine detailliertere Übersicht verzichtet.

12 12.1 LINQ LINQ (Language Integrated Queries) ist eine Komponente von.net die die eine Datenabfrage direkt in die Programmiersprache integriert. Ein wesentlicher Vorteil von LINQ ist, dass der Code bereits durch den Compiler auf Fehler überprüft wird. Eine Vielzahl von Datenquellen wird unterstützt, allerdings ist in diesem Zusammenhang hauptsächlich LINQ2SQL interessant. Auf die Kombinationen von LINQ2Entities und LINQ2Datasets sei an dieser Stelle nur verwiesen, es wird nicht im Detail darauf eingegangen. LINQ2SQL ordnet dem Datenmodell einer relationalen Datenbank ein Objektmodell zu. Es handelt sich hierbei also ebenfalls um einen O/R Mapper, der im Vergleich zu eigentständigen O/R Mappern allerdings nicht den selben Funktionsumfang bietet. Durch einen in Visual Studio integrierten Designer wird eine einfache und schnelle Erstellung von Mapping Informationen ermöglicht. Für weitere Informationen zu LINQ empfiehlt sich die Ausarbeitung zu diesem speziellen Thema LINQ Beispiel Das folgende Beispiel zeigt die Umsetzung des hier bereits öfter vorgestellten Beispiels mit Hilfe von LINQ: DataContext dc = new DataContext(connectionString) Table<Customer> customers = dc.gettable<customer>(); Table<Employee> employees = dc.gettable<employee>(); Table<Order> orders = dc.gettable<order>(); var query = ( from c in customers join o in orders on c.customersid equals o.cusomerid join e in employees on o.employeeid equals e.employeeid where e.employee == 9 order by c.customerid select new c.customerid, c.companyname ).Distinct(); foreach (var row in query) Console.WriteLine("\t0\t1", row.customerid, row.companyname); Auf den ersten Blick fällt bereits auf, dass hier ebenfalls als Rückgabetyp Objekte verwendet werden. Bezüglich des Umfangs der Abfrage gewinnt man aber nicht im Vergleich

13 zum ADO.NET Entity Framework NHibernate Bei NHibernate handelt es sich um die.net Portierung des bekannten Open Source Objekt relationalen Mappers Hibernate aus der Java Welt. NHibernate zeichnet sich besonders durch folgende Merkmale aus: Kostenlose Open Source Software (GNU Lesser General Public License) Bietet mit HQL (Hibernate Query Language) eine eigene Abfragesprache Portierung von Hibernate (Erstes Release 2001) führt zu einem ausgereiften Entwicklungsstadium Teilweise Integration von LINQ Ein großer Vorteil von NHibernate ist ohne Frage eine breite Community und eine über die Jahre ausgereifte Software. Im Gegensatz zum ADO.NET Entity Framework ist es bestimmt leichter zu speziellen Themen und Fragestellungen eine Antwort bzw. Lösung zu finden. Allerdings wird NHibernate nur noch von der Community entwickelt, dies bedeutet dass es unter Umständen langsamer auf neue Entwicklung der.net Plattform reagiert. 13 Vergleich ADO.NET - O/R Mapping Vergleicht man die unterschiedlichen Umsetzungen des selben Beispiels fällt sehr schnell auf, dass es erhebliche Unterschiede nicht nur in dem Umfang der Abfrage sondern auch z.b. bei dem Zugriff auf die Daten gibt. Es stellt sich natürlich die Frage welche Art der Umsetzung am meisten Sinn macht. Dies lässt sich aber nicht generell beantworten, sondern ist von einigen Faktoren abhänging wie z.b.: Performance Komplexität Umfang des Projekts Der Hauptgrund für reine ADO.NET Anwendungen ist auf jedenfall Performance, da die Anfragen schneller sind und das bei sehr großen Datenmengen ein durchaus entscheidender Faktor sein kann. Weiterhin ist der Aufwand, der benötigt wird um SQL Queries zu entwickeln, normalerweise auch überschaubar und nicht allzu groß.

14 Allerdings ist die ständige Entwicklung von monotonen Abfragen nicht besonders effizient und es ist durchaus möglich eine höhere Produktivität zu erzielen, wenn der Fokus auf die eigentliche Logik und nicht die relationalen Datenabfragen gelegt werden kann. Vergleicht man nun die unterschiedlichen Objekt relationalen Mapping Lösungen in der.net Welt dann kann man sicher sagen dass seit.net 4.0 und der Möglichkeit LINQ2Entities eine sehr schöne und schnelle Möglichkeit geschaffen wurde, welche die Vorteile von LINQ und dem ADO.NET Entity Framework kombiniert. Ebenfalls ist ein großer Nachteil von LINQ2SQL, der zwingenden Anforderung einen MS SQL Server zu verwenden, durch die Kombination beider Komponenten leicht lösbar. Die Entwicklung wird dank der leicht bedienbaren Assistenten des Visual Studios erleichtert und für einen Großteil der Anwendungen wird das bereits ausreichend sein und es ist nicht zwingend nötig sich in Mapping Details einzuarbeiten. Die graphischen Werkzeuge sind im Vergleich zu NHibernate auch ein großer Vorteil, da man bei der Open Source Lösung ähnliche Werkzeuge bisher vermisst. 14 Zusammenfassung Mit ADO.NET und dem ADO.NET Entity Framework bietet Microsoft ein breites Spektrum an, um den Datenbankzugriff mit.net in einer Vielzahl von Anwendungsszenarien auf eine sehr einfache und effiziente Weise zu realisieren. ADO.Net lasst sich mit dem Visual Studio sehr einfach konfigurieren und einsetzen Die Ähnlichkeit zu Java oder anderen Programmiersprachen ermöglicht einen schnellen Einstieg O/R Mapping für komplexere Anwendungsszenarien wird durch das ADO.NET Entity Framework integriert Für eine einfache Anwendung wie beispielsweise ein überschaubares Reporting empfiehlt es sich wahrscheinlich eine Lösung ohne O/R Mapping zu realisieren. Für eine komplexeres Anwendungsszenario wie eine Konsolidierungslogik bietet sich möglicherweise ein O/R Mapping Framework an. Entscheidend für die Wahl der Entwicklungsmethode sind allerdings auch weitere Aspekte wie z.b. Wartung und Wiederverwendbarkeit. Für weitere Informationen ist das Microsoft Developer Network zu empfehlen. Literatur

15 David Sceppa: ADO.NET 2.0 Entwicklerbuch. Microsoft Press Wanzke & Wanzke: ADO.NET 2.0 Grundlagen und Profiwissen. Hanser Martin Fowler: Patterns of enterprise application architecture. Addison-Wesley Longman

ASP.NET. Grundlagen und Profiwissen. Webserverprogrammierung und XML Web Services im.net-framework. von Patrick A Lorenz.

ASP.NET. Grundlagen und Profiwissen. Webserverprogrammierung und XML Web Services im.net-framework. von Patrick A Lorenz. ASP.NET Grundlagen und Profiwissen. Webserverprogrammierung und XML Web Services im.net-framework von Patrick A Lorenz überarbeitet ASP.NET Lorenz schnell und portofrei erhältlich bei beck-shop.de DIE

Mehr

Datenbank Anbindung. Arthur Zaczek. Nov 2014

Datenbank Anbindung. Arthur Zaczek. Nov 2014 Arthur Zaczek Nov 2014 1 Datenbank Anbindung 1.1 Übersicht Datenbankanbindung mit JDBC und ADO.NET. 1.2.NET ADO.NET Kein Treiberkonzept. Jede Datenbank hat eigenes Set an Klassen. Meistens wird für nur

Mehr

Hochschule Darmstadt Fachbereich Informatik

Hochschule Darmstadt Fachbereich Informatik Hochschule Darmstadt Fachbereich Informatik WPF Routed Events, Datenbankanbindung 03.05.2010 63 Praktikum Tipp: Beispiellösungen zu P4: http://dotnet.jku.at/csbuch/solutions/ Projektvorschläge: Internet-Timeout

Mehr

LINQ. LANGUAGE INTEGREATED QUERY.net 3.5. Bernhard Grojer BernhardG@ppedv.de

LINQ. LANGUAGE INTEGREATED QUERY.net 3.5. Bernhard Grojer BernhardG@ppedv.de LINQ LANGUAGE INTEGREATED QUERY.net 3.5 Bernhard Grojer BernhardG@ppedv.de Agenda Übersicht LINQ Basistechnologien Verschiedene Arten von LINQ LINQ (to Objects) LINQ TO SQL Übersicht LINQ Aggregationen

Mehr

LINQ to SQL. Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel. Institut für Informatik Software & Systems Engineering

LINQ to SQL. Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel. Institut für Informatik Software & Systems Engineering LINQ to SQL Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel Institut für Informatik Software & Systems Engineering Agenda 1. LINQ allgemein Vorteile Bausteine und Varianten

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

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

WHERE Klausel Generierung mit.net und Oracle. Aus unserer Projekterfahrung und Architektur-Kurs

WHERE Klausel Generierung mit.net und Oracle. Aus unserer Projekterfahrung und Architektur-Kurs Betrifft Art der Info Quelle WHERE Klausel Generierung mit.net und Oracle Technical Info Aus unserer Projekterfahrung und Architektur-Kurs Where ist the WHERE? Der Artikel untersucht die Möglichkeiten,

Mehr

Erste Schritte, um selber ConfigMgr Reports zu erstellen

Erste Schritte, um selber ConfigMgr Reports zu erstellen Thomas Kurth CONSULTANT/ MCSE Netree AG thomas.kurth@netree.ch netecm.ch/blog @ ThomasKurth_CH Erste Schritte, um selber ConfigMgr Reports zu erstellen Configuration Manager Ziel Jeder soll nach dieser

Mehr

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe... php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.

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

Objekt-relationales Mapping und Performance-Tuning

Objekt-relationales Mapping und Performance-Tuning Objekt-relationales Mapping und Performance-Tuning Thomas Krüger tkrueger@vanatec.com Agenda Wege um Daten zu lesen Wege um Daten zu modellieren Wege um Datenbanken effizient zu nutzen 2 2 Wege, Daten

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

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424. Michael Kluge (michael.kluge@tu-dresden.

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424. Michael Kluge (michael.kluge@tu-dresden. Zentrum für Informationsdienste und Hochleistungsrechnen (ZIH) PHP und MySQL Integration von MySQL in PHP Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424 (michael.kluge@tu-dresden.de) MySQL

Mehr

Zugriff auf Firebird-Datenbanken mit PHP. Daniel de West DB-Campus-Treffen 15. Januar 2004

Zugriff auf Firebird-Datenbanken mit PHP. Daniel de West DB-Campus-Treffen 15. Januar 2004 Zugriff auf Firebird-Datenbanken mit PHP Daniel de West DB-Campus-Treffen 15. Januar 2004 Inhalt PHP und Firebird Die wichtigsten Befehle Verbindungsaufbau Übermitteln von Abfragen Beenden von Verbindungen

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

NHibernate vs. Entity Framework

NHibernate vs. Entity Framework Manfred Steyer CAMPUS 02 softwarearchitekt.at NHibernate vs. Entity Framework Ziele NHibernate und Entity Framework sowie deren Unterschiede kennen lernen 1 Agenda Kriterien Beispiel mit EF Beispiel mit

Mehr

Datenbankzugriff mit JDBC

Datenbankzugriff mit JDBC Java: Kapitel 8 Datenbankzugriff mit JDBC Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Überblick über Kapitel 8 Einführung in SQL und JDBC Verbindung zur Datenbank

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

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

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

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel ORM & OLAP Object-oriented Enterprise Application Programming Model for In-Memory Databases Sebastian Oergel Probleme 2 Datenbanken sind elementar für Business-Anwendungen Gängiges Datenbankparadigma:

Mehr

0. Inhaltsverzeichnis

0. Inhaltsverzeichnis 0. Inhaltsverzeichnis 0. Inhaltsverzeichnis...1 1. Kurze Einführung WebService Architektur...2 1.1 Synchrones Modell:...2 1.2 Asynchrones Modell:...2 1.3 Vorteile:...3 1.4 Voraussetzungen...3 2. Testseite

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

Interaktive Webseiten mit PHP und MySQL

Interaktive Webseiten mit PHP und MySQL Interaktive Webseiten mit PHP und Vorlesung 4: PHP & Sommersemester 2003 Martin Ellermann Heiko Holtkamp Sommersemester 2001 Hier noch ein wenig zu (My)SQL: SHOW INSERT SELECT ORDER BY GROUP BY LIKE /

Mehr

Transaktionen in der Praxis. Dr. Karsten Tolle

Transaktionen in der Praxis. Dr. Karsten Tolle Transaktionen in der Praxis Dr. Karsten Tolle Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch (Exception e) { e.printstacktrace(); } con.setautocommit(false);

Mehr

Thorsten Kansy. Datenbankprogrammierung. mit.net 3.5 HANSER

Thorsten Kansy. Datenbankprogrammierung. mit.net 3.5 HANSER J Thorsten Kansy I Datenbankprogrammierung mit.net 3.5 Mehrschichtige Applikationen mit Visual Studio 2008 und MS SQL Server 2008 HANSER Inhalt 1 Vorwort und Einleitung 1 2 Neuerungen in SQL Server 2008

Mehr

MySQL Queries on "Nmap Results"

MySQL Queries on Nmap Results MySQL Queries on "Nmap Results" SQL Abfragen auf Nmap Ergebnisse Ivan Bütler 31. August 2009 Wer den Portscanner "NMAP" häufig benutzt weiss, dass die Auswertung von grossen Scans mit vielen C- oder sogar

Mehr

Begleitskript. zum PHP/MySQL. Kurs

Begleitskript. zum PHP/MySQL. Kurs Begleitskript zum PHP/MySQL Kurs http://www.online-platform.net Dieser Text unterliegt der GNU General Public License. Er darf als ganzes oder in Auszügen kopiert werden, vorausgesetzt, dass sich dieser

Mehr

MGE Datenanbindung in GeoMedia

MGE Datenanbindung in GeoMedia TIPPS & TRICKS MGE Datenanbindung in GeoMedia 10. September 2002 / AHU INTERGRAPH (Schweiz) AG Neumattstrasse 24, CH 8953 Dietikon Tel: 043 322 46 46 Fax: 043 322 46 10 HOTLINE: Telefon: 043 322 46 00

Mehr

SQL. SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken.

SQL. SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken. Vorlesungsteil SQL Grundlagen - 1 / 8 - SQL SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken. Auf einem Server (Rechner im Netz, der Dienste

Mehr

Visual Basic 2005 für Profis

Visual Basic 2005 für Profis Visual Basic 2005 für Profis Walter Doberenz, Thomas Gewinnus ISBN 3-446-40651-4 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40651-4 sowie im Buchhandel 3.1 Neuerungen

Mehr

Zusammenfassung Modul 226

Zusammenfassung Modul 226 JanikvonRotz Zusammenfassung Modul 226 Objektorientiert implementieren Copyright by Janik von Rotz Version: 01.00 Freigabe: 20.05.11 Janik von Rotz Hoheneich 4, 6064 Kerns Internet www.janikvonrotz.ch

Mehr

MySQL Performance Tuning für Entwickler

MySQL Performance Tuning für Entwickler MySQL Performance Tuning für Entwickler Cebit 2015, Hannover Oli Sennhauser Senior MySQL Consultant, FromDual GmbH oli.sennhauser@fromdual.com 1 / 18 FromDual GmbH Support Beratung remote-dba Schulung

Mehr

Einführung in PHP 5 und IBM DB2

Einführung in PHP 5 und IBM DB2 Einführung in PHP 5 und IBM DB2 Webapplikationen mit PHP 5.2 und IBM DB2 PHP Conference 2006-08.11.2006 Themenübersicht PHP 5.2 und Datenbanken PDO Warum IBM DB2? PHP und IBM DB2 Installation / Konfiguration

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

PostgreSQL in großen Installationen

PostgreSQL in großen Installationen PostgreSQL in großen Installationen Cybertec Schönig & Schönig GmbH Hans-Jürgen Schönig Wieso PostgreSQL? - Die fortschrittlichste Open Source Database - Lizenzpolitik: wirkliche Freiheit - Stabilität,

Mehr

PostgreSQL unter Debian Linux

PostgreSQL unter Debian Linux Einführung für PostgreSQL 7.4 unter Debian Linux (Stand 30.04.2008) von Moczon T. und Schönfeld A. Inhalt 1. Installation... 2 2. Anmelden als Benutzer postgres... 2 2.1 Anlegen eines neuen Benutzers...

Mehr

16 SQL Server-Zugriff per VBA

16 SQL Server-Zugriff per VBA Leseprobe aus Access und SQL Server http://www.acciu.de/asqllesen 16 SQL Server-Zugriff per VBA Sie werden an verschiedenen Stellen per VBA auf die Tabellen der SQL Server-Datenbank zugreifen müssen sei

Mehr

Java und Datenbanksysteme Datenbankanbindung mit JDBC

Java und Datenbanksysteme Datenbankanbindung mit JDBC Java und Datenbanksysteme Datenbankanbindung mit JDBC 30.05.2001 Stefan Niederhauser sn@atelier-w.ch 1-Einführung Datenbanksysteme Java und Datenbanken: JDBC Geschichte der JDBC-Versionen Vergleich von

Mehr

PostgreSQL im praktischen Einsatz. Stefan Schumacher

PostgreSQL im praktischen Einsatz. Stefan Schumacher PostgreSQL im praktischen Einsatz 2. Brandenburger Linux Infotag 2005 Stefan Schumacher , PGP Key http:/// $Header: /home/daten/cvs/postgresql/folien.tex,v 1.11 2005/04/25

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

NoSQL mit Postgres 15. Juni 2015

NoSQL mit Postgres 15. Juni 2015 Tag der Datenbanken 15. Juni 2015 Dipl.-Wirt.-Inform. Agenda l Vorstellung l Marktübersicht l Warum PostgreSQL? l Warum NoSQL? l Beispielanwendung Seite: 2 Vorstellung Dipl.-Wirt.-Inform. [1990] Erste

Mehr

ISTEC.MIP Messdaten-Integrations-Plattform

ISTEC.MIP Messdaten-Integrations-Plattform ISTEC.MIP Messdaten-Integrations-Plattform Dr.-Ing. Carsten Folie 1 ISTEC Firmenprofil unabhängiges Software- und Systemhaus seit 1982 erfolgreich am Markt ca. 60 festangestellte Mitarbeiter (Informatiker,

Mehr

Hibernate. Vortragender : Nabil Janah Kursleiter : Prof. Dr. Björn Dreher Lehrveranstaltung : Komponenten-Architekturen. Nabil janah 1 Hibernate

Hibernate. Vortragender : Nabil Janah Kursleiter : Prof. Dr. Björn Dreher Lehrveranstaltung : Komponenten-Architekturen. Nabil janah 1 Hibernate Hibernate Vortragender : Nabil Janah Kursleiter : Prof. Dr. Björn Dreher Lehrveranstaltung : Komponenten-Architekturen Nabil janah 1 Hibernate Inhalt Hibernate allgemeines Vorteile von Hibernate Hibernate-Architektur

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

Exception Handling, Tracing und Logging

Exception Handling, Tracing und Logging Exception Handling, Tracing und Logging Proseminar Objektorientiertes Programmieren mit.net und C# Tomas Ladek Institut für Informatik Software & Systems Engineering Agenda Exceptions Allgemeines Implementierung

Mehr

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004) Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der

Mehr

DataRow. DataColumn. PrimaryKey

DataRow. DataColumn. PrimaryKey 8 ActiveX Data Objekts (ADO) und ADO.NET Die ActiveX Data Objects wurden vor einigen Jahren als eine Technologie eingeführt, die den Datenzugriff nicht nur über ein lokales Netzwerk, sondern auch über

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

Übungsaufgabe Transaktion als Middleware

Übungsaufgabe Transaktion als Middleware Übungsaufgabe Transaktion als Middleware und Java Persistence API Client/Server Abstraktes Komponentenmodell Entscheidende Punkte Erweiterung der Invoke-Methode Context-Verwaltung Transaktionsbehandlung

Mehr

Einführung in ADO.NET

Einführung in ADO.NET Manfred Hoffbauer, Düsseldorf Die in Microsoft Access integrierte Programmiersprache VBA unterstützt den Zugriff auf Access- Datenbanken per DAO und ADO. Auch in Microsoft Visual Basic.NET ist mit ADO.NET

Mehr

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012 Isolationsstufen für Transaktionen / Sicherheit Dr. Karsten Tolle Dienstag 31. Januar 2012 Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch

Mehr

Oracle und.net sind ein populäres Gespann. Doch wie lassen sich Oracle Features mit.net nutzen?

Oracle und.net sind ein populäres Gespann. Doch wie lassen sich Oracle Features mit.net nutzen? Betrifft Autor Oracle und.net im n-tier Umfeld Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (April 2003) Quelle Aus unserer Projekterfahrung Einführung Oracle und.net sind ein populäres

Mehr

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP.

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP. Ziele: Eine Datenbank anlegen mit SQL Daten eingeben mit SQL Abfragen stellen mit SQL und PHP 1 Datenbankserver Entwickelt von der schwedischen Aktiengesellschaft MySQL Unter GNU General Public License

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Kurs für Microsoft Online Kurs Microsoft Analysten Programmierer

Kurs für Microsoft Online Kurs Microsoft Analysten Programmierer Kurs für Microsoft Online Kurs Microsoft Analysten Programmierer Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses für Microsoft Modul 1 Basis Programm Erste Lerneinheit Einführung

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

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

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

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11 Datenbanksysteme WS 05/ 06 Gruppe 12 Martin Tintel Tatjana Triebl Seite 1 von 11 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung... 3 2. Datenbanken... 4 2.1. Oracle... 4 2.2. MySQL... 5 2.3 MS

Mehr

Datenbankoptimierung. Beispiele für die Optimierung an der Ruby-on-Rails-Schnittstelle. Karsten Meier meier-online.com

Datenbankoptimierung. Beispiele für die Optimierung an der Ruby-on-Rails-Schnittstelle. Karsten Meier meier-online.com Datenbankoptimierung Beispiele für die Optimierung an der Ruby-on-Rails-Schnittstelle Karsten Meier meier-online.com Mein Background 1986: SQL im Studium 1996: QuarkXpress -> HTML Converter 1998-2001:

Mehr

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index!

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index! 1/40 PHP-User-Group Stuttgart 14.01.2009 Warum Datenbanken einen Hals bekommen und was sich dagegen tun lässt. Tuning und Performancesteigerung ohne zusätzliche Hardware. Ein. Loblied auf den Tabellen-Index!

Mehr

Kapitel 8: Datenbankanbindung. SoPra 2008 Kap. 8: Datenbankanbindung (1/40)

Kapitel 8: Datenbankanbindung. SoPra 2008 Kap. 8: Datenbankanbindung (1/40) Kapitel 8: Datenbankanbindung SoPra 2008 Kap. 8: Datenbankanbindung (1/40) Übersicht 1. Objekte und relationale Datenbanken 2. SQL 3. ADO.NET 4. Persistenzschicht SoPra 2008 Kap. 8: Datenbankanbindung

Mehr

Mobile Backend in der

Mobile Backend in der Mobile Backend in der Cloud Azure Mobile Services / Websites / Active Directory / Kontext Auth Back-Office Mobile Users Push Data Website DevOps Social Networks Logic Others TFS online Windows Azure Mobile

Mehr

Eine weitere Möglichkeit "die grosse weite Welt" zu erschliessen sind ODBC/JDBC bzw. ESS Verbindungen.

Eine weitere Möglichkeit die grosse weite Welt zu erschliessen sind ODBC/JDBC bzw. ESS Verbindungen. Database Designs Alexis Gehrt / alexis@database-designs.ch - Erster Kontakt mit FileMaker ca. 1991 ( Version 2, 2.1) - Jan 2000 - Database Designs - Seit 2007 bei einem Kunden (Linden-Grafik AG) angestellt

Mehr

Objektrelationale, erweiterbare Datenbanken WS 04/05

Objektrelationale, erweiterbare Datenbanken WS 04/05 Eidgenössische Technische Hochschule Zürich Swiss Federal Institute of Technology Zurich Institut für Informationssysteme Dr.C.Türker Objektrelationale, erweiterbare Datenbanken WS 0405 Übung 8 Aufgabe

Mehr

SQL Tipps und Tricks Part III 08.02.2012

SQL Tipps und Tricks Part III 08.02.2012 1/40 PHP-User-Group Stuttgart 08.02.2012 Datenbank- und SQL-Performance Erkennen warum eine SQL-Abfrage langsam ist SQL Tipps und Tricks aus der Praxis 2/40 Wer Wer bin bin ich ich? Thomas Wiedmann n+1

Mehr

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen Programmieren von Datenbankzugriffen mit JDBC Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2015 Überblick über das Package java.sql Übersicht Architektur von JDBC Grundstruktur eines

Mehr

DB2 SQL, der Systemkatalog & Aktive Datenbanken

DB2 SQL, der Systemkatalog & Aktive Datenbanken DB2 SQL, der Systemkatalog & Aktive Datenbanken Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele Auf DB2 Datenbanken zugreifen DB2 Datenbanken benutzen Abfragen ausführen Den Systemkatalog

Mehr

nav@night Microsoft Dynamics NAV 2013 SOAP und OData Webservices mit.net nutzen Dipl.-Inf. (FH) Ingo Jansen

nav@night Microsoft Dynamics NAV 2013 SOAP und OData Webservices mit.net nutzen Dipl.-Inf. (FH) Ingo Jansen nav@night Microsoft Dynamics NAV 2013 SOAP und OData Webservices mit.net nutzen Agenda Microsoft Dynamics NAV 2013 Infrastruktur Konfiguration der Instanzen Zugriff auf Microsoft Dynamics NAV 2013 SOAP

Mehr

MySql und PHP. Apache2: Konfigurieren für php4. ...\apache2\conf\httpd.conf aufrufen. Folgende Zeilen einfügen:

MySql und PHP. Apache2: Konfigurieren für php4. ...\apache2\conf\httpd.conf aufrufen. Folgende Zeilen einfügen: MySql und PHP Apache2: Konfigurieren für php4...\apache2\conf\httpd.conf aufrufen Folgende Zeilen einfügen: LoadModule php4_module "c:/php/php4apache2.dll" AddType application/x-httpd-php.php Wichtig!!

Mehr

JDBC. Allgemeines ODBC. java.sql. Beispiele

JDBC. Allgemeines ODBC. java.sql. Beispiele JDBC Java Data Base Connectivity Programmierschnittstelle für relationale Datenbanken Sammlung von Klassen, welche zum Aufbau einer Verbindung zwischen einem Java-Programm und einer Datenbank dienen Verwendet

Mehr

DB2 for z/os. Musterlösungen zu den Übungen

DB2 for z/os. Musterlösungen zu den Übungen Musterlösungen zu den Übungen 4. Januar 2013 Eine Ausarbeitung von: cps4it Ralf Seidler Stromberger Straße 36A 55411 Bingen Fon: +49-6721-992611 Fax: +49-6721-992613 Mail: ralf.seidler@cps4it.de Internet

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

Ü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

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

Einführung in SQL Datenbanken bearbeiten

Einführung in SQL Datenbanken bearbeiten Einführung in SQL Datenbanken bearbeiten Jürgen Thomas Entstanden als Wiki-Buch Bibliografische Information Diese Publikation ist bei der Deutschen Nationalbibliothek registriert. Detaillierte Angaben

Mehr

Whitepaper. Produkt: combit Relationship Manager 7, address manager 17. Import von Adressen nach Firmen und Kontakte

Whitepaper. Produkt: combit Relationship Manager 7, address manager 17. Import von Adressen nach Firmen und Kontakte combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager 7, address manager 17 Import von Adressen nach Firmen und Kontakte Import von Adressen nach Firmen und Kontakte

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

MySQL 101 Wie man einen MySQL-Server am besten absichert

MySQL 101 Wie man einen MySQL-Server am besten absichert MySQL 101 Wie man einen MySQL-Server am besten absichert Simon Bailey simon.bailey@uibk.ac.at Version 1.1 23. Februar 2003 Change History 21. Jänner 2003: Version 1.0 23. Februar 2002: Version 1.1 Diverse

Mehr

Object Relational Mapping Layer

Object Relational Mapping Layer Object Relational Mapping Layer Views Controlers Business logic GUI OO-application logic Object-relational-Mapping Relational DBMS PHP (propel) 1/18 Propel - Persistance Layer OR-Mapper für PHP Portierung

Mehr

Prüfungsnummer: 70-461-deutsch. Prüfungsname: Querying. Version: Demo. SQL Server 2012. http://zertifizierung-portal.de/

Prüfungsnummer: 70-461-deutsch. Prüfungsname: Querying. Version: Demo. SQL Server 2012. http://zertifizierung-portal.de/ Prüfungsnummer: 70-461-deutsch Prüfungsname: Querying Microsoft SQL Server 2012 Version: Demo http://zertifizierung-portal.de/ 1.Sie sind als Datenbankadministrator für das Unternehmen it-pruefungen tätig.

Mehr

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221 Oracle 10g und SQL Server 2005 ein Vergleich Thomas Wächtler 39221 Inhalt 1. Einführung 2. Architektur SQL Server 2005 1. SQLOS 2. Relational Engine 3. Protocol Layer 3. Services 1. Replication 2. Reporting

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Ablauf Unit2. Walkthrough

Ablauf Unit2. Walkthrough Ablauf Unit2 Vertiefendes Uebungsprojekt - SQL II Gerhard Wohlgenannt Test Vorstellung der Arbeitsumgebung (Software, Locations) Walkthrough Gruppeneinteilung + Themenvergabe Vorstellung der Arbeitsumgebung

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

Sicherheit von Webapplikationen Sichere Web-Anwendungen

Sicherheit von Webapplikationen Sichere Web-Anwendungen Sicherheit von Webapplikationen Sichere Web-Anwendungen Daniel Szameitat Agenda 2 Web Technologien l HTTP(Hypertext Transfer Protocol): zustandsloses Protokoll über TCP auf Port 80 HTTPS Verschlüsselt

Mehr

Open Catalog Interface (OCI) Anbindung an VirtueMart

Open Catalog Interface (OCI) Anbindung an VirtueMart Ver. 2.5.1 Open Catalog Interface (OCI) Anbindung an VirtueMart Joomla 2.5 und Virtuemart 2.0.6 Ing. Karl Hirzberger www.hirzberger.at Inhaltsverzeichnis Begriffserklärung... 3 OCI für VirtueMart... 4

Mehr

Einführung in die Software-Umgebung

Einführung in die Software-Umgebung Ortsbezogene Anwendungen und Dienste WS2011/2012 Einführung in die Software-Umgebung Die Software-Umgebung Zentrale Postgres-Datenbank mit Geodaten von OpenStreetMap: Deutschland: 13 mio. Datensätze Topologie-Informationen

Mehr

Inhaltsverzeichnis .NET 3.5. WPF, WCF, LINQ, C# 2008, VB 2008 und ASP.NET AJAX. Herausgegeben von Holger Schwichtenberg ISBN: 978-3-446-41045-9

Inhaltsverzeichnis .NET 3.5. WPF, WCF, LINQ, C# 2008, VB 2008 und ASP.NET AJAX. Herausgegeben von Holger Schwichtenberg ISBN: 978-3-446-41045-9 sverzeichnis Walter Doberenz, Matthias Fischer, Jana Frank, Thomas Gewinnus, Jörg Krause, Patrick A. Lorenz, Jörg Neumann, Holger Schwichtenberg.NET 3.5 WPF, WCF, LINQ, C# 2008, VB 2008 und ASP.NET AJAX

Mehr

Interoperabilität mit Office-Anwendungen (1)

Interoperabilität mit Office-Anwendungen (1) Interoperabilität mit Office-Anwendungen (1) Durch.NET Programme (z.b. Visual Basic) können Microsoft-Office- Anwendungen automatisiert werden. Diese Technik basiert auf den s.g. Interop-Assemblys das

Mehr

Web Adressdatenbank mit ASP

Web Adressdatenbank mit ASP Web Adressdatenbank mit ASP 1 Einleitung 1.1 Vorwort Auf den nächsten paar Seiten will ich eine kleine Anleitung geben, wie man per ASP(Active Server Pages) auf eine MS Access Datenbank zugreifen kann.

Mehr

Active Server Pages. Internetanbindung von Datenbanken. Gliederung. Einführung in ASP. Sessions mit ASP. Datenbankanbindung mit ASP ASP-1

Active Server Pages. Internetanbindung von Datenbanken. Gliederung. Einführung in ASP. Sessions mit ASP. Datenbankanbindung mit ASP ASP-1 Internetanbindung von Datenbanken Active Server Pages ASP-1 Gliederung Einführung in ASP Sessions mit ASP Datenbankanbindung mit ASP Brunner, Fromm, Huppert ASP-2 Einführung in ASP ASP-3 Entwicklung des

Mehr

A Generic Database Web Service for the Venice Lightweight Service Grid

A Generic Database Web Service for the Venice Lightweight Service Grid A Generic Database Web Service for the Venice Lightweight Service Grid Michael Koch Bachelorarbeit Michael Koch University of Kaiserslautern, Germany Integrated Communication Systems Lab Email: m_koch2@cs.uni-kl.de

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

Übung: Data Warehousing und Data Mining

Übung: Data Warehousing und Data Mining Übung: Data Warehousing und Data Mining Sebastian Wandelt 20. Oktober 2011 wandelt@informatik.hu-berlin.de Überblick Organisatorisches Kurze Einführung JDBC PL/SQL 1. Aufgabenblatt Ablauf des Semesters

Mehr

SQL Injection Funktionsweise und Gegenmaßnahmen

SQL Injection Funktionsweise und Gegenmaßnahmen SQL Injection Funktionsweise und Gegenmaßnahmen EUROSEC GmbH Chiffriertechnik & Sicherheit Tel: 06173 / 60850, www.eurosec.com EUROSEC GmbH Chiffriertechnik & Sicherheit, 2005 Problematik SQL-Injection

Mehr