Enhancing Relational Database Systems for Managing Hierarchical Data

Total Page:16

File Type:pdf, Size:1020Kb

Enhancing Relational Database Systems for Managing Hierarchical Data Technische Universität München Fakultät für Informatik Lehrstuhl III – Datenbanksysteme Enhancing Relational Database Systems for Managing Hierarchical Data DISSERTATION Robert Brunel Technische Universität München Fakultät für Informatik Lehrstuhl III – Datenbanksysteme Enhancing Relational Database Systems for Managing Hierarchical Data Robert Anselm Brunel Vollständiger Abdruck der von der Fakultät für Informatik der Technischen Universität München zur Erlangung des akademischen Grades eines Doktors der Naturwissenschaften (Dr. rer. nat.) genehmigten Dissertation. Vorsitzender: Prof. Dr. Helmut Seidl Prüfer der Dissertation: 1. Prof. Alfons Kemper, Ph. D. 2. Prof. Dr. Torsten Grust Die Dissertation wurde am 07.08.2017 bei der Technischen Universität München eingereicht und durch die Fakultät für Informatik am 10.11.2017 angenommen. Abstract Hierarchical structures permeate our daily lives, and as such are also fea- tured in many of the software applications we work with. Unfortunately, maintaining and querying hierarchical data in the underlying database systems remains a clumsy and inconvenient task even today, almost 50 years after the relational data model was first conceived. Now that modern in-memory engines are becoming more capable than ever, we take the op- portunity to revisit the challenge of making these systems truly “hierarchy- aware.” Our approach is based on modeling hierarchies in relational tables in an intuitive and light-weight way by means of a built-in abstract data type. This opens up new opportunities both on the level of the SQL query language as well as at the heart of the database engine, which we fully ex- ploit: We extend SQL with concise but expressive constructs to represent, bulk-load, manipulate, and query hierarchical tables. An accompanying set of relational algebra concepts and algorithms ensure these constructs can be translated into highly efficient query plans. We design these algo- rithms in terms of a carefully crafted generic framework for representing and indexing hierarchies, which enables us to freely choose among a vari- ety of sophisticated indexing schemes at the storage layer according to the application scenario at hand. While we strive to leverage the decades of existing research on indexing and processing semi-structured data in our framework, we further push the limits when it comes to robustly indexing and querying very large and highly dynamic hierarchical datasets. The result is an unprecedented degree of native support and versatility for managing hierarchical data on the level of the relational database sys- tem. This benefits a great many real-world scenarios which routinely deal with hierarchical data in enterprise software, scientific applications, and beyond. Contents 1 Introduction 1 1.1 Contributions . 2 1.2 Publications . 5 1.3 Outline . 6 2 Hierarchical Data in Relational Databases 7 2.1 Basic Concepts of Hierarchies . 7 2.2 Application Scenarios . 10 2.2.1 Common Data Models . 11 2.2.2 Our Focus . 12 2.2.3 Example Scenarios . 13 2.2.4 Typical Queries on Hierarchies . 15 2.2.5 Summary of Requirements and Challenges . 20 2.3 Status Quo: Integrating Hierarchical Data and DBMS . 22 2.3.1 The Adjacency List Model . 22 2.3.2 Recursion in SQL . 23 2.3.3 Hierarchical Queries in Oracle Database . 24 2.3.4 Recursive Common Table Expressions . 24 2.3.5 Hierarchical Computations via ROLLUP ............... 27 2.3.6 Encoding Hierarchies in Tables . 28 2.3.7 hierarchyid in Microsoft SQL Server . 29 2.3.8 ltree in PostgreSQL . 31 2.3.9 XML Databases and SQL/XML . 31 2.3.10 Multidimensional Databases and MDX . 33 3 A Framework for Integrating Relational and Hierarchical Data 35 3.1 Overview . 35 3.2 The Hierarchical Table Model . 38 3.2.1 Hierarchical Tables . 38 3.2.2 The NODE Data Type . 39 3.3 QL Extensions: Querying Hierarchies . 40 3.3.1 Hierarchy Functions . 40 3.3.2 Hierarchy Predicates . 42 3.3.3 Hierarchical Windows . 43 3.3.4 Recursive Expressions . 46 3.3.5 Further Examples . 47 3.4 DDL Extensions: Creating Hierarchies . 50 3.4.1 Hierarchical Base Tables . 50 3.4.2 Derived Hierarchies: The HIERARCHY Expression . 51 3.4.3 Deriving a Hierarchy from an Adjacency List . 51 3.5 DML Extensions: Manipulating Hierarchies . 53 v Contents 3.6 Advanced Examples . 56 3.6.1 Flexible Forms of Hierarchies . 56 3.6.2 Heterogeneous Hierarchies (I) . 57 3.6.3 Heterogeneous Hierarchies (II) . 57 3.6.4 Dimension Hierarchies . 59 3.6.5 A Complex Report Query . 60 3.6.6 Hierarchical Tables and RCTEs . 61 4 The Backend Perspective of Hierarchical Tables 63 4.1 Hierarchy Indexing Schemes . 63 4.1.1 Basic Concepts . 64 4.1.2 A Common Interface for Hierarchy Indexes . 66 4.1.3 Elementary Index Primitives . 67 4.1.4 Index Primitives for Queries . 68 4.1.5 Index Primitives for Updates . 71 4.2 Implementing Indexing Schemes: State of the Art . 73 4.2.1 Challenges in Dynamic Settings . 75 4.2.2 Naïve Hierarchy Representations . 77 4.2.3 Containment-based Labeling Schemes . 78 4.2.4 Path-based Labeling Schemes . 80 4.2.5 Index-based Schemes . 80 4.3 Schemes for Static and Dynamic Scenarios . 81 4.4 PPPL: A Static Labeling Scheme . 82 4.5 Order Indexes: A Family of Dynamic Indexing Schemes . 83 4.5.1 Order Index Interface . 84 4.5.2 The AO-Tree . 85 4.5.3 Block-based Order Indexes . 85 4.5.4 Representing Back-Links . 87 4.5.5 Implementing the Query Primitives . 88 4.5.6 Implementing the Update Primitives . 89 4.6 Building Hierarchies . 91 4.6.1 A Practical Intermediate Hierarchy Representation . 92 4.6.2 A Generic build() Algorithm . 94 4.6.3 Implementing Derived Hierarchies . 97 4.6.4 Transforming Adjacency Lists . 98 4.6.5 Transforming Edge Lists to Hierarchy IR . 100 4.7 Handling SQL Data Manipulation Statements . 103 5 Query Processing on Hierarchical Data 107 5.1 Logical Algebra Operators . 107 5.1.1 Preliminaries . 107 5.1.2 Expression-level Issues and Normalization . 108 5.1.3 Map ................................... 111 5.1.4 Join . 112 vi Contents 5.1.5 Binary Structural Grouping . 114 5.1.6 Unary Structural Grouping . 116 5.1.7 Unary Versus Binary Grouping . 118 5.2 Physical Algebra Operators . 120 5.2.1 Hierarchy Index Scan . 121 5.2.2 Hierarchy Join: Overview . 123 5.2.3 Nested Loop Join . 125 5.2.4 Hierarchy Index Join . 125 5.2.5 Hierarchy Merge Join . 126 5.2.6 Hierarchy Staircase Filter . 134 5.2.7 Structural Grouping: Overview . 136 5.2.8 Hierarchy Merge Groupjoin . 137 5.2.9 Hierarchical Grouping . 140 5.2.10 Structural Grouping: Further Discussion . 141 5.2.11 Hierarchy Rearrange . 143 5.3 Further Related Work and Outlook . 146 6 Experimental Evaluation 153 6.1 Evaluation Platform . 153 6.2 Test Data . 154 6.3 Experiments . 156 6.3.1 Hierarchy Derivation . 156 6.3.2 Index Primitives for Queries . 159 6.3.3 Hierarchy Traversal . 161 6.3.4 Hierarchy Joins . 164 6.3.5 Hierarchical Windows . 169 6.3.6 Hierarchical Sorting . 171 6.3.7 Pattern Matching Query . 174 6.3.8 Complex Report Query . 177 6.4 Summary . 179 7 Conclusions and Outlook 181 Bibliography 185 vii 1 Introduction ierarchies are infused into our daily lives. Nearly any system in the world can be arranged in a hierarchy, be it political, socioeconomic, technical, bio- H logical, or nature itself. As a consequence, hierarchies also appear in software applications throughout. Central concepts in computing are inherently hierarchical, such as file systems, access control schemes, or semi-structured document formats like XML and JSON. If we look specifically at enterprise software, we see hierarchies being used for modeling geographically distributed sites, marketing schemes, financial ac- counting schemes, reporting lines in human resources, and task breakdowns in project plans. In manufacturing industries, so-called bills of materials, which describe the hi- erarchical assembly structure of an end product, are a central artifact. And last but not least, in business analytics, hierarchies in the dimensions of data cubes help data analysts to effectively organize even vast amounts of data and guide their analysis to the relevant levels of granularity. A crucial component in virtually all of the larger mission-critical applications is the database layer, where the hierarchies are ultimately stored. Given the important role that hierarchies play in so many commercial applications, it comes as no surprise that the first recognized database model, devised by IBM for their Information Manage- ment System in the 1960s, was hierarchical in nature. One of its intended purposes was to manage bills of materials for the construction of the Apollo spacecraft [5]. Many other early database systems focused primarily on manufacturing scenarios, such that “BOM processor” became a household term. Today, however, virtually all mainstream database systems are.
Recommended publications
  • Multidimensional Expressions (MDX) Reference SQL Server 2012 Books Online
    Multidimensional Expressions (MDX) Reference SQL Server 2012 Books Online Summary: Multidimensional Expressions (MDX) is the query language that you use to work with and retrieve multidimensional data in Microsoft Analysis Services. MDX is based on the XML for Analysis (XMLA) specification, with specific extensions for SQL Server Analysis Services. MDX utilizes expressions composed of identifiers, values, statements, functions, and operators that Analysis Services can evaluate to retrieve an object (for example a set or a member), or a scalar value (for example, a string or a number). Category: Reference Applies to: SQL Server 2012 Source: SQL Server Books Online (link to source content) E-book publication date: June 2012 Copyright © 2012 by Microsoft Corporation All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher. Microsoft and the trademarks listed at http://www.microsoft.com/about/legal/en/us/IntellectualProperty/Trademarks/EN-US.aspx are trademarks of the Microsoft group of companies. All other marks are property of their respective owners. The example companies, organizations, products, domain names, email addresses, logos, people, places, and events depicted herein are fictitious. No association with any real company, organization, product, domain name, email address, logo, person, place, or event is intended or should be inferred. This book expresses the author’s views and opinions. The information contained in this book is provided without any express, statutory, or implied warranties. Neither the authors, Microsoft Corporation, nor its resellers, or distributors will be held liable for any damages caused or alleged to be caused either directly or indirectly by this book.
    [Show full text]
  • Ÿþp Rovider S Ervices a Dministrator
    Oracle® Hyperion Provider Services Administrator's Guide Release 12.2.1.0.0 Provider Services Administrator's Guide, 12.2.1.0.0 Copyright © 2005, 2015, Oracle and/or its affiliates. All rights reserved. Authors: EPM Information Development Team This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.
    [Show full text]
  • Support Aggregate Analytic Window Function Over Large Data by Spilling
    Support Aggregate Analytic Window Function over Large Data by Spilling Xing Shi and Chao Wang Guangdong University of Technology, Guangzhou, Guangdong 510006, China North China University of Technology, Beijing 100144, China Abstract. ​Analytic function, also called window function, is to query the aggregation of data over a sliding window. For example, a simple query over the online stock platform is to return the average price of a stock of the last three days. These functions are commonly used features in SQL databases. They are supported in most of the commercial databases. With the increasing usage of cloud data infra and machine learning technology, the frequency of queries with analytic window functions rises. Some analytic functions only require const space in memory to store the state, such as SUM, AVG, while others require linear space, such as MIN, MAX. When the window is extremely large, the memory space to store the state may be too large. In this case, we need to spill the state to disk, which is a heavy operation. In this paper, we proposed an algorithm to manipulate the state data in the disk to reduce the disk I/O to make spill available and efficiency. We analyze the complexity of the algorithm with different data distribution. 1. Introducion In this paper, we develop novel spill techniques for analytic window function in SQL databases. And discuss different various types of aggregate queries, e.g., COUNT, AVG, SUM, MAX, MIN, etc., over a relational table. Aggregate ​analytic function, also called aggregate window function, is to query the aggregation of data over a sliding window.
    [Show full text]
  • A First Attempt to Computing Generic Set Partitions: Delegation to an SQL Query Engine Frédéric Dumonceaux, Guillaume Raschia, Marc Gelgon
    A First Attempt to Computing Generic Set Partitions: Delegation to an SQL Query Engine Frédéric Dumonceaux, Guillaume Raschia, Marc Gelgon To cite this version: Frédéric Dumonceaux, Guillaume Raschia, Marc Gelgon. A First Attempt to Computing Generic Set Partitions: Delegation to an SQL Query Engine. DEXA’2014 (Database and Expert System Applications), Sep 2014, Munich, Germany. pp.433-440. hal-00993260 HAL Id: hal-00993260 https://hal.archives-ouvertes.fr/hal-00993260 Submitted on 28 Oct 2014 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. A First Attempt to Computing Generic Set Partitions: Delegation to an SQL Query Engine Fr´ed´ericDumonceaux, Guillaume Raschia, and Marc Gelgon LINA (UMR CNRS 6241), Universit´ede Nantes, France [email protected] Abstract. Partitions are a very common and useful way of organiz- ing data, in data engineering and data mining. However, partitions cur- rently lack efficient and generic data management functionalities. This paper proposes advances in the understanding of this problem, as well as elements for solving it. We formulate the task as efficient process- ing, evaluating and optimizing queries over set partitions, in the setting of relational databases.
    [Show full text]
  • Look out the Window Functions and Free Your SQL
    Concepts Syntax Other Look Out The Window Functions and free your SQL Gianni Ciolli 2ndQuadrant Italia PostgreSQL Conference Europe 2011 October 18-21, Amsterdam Look Out The Window Functions Gianni Ciolli Concepts Syntax Other Outline 1 Concepts Aggregates Different aggregations Partitions Window frames 2 Syntax Frames from 9.0 Frames in 8.4 3 Other A larger example Question time Look Out The Window Functions Gianni Ciolli Concepts Syntax Other Aggregates Aggregates 1 Example of an aggregate Problem 1 How many rows there are in table a? Solution SELECT count(*) FROM a; • Here count is an aggregate function (SQL keyword AGGREGATE). Look Out The Window Functions Gianni Ciolli Concepts Syntax Other Aggregates Aggregates 2 Functions and Aggregates • FUNCTIONs: • input: one row • output: either one row or a set of rows: • AGGREGATEs: • input: a set of rows • output: one row Look Out The Window Functions Gianni Ciolli Concepts Syntax Other Different aggregations Different aggregations 1 Without window functions, and with them GROUP BY col1, . , coln window functions any supported only PostgreSQL PostgreSQL version version 8.4+ compute aggregates compute aggregates via by creating groups partitions and window frames output is one row output is one row for each group for each input row Look Out The Window Functions Gianni Ciolli Concepts Syntax Other Different aggregations Different aggregations 2 Without window functions, and with them GROUP BY col1, . , coln window functions only one way of aggregating different rows in the same for each group
    [Show full text]
  • Lecture 3: Advanced SQL
    Advanced SQL Lecture 3: Advanced SQL 1 / 64 Advanced SQL Relational Language Relational Language • User only needs to specify the answer that they want, not how to compute it. • The DBMS is responsible for efficient evaluation of the query. I Query optimizer: re-orders operations and generates query plan 2 / 64 Advanced SQL Relational Language SQL History • Originally “SEQUEL" from IBM’s System R prototype. I Structured English Query Language I Adopted by Oracle in the 1970s. I IBM releases DB2 in 1983. I ANSI Standard in 1986. ISO in 1987 I Structured Query Language 3 / 64 Advanced SQL Relational Language SQL History • Current standard is SQL:2016 I SQL:2016 −! JSON, Polymorphic tables I SQL:2011 −! Temporal DBs, Pipelined DML I SQL:2008 −! TRUNCATE, Fancy sorting I SQL:2003 −! XML, windows, sequences, auto-gen IDs. I SQL:1999 −! Regex, triggers, OO • Most DBMSs at least support SQL-92 • Comparison of different SQL implementations 4 / 64 Advanced SQL Relational Language Relational Language • Data Manipulation Language (DML) • Data Definition Language (DDL) • Data Control Language (DCL) • Also includes: I View definition I Integrity & Referential Constraints I Transactions • Important: SQL is based on bag semantics (duplicates) not set semantics (no duplicates). 5 / 64 Advanced SQL Relational Language Today’s Agenda • Aggregations + Group By • String / Date / Time Operations • Output Control + Redirection • Nested Queries • Join • Common Table Expressions • Window Functions 6 / 64 Advanced SQL Relational Language Example Database SQL Fiddle: Link sid name login age gpa sid cid grade 1 Maria maria@cs 19 3.8 1 1 B students 2 Rahul rahul@cs 22 3.5 enrolled 1 2 A 3 Shiyi shiyi@cs 26 3.7 2 3 B 4 Peter peter@ece 35 3.8 4 2 C cid name 1 Computer Architecture courses 2 Machine Learning 3 Database Systems 4 Programming Languages 7 / 64 Advanced SQL Aggregates Aggregates • Functions that return a single value from a bag of tuples: I AVG(col)−! Return the average col value.
    [Show full text]
  • Data Warehousing
    DMIF, University of Udine Data Warehousing Andrea Brunello [email protected] April, 2020 (slightly modified by Dario Della Monica) Outline 1 Introduction 2 Data Warehouse Fundamental Concepts 3 Data Warehouse General Architecture 4 Data Warehouse Development Approaches 5 The Multidimensional Model 6 Operations over Multidimensional Data 2/80 Andrea Brunello Data Warehousing Introduction Nowadays, most of large and medium size organizations are using information systems to implement their business processes. As time goes by, these organizations produce a lot of data related to their business, but often these data are not integrated, been stored within one or more platforms. Thus, they are hardly used for decision-making processes, though they could be a valuable aiding resource. A central repository is needed; nevertheless, traditional databases are not designed to review, manage and store historical/strategic information, but deal with ever changing operational data, to support “daily transactions”. 3/80 Andrea Brunello Data Warehousing What is Data Warehousing? Data warehousing is a technique for collecting and managing data from different sources to provide meaningful business insights. It is a blend of components and processes which allows the strategic use of data: • Electronic storage of a large amount of information which is designed for query and analysis instead of transaction processing • Process of transforming data into information and making it available to users in a timely manner to make a difference 4/80 Andrea Brunello Data Warehousing Why Data Warehousing? A 3NF-designed database for an inventory system has many tables related to each other through foreign keys. A report on monthly sales information may include many joined conditions.
    [Show full text]
  • Working with Mondrian and Pentaho 176
    Open source business analytics William D. Back Nicholas Goodman Julian Hyde SAMPLE CHAPTER MANNING Mondrian in Action by William D. Back Nicholas Goodman and Julian Hyde Chapter 9 Copyright 2014 Manning Publications brief contents 1 ■ Beyond reporting: business analytics 1 2 ■ Mondrian: a first look 17 3 ■ Creating the data mart 36 4 ■ Multidimensional modeling: making analytics data accessible 57 5 ■ How schemas grow 86 6 ■ Securing data 115 7 ■ Maximizing Mondrian performance 133 8 ■ Dynamic security 162 9 ■ Working with Mondrian and Pentaho 176 10 ■ Developing with Mondrian 198 11 ■ Advanced analytics 227 v Working with Mondrian and Pentaho This chapter is recommended for ✓ Business analysts ✓ Data architects ✓ Enterprise architects ✓ Application developers As we pointed out in chapter 1, Mondrian is an OLAP engine. It provides a lot of power, but you need to couple it with an end-user tool to make it effective. As we’ve explored Mondrian’s various capabilities, we’ve used examples of end-user tools use to explain particular points, but we haven’t looked very deeply into any of the specific tools. In this chapter, we’ll broaden our scope and cover topics that should be of interest to all users of Mondrian. We’re going to take a look at several tools that are commonly used with Mondrian and show how they’re used. These tools are written and maintained by Pentaho, as well as several tools from other companies that work closely with Pentaho. As you’ll see, there is a rich variety of tools tai­ lored to specific needs: 176 Pentaho Analyzer 177 ■ Pentaho Analyzer—An Enterprise Edition plugin that provides drag-and-drop analysis as well as advanced charting.
    [Show full text]
  • Sql Server to Aurora Postgresql Migration Playbook
    Microsoft SQL Server To Amazon Aurora with Post- greSQL Compatibility Migration Playbook 1.0 Preliminary September 2018 © 2018 Amazon Web Services, Inc. or its affiliates. All rights reserved. Notices This document is provided for informational purposes only. It represents AWS’s current product offer- ings and practices as of the date of issue of this document, which are subject to change without notice. Customers are responsible for making their own independent assessment of the information in this document and any use of AWS’s products or services, each of which is provided “as is” without war- ranty of any kind, whether express or implied. This document does not create any warranties, rep- resentations, contractual commitments, conditions or assurances from AWS, its affiliates, suppliers or licensors. The responsibilities and liabilities of AWS to its customers are controlled by AWS agree- ments, and this document is not part of, nor does it modify, any agreement between AWS and its cus- tomers. - 2 - Table of Contents Introduction 9 Tables of Feature Compatibility 12 AWS Schema and Data Migration Tools 20 AWS Schema Conversion Tool (SCT) 21 Overview 21 Migrating a Database 21 SCT Action Code Index 31 Creating Tables 32 Data Types 32 Collations 33 PIVOT and UNPIVOT 33 TOP and FETCH 34 Cursors 34 Flow Control 35 Transaction Isolation 35 Stored Procedures 36 Triggers 36 MERGE 37 Query hints and plan guides 37 Full Text Search 38 Indexes 38 Partitioning 39 Backup 40 SQL Server Mail 40 SQL Server Agent 41 Service Broker 41 XML 42 Constraints
    [Show full text]
  • Firebird 3 Windowing Functions
    Firebird 3 Windowing Functions Firebird 3 Windowing Functions Author: Philippe Makowski IBPhoenix Email: pmakowski@ibphoenix Licence: Public Documentation License Date: 2011-11-22 Philippe Makowski - IBPhoenix - 2011-11-22 Firebird 3 Windowing Functions What are Windowing Functions? • Similar to classical aggregates but does more! • Provides access to set of rows from the current row • Introduced SQL:2003 and more detail in SQL:2008 • Supported by PostgreSQL, Oracle, SQL Server, Sybase and DB2 • Used in OLAP mainly but also useful in OLTP • Analysis and reporting by rankings, cumulative aggregates Philippe Makowski - IBPhoenix - 2011-11-22 Firebird 3 Windowing Functions Windowed Table Functions • Windowed table function • operates on a window of a table • returns a value for every row in that window • the value is calculated by taking into consideration values from the set of rows in that window • 8 new windowed table functions • In addition, old aggregate functions can also be used as windowed table functions • Allows calculation of moving and cumulative aggregate values. Philippe Makowski - IBPhoenix - 2011-11-22 Firebird 3 Windowing Functions A Window • Represents set of rows that is used to compute additionnal attributes • Based on three main concepts • partition • specified by PARTITION BY clause in OVER() • Allows to subdivide the table, much like GROUP BY clause • Without a PARTITION BY clause, the whole table is in a single partition • order • defines an order with a partition • may contain multiple order items • Each item includes
    [Show full text]
  • Microsoft SQL Server Analysis Services Multidimensional Performance and Operations Guide Thomas Kejser and Denny Lee
    Microsoft SQL Server Analysis Services Multidimensional Performance and Operations Guide Thomas Kejser and Denny Lee Contributors and Technical Reviewers: Peter Adshead (UBS), T.K. Anand, KaganArca, Andrew Calvett (UBS), Brad Daniels, John Desch, Marius Dumitru, WillfriedFärber (Trivadis), Alberto Ferrari (SQLBI), Marcel Franke (pmOne), Greg Galloway (Artis Consulting), Darren Gosbell (James & Monroe), DaeSeong Han, Siva Harinath, Thomas Ivarsson (Sigma AB), Alejandro Leguizamo (SolidQ), Alexei Khalyako, Edward Melomed, AkshaiMirchandani, Sanjay Nayyar (IM Group), TomislavPiasevoli, Carl Rabeler (SolidQ), Marco Russo (SQLBI), Ashvini Sharma, Didier Simon, John Sirmon, Richard Tkachuk, Andrea Uggetti, Elizabeth Vitt, Mike Vovchik, Christopher Webb (Crossjoin Consulting), SedatYogurtcuoglu, Anne Zorner Summary: Download this book to learn about Analysis Services Multidimensional performance tuning from an operational and development perspective. This book consolidates the previously published SQL Server 2008 R2 Analysis Services Operations Guide and SQL Server 2008 R2 Analysis Services Performance Guide into a single publication that you can view on portable devices. Category: Guide Applies to: SQL Server 2005, SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 Source: White paper (link to source content, link to source content) E-book publication date: May 2012 200 pages This page intentionally left blank Copyright © 2012 by Microsoft Corporation All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher. Microsoft and the trademarks listed at http://www.microsoft.com/about/legal/en/us/IntellectualProperty/Trademarks/EN-US.aspx are trademarks of the Microsoft group of companies. All other marks are property of their respective owners.
    [Show full text]
  • Microsoft Business Intelligence Interoperability with SAP
    Microsoft Business Intelligence Interoperability with SAP Published: April 2009 Abstract : This white paper describes the key aspects of the Microsoft Business Intelligence (BI) solution including the Microsoft products and services that are used in the solution. The paper also describes how these components can interoperate together to deliver an effective BI solution to SAP customers. It assumes that the reader has a working knowledge of SAP ERP solutions, and an understanding of Microsoft ® products including Microsoft ® Office Excel ® 2007, Microsoft ® Office SharePoint ® Server 2007, and Microsoft ® SQL Server ® 2008. ii Contents Executive Summary....................................................................................................................1 Microsoft BI Introduction .............................................................................................................2 Making Microsoft BI People Ready.............................................................................................3 The SAP and Microsoft Alliance .................................................................................................4 Microsoft Business Intelligence for SAP.....................................................................................5 Scenario 1: Connect Directly to SAP......................................................................................5 Scenario 2: Extract Data from SAP BW .................................................................................7 SAP Business Suite
    [Show full text]