background preloader


Facebook Twitter

Ragged Hierarchies

Razza dimension server « Ranzal & Associates’ Weblog. Not well!! Does this resemble your IT person managing your financial master data? Traditionally, financial data marts and operation data stores are built and managed by IT. So how does the business user view and manage the hierarchies and metadata attributes without IT getting in the way? Coming from the IT side of the house, I have had the opinion that the business might “know the business”, but given the opportunity to manage a technical system they will take shortcuts and ultimately bring the IT solution back to a level they are comfortable with…and thanks to Bill Gates, Microsoft Excel ends up trumping the investment in technology.

I have found that there needs to be a bridge between IT and business users. There are many companies offering workflow tools to bridge the gap by helping the communication between business and IT. A win, win for everyone… right? Hyperion Data Relationship Management. Trees in SQL. A set-oriented method for representing trees in SQL that runs orders of magnitude faster than the adjacency list (i.e. child-parent pairs) method.

Trees in SQL

[Ed. note: A follow-up to this article is also available.] The usual example of a tree structure in SQL books is called an and it looks like this: CREATE TABLE Personnel (emp CHAR(10) NOT NULL PRIMARY KEY, boss CHAR(10) DEFAULT NULL REFERENCES Personnel(emp), salary DECIMAL(6,2) NOT NULL DEFAULT 100.00); Personnel emp boss salary =========================== 'Albert' 'NULL' 1000.00 'Bert' 'Albert' 900.00 'Chuck' 'Albert' 900.00 'Donna' 'Chuck' 800.00 'Eddie' 'Chuck' 700.00 'Fred' 'Chuck' 600.00 Another way of representing trees is to show them as .

The organizational chart would look like this as a directed graph: Albert (1,12) / \ / \ Bert (2,3) Chuck (4,11) / | \ / | \ / | \ / | \ Donna (5,6) Eddie (7,8) Fred (9,10) The first table is denormalized in several ways. The final problem is that the adjacency list model does not model . The gimmick? Representing Trees in Oracle SQL.

On its face, the relational database management system would appear to be a very poor tool for representing and manipulating trees.

Representing Trees in Oracle SQL

This chapter is designed to accomplish the following things: show you that a row in an SQL database can be thought of as an object show you that a pointer from one object to another can be represented by storing an integer key in a regular database column demonstrate the Oracle tree extensions (CONNECT BY ... PRIOR) show you how to work around the limitations of CONNECT BY with PL/SQL The canonical example of trees in Oracle is the org chart.

The integers in the supervisor_id are actually pointers to other rows in the corporate_slaves table. Need to display an org chart? This seems a little strange. Notice that we've used a subquery in the START WITH clause to find out who is/are the big kahuna(s). Though these folks are in the correct order, it is kind of tough to tell from the preceding report who works for whom. Four ways to work with hierarchical data. Storing Hierarchical Data in a Database [PHP & MySQL Tutorials] This article was written in 2003 and remains one of our most popular posts.

Storing Hierarchical Data in a Database [PHP & MySQL Tutorials]

If you’re keen to learn more about mastering database management, you may find this recent article on MySQL of great interest. Whether you want to build your own forum, publish the messages from a mailing list on your Website, or write your own cms: there will be a moment that you’ll want to store hierarchical data in a database. And, unless you’re using a XML-like database, tables aren’t hierarchical; they’re just a flat list. You’ll have to find a way to translate the hierarchy in a flat file. Storing trees is a common problem, with multiple solutions. In this article, we’ll explore these two methods of saving hierarchical data. This article contains a number of code examples that show how to save and retrieve data. The first, and most elegant, approach we’ll try is called the ‘adjacency list model’ or the ‘recursion method’.

As you can see, in the adjacency list method, you save the ‘parent’ of each node. <? Modeling Hierarchies. Published in Association with the Meta-Data and Data Modeling Summit June 14-16, 2005 - Long Branch, New Jersey For more information please visit - Possibly, the most difficult problem to support in the relational model is hierarchical data. A hierarchy according to Webster is a "group of persons or things arranged in order to rank grade, class, etc.

" Examples are organization structures, product reporting structures, employee-manager relations, and customer-to-customer relationships. There are three issues with hierarchical data: how to represent it logically; how to design it physically; and how to write SQL to navigate it. As so often happens, the data modeling community praises the logical purity of its solution, which is recursion. Joe Celko's Trees and Hierarchies in SQL for Smarties, (The Morg.