User Manual. for the. Database Normalizer. application. Elmar Jürgens 2002-2004 juergens@in.tum.de



Similar documents
Theory of Relational Database Design and Normalization

Chapter 10. Functional Dependencies and Normalization for Relational Databases

Learn how to create web enabled (browser) forms in InfoPath 2013 and publish them in SharePoint InfoPath 2013 Web Enabled (Browser) forms

RANGER S.A.S 3D (Survey Analysis Software)

Chapter 10 Functional Dependencies and Normalization for Relational Databases

JustClust User Manual

Normal forms and normalization

MICROSOFT ACCESS 2003 TUTORIAL

DATABASE NORMALIZATION

Databases -Normalization III. (N Spadaccini 2010 and W Liu 2012) Databases - Normalization III 1 / 31

Theory of Relational Database Design and Normalization

Database Design and Normalization

Topic: Relationships in ER Diagram and Relationships in MS Access

Ken Goldberg Database Lab Notes. There are three types of relationships: One-to-One (1:1) One-to-Many (1:N) Many-to-Many (M:N).

The Application Getting Started Screen is display when the Recruiting Matrix 2008 Application is Started.

RELATIONAL DATABASE DESIGN

Beginning Microsoft Access

Lecture Notes on Database Normalization

Introduction Decomposition Simple Synthesis Bernstein Synthesis and Beyond. 6. Normalization. Stéphane Bressan. January 28, 2015

Graphing Parabolas With Microsoft Excel

Petrel TIPS&TRICKS from SCM

XFlash A Web Application Design Framework with Model-Driven Methodology

Data Imported and Displayed

Didacticiel Études de cas. Association Rules mining with Tanagra, R (arules package), Orange, RapidMiner, Knime and Weka.

Creating A Legal Document In MS Word

Microsoft Access 2010: Basics & Database Fundamentals

Click to create a query in Design View. and click the Query Design button in the Queries group to create a new table in Design View.

Normalization in Database Design

CDOT Linking Excel Documents to MicroStation

How To Use Syntheticys User Management On A Pc Or Mac Or Macbook Powerbook (For Mac) On A Computer Or Mac (For Pc Or Pc) On Your Computer Or Ipa (For Ipa) On An Pc Or Ipad

Hostname (DNS Resolvable) Network Objects

Qualtrics Survey Software. Create an Account


MICROSOFT OUTLOOK 2010 WORK WITH CONTACTS

A Basic introduction to Microsoft Access

THE TOP TEN TIPS FOR USING QUALTRICS AT BYU

A. TRUE-FALSE: GROUP 2 PRACTICE EXAMPLES FOR THE REVIEW QUIZ:

Liferay Portal User Guide. Joseph Shum Alexander Chow

MCQs~Databases~Relational Model and Normalization

This activity will show you how to draw graphs of algebraic functions in Excel.

UF Health SharePoint 2010 Document Libraries

Real Estate Reports Overview Quick Reference Guide

Relational Database Basics Review

Wave Analytics Data Integration

Table and field properties Tables and fields also have properties that you can set to control their characteristics or behavior.

Database Systems Concepts, Languages and Architectures

How to set up a database in Microsoft Access

Two new DB2 Web Query options expand Microsoft integration As printed in the September 2009 edition of the IBM Systems Magazine

Computer Training Centre University College Cork. Excel 2013 Pivot Tables

Lasse Cronqvist. Tosmana. TOol for SMAll-N Analysis. version 1.2. User Manual

6.830 Lecture PS1 Due Next Time (Tuesday!) Lab 1 Out today start early! Relational Model Continued, and Schema Design and Normalization

1. Starting the management of a subscribers list with emill

Knowledgebase Article

Microsoft Word Track Changes

MICROSOFT OUTLOOK 2010 READ, ORGANIZE, SEND AND RESPONSE S

Access Queries (Office 2003)

COSC344 Database Theory and Applications. Lecture 9 Normalisation. COSC344 Lecture 9 1

Chapter 5: Logical Database Design and the Relational Model Part 2: Normalization. Introduction to Normalization. Normal Forms.

DI SHAREPOINT PORTAL. User Guide

INTRODUCTION TO DESKTOP PUBLISHING

Excel will open with the report displayed. You can format and/or save the report as desired.

Handout: Creating Forms in Word 2010

Database Design and Normalization

Introduction to Windows XP Operating System

Database Forms and Reports Tutorial

Creating a Table of Contents in Microsoft Word 2011

MindView Advanced Training Guide (PC)

4.1. Title: data analysis (systems analysis) Annotation of educational discipline: educational discipline includes in itself the mastery of the

Microsoft Excel 2013 Tutorial

Basic Pivot Tables. To begin your pivot table, choose Data, Pivot Table and Pivot Chart Report. 1 of 18

Creating Interactive PDF Forms

Data Integration with Talend Open Studio Robert A. Nisbet, Ph.D.

Third-party software is copyrighted and licensed from Kofax s suppliers. This product is protected by U.S. Patent No. 5,159,667.

Bitrix Intranet Portal. Business Process Guide

The document may be freely distributed in its entirety, either digitally or in printed format, to all EPiServer Mail users.

Business Insight Report Authoring Getting Started Guide

MS Access Lab 2. Topic: Tables

CHAPTER 6: ANALYZE MICROSOFT DYNAMICS NAV 5.0 DATA IN MICROSOFT EXCEL

Each Ad Hoc query is created by making requests of the data set, or View, using the following format.

Database Studio is the new tool to administrate SAP MaxDB database instances as of version 7.5.

Schema Refinement, Functional Dependencies, Normalization

Toad for Data Analysts, Tips n Tricks

C# Cname Ccity.. P1# Date1 Qnt1 P2# Date2 P9# Date9 1 Codd London Martin Paris Deen London

Learning Services IT Guide. Access 2013

Bitrix Site Manager 4.1. User Guide

NLUI Server User s Guide

Microsoft Access 2000

Project Management: Intermediate Microsoft Project 2010

DEPLOYMENT GUIDE Version 2.1. Deploying F5 with Microsoft SharePoint 2010

DbSchema Tutorial with Introduction in SQL Databases

Formulas, Functions and Charts

Release 2.1 of SAS Add-In for Microsoft Office Bringing Microsoft PowerPoint into the Mix ABSTRACT INTRODUCTION Data Access

Microsoft Access 2007

Advanced Outlook Tutorials

Wave Analytics Data Integration Guide

How to Import Microsoft Access Databases into FmPro Migrator

Configuring Data Masking

What are we dealing with? Creating a New MS Access Database

Once the schema has been designed, it can be implemented in the RDBMS.

IBM Rational Rhapsody Gateway Add On. CaliberRM Coupling Notes

Transcription:

User Manual for the Database Normalizer application Elmar Jürgens 2002-2004 juergens@in.tum.de Introduction 1 Purpose of this document 1 Concepts 1 Explanation of the User Interface 2 Overview 2 All Relations Region 2 Create New Relation Region 3 Edit Current Relation Region 3 Menu entries 7 Samples 8 Conclusion 9 Possible future extensions 9

1 Introduction About the DATABASE NORMALIZER The Database Normalizer (DN) is an application that works with functional dependencies to compute normalization properties of relational database schemas. It can determine the normal form a schema is in and compute candidate keys and equivalent tuples. In addition to these analysis features it implements a synthesis algorithm that can create relational schemas from functional dependencies that are guaranteed to be in third normal form (3NF) and contain a minimal set of relations. It s intended fields of use are twofold: In academic teaching, like in courses about database systems to support students, and in practice to help database developers compare different solutions for database schemas with respect to normalization. Purpose of this document This user manual contains all the information necessary to exploit all the functionality of the application. Since database normalization is a relatively old field in computer science, a lot of material on it exists already and is freely available on the web. Thus, rather than rehash normalization theory yet again, this document expects the reader to have some basic understanding of it. However, this application can well be (and really is meant to be) used to support the process of learning about database normalization. Concepts and Terms The data contained in Relational Database Management Systems (RDBMS) can be divided into two different classes: Data contained in tables, and metadata describing the schema of these tables. Database normalization, and with it the DN and this document, only deal with the schematic level: How to form the schemas of the tables. The mathematical model for a table is a relation. A relation is a set of attributes. Attributes have a name and are ordered in the relation. (In the database, a relation corresponds to a table, and an attribute to a column in the table.) Furthermore, a relation contains functional dependencies (FDs) between its attributes. The attributes and functional dependencies determine the normal form of the relation. 1

2 Explanation of the User Interface Overview The user interface consists of three different regions. ALL RELATIONS Region This tree view shows all the relations that currently exist in the application. Two different kinds of relations are supported: Simple Relation: The simple relation is a relation as explained above: It contains attributes and relations between them. It cannot contain other relations. Since the attributes are unstructured (that is, cannot contain lists or relations), all Simple Relations are in first normal form. Composite Relation: A Composite relation groups various relations (Simple Relations or Composite relations) into a logical unit. It does not contain attributes or functional dependencies itself. Rather, its attributes and functional dependencies are the union of the attributes and functional dependencies of its contained relations. Its normal form the lowest normal form a contained relation is in. The composite relation is used to model a database schema. A schema is said to be in a normal form, if all of its contained relations are in the normal form, just as holds for the composite relation. So you can use composite relations to group relations into a schema. As you would expect, clicking on a relation opens its properties in the Edit Current Relation region. 2

3 CREATE NEW RELATION Region This region is used to create a new simple or composite relation. The append buttons are used to insert a new simple or composite relation into a composite relation. (And thus are deactivated, if a Simple Relation is selected in the All Relations View, since relations cannot be appended to a Simple Relation.) Before appending a Simple Relation to a Composite Relation After appending a Simple Relation to a Composite Relation EDIT CURRENT RELATION Region This region displays and edits the properties of the relation currently selected in the All Relations View: Properties Region The coloured buttons display the normal form, the relation is in. Every time the relation changes, the buttons are updated automatically. In the text fields, name and description can be entered for documentation purposes. Attributes region Add to, change or remove attributes from the relation. 3

4 Attention: Attribute names are application wide. Thus, if you want to use the same attribute in different relations, (i.e. as a foreign key,) you simply give it the same name. (Names are not case sensitive.) In some cases however, this may not be what you want. The attribute Name for example, might appear in many different applications, and all names might be independent from each other. So if you want different name scopes, a simple workaround is to add a prefix to the attributes name: Instead of using the attribute Name, use Person.Name and University.Name. Functional Dependencies Region Create functional dependencies or change them. (If you want to use attributes in a functional dependency, you must create it first. So the standard work cycle will be: Create relation, add all attributes and then add functional dependencies.) A simple dialog is used to create or edit functional dependencies: 4

5 Functional dependencies can be displayed in different forms: Edit: As FDs have been entered FDs with same left side are compacted into one Minimal cover of FDs that has still the same closure Transitive Closure of the FDs withour reflective parts. (that is: attributes from the left side do not appear on the right side) FDs contain only one attribute on the right side. (Opposite of Compressed) Complete transitive closure of the set of FDs Functional dependencies can only be edited on the Edit tab page. The buttons are disabled on all other tab pages. The available attributes list contains all attributes of the current relation. The two lists next to the arrow, Determinant and Determinated, contain the attributes on the left and right side of the functional dependency. Double clicking an attribute in the available Attributes list adds it to the functional dependency. (To the active list that is printed in bold. In this example, that is the left side). Double clicking an attribute in one of the lists next to the arrow removes it from the dependency. Clicking on a list next to the arrow makes it the active list. 5

6 Equivalence classes Tuples are sets of attributes. Two tuples are said to be in the same equivalence class, when they have the same transitive closure, that is, if they transitively determine the same attributes. Example: Attributes: ProfessorNumber TelephoneNumber RoomNumber SquareMeters Functional Dependencies ProfessorNumber -> TelephoneNumber TelephoneNumber -> ProfessorNumber ProfessorNumber -> RoomNumber RoomNumber -> SquareMeters Without transitive dependencies With transitive dependencies as dashed arrows In the graph that contains transitive dependencies it is easy to see that both Professor and TelephoneNumber have the same transitive closure. In this case, since both determine every attribute in the relation, both are candidate keys. 6

7 Menu entries File Menu Create new, store or load a file. All data is stored in xml files that could be used by other applications. Apart from these explicit store and load functions, the application persists its state on shutdown and loads it on start up. (Using the file ApplicationState.xml in the application directory) So if you forget to save your relations, they will still be there if you start the application the next time. Normalize Menu Offers two different synthesis normalization algorithms. Simple Synthesis is a naïve normalization algorithm that does not take equivalent classes of attribute tuples into account. Consistent Synthesis is an improved algorithm that lets you select the representers for classes of equivalent tuples. Example: Attributes: Professor.Name TelephoneNumber Room ResearchGroup Functional Dependencies: Professor.Name -> Room Room -> Professor.Name TelephoneNumber -> Room Room -> TelephoneNumber TelephoneNumber -> ResearchGroup Possible minimal cover Since in this example the attributes Professor.Name, TelephoneNumber and Room are equivalent, there are many different minimal covers possible: The equivalence can be represented by various combinations of dependencies, and the ResearchGroup can depend on any attribute of the equivalence class without changing the closure of the set of functional dependencies. Same closure, yet different minimal cover The result of the simple synthesis algorithm depends on the minimal. Since the algorithm does not really care which minimal cover it computes, the outcome is rather randomly. The consistent synthesis algorithm however takes the equivalence classes into account and always generates the same relational schema. Help Menu Displays a short about box. 7

8 Samples In 2NF but nor in 3NF Attributes: UniversityName Town Country Functional Dependencies: UniversityName -> Country UniversityName -> Town Town -> Country In 3NF but not in BDNF Attributes: BeerName Brewery FactoryUnit Functional Dependencies: BeerName -> Brewery Brewery, FactoryUnit -> BeerName In BCNF Attributes: StudentNumber Semester FirstName LastName Functional Dependencies: StudentNumber -> Semester StudentNumber -> FirstName StudentNumber -> LastName 8

9 Conclusion Possible future extensions Implementation of the analysis algorithm for normalization: The application does only implement a synthesis based algorithm for database normalization. It starts with dependencies and creates relations. It reaches BCNF if that can be done without breaking up dependencies, if not, it only reaches 3NF. In database theory exists another normalization algorithm that starts with a single denormalized relation and decomposes it reaching BCNF. (Breaking up dependencies if need be.) Graphical visualization of functional dependencies using graph layout tools like dot Functional dependencies can be displayed graphically using a graph like notation as used in the samples. Arbitrary relations could be visualized relatively simply using a tool like dot that takes care of the layout of the graph. Extraction of relational schemas and basic functional dependencies from existing databases Relational databases keep metadata about their data tables. This metadata contains information about the relations, attributes and keys. This schematic information could be read out of the database into the application to facilitate the work with normalization rules in real world applications. Creation of a library of normalization samples to support database lectures A large number of samples eases the understanding of normalization theory. Problems and solutions for them could be gathered in a central place to provide a starting point for students. 9