"Many Faces of Databases"

Compares and contrasts eight distinct types of databases: Single flat file, Hierarchical file, CODASYL network, Relational, ANSI SQL (1992 and 1999), Object-Oriented (and the Object-Relational hybrid), Dimensional model (star and snowflake), Object Role Model (ORM). What distinguishes each?TIME: tight for 1 hour; comfortable in 2+. Sparks many questions, discussion and challenges, to fill a half day.

WHERE: DAMA Minnesota chapter, MnIPS (Minnesota Information Professional Society), 2004.

ABSTRACT:

Compares and contrasts eight distinct types of databases: Single flat file, Hierarchical file, CODASYL network, Relational, ANSI SQL (1992 and 1999), Object-Oriented (and the Object-Relational hybrid), Dimensional model (star and snowflake), and Object Role Model (ORM). What distinguishes each? This one is colorful and of more general interest -- always well received.

This talk grew out of a request from the local professional society to clarify many confusing notions about different types of databases. They asked a lot of questions for me to answer. Even the most seasoned data modelers and administrators often can't tell you what characteristic(s) distinguish one data model(ing scheme) from another.

Databases have been around for several decades now. They show up in many forms, with many faces. This talk explores eight basic but different types of databases, stripping away much of the hype and confusion to focus in on the distinguishing characteristics of each type of database. It then goes on to discuss normalization and database design. We will take a stab at answering the following questions, some with answers that may surprise you.

What distinguishes the "Three great data structures:" hierarchical, network, and relational? What do they leave out? What is the future for relational databases and Relational DBMSs? What does the new ANSI SQL 1999 standard define as a database? Is it still relational? Do the DBMS vendors really care? What is an object database (growing out of Object-Orientation)? What is a multidimensional database? and what is it when transformed to a relational database? What kind of a database should you use for your Data Warehouse?

When is normalization necessary and why is it important? Is it universal (i.e., relevant) for all types of databases? What is denormalization? and why do we do it? What is the trade-off between normalization and performance? Should a Data Warehouse be normalized or denormalized?

What is the biggest problem with traditional database design (ER modeling)? What is an Object Role Model (ORM, á là Nijssen, Halpin)? Is there anything Object-Oriented about it? Why do we professionals seem to have so much trouble designing a "good" database? How do we know when we have a good database design?

Anyone with an interest in databases will not want to miss this discussion. We will cut through some fuzzy thinking and get down to the "truth" (á là Everest)! Come with your questions, things that have puzzled you in your dealings with databases.

EXPANDED ABSTRACT

Take a guess at answering the following questions BEFORE coming to the talk. You may be surprised at some of the answers.

- Preliminaries: data model, v. database v. database management system (DBMS)

- The "Three great data structures:" hierarchical, network, and relational.

What is the distinguishing characteristic of each?

Is this a complete categorization? or is anything left out?

- what is a relational database - according to Codd, and ANSI SQL 2 (1992)?

Does it have anything to do with relationSHIPS as the name might imply?

or why did Ted Codd call it a "relation" anyway?

What is the future for relational databases and Relational DBMSs?

- what is a database according to the new ANSI SQL:1999 standard?

Is it still relational? Do the DBMS vendors really care?

- What is normalization? when is it necessary and why is it important?

Is normalization universal (i.e., relevant) for all types of databases?

- what is an object database (growing out of Object-Orientation)?

- What kind of a database should you use for your Data Warehouse?

Does a data warehouse need to be normalized?

Should it be normalized? or should it be denormalized?

- what is a multidimensional database?

and what is it when transformed to a relational database?

(ANSWER: a star schema, then what is a snowflake?)

- what is an Object Role Model?

Is there anything Object-Oriented about it?

- What is the biggest problem with traditional database design (ER modeling)?

- Why do we (even professionals) seem to have so much trouble designing a "good" database?

How do we know when we have a good database design?

What does Graeme Simsion say about data modeling?

If you have a chance, go read before the talk:

SIMSION, Graeme, "You’re Making it up! Data Modeling: Analysis or Design?" The Data Administration Newsletter, 2004 October. <www.tdan.com/i031ht02.htm > or an earlier version: "Data Modeling: Testing the Foundations," Database Programming & Design (9:2), 1996 February, p.50-54; and "Letters to the Editor," 1996 June

- What is denormalization? and why do we do it?

- What is the tradeoff between normalization and performance?

Each of these questions has a short answer... and a long answer if you need more to really understand the answer. I might approach it by asking the attendees for the short answer (taking a poll), then giving my short answer with a brief explanation, and then asking if anyone still needs more explanation, or more detail or just answering some additional questions.