SQL Server 2005 TechTalk September 2005

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

Objektrelationales Mapping mit JPA
System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Design- und Entwicklungswerkzeuge
Web-Entwicklung mit ASP.NET 2.0 und Visual Studio 2005 Uwe Baumann Marketing Manager Developer Tools Microsoft Deutschland GmbH Oliver Scheer Developer.
SQL Server 2005 Übersicht für Entwickler Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Web Matrix Project Kurzüberblick Dirk Primbs Technologieberater Developer Platform Strategy Group Microsoft Deutschland GmbH.
MySQL.
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
SendEplanung Datenbank
SQL als Abfragesprache
SQL als Abfragesprache
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Microsofts XML-Strategie aus Sicht des Endanwenders Klaus Rohe Developer Platform & Strategy Group Microsoft Deutschland GmbH.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
Text-Retrieval mit Oracle Vortrag von Andreas Mück & David Diestel.
Otto-von-Guericke-Universität Magdeburg Gamal Kassem 1 Tabellenzeile mit READ lesen READ TABLE itab INDEX idx READ TABLE itab WITH KEY comp1 = f1.... Compn.
Datenbanken 10: Einfügen, Ändern, Löschen
Einführung MySQL mit PHP
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Aufbau einer Verbindung zur Datenbank import java.net.URL; import java.sql.*; class JDBCExample.
Arbeiten mit SQL in Visual FoxPro 9.0
Visual FoxPro 8.0 NameTitelUnternehmen. Agenda Jahre Visual FoxPro 10 Jahre Visual FoxPro Der Weg zu VFP 8.0 Der Weg zu VFP 8.0 Ziele von und Überblick.
MSDN Webcast Visual Studio 2005 mit Visual FoxPro Jochen Kirstätter Mai 2005 –
SQL in Visual FoxPro. © 1999 TMN-Systemberatung GmbH SQL Historie n SQL - Structured Query Language n In den 70er Jahren von IBM entwickelt n 1986 zum.
Arbeiten mit SQL in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 Roadshow SQL.
objekt-relationale Datenbanken
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.
Wir bauen uns eine Webapplikation!
Best Practices in der Datenbank-programmierung
SharePoint 2010 for Information Architects
SQL Server 2005 CLR-Integration
Tools und Verfahren Steffen Krause Technologieberater Microsoft Deutschland GmbH
Developer Day Office APPs entwicklen Simon Amrein Trivadis AG Die ersten Schritte in eine neue Office-Welt.
Version 2008 Team Foundation Version Control (TFVC) … ist eine vollständige Neuentwicklung … wurde für große Teams, die auch weltweit verteilt arbeiten,
SQL Azure Administration
Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH Christian Weyer Solutions Architect thinktecture.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 ADO.NET s.a:
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
XML-Query. Übersicht Was ist XML-Query? Vergleich RDB XML-Dokument Syntaktisches und Use-Cases Kritik und Diskussion.
1 Softwareentwicklung mit.NET Teil 5 Datenzugriff mit ADO.NET Dr. Ralph Zeller.
… und was man damit machen kann.
Datenbanksysteme für hörer anderer Fachrichtungen
Einführung in Datenbankmodellierung und SQL
1 Copyright 2005 SCADA SOFT AG WizReport XL Professional Version 6 Produkte Übersicht Peter Schöttli.
SQL Server 2005 CLR Integration Sebastian Weber Microsoft Deutschland GmbH
Eine persönliche Fallstudie …
Structured Query Language
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
XQuery 1.0 – Arbeitsweise Mögl. Eingaben Das wird berücksichtigt: Typen von XPath und XML Schema Namensräume, Module Ergebnis: XML-Instanz.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Sprachneuerungen des .NET Frameworks 3.5
Termin Festlegung Einführung MySQL Runterladen MySQL, Pentaho Design Studio Betrachtung Pentaho
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #8 SQL (Teil 5)
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH
Christian Binder Senior Platform Strategy Manager Microsoft Deutschland GmbH.
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH.
Arbeiten in einem agilen Team mit VS & TFS 11
Trigger-abhängige Client Interaktionen (bezüglich Oracle8i)
Datenbank für Skriptenverkauf
Datenbanken abfragen mit SQL
Datenbanken Produkte Dienstleistungen Referenzen.
Datenbanken Produkte Dienstleistungen Referenzen.
XML-Erweiterungen in ORDBMS Seminar: DBMS für spezielle Anwendungen Florian Brieler.
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
Azure Active Directory und Azure Active Directory Domain Services
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
 Präsentation transkript:

SQL Server 2005 TechTalk September 2005 3/31/2017 2:55 AM SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com http://blogs.msdn.com/sebweber © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Eine persönliche Fallstudie … „Großhandel“ für digitale Medien > 15 Mio. Medien Verlage haben verschiedene Formate > 30 Formate Integration der Dienste in Kunden-Intranets XML Web Services

Grobarchitektur des Systems Kunden Verlage XML Daten Importer Bestellungen Web Service Zugang Eigenes Management SQL Server Berichte & Auswertungen

Warum erfinden wir das Rad ständig neu?

SQL Server 2005 Plattform

Agenda Die Services im Überblick Erweiterungen der Datenbank T-SQL Erweiterungen .NET Framework Integration XML & Web Service Unterstützung Volltextrecherche

Integration Services ETL-Platform “Best in Class”-Usability 3/31/2017 2:55 AM Integration Services ETL-Platform “Best in Class”-Usability Workflow Designer Erweiterbar © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Analysis Services Business Intelligence Unified Dimensional Model 3/31/2017 2:55 AM Analysis Services Business Intelligence Unified Dimensional Model Real-time Web Services © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Reporting Services Berichte erstellen, verwalten und verteilen Office Integration Verschiedene Datenquellen Verschiedene Ausgabeformate

Report Builder Visual Studio Integration 3/31/2017 2:55 AM Reporting Services Report Builder Visual Studio Integration © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Demo: Report Builder

Demo: Visual Studio Integration

Notification Services Plattform für Benachrichtigungsanw. Deklaratives Programmiermodell Effizienter und skalierende Ausführungsdienst Entwickler schreibt Benachrichtigungsanw.

Replication Services A B C Standort-übergreifende Datenverteilung Peer-to-Peer Verteilung Verteilung von Volltextindizes Web-Synchronisation Monitoring A B C

Service Broker A B C D Plattform für asynchrone Datenbankanwendungen Kommunikation Plattform für asynchrone Datenbankanwendungen T-SQL Integration Transaktionen Zuverlässige Übermittlung A B Transport Transport C D Transport

SQL Server 2005 Plattform

Agenda Die Services im Überblick Erweiterungen der Datenbank T-SQL Erweiterungen .NET Framework Integration XML & Web Service Unterstützung Volltextrecherche

Viele neue Helfer … Neue Datentypen DDL Trigger DML mit Ausgabe TOP 3/31/2017 2:55 AM Viele neue Helfer … Neue Datentypen DDL Trigger DML mit Ausgabe TOP DRI Erweiterungen Fehlerbehandlung CTE Except und Intersect Ranking Funktionalität Index Verbesserungen Snapshot Isolation Level Recompile Optimierung XML Showplan © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Mehr Speichern mit MAX varchar(max) und nvarchar(max) varbinary(max) Nachfolger von „text“ bzw. „ntext“ varbinary(max) Nachfolger von „image“  bis 2 GB (2^31 - 1 Bytes)  .WRITE & SUBSTRING

Versuchen & Fangen Fehlerbehandlung á la C# & Co. Verschachtelungen möglich Kein „Rausfliegen“ aus Batches mehr! BEGIN TRY sql statements … END TRY BEGIN CATCH END CATCH

Common Table Expressions Common Table Expression (CTE) Sind so was wie „ad-hoc views“ Sind in SQL-99 definiert Sind weniger kompliziert als man denkt CTEs sind Eintrittskarte zur Rekursion Iterativer Ansatz meist deutlich aufwändiger

So sieht eine CTE aus! WITH <CTE-Name> (<Spaltennamen>) AS <Abfrage> ) SELECT * FROM <CTE-Name> WITH ProdukteCTE (Name, Kategorie) AS ( SELECT PName, KName FROM Produkte P INNER JOIN Kategorien K ON P.KategorieID = K.ID ) SELECT * FROM ProdukteCTE …

Der Traum von der Rekursion WITH <CTE-Name> (<Spaltennamen>) AS ( <SELECT … FROM …> UNION ALL <SELECT … FROM CTE-Name> ) SELECT * FROM <CTE-Name> Rekursion endet, wenn 2. Select kein Ergebnis mehr liefert!

Rekursive CTE EXCEPT / INTERSECT TOP Row_Number() OVER (…) OUTPUT 3/31/2017 2:55 AM T-SQL Rekursive CTE EXCEPT / INTERSECT TOP Row_Number() OVER (…) OUTPUT © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Demo: Rekursive CTE Abfrage DECLARE @StartOrt char(50); SET @StartOrt = ‘Frankfurt'; WITH cte (ID, Ort, Macht) AS ( SELECT ID, Ort, Macht FROM DieWelt WHERE Ort = @StartOrt UNION ALL SELECT dw.ID, dw.Ort, dw.Macht FROM DieWelt dw JOIN cte ON dw.ID = cte.Macht ) SELECT * FROM cte ORDER BY ID

Demo: EXCEPT & INTERSECT -- “Zeige Daten von A, die nicht in B stehen” SELECT * FROM A; EXCEPT SELECT * FROM B; -- “Zeige Daten, die in A und B stehen” INTERSECT

Demo: TOP -- TOP unterstützt Ausdrücke: DECLARE @n INT; SET @n = 3; SELECT TOP (@n) FROM A; -- TOP auch in DML: UPDATE TOP (5) A SET x=1, y=2; DELETE TOP (5) ... INSERT TOP (5) ... SELECT * ...

Demo: Paging dank CTE WITH Namen AS ( SELECT Row_Number() OVER (ORDER BY Nachname) AS Nummer, Nachname, Vorname FROM NamenNeu ) SELECT * FROM Namen WHERE Nummer BETWEEN 5 AND 9

Demo: OUTPUT -- Zugriff auf alte und neue Werte: UPDATE Tabelle SET A=1 OUTPUT INSERTED.*, DELETED.* -- Zugriff auf eingefügten Datensatz (berechnete -- Spalten, AutoIncs …): INSERT Tabelle (Wert) VALUES (42) OUTPUT INSERTED.* -- Zugriff auf gelöschten Datensatz DELETE FROM Tabelle OUTPUT DELETED.*

Zusammengefasst: T-SQL varchar(max), nvarchar(max), varbinary(max) TRY / CATCH CTE EXCEPT/INTERSECT TOP SELECT Row_Number() OVER … OUTPUT

Agenda Die Services im Überblick Erweiterungen der Datenbank T-SQL Erweiterungen .NET Framework Integration XML & Web Service Unterstützung Volltextrecherche

Was bietet die Integration? Serverseitige Routinen in C#, VB.NET, … Stored Procedures, Functions, Triggers, Data Types & Aggregates Erweitertes Sicherheitsmodell Einheitliche Entwicklungsumgebung Performancevorteile

Integration != Integration Hier: SQL 2000 Extended Stored Procedures SqlServr.exe Client 1. Connection Ext. SP Select * Select * 2. Connection 2. Thread Daten Abbildung aus A First Look at SQL Server 2005 for Developers, AW

SQL Server 2005 Beste Integration der Welt! SqlServr.exe Client 1. Connection SqlCommand cmd = ... cmd.ExecuteNonQuery() PInvoke Managed Code Daten Unmanaged Code Abbildung aus A First Look at SQL Server 2005 for Developers, AW

Implementierung Servercode Implementierung Stored Procedures, Functions & Triggers  Statische Methoden mit „[Attribut]“ Aggregates  Implementierung als Struct mit Attribut [SqlUserDefinedAggregate] Types Implementierung als Klasse oder Struct mit Attribut [SqlUserDefinedType]

So geht‘s! Build VS .NET Projekt SQL Server VB,C#,C++ Assembly SQL Definitionen: create assembly … create function … create procedure … create trigger … create type … SQL Abfragen: SELECT GetOrderCount(region) FROM order

Stored Procedure in C# User Defined Type in C# 3/31/2017 2:55 AM So geht’s im Detail! Stored Procedure in C# User Defined Type in C# © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Demo: Stored Procedure [SqlProcedure] public static void ZeigeDaten (string tabelle, string spalte) { // Context Connection öffnen SqlConnection conn = new SqlConnection(); conn.ConnectionString = “context connection = true”; conn.Open(); // Command “zusammen hacken” SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = “SELECT “ + splate + “ FROM “ + tabelle; // Ergebnis des Readers an Client “senden” SqlContext.Pipe.Send(cmd.ExecuteReader()); }

Demo: User Defined Type [SqlUserDefinedType(Format.Native)] public struct MeinRechteck : INullable { public SqlDouble Laenge; public SqlDouble Breite; // “String-Handhabung” public override string ToString() { /*…*/} public static MeinRechteck Parse(SqlString s) {/*…*/} // “Null-Handhabung” public bool IsNull { get {/*…*/} } public static MeinRechteck Null { get {/*…*/} } }

.NET oder T-SQL? Verwenden Sie .NET Routinen … Verwenden Sie T-SQL … … wenn es mit T-SQL nicht möglich ist … für aufwendige Rechenoperationen … um Logik zu implementieren … wenn auf wenige Daten zugegriffen wird Verwenden Sie T-SQL … … bei daten-intensiven Abfragen  Fallweise Unterscheidung notwendig!!

Agenda Die Services im Überblick Erweiterungen der Datenbank T-SQL Erweiterungen .NET Framework Integration XML & Web Service Unterstützung Volltextrecherche

<Damals/> & <Heute/> XML mit dem Sql Server 2000 (SqlXml) Relationale Daten  XML (FOR XML) XML  Relationale Strukturen (OPEN XML) XML-Dokumente als „Text“ speichern SQL Server 2005 bietet aber mehr XML-Datentyp mit XSD-Unterstützung XQuery/XPath im Sql-Statement nutzbar Indexierung der XML-Knoten Verbesserung FOR XML und OPEN XML

XML-Datentyp verwenden CREATE TABLE XmlTabelle { ID int, MeinXml XML ('MeinSchema.xsd') } CREATE INDEX idx_MeinXml ON XmlTabelle (MeinXml); Indexierung nur möglich, wenn dem Xml ein Schema zugewiesen wurde („typisiert“) Volltext-Indexierung wird ebenfalls unterstützt! Natürlich auch per Management Studio …

Die große Liebe: SQL + XML SELECT ID, MeinXml.value('/Mein/XQuery‘, ‘string‘) AS Wert FROM XmlTabelle SELECT ID, MeinXml.value('/Mein/XQuery‘, ‘string‘) AS Wert FROM XmlTabelle

XML Zugriffsmöglichkeiten XML Methoden query(), value(), exist(), modify(), nodes() Komplexe XML-Operationen mit FLWOR FLWOR spricht man „Flower“ Und bedeutet For-Let-Where-Order-Return Eigentlich nur FOWR, da „L“et noch nicht supported

XML im SQL Server FLOWR-Ausdruck 3/31/2017 2:55 AM © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Demo: FLWOR-Ausdruck declare @x xml set @x=' <Bestellungen> <Bestellung Name="Anne" Summe="110"/> <Bestellung Name="Manfred" Summe="50"/> <Bestellung Name="Peter" Summe="250"/> <Bestellung Name="Marlene" Summe="75"/> </Bestellungen>' SELECT @x.query(' for $Bestellung in //Bestellung[xs:double(@Summe) > 100] return string($Bestellung/@Name) ')

Zugang zum SQL Server 2000 Zahlreiche Zugriffsoptionen vorhanden Aber 1: trotzdem nicht für jeden erreichbar Aber 2: weit weg vom Server SQL SERVER ODBC, OLE DB, Ado.Net TDS/ TCP Named Pipes SQLXML IIS

Zugang zum SQL Server 2005 SOAP/ HTTP TDS/ ODBC, TCP OLE DB, Named Ado.Net TDS/ TCP Named Pipes SQLXML IIS SOAP/ HTTP (Unix) Client

SQL Server Web Services Interessant hinsichtlich Interoperabilität Getestet mit: Jbuilder 9, Axis 1.1, Perl, … SOAP/HTTP Läuft ohne IIS ~%40 schneller als SQLXML SQLXML bleibt bestehen Updategrams, Bulkload, Query strings in URL

Zusammengefasst XML Web Services Eigener Datentyp mit XQuery Support Indexierung der Knoten möglich FOR XML / OPEN XML verbessert Web Services Flinker SOAP-Layer, ~40% schneller als SQLXML Kompatibilität zu anderen System getestet Gut für SOA-Träume?

Agenda Die Services im Überblick Erweiterungen der Datenbank T-SQL Erweiterungen .NET Framework Integration XML & Web Service Unterstützung Volltextrecherche

Was ist Volltextrecherche? Quelle: http://wikipedia.de

Schneller & Besser als LIKE Suchen wie eine Suchmaschine Ranking, Stemmers, Stop Words … Suche innerhalb der Dokumente Word, Excel, PowerPoint, … Erweiterbar durch IFilter beispielsweise für PDF Abfrage per T-SQL Befehle

Volltextindex ist etwas anders Nicht ein „normaler“ Index Aktivierung pro Datenbank notwendig Braucht Pflege Nicht zwingend aktuell Sprachabhängig Replikation mit SQL Server 2005 möglich

Suchen wie die Profis … CONTAINS FREETEXT 3/31/2017 2:55 AM © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Demo: CONTAINS -- Sucht gezielt nach dem Ausdruck SELECT Volltext FROM VolltextTabelle WHERE CONTAINS(Volltext, ‘Auto AND CD AND NOT Monitor‘) -- Zeigt zusätzlich noch den Ranking-Wert an SELECT Volltext, CT.Rank FROM VolltextTabelle JOIN CONTAINSTABLE(VolltextTabelle, Volltext, ‘Auto AND CD AND NOT Monitor‘);

Demo: FREETEXT -- Sucht nach den besten Treffern für den Ausdruck SELECT Volltext FROM VolltextTabelle WHERE FREETEXT(Volltext, ‘Ein Auto mit CD-Player‘) -- Zeigt zusätzlich noch den Ranking-Wert an SELECT Volltext, CT.Rank FROM VolltextTabelle JOIN FREETEXTTABLE(VolltextTabelle, Volltext, ‘Ein Auto mit CD-Player‘);

Anwendungsbeispiele Suche in Artikelstamm nach Beschreibung Dokumentenmanagement auf eigene Faust Suchmaschinen, Buch-Shops, Auktionsplattformen, Musik-Downloads Sie alle nutzen Volltextrecherche!

Agenda Die Services im Überblick Erweiterungen der Datenbank T-SQL Erweiterungen .NET Framework Integration XML & Web Service Unterstützung Volltextrecherche

Warum das Rad neu erfinden? CLR ! Integration Services ! SQL Web Services ! XML Daten Importer Bestellungen Web Service Zugang SQL Server SQL Reporting Services ! XML ! Volltext-recherche ! Berichte & Auswertungen

Vielen Dank! Fragen und Antworten Sebastian Weber Sebastian.Weber@microsoft.com http://blogs.msdn.com/sebweber

© 2005 Microsoft Corporation. All rights reserved. 3/31/2017 2:55 AM © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.