XML und SQL Server 2000

Werbung
SQL Server 2000
XML, Web-Dienste und DWH/DM
Dirk Werther
Frank Maar
Technologieberater
Microsoft GmbH
[email protected]
[email protected]
Übersicht
ƒ XML-Daten lesen
ƒ XML-Daten einfügen
ƒ Zusatzprogramme
ƒ SQL Server XML View Mapper 1.0
ƒ SQL Server 200 Web Services Toolkit
ƒ OO-Zusatzprodukte
ƒ Data Warehouse Framework
ƒ Data Mining
Herausforderungen
ƒ XML Nachrichten/Dokumente aus existierenden
relationalen Daten erzeugen
ƒ XML Sichten auf relationale Tabellen
ƒ Relationale Sichten auf XML Daten
ƒ Datenänderung mittels XML
ƒ Vielfältige Zugriffsmöglichkeiten (HTTP, ADO,
ASP) zu den XML Daten
Architecture
Browsers
IIS
Applications
I
S
A
P
I
OLE/DB
(SQLOLEDB)
SQL
Server
2000
DB
Client
Middle Tier
DB
SQL Server
Architektur
Browsers
WEB
Apps
I
S
IIS A
P
I
SQLXML
Templates
and XSLT
XQuery
XQuery/XPath
XPath
processor
FOR
XML
SQL Server 7
SQL
Row
Row
Row
sets
sets
Rowset
sets
XML Views
SQLXML
OLE DB
Provider
SQL Server 2000
Updategram
SQL
SQL
FOR
XML
XML
XML
Access through ADO
Client
Middle Tier
Row
Row
Row
sets
sets
sets
Open
XML
SQL Server
XML Query
ƒ SQL Syntax Erweiterung
SELECT…
FROM…
WHERE…
ORDER BY…
FOR XML (raw |
auto [, ELEMENTS] |
explicit)
[, XMLData]
[, BINARY base64])
FOR XML – Raw Modus
ƒ Je Zeile ein <row> element
ƒ Keine verschachtelten Elemente/Hierarchien
möglich
ƒ Spalten mit Werten ergeben Attribute mit Werten
je Zeile <row>
ƒ Ähnlich dem CSV Format, aber Erzeugung von
XML
FOR XML – Raw Modus
ƒ
Abfrage:
SELECT Customers.CustomerID, OrderID
FROM Customers INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerID
FOR XML RAW
ƒ
Ergebnis:
<row CustomerID=“ALFKI”
<row CustomerID=“ALFKI”
<row CustomerID=“ANATR”
…
<row CustomerID=“FISSA”
…
OrderID=“10643” />
OrderID=“10692” />
OrderID=“10308” />
/>
FOR XML – Auto Modus
ƒ Datenbanktabellenname wird als Elementname
verwendet
ƒ Spaltennamen werden als Attributnamen
verwendet
ƒ die ELEMENTS Anweisung erzeugt
Unterelemente
ƒ verschachtelte XML-Ausgabe kann erzeugt
werden
ƒ Verschachtelung von der Spaltenangabe im
SELECT Kommando abhängig
FOR XML – Auto Modus
ƒ
ƒ
Abfrage:
SELECT Customers.CustomerID, OrderID
FROM Customers INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerID
FOR XML AUTO
Ergebnis:
<Customers CustomerID=“ALFKI”>
<Orders OrderID=“10643” />
<Orders OrderID=“10692” />
</Customers>
<Customers CustomerID=“ANATR”>
<Orders OrderID=“10308” />
…
FOR XML – Explicit Modus
ƒ Bietet komplette Kontrolle über die XML-Ausgabe
ƒ Abfragespalten können individuell zu Elementen
oder Attributen verknüpft
ƒ beliebigste Verschachtelungen
ƒ „Geschwister“ - Beziehungen
ƒ herleitbare Hierarchien
ƒ erzeugt ID/IDREF Beziehungen
ƒ CDATA Sektionen in der XML Ausgabe
ƒ enthält XML Anmerkungen
FOR XML – Explicit Modus
SELECT 1 as Tag,
NULL as Parent,
Customers.CustomerID as [Customer!1!CustomerID],
NULL as [Order!2!OrderID]
FROM Customers
UNION ALL
SELECT 2,
1,
Customers.CustomerID,
Orders.OrderID
FROM
Customers, Orders
WHERE Customers.CustomerID = Orders.CustomerID
ORDER BY [Customer!1!CustomerID], [Order!2!OrderID]
FOR XML EXPLICIT
<root>
<Customer cid="ALFKI">
<name>Alfreds Futterkiste</name>
<Order oid="O-10643" />
<Order oid="O-10692" />
<Order oid="O-10952" />
<Order oid="O-11011"/>
</Customer>
<Customer cid="BOLID">
<name>Bólido Comidas preparadas</name>
<Order oid="O-10801" />
<Order oid="O-10970" />
</Customer>
</root>
FOR XML - Vorlage
<root xmlns:sql="urn:schemas-microsoft-com:xml-sql"
sql:xsl="path to XSLT file" >
<sql:header>
<sql:param name=„city">%</sql:param>
<sql:param name="state">WA</sql:param>
</sql:header>
<sql:query>
SELECT *
FROM Customers AS Customer
WHERE City LIKE @city
AND Region LIKE @state
FOR XML auto
</sql:query>
</root>
HTTP Zugriff – URL Abfragen
ƒ URL Abfrage
http://server/vroot?sql=
SELECT+*+FROM+Customers+FOR+XML+AUTO
&root=root
ƒ Direkte Abfrage
http://server/vroot/dbobject/
Employees[@EmployeeID=1]/@Photo
ƒ Vorlagen
http://server/vroot/vname?params
ƒ XML View
http://server/vroot/vname/xpath?params
HTTP Zugriff – URL Abfragen
ƒ
http://server/vroot?params
ƒ
Parameter
sql=select+*+from+Customers+FOR+XML+Auto
xsl=table.xsl
contenttype=image/gif
outputencoding=UTF-8
root=root
HTTP Zugriff - Sicherheit
ƒ Sicherheit wird für jedes virtuelle Verzeichnis gesetzt
ƒ Rechte im SQL Server
ƒ ISAPI DLL mit 3 Autorisierungsmöglichkeiten
ƒ Anonymous Access
ƒ Windows-/SQL Server Kennung und Kennwort werden direkt
zum virtuellen Verzeichnis gesetzt und gelten für alle
Benutzer
ƒ Basic Authentication
ƒ SQL Server Kennung und Kennwort im Klartext
ƒ sollte nur in Verbindung mit SSL verwendet werden
ƒ Integrated Security
ƒ benutzt die Windows ACLs
Business-to-Business-Datenaustausch
XPATH
/Products
d
oa
Bu
lk l
lts
Annotations
su
+
Re
=
Mapping
Schema
Qu
ery
BizTalk
Schema
+
SQL
Server
SQL
Server
XML
in
BizTalk
Grammar
Send
Übersicht
ƒ XML-Daten lesen
ƒ XML-Daten einfügen
ƒ Zusatzprogramme
ƒ SQL Server XML View Mapper 1.0
ƒ SQL Server 200 Web Services Toolkit
ƒ OO-Zusatzprodukte
ƒ Data Warehouse Framework
ƒ Data Mining
OpenXML
ƒ Mechanismus für das Ändern von Daten in der
Datenbank mittels XML Format
ƒ Multi-row updates
ƒ Multi-table updates basierend auf der XML
Hierarchie
ƒ Wird mit T-SQL Stored Procedures verwendet
ƒ Bietet relationale Sicht auf XML Daten
ƒ Zeilen- und Spalten werden mit XPath identifiziert
ƒ Attributzentrierte und der Elementzentrierte
Zuordnung
ƒ Unterstützung von Hierarchien
OpenXML
SQL Server 2000
XML
INSERT
Parsen
sp_xml_preparedocument
name
XML DOM
zerlegen
…
…
OpenXML
…
…
ID
Phone
Übersicht
ƒ XML-Daten lesen
ƒ XML-Daten einfügen
ƒ Zusatzprogramme
ƒ SQL Server XML View Mapper 1.0
ƒ SQL Server 200 Web Services Toolkit
ƒ OO-Zusatzprodukte
ƒ Data Warehouse Framework
ƒ Data Mining
SQL Server XML View Mapper
ƒ http://msdn.microsoft.com/downloads/default.asp?url=/downl
oads/sample.asp?url=/MSDNFILES/027/001/443/msdncompositedoc.xml
Übersicht
ƒ XML-Daten lesen
ƒ XML-Daten einfügen
ƒ Zusatzprogramme
ƒ SQL Server XML View Mapper 1.0
ƒ SQL Server 200 Web Services Toolkit
ƒ OO-Zusatzprodukte
ƒ DWH/DM
Microsoft SQL Server 2000 Web Services
Toolkit
ƒ http://msdn.microsoft.com/downloads/default.asp?url=/dow
nloads/sample.asp?url=/MSDNFILES/027/001/872/msdncompositedoc.xml&frame=true
Übersicht
ƒ XML-Daten lesen
ƒ XML-Daten einfügen
ƒ Zusatzprogramme
ƒ SQL Server XML View Mapper 1.0
ƒ SQL Server 200 Web Services Toolkit
ƒ OO-Zusatzprodukte
ƒ Data Warehouse Framework
ƒ Data Mining
OO-Tools
ƒ Datenbankschnittstelle die auf C++
ƒ http://www.roguewave.com/products/xplatform/dbt
ools/
DBTools++
Übersicht
ƒ XML-Daten lesen
ƒ XML-Daten einfügen
ƒ Zusatzprogramme
ƒ SQL Server XML View Mapper 1.0
ƒ SQL Server 200 Web Services Toolkit
ƒ OO-Zusatzprodukte
ƒ Data Warehouse Framework
ƒ Data Mining
Closed Loop Analysis
Microsofts Angebot für DWH/BI
ƒ SQL Server 2000 – vollständige DWH-Plattform
ƒ Server für relationale Daten
ƒ Analysis Services
ƒ Server für multidimensionale Daten
ƒ Data Mining Funktionen
ƒ
ƒ
ƒ
ƒ
ƒ
Data Transformation Services (DTS)
Metadaten-Services (Repository)
English Query
„built in“ Hochverfügbarkeit und Skalierbarkeit
Graphische Admin- und Optimierungstools
ƒ Office 2000 / Office XP als Client-Toolset
ƒ Excel (mit Pivot Table Services)
ƒ Office Web Components (OWC) für individuelle Entwicklung
ƒ Data Analyzer, MapPoint
ƒ Infrastruktur, Protokolle, Partner
ƒ “OLE DB for OLAP”, “ADO MD”
ƒ DWH-Allianz, DWH-Framework
ƒ MSO – Microsoft Solution Offerings für BI
Data
Transformation
Services (DTS)
Der „mühsame“ Datenladeprozeß...
Datenquelle
Temporärer
DatenSpeicher
Nur bei Bedarf
Daten
Daten
Validierung
Validierung
DTS
Daten
Daten
Migration
Migration
Daten
Daten
Bereinigung
Bereinigung
Daten
Daten
Transformation
Transformation
Data
Warehouse
Was ist DTS?
ƒ
Data Transformation Service (DTS) ist ein Werkzeug zum Kopieren
und Transformieren von Daten zwischen verschiedenen
Datenquellen.
ƒ
eingebautes ETL – Tool (Extraktion, Transformation, Load)
Transformation
Transformation
Datenquelle
Datenziel
“Datenpumpe”
“Datenpumpe”
ININ
OUT
OUT
Beispiel: komplexer DTS-Workflow
Operative
Daten (OLTP)
Strukturumwandlung
Analytische Daten
(multidimensional,
OLAP)
Schritt 1: Von OLTP zum Starschema
DTS
ƒ Faktentabelle enthält Measures (Maßzahlen)
ƒ Kosten, Umsatz, Profit, Anzahl Kunden, Gewicht
ƒ Dimensionstabellen enthalten „Zugriffsdaten“
ƒ Zeit: Jahr–Quartal–Monat-Tag
ƒ Geographisch: Staat-Bundesland-PlzGebiet-Ort-Kunde
ƒ Standard-Entwurfsmuster
ƒ Star-Schema, Snowflake-Schema, Parent-Child
Schritt 2: Vom Star-Schema zum Cube
1
2
3
D im e n s io n : P r o d u k t, R e g io n , Z e it
M e a s u re : U m s a tz
A g g rre
e g a tio n e n a u f je d e r S tu fe
4
N o rd
Z e it
P rro
odukt
R e g io n
K a te g o rie
R e g io n
Q u a rta l
P ro d u k t
S ta d t
M onat
B ü ro
Ta g
In d u s trie
S üd
La n d
Jahr
O st
P ro d u k t
Seife
Saft
Milch
W e st
Cola
Analysis
Services
Region
ƒ xxx
Q
ua
r ta
l
U m s a tz P ro d u k t
M ilc h , Q u a rta l 3 ,
N o rd
ƒ Im Cube-Editor werden
Faktentabelle, Dimensionen und
Speicherlayout definiert
ƒ Alle Schritte durch Assistenten
ohne Programmierung
ƒ Cube - Aufbereitung
ƒ Zentrale Verwaltung aller Cube Eigenschaften und Features
Weitere Dimensions-Schemata
Architecture
OLAP Services
OLAP Manager
Processing
Querying
Application
OLAP
Store
OLAP
Server
ADO MD
Other
OLE DB
Providers
OLEDB for OLAP
DSO
PivotTable Service
SQL Server
Data
Warehouse
Aggregationen: Datenexplosion
Erlös
+
Computer
Hardware Software
Produkte
Quartal 1
100
150
250
Quartal 2
250
100
350
Halbjahr 1
350
250
600
4 Datenzellen, 5 Aggregatzellen: Verhältnis 2.25
Exponentieller Speicher- und Zeitbedarf!
Speicherentwurfs-Assistent
Vorausbestimmung der wichtigsten partiellen Aggregationen
Speicherlayout MOLAP, ROLAP, HOLAP
ƒ
ƒ
ƒ
Drei Varianten stehen zur Verfügung
ƒ MOLAP: Multidimensionales OLAP (erste Wahl!)
ƒ ROLAP: Relationales OLAP (Strukturbruch)
ƒ HOLAP: Hybrides OLAP
flexible Kombination erlaubt optimales Verhältnis
zwischen Performance und Platzbedarf
das Speicherlayout ist vor dem Benutzer völlig verborgen,
er sieht nur einen Cube
Zugriffsrechte OLAP-Server
ƒ Authenifizierung erfolgt via NT-IntegratedSecurity
ƒ Mitglied der Domäne oder einer vertrauten Domäne
ƒ Gruppe „OLAP Administrator“
Zugriffsrechte OLAP-Client
ƒ Rollenkonzept für Cube – Zugriff
ƒ Z.B. Rolle Vertrieb, Controlling
ƒ Jedem Cube wird eine Rolle mit entsprechenden
Lese/Schreibrechten zugewiesen
.
MDX MultiDimensional EXpressions
ƒ
Sprache zur Formulierung von multidimensionalen Abfragen (DML)
und zur Datendefinition (DDL)
ƒ
Standardisiert als Bestandteil von “OLE DB for OLAP“
ƒ
u.A. im Cube-Editor für berechnete Elemente benutzt
ƒ
Ermöglicht Clients beliebige Daten aus einem Cube via „OLE DB for
OLAP“ bzw. „ADO MD“ abzurufen
ƒ
Grundlage für alle analytischen Anwendungen
Berichte erstellen
ƒ Excel 2000/2002
ƒ Neue Berichte erstellen
ƒ Fertige Arbeitsmappen aktualisieren
ƒ Statische HTML-Berichte
ƒ Office WebKomponenten
ƒ Data Analyzer
ƒ Weitere Berichtsformen
ƒ MapPoint
ƒ Landkarten
ƒ Einfache Verknüpfung mit Daten aus Excel und
SQL Server
Architektur PivotTable Service
Übersicht
ƒ XML-Daten lesen
ƒ XML-Daten einfügen
ƒ Zusatzprogramme
ƒ SQL Server XML View Mapper 1.0
ƒ SQL Server 200 Web Services Toolkit
ƒ OO-Zusatzprodukte
ƒ Data Warehouse Framework
ƒ Data Mining
Data Mining Overview
Evolution of the Database
ƒ
ƒ
ƒ
ƒ
Meistens OLTP Datenbanken
SQL Server 7.0 machte Data Warehousing einfacher
Analysis Services sind das zentrale Element
Data Mining (DM) kann die Analyse erweitern
OLTP
Data Warehousing
Decision Support
OLAP
Data Mining
Data Mining Overview
SQL Server 2000 DM Architecture
Manager UI
DM Wizard
DSO
DTS DM Tasks
DMM
OLE DB
OLAP
DM
Server
Client
OLAP
DM
Engine Engine
OLAP
DM
Engine Engine
(local) (local)
TCP/IP and HTTP
Der Mining Process
Mining Model
Training Data
Data
Mining Model To Predict
DM
Engine
DM
Engine
Mining Model
Predicted Data
DM-Grundlagen: Was sind “Fälle”?
ƒ DM-Algorithmen analysieren “Fälle”
ƒ (OLAP analysiert Fakten)
ƒ Ein Fall ist die “Entität”, die kategorisiert und klassifiziert werden soll:
ƒ
ƒ
ƒ
ƒ
Gesundheitsrisiken: Fall = Patient
Kreditrisioko: Fall = Kunde
Produktrentabilität: Fall = Produkt
Erfolg von Marketingkampagnen: Fall = Kampagne
ƒ Jeder Fall umschliesst das Wissen, das wir über die Entität haben
ƒ Fallmenge wird oft aufgeteilt:
ƒ Trainingsdaten: “Input” für statistische Modell
ƒ Testdaten: Güte des Modells überprüfen
Einfache Fälle – eine Tabelle
Komplexe Fälle – mehrere Tabellen
ƒ Z.B. das Wissen über einen Kunden
ƒ Demographische Daten:
ƒ Alter, Familienstand, Einkommen, Vermögen, Anzahl
Kinder, Beruf, Ausbildung
ƒ Kaufverhalten:
ƒ Type, Anzahl, Rabatte, Werbeaktionen, Zeiträume
ƒ Produktklassifizierung
ƒ Viele Datensätze zu einem Fall
ƒ
ƒ
ƒ
ƒ
Besuchte Kaufhäuser
Viele Datensätze zu einem Fall
Anzahl und Eigenschaften der besitzten Autos
Viele Datensätze zu einem Fall
Komplexe Fälle – geschachtelte Tabellen
Gekaufte Produkte
KundenID
Alter
Stand
Vermögen
Produkte
1
2
3
35
20
57
M
S
M
380,000
50,000
470,000
Menge
TV
1
Coke
6
Ham
3
VCR
1
TV
1
Cake
12
Ham
2
Coke
1
Data Mining Modelle
ƒ
ƒ
ƒ
Struktur eines DM-Modells wird als „Tabelle“ definiert
ƒ Trainieren bedeutet Einfügen der Fälle
ƒ Vorhersage bedeutet Abfragen der Tabelle
Merkmale der Fälle beschreiben, stehe in Spalten
ƒ Eingabespalten und ggf. Vorhersagespalten
Alle Operationen behandeln das Modell als Tabelle: CREATE, INSERT,
SELECT
ƒ
ƒ
Benutzeroberfläche DM-Editor identisch zu OLAP
Analysis Server 2000 unterstützt zwei DM-Algorithmen: Clustering und
Decision Trees
ƒ
Güte eines Modells kann mittels eines Satzes von Testdaten geprüft
werden (DTS Task)
Data Mining - Clustering
ƒ Einteilung der Daten in möglichst getrennte, homogene
Gruppen
ƒ Ableitung von Zielgruppen-orientierten MarketingKampagnen
ƒ Erkennung von Kunden-Profilen zur optimalen
Abstimmung von Produkten und Dienstleistungen
separate Gruppen
Clustering Algorithmus
Gauss’sche Verteilung
X
X
X
Anwendung von Clustering
ƒ
ƒ
ƒ
ƒ
ƒ
Kundensegmentierung
ƒ Vorhersage des Segments für jeden Kunden
ƒ Bestimmung der Kunden zu einem Segment
ƒ Wie kann ich einen neuen Kunden klassifizieren?
Vorbereitung von Werbekampagnen
Zielgruppenanalyse
ƒ Was sind die Gemeinsamkeiten?
ƒ Was unterscheidet die Gruppen?
Wie kann ich Kundengruppen gezielt ansprechen?
ƒ Gegenteil: „spam“-Mail
Aufdeckung bislang verborgener Zusammenhänge
Einsetzbar, wenn man noch keine genaueren Vorstellungen
hinsichtlich der Zusammenhänge der Einflussgrößen hat
Kundensegmentierung
vorhersagbare Einteilung
Data Mining - Entscheidungsmodelle
ƒ Vorhersage von Kaufverhalten
ƒ Analyse von Risiken
ƒ Ideale Hilfe für Verkauf und Marketing
Wie hoch ist die
Wahrscheinlichkeit, dass ein
bestimmter Telefonkunde
auch Internetdienste benutzt?
Income
Good (2)
Poor (3)
High
Good (2)
Poor (1)
Married
Good (2)
Poor (0)
Low
Good (0)
Poor (2)
Not married
Good (0)
Poor (1)
Anwendung von Decision Trees
ƒ
ƒ
ƒ
ƒ
Kaufverhalten:
ƒ Welches Produkt wird warum von welchen Kunden
gekauft
Zielgruppenmarketing:
ƒ Welche Kundenkarte passt zu einem Kunden?
Risikoanalyse:
ƒ Kreditvergabe
ƒ Gesundheitsvorsorge, Risikofaktoren
Entscheidungsverhalten:
ƒ Welche Kriterien beeinflussen eine Entscheidung
Anwendbar, wenn der Zusammenhang zwischen
Einflussgrößen und Vorhersagegröße bekannt ist
DMM Decision Tree Kundenkarte
Vorhersage Kundenkartentyp mittels der Merkmale Einkommen,
Geschlecht, Ausbildung, Stand, Kinderzahl, Beruf, ...
Mehr Info …
ƒ
ƒ
ƒ
ƒ
ƒ
http://msdn.microsoft.com/xml/
http://msdn.microsoft.com/sqlserver
http://www.microsoft.com/sql/
http://www.w3.org/XML/
http://www.msdn.microsoft.com/library/default.a
sp?url=/library/enus/dnexxml/html/xml07162001.asp
Zeit für Fragen
Herunterladen