Überblick über aktuelle DatenAbfragesprachen David Schäfer Das Universum der Programmiersprachen imperativ C prozedural F# objektorientiert C# Java deklarativ Das Universum der Programmiersprachen deklarativ SQL MDX DAX XPath / XQuery Das Universum der Programmiersprachen deklarativ SQL SQL – Structured Query Language • relationale Datenbanken • Industrie Standard ISO/IEC 9075:2011 (SQL:2011) • Sub Sets: DRL, DML, DDL, DCL • Hersteller-spezifische Erweiterungen: • T-SQL (Transact SQL von Microsoft & Sybase) • PL/SQL (Procedural Language / SQL von Oracle) • SQL/PSM (SQL / Persistent Stored Module von u. A. MySQL) • Etc. Das Universum der Programmiersprachen deklarativ XQuery XPath XPath – XML Path Language • Abfragesprache für XML Dokumente • W3C Standard • Adressierungs-Syntax auf Basis von „Pfad“ durch logischer Dokumentstruktur, wie ein Navi: DE/HE/Darmstadt/Schlossgraben/1/darmstadtium • Kein XML-Syntax sondern: • Concept Node (Begin der Adresse) • Logical Tree (Festgelegter Dokumentstruktur) • Logical Relationships (ancestor, attribute, child, parent, etc.) XML Datei books.xml: XQuery – XML Query Language • Abfragesprache für XML Dateien • W3C Empfehlung • Nutzt XPath-Expressions • Mehr vordefinierte Funktionen • „XQuery ist das SQL für XML Dateien“: for $par in $page//p let $words := fn:count(fn:tokenize($par/content(), " \n\t")) where $words gt 0 return <p> {$par/content()}<br/> Size: { $words } </p> Das Universum der Programmiersprachen deklarativ MDX MDX – Multi Dimensional eXpressions • multidimensionale Datenbanken (Cubes) • von Microsoft definiert in OLEDB for OLAP specification • industriebreit akzeptiert und unterstützt (Microsoft, IBM Cognos, SAS, SAP BW, etc.) • Hersteller-spezifischer Einschränkungen/Erweiterungen MDX – Multi Dimensional eXpressions MDX sieht aus wie SQL, aber nicht ganz: Das Universum der Programmiersprachen deklarativ DAX DAX – Data Analysis eXpressions • Abfragesprache für • PowerPivot • Analysis Services - Tabular Model • Entwickelt von Microsoft • Wurzeln: • MDX • Excel Funktionen • Zeilenbasiert DAX - Anwendungsbereiche • Berechnete Spalte • Spalte in der Datenbank – Basis DAX Ausdruck • Persistente Speicherung • Berechnete Felder • DAX Formeln auf aggregierten Werten • Werden zur Laufzeit berechnet • Erzeugung neuer Tabelle • Definition einer neuen Tabelle – Basis DAX Tabellen Ausdruck DAX – Zeilenbasiert Berechnete Spalte Berechnetes Feld DAX - Funktionsgruppen • Zeitintelligenz, Datums- und Uhrzeit • NEXTYEAR, PREVIOUSDAY, PARALLELPERIOD • YEAR, DAY, NOW • Filter • DISTINCT, FILTER(S), RELATED(TABLE) • Text & Information • RIGHT, SEARCH, UPPER • ISTEXT, ISNUMBER, ISERROR • Logik • IF, AND, SWITCH • Mathematik, Statistik & Trigonometrie • ABS, FLOOR, LOG, COUNT, SUM • SUMX, COUNTX Weiterführende Links: • Andreas Wolter's SQL Server & BI Blog • MSDN - OLEDB for OLAP Specification • Chris Webb's BI Blog • MSDN - DAX Overview • MSDN - DAX Referenz • MSDN - Analysis Services & Power Pivot Blog • PowerPivot (Pro) Blog Vielen Dank für die Aufmerksamkeit! Herzlichen Glückwunsch an die PASS und viel Spaß auf der Abendveranstaltung David Schäfer – Senior Software Ingenieur HMS Analytical Software ([email protected])