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

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

O/R Mapper. O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010

O/R Mapper. O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010 O/R Mapper O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010 Agenda Object-relational impedance mismatch Mapping Session Abfragen No. 2 Object-relational impedance mismatch Object-relational

Mehr

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

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

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

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

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 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

.NET Entity Framework 4

.NET Entity Framework 4 1.NET Entity Framework 4 Grundlagen und Einsatz in.net 4.0 W3L AG info@w3l.de 2010 2 Agenda Motivation OR-Mapping-Frameworks Entity Framework 4 Entwicklung Mapping & Architektur Generatorverfahren Praxisbeispiel

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

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D. 1 Copyright 1996-1997 by Axel T. Schreiner. All Rights Reserved. 7 Datenbankzugriff Prinzip Dieser Abschnitt beschäftigt sich mit dem Paket java.sql, das eine SQL-Schnittstelle für Java verkapselt. Java-Programme

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

Visual Basic.NET undado.net

Visual Basic.NET undado.net .NETSolutions Visual Basic.NET undado.net Datenbanken programmieren F. SCOTT BARKER Markt+ Übersetzung: Gabriele Broszat Einleitung 21 Zum Autor Zur Begleit-CD-ROM Wer sollte dieses Buch nutzen? Welche

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

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

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

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

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

Hibernate Das Praxisbuch für Entwickler

Hibernate Das Praxisbuch für Entwickler Sebastian Hennebrüder 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Hibernate Das Praxisbuch für Entwickler Galileo

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

Handbuch organice SQL-Reportgenerator

Handbuch organice SQL-Reportgenerator organice Software GmbH Handbuch organice SQL-Reportgenerator Benutzerhandbuch Stand: August 2013 Inhalt 1. Allgemeine Informationen... 3 1.1 Einführung... 3 1.2 Voraussetzungen... 3 1.3 Zielgruppe... 3

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

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

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

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

Inhaltsverzeichnis. Einleitung... 11

Inhaltsverzeichnis. Einleitung... 11 Inhaltsverzeichnis Einleitung...................................................... 11 Einführung......................................................... 11 Zielgruppe dieses Buches.............................................

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

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

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

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

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

Projekt Weblog :: Integration

Projekt Weblog :: Integration Projekt Weblog :: Integration Die Implementation des Formhandling Frameworks wird nun im Projekt Weblog integriert. Dafür stehen 2 Möglichkeiten zur Auswahl. Sie haben Ihre eigene Implementation der Actions,

Mehr

Datenbankimplementierung

Datenbankimplementierung ENTWICKLUNG Datenbankimplementierung Datenbankimplementierung Christian Zahler Sofern Ausführungen auf SQL Server 2005 Bezug nehmen, gelten sie gleichermaßenauchfürsql Server 2008. 6 Client-Programmierung

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

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

Ich liebe Java && Ich liebe C# Rolf Borst

Ich liebe Java && Ich liebe C# Rolf Borst Ich liebe Java && Ich liebe C# Rolf Borst Java oder C#? Einführung public class Einfuehrung { private int gesamtzahl = 0; /* Ermittelt die Anzahl der geraden und durch drei teilbaren Zahlen */ public String

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

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

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

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

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

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

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

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

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java Oliver Kalz Agenda Grundlagen Objektpersistenz Objektrelationales Mapping Performance Fazit

Mehr

2) Nennen Sie die Namen der 3 Ebenen des 3-Ebenen-Modells, und geben Sie an, was in jeder Ebene dargestellt wird.

2) Nennen Sie die Namen der 3 Ebenen des 3-Ebenen-Modells, und geben Sie an, was in jeder Ebene dargestellt wird. Übungen und Lösungen 1. Einführung Datenbanken 1) Welche Datenbanktypen kennen Sie? Wodurch sind sie gekennzeichnet? Hierarchische Datenbanken: Zwischen den Datensätzen besteht eine untergeordnete Rangfolge.

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

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

SuFlex. (Flex)ibles. Der Käufer eines ERP Systems (oder sonstiger Software) hat kaum Eingriffsmöglichkeiten innerhalb der Software.

SuFlex. (Flex)ibles. Der Käufer eines ERP Systems (oder sonstiger Software) hat kaum Eingriffsmöglichkeiten innerhalb der Software. SuFlex (Su)lima's (Flex)ibles Reportsystem Der Käufer eines ERP Systems (oder sonstiger Software) hat kaum Eingriffsmöglichkeiten innerhalb der Software. Jede noch so kleine Liste oder Statistik muss programmiert

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

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de 08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren

Mehr

Whitepaper. Produkt: combit Relationship Manager / address manager. Integration der Ansicht "Adressen" in eigene Solution

Whitepaper. Produkt: combit Relationship Manager / address manager. Integration der Ansicht Adressen in eigene Solution combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager / address manager Integration der Ansicht "Adressen" in eigene Solution Integration der Ansicht "Adressen" in

Mehr

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien 1.1 Definition Datenbank Ein Datenbanksystem (DBS) ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS

Mehr

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel XDK und dem Zugriff auf Web Services vertraut. Der Web Service

Mehr

5.1 Bestehende Projekte bearbeiten 79 5.2 Neue Projekte erstellen 85

5.1 Bestehende Projekte bearbeiten 79 5.2 Neue Projekte erstellen 85 Projekte per DOM bearbeiten KAPITEL 5 5.1 Bestehende Projekte bearbeiten 79 5.2 Neue Projekte erstellen 85 Bisher haben wir uns angesehen, wie List & Label mit Ihren Daten bekannt gemacht werden kann und

Mehr

4. Objektrelationales Mapping Grundlagen der Programmierung II (Java)

4. Objektrelationales Mapping Grundlagen der Programmierung II (Java) 4. Objektrelationales Mapping Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung

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

Java Persistence API 2.x. crud + relationships + jp-ql

Java Persistence API 2.x. crud + relationships + jp-ql Java Persistence API 2.x crud + relationships + jp-ql Grundprinzip 10.02.10 2 Problematik Man muss bei der Persistierung immer das Klassenmodell und dessen Umsetzung im Datenmodell (in der DB) berücksichtigen.

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

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

Einführung in das Microsoft.NET-Framework. Programmiersprache C# 02: Visual Studio / Hello World. Boris Hülsmann

Einführung in das Microsoft.NET-Framework. Programmiersprache C# 02: Visual Studio / Hello World. Boris Hülsmann Einführung in das Microsoft.NET-Framework Programmiersprache C# 02: Visual Studio / Hello World Boris Hülsmann 23.09.2010 1 In dieser Einführung bekommen Sie einen kurzen Einstieg in das.net-framework

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

SQL-Injection. Seite 1 / 16

SQL-Injection. Seite 1 / 16 SQL-Injection Seite 1 / 16 Allgemein: SQL (Structured Query Language) Datenbanksprache zur Definition von Datenstrukturen in Datenbanken Bearbeiten und Abfragen von Datensätzen Definition: SQL-Injection

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

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

Eclipse und EclipseLink

Eclipse und EclipseLink Eclipse und EclipseLink Johannes Michler Johannes.Michler@promatis.de PROMATIS, Ettlingen Zugriff auf Oracle Datenbanken aus Eclipse RCP Anwendungen via EclipseLink 18.09.2009 1 Gliederung Eclipse als

Mehr

C#-Workshop, Teil 2: C#-Objekte im Praxiseinsatz

C#-Workshop, Teil 2: C#-Objekte im Praxiseinsatz ITMAGAZINE C#-Workshop, Teil 2: C#-Objekte im Praxiseinsatz 15. Juni 2001 - Der zweite Teil des C#-Workshops beschäftigt sich mit der Erstellung und Behandlung von Objekten und zeigt, wie die Leistungsfähigkeit

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

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten. Einführung SQL 2010 Niko Becker Mit unseren Übungen zu ACCESS können Sie Aufbau und Struktur einer relationalen Datenbank kennenlernen. Wir zeigen Ihnen wie Sie Tabellen, Formulare und Berichte erstellen

Mehr

Hausarbeit. FOM Fachhochschule für Oekonomie & Management Frankfurt am Main. Hausarbeit zum Thema

Hausarbeit. FOM Fachhochschule für Oekonomie & Management Frankfurt am Main. Hausarbeit zum Thema Hausarbeit FOM Fachhochschule für Oekonomie & Management Frankfurt am Main Datenbankmanagement 3. Semester Hausarbeit zum Thema Zugriff auf Datenbanken unter.net mit dem Entity Framework Betreuer: Autor:

Mehr

Jakarta Turbine Ein Open Source Framework fÿr Webanwendungen. KNF Kongre 2001 Henning P. Schmiedehausen

Jakarta Turbine Ein Open Source Framework fÿr Webanwendungen. KNF Kongre 2001 Henning P. Schmiedehausen <henning@apache.org> Jakarta Turbine Ein Open Source Framework fÿr Webanwendungen Henning P. Schmiedehausen Turbine - ein berblick Open Source unter Apache License 100% pure Java, Java 2 (JDK 1.2+) Servlet-basiertes

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

Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT

Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT 1 Metadaten a) Wozu werden Metadaten im Umfeld von DBMS benötigt? b) Nennen Sie mindestens zwei weitere Anwendungsfelder, in denen Metadaten zum Einsatz kommen.

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

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Was ist JDBC? Hauptsächlich eine Sammlung von Java Klassen und Schnittstellen für eine einfache Verbindung von Java Programmen

Mehr

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) O/R Mapping - Objekte (Attribute) - 1:1, 1:n, n:m Beziehungen - Vererbungen (- Interfaces)

Mehr

OracleMaps mit Microsoft ASP.NET nutzen

OracleMaps mit Microsoft ASP.NET nutzen OracleMaps mit Microsoft ASP.NET nutzen Autor: Arnd Spiering, g.on experience gmbh Oracle Maps mit Microsoft ASP.NET verbinden, das bedeutet eine Brücke zwischen 2 unterschiedlichen IT Welten zu schaffen.

Mehr

Kontrollstrukturen MySQL Funktionen. MySQL 4, 5. Kapitel 20a: PHP Teil 2. Marcel Noe

Kontrollstrukturen MySQL Funktionen. MySQL 4, 5. Kapitel 20a: PHP Teil 2. Marcel Noe MySQL 4, 5 Kapitel 20a: PHP Teil 2 Gliederung 1 2 Gliederung 1 2 Die ermöglicht ein Bedingtes Ausführen von Code-Abschnitten. Nur wenn die Bedingung erfüllt ist wird der Block hinter if ausgeführt. Ist

Mehr

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Informationen aus der Datenbank lesen Klasse SQLiteDatabase enthält die Methode query(..) 1. Parameter: Tabellenname

Mehr

HaskellDB. Datenbank-Features in Haskell. 15.01.2013 Johannes Reiher

HaskellDB. Datenbank-Features in Haskell. 15.01.2013 Johannes Reiher HaskellDB Datenbank-Features in Haskell Gliederung Was ist HaskellDB? Installation ORM Funktionsweise Vor- und Nachteile Was ist HaskellDB? Datenbank-Interface-Bibliothek Ursprünglich für Hugs entwickelt

Mehr

Datenbanken (WS 2015/2016)

Datenbanken (WS 2015/2016) Datenbanken (WS 2015/2016) Klaus Berberich (klaus.berberich@htwsaar.de) Wolfgang Braun (wolfgang.braun@htwsaar.de) 0. Organisatorisches Dozenten Klaus Berberich (klaus.berberich@htwsaar.de) Sprechstunde

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

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

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

Vorwort. Zu dieser Reihe. Autoren. Vorwort

Vorwort. Zu dieser Reihe. Autoren. Vorwort Vorwort 11 12 Vorwort Herzlich Willkommen zu einem Fachbuch von Comelio Medien, ein Bereich der Comelio GmbH. Wir hoffen sehr, dass Sie mit der Darstellung und Aufbereitung zu den verschiedenen Themengebieten

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

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

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL 1 Transaktionen in SQL Um Daten in einer SQL-Datenbank konsistent zu halten, gibt es einerseits die Möglichkeit der Normalisierung, andererseits sog. Transaktionen. 2 Was ist eine Transaktion Eine Transaktion

Mehr

Erstellen sicherer ASP.NET- Anwendungen

Erstellen sicherer ASP.NET- Anwendungen Erstellen sicherer ASP.NET- Anwendungen Authentifizierung, Autorisierung und sichere Kommunikation Auf der Orientierungsseite finden Sie einen Ausgangspunkt und eine vollständige Übersicht zum Erstellen

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

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

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

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

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

Firebird Database Cache Buffer

Firebird Database Cache Buffer Firebird Database Cache Buffer Norman Dunbar 20. Juli 2013 Version 1.3.1-de - deutsche Version Übersetzung ins Deutsche: Martin Köditz Inhaltsverzeichnis Einleitung... 3 Der Firebird-Cache... 3 MON$IO_STATS

Mehr

desk.modul : WaWi- Export

desk.modul : WaWi- Export desk.modul : WaWi- Export Die Schnittstelle besteht aus einem Programm, welches die Daten aus der OfficeLine ausliest und in eine XML-Datei exportiert. Die Schnittstelle ist als ein eigenständiges Programm

Mehr