100% found this document useful (1 vote)
56 views81 pages

Data Modeling Made Simple With Embarcadero ER Studio Data Architect Adapting To Agile Data Modeling in A Big Data World 2nd Edition Steve Hoberman

The document promotes various ebooks available for instant download on ebookgate.com, focusing on topics related to data modeling, data science, and analytics. It highlights specific titles, including 'Data Modeling Made Simple with Embarcadero ER Studio' and 'Agile Data Science', among others. Additionally, it outlines the structure and content of the book 'Data Modeling Made Simple', emphasizing practical knowledge and best practices in data modeling using ER/Studio.

Uploaded by

kaneemagony
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
56 views81 pages

Data Modeling Made Simple With Embarcadero ER Studio Data Architect Adapting To Agile Data Modeling in A Big Data World 2nd Edition Steve Hoberman

The document promotes various ebooks available for instant download on ebookgate.com, focusing on topics related to data modeling, data science, and analytics. It highlights specific titles, including 'Data Modeling Made Simple with Embarcadero ER Studio' and 'Agile Data Science', among others. Additionally, it outlines the structure and content of the book 'Data Modeling Made Simple', emphasizing practical knowledge and best practices in data modeling using ER/Studio.

Uploaded by

kaneemagony
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 81

Instant Ebook Access, One Click Away – Begin at ebookgate.

com

Data Modeling Made Simple with Embarcadero ER


Studio Data Architect Adapting to Agile Data
Modeling in a Big Data World 2nd Edition Steve
Hoberman
https://ebookgate.com/product/data-modeling-made-simple-
with-embarcadero-er-studio-data-architect-adapting-to-agile-
data-modeling-in-a-big-data-world-2nd-edition-steve-
hoberman/

OR CLICK BUTTON

DOWLOAD EBOOK

Get Instant Ebook Downloads – Browse at https://ebookgate.com


Click here to visit ebookgate.com and download ebook now
Instant digital products (PDF, ePub, MOBI) available
Download now and explore formats that suit you...

Agile Data Science Building Data Analytics Applications


with Hadoop 1st Edition Russell Jurney

https://ebookgate.com/product/agile-data-science-building-data-
analytics-applications-with-hadoop-1st-edition-russell-jurney/

ebookgate.com

Modeling with Data Tools and Techniques for Scientific


Computing Ben Klemens

https://ebookgate.com/product/modeling-with-data-tools-and-techniques-
for-scientific-computing-ben-klemens/

ebookgate.com

Data structures and algorithms made easy in Java data


structure and algorithmic puzzles 2nd Edition Narasimha
Karumanchi
https://ebookgate.com/product/data-structures-and-algorithms-made-
easy-in-java-data-structure-and-algorithmic-puzzles-2nd-edition-
narasimha-karumanchi/
ebookgate.com

Agile Data Science 1st Edition Russell Jurney.

https://ebookgate.com/product/agile-data-science-1st-edition-russell-
jurney/

ebookgate.com
The data warehouse toolkit the complete guide to
dimensional modeling 2nd ed Edition Ralph Kimball

https://ebookgate.com/product/the-data-warehouse-toolkit-the-complete-
guide-to-dimensional-modeling-2nd-ed-edition-ralph-kimball/

ebookgate.com

Introduction to 3D Data Modeling with ArcGIS 3D Analyst


and Google Earth 1st Edition Heather Kennedy

https://ebookgate.com/product/introduction-to-3d-data-modeling-with-
arcgis-3d-analyst-and-google-earth-1st-edition-heather-kennedy/

ebookgate.com

Big Data Made Easy A Working Guide to the Complete Hadoop


Toolset 1st ed. Edition Frampton

https://ebookgate.com/product/big-data-made-easy-a-working-guide-to-
the-complete-hadoop-toolset-1st-ed-edition-frampton/

ebookgate.com

Modeling and Analysis of Compositional Data 1st Edition


Vera Pawlowsky-Glahn

https://ebookgate.com/product/modeling-and-analysis-of-compositional-
data-1st-edition-vera-pawlowsky-glahn/

ebookgate.com

Statistical Modeling and Analysis for Database Marketing


Effective Techniques for Mining Big Data 1st Edition Bruce
Ratner
https://ebookgate.com/product/statistical-modeling-and-analysis-for-
database-marketing-effective-techniques-for-mining-big-data-1st-
edition-bruce-ratner/
ebookgate.com
Adapting to Agile Data Modeling
in a Big Data World

second edition

Steve Hoberman
Published by:
Technics Publications, LLC
2 Lindsley Road, Basking Ridge, NJ 07920 U.S.A.
www.technicspub.com
Cover design by Mark Brye
Edited by Erin Elizabeth Long
Cartoons by Abby Denson, www.abbycomix.com

All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or
mechanical, including photocopying, recording or by any information storage and retrieval system, without written
permission from the publisher, except for the inclusion of brief quotations in a review.
The author and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of
any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential
damages in connection with or arising out of the use of the information or programs contained herein.
Embarcadero®, the Embarcadero Technologies logos, and all other Embarcadero Technologies product or service names
are trademarks or registered trademarks of Embarcadero Technologies, Inc. All other trademarks are property of their
respective owners and should be treated as such.
Copyright © 2015 by Technics Publications, LLC

ISBN, print ed. 9781634620925


ISBN, PDF 9781634620956
ISBN, Kindle 9781634620932
ISBN, ePub 9781634620949

First Printing 2011


Second Printing 2015 completely revised

Library of Congress Control Number: 2015910686

Embarcadero Technologies, Inc. is a leading provider of award-winning tools for application developers and database
professionals so they can design systems right, build them faster and run them better, regardless of their platform or
programming language. Ninety of the Fortune 100 and an active community of more than three million users worldwide
rely on Embarcadero products to increase productivity, reduce costs, simplify change management and compliance and
accelerate innovation. The company’s flagship tools include: Embarcadero® DBArtisan®, Delphi®, ER/Studio®, Rapid
SQL®, and RAD Studio. Founded in 1993, Embarcadero is headquartered in Austin, Texas, with offices located around
the world. Embarcadero is online at www.embarcadero.com.
Contents at a Glance

SECTION I: Foundation
CHAPTER 1: Data Model Overview
CHAPTER 2: ER/Studio Functionality
CHAPTER 3: ER/Studio Landscape

SECTION II: Data Model Objects


CHAPTER 4: Entities
CHAPTER 5: Submodels
CHAPTER 6: Attributes and Domains
CHAPTER 7: Relationships

SECTION III: Conceptual, Logical, and Physical Data


Models
CHAPTER 8: Conceptual Data Models
CHAPTER 9: Logical Data Models
CHAPTER 10: Physical Data Models

SECTION IV: Additional ER/Studio Features


CHAPTER 11: Data Dictionary
CHAPTER 12: Data Lineage
CHAPTER 13: Importing, Exporting, Printing, and Reporting
CHAPTER 14: Naming Standards
CHAPTER 15: Compare/Merge Utility
CHAPTER 16: Features for Agile Teams and Continuous Improvement
APPENDIX A: References
APPENDIX B: Answers to Exercises
APPENDIX C: Glossary
APPENDIX D: ER/Studio Commands Quick Reference
Index
Contents
Read me first!
Conventions Used in This Book
What’s Different in the 2nd Edition?
How to Get the Most out of This Book
SECTION I Foundation
CHAPTER 1 Data Model Overview
Finding Your Way
Representing an Information Landscape
Leveraging the Data Model
Embarking on Our Publishing Adventure
EXERCISE 1.1: Educating Your Neighbor
CHAPTER 2 ER/Studio Functionality
EXERCISE 2.1: Learning More About the ER/Studio Family
New Features in ER/Studio
My “Top 10” Favorite Features of ER/Studio
EXERCISE 2.2: Installing and Starting ER/Studio
CHAPTER 3 ER/Studio Landscape
Using the Windows
Data Model Explorer
Data Model Window
Overview Window
Zoom Window

Using the Menus


Application Menus
Shortcut Menus

Using the Toolbars


Using Keyboard Commands
Using the Status Bar
EXERCISE 3.1: Creating a New Data Model
Creating Title Blocks
Editing Title Blocks
Deleting Title Blocks

EXERCISE 3.2: Saving Your Data Model


EXERCISE 3.3: Closing and Opening Existing Data Models
EXERCISE 3.4: Getting Comfortable with ER/Studio
SECTION II Data Model Objects
CHAPTER 4 Entities
Entity Explanation
Entity Types
Entities in ER/Studio
Creating Entities
Creating Text Blocks
Editing Entities
Changing the Name of an Entity
Moving Entities
Resizing Entities
Changing the Appearance of Entities
Copying Entities
Finding Entities
Find Entity/View
Universal Naming Utility
Deleting Entities

EXERCISE 4.1: Creating Entities


CHAPTER 5 Submodels
Submodel Explanation
Submodels in ER/Studio
Creating Submodels
Editing Submodels
Moving Submodels
Deleting Submodels

EXERCISE 5.1: Changing Settings in Submodels


EXERCISE 5.2: Creating Three More Submodels
EXERCISE 5.3: Creating Title Blocks for Each Submodel
CHAPTER 6 Attributes and Domains
Attribute Explanation
Attribute Types
Attributes in ER/Studio
Creating Attributes
Editing Attributes
Moving Attributes
Defining Attributes
Changing the Appearance of Attributes
Copying Attributes
Finding Attributes
Deleting Attributes

EXERCISE 6.1: Creating Attributes


Key Explanation
Candidate Key
Primary and Alternate Keys
Surrogate Key
Foreign Key
Inversion Entry

EXERCISE 6.2: Clarifying Customer ID


Keys in ER/Studio
Creating a Key
Editing a Key

EXERCISE 6.3: Creating Keys


Domain Explanation
CHAPTER 7 Relationships
Relationship Explanation
Relationship Types
Cardinality
Independent vs. Dependent Entities
Recursion
Containment
Subtyping
EXERCISE 7.1: Reading a Model
Data Modeling Notations
Relationships in ER/Studio
Creating Relationships
Creating Subtypes
Creating Recursive Relationships
Duplicate Relationships
Duplicate Attributes
Creating Containment Relationships
Editing Relationships
Moving Relationships
Changing the Appearance of Relationships
Finding Relationships
Deleting Relationships

EXERCISE 7.2: Creating Relationships


SECTION III Conceptual, Logical, and Physical Data Models
CHAPTER 8 Conceptual Data Models
Conceptual Data Model Explanation
Relational and Dimensional Conceptual Data Models
Relational CDM Example
Dimensional CDM Example

Creating a Conceptual Data Model


Step 1: Ask the Five Strategic Questions
Step 2: Identify and Define the Concepts
For Relational
For Dimensional
Step 3: Capture the Relationships
For Relational
For Dimensional
Step 4: Determine the Most Useful Form
For Relational
For Dimensional
Step 5: Review and Confirm

EXERCISE 8.1: Creating a Conceptual Data Model


EXERCISE 8.3: Segmenting the Publisher CDM into Submodels
EXERCISE 8.4: Creating a Conceptual Data Model for Your Organization
CHAPTER 9 Logical Data Models
Logical Data Model Explanation
Relational and Dimensional Logical Data Models
Relational LDM Example
Dimensional LDM Example

Creating a Relational Logical Data Model


Normalization
Initial Chaos
First Normal Form (1NF)
Second Normal Form (2NF)
Third Normal Form (3NF)
Abstraction

Creating a Dimensional Logical Data Model


EXERCISE 9.1: Creating a Dimensional Logical Data Model
CHAPTER 10 Physical Data Models
Physical Data Model Explanation
Relational and Dimensional Physical Data Models
Relational PDM Example
Dimensional PDM Example

Creating a Physical Data Model in ER/Studio


Generating a Physical Data Model from a Logical Data Model
Generating a Physical Data Model from a Database (Reverse Engineering)
Reverse Engineering from Microsoft Access®
Reverse Engineering from MongoDB®
Reverse Engineering from Hive®
Generating a Physical Data Model from a SQL File

Generating a Database Using ER/Studio


Editing Tables
Customizing Datatype Mapping
Denormalization
Rolldown Denormalization
Rollup Denormalization
Star Schema

Denormalizing in ER/Studio
EXERCISE 10.1: Denormalizing
Views
Views in ER/Studio
EXERCISE 10.2: Creating Views
Indexing
Indexing in ER/Studio
EXERCISE 10.3: Indexing
Partitioning
Partitioning in ER/Studio
EXERCISE 10.4: Partitioning
EXERCISE 10.5: Tracing from Physical Back to Logical
SECTION IV Additional ER/Studio Features
CHAPTER 11 Data Dictionary
Importing a Data Dictionary
Types of Objects Imported from a Data Dictionary
Domains
Domains in ER/Studio
EXERCISE 11.1: Creating Domains
User-Defined Datatypes
User-Defined Datatypes in ER/Studio
EXERCISE 11.2: Creating User-Defined Datatypes
Reference Values
Reference Values in ER/Studio
EXERCISE 11.3: Creating Reference Values
Attachments
Attachments in ER/Studio
Exercise 11.4: Creating Attachments

CHAPTER 12 Data Lineage


Using the Data Lineage Tab
Defining Source Systems in ER/Studio
Creating Data Movement Rules in ER/Studio
Creating a Data Flow in ER/Studio
Using the Table Editor to Further Document Lineage
Using the Column Editor to Further Document Lineage
Exercise 12.1: Creating a Data Lineage
A Less Formal Way to Connect Things: User-Defined Mappings
CHAPTER 13 Importing, Exporting, Printing, and Reporting
Importing into ER/Studio
Importing from External Metadata
Importing from an ERX File
Importing from a SQL File

Exporting out of ER/Studio


Exporting to External Metadata
Exporting to XML
Exporting to a SQL file
Exporting an Image

Printing in ER/Studio
Reporting in ER/Studio
Exercise 13.1: Importing, Exporting, Printing, and Reporting
CHAPTER 14 Naming Standards
Creating a Naming Standards Template
Applying the Naming Standards Utility
Assigning Naming Standards to Objects
Automatic Naming Translation
Exercise 14.1: Creating a Naming Standard Template
CHAPTER 15 Compare/Merge Utility
Comparing Models and Submodels in ER/Studio
Exercise 15.1: Running the Compare and Merge Utility
CHAPTER 16 Features for Agile Teams and Continuous Improvement
Macros
Running Macros
Top 5 Favorite Macros
Creating Macros
Editing Macros
Deleting Macros
Renaming Macros
Exercise 16.1: Creating and Running Macros

Reusable Procedure Logic


Reusable Triggers
Reusable Procedures
Libraries

Change Management
Named Releases
Model Validation
APPENDIX A References
APPENDIX B Answers to Exercises
EXERCISE 1.1: Educating Your Neighbor
EXERCISE 5.1: Changing Settings in Submodels
EXERCISE 6.2: Clarifying Customer ID
Document Uniqueness Properties
Document the Characteristics of the Identifier
Define the Customer

EXERCISE 7.1: Reading a Model


EXERCISE 8.1: Creating a Conceptual Data Model
APPENDIX C Glossary
APPENDIX D ER/Studio Commands Quick Reference
Most Frequently Used Commands
Model Level Commands
Entity and Table Level Commands
Sublevel Commands
Attribute and Key Commands
Relationship Commands
Macro Commands
Index
Read me first!

Data Modeling Made Simple with Embarcadero ER/Studio Data Architect will provide the
business or IT professional with a practical working knowledge of data modeling concepts
and best practices, along with how to apply these principles with ER/Studio. You’ll build
many ER/Studio data models along the way, applying best practices to master these ten
objectives:
1. You will know why a data model is needed and which ER/Studio models are the
most appropriate for each situation.
2. You will be able to read a data model of any size and complexity with the same
confidence as reading a book.
3. You will know how to apply all of the key features of ER/Studio.
4. You will be able to build relational and dimensional conceptual, logical, and
physical data models in ER/Studio.
5. You will know how to create an efficient physical data model both by forward
engineering a logical data model and by reverse engineering a database.
6. You will improve data model quality and impact analysis results by leveraging
ER/Studio’s compare/merge utility.
7. You will achieve enterprise architecture through ER/Studio’s data lineage
functionality.
8. You will be able to apply ER/Studio’s data dictionary features.
9. You will learn ways of importing and exporting the data model as well as how to
print and report from ER/Studio.
10. You will leverage ER/Studio’s naming standards functionality to improve naming
consistency.
This book contains four sections. Section I introduces data modeling along with ER/Studio
functionality and landscape. You will learn why data modeling is so critical to software
development, and even more importantly, why data modeling is so critical to
understanding the business. You will also learn about the ER/Studio environment.
Chapter 1 explains the data model and why it is an invaluable wayfinding tool in eliciting
requirements and capturing a precise representation of the business. This chapter also
introduces the publisher case study, which we will use throughout the text to explain data
model concepts and ER/Studio functionality. Chapter 2 introduces you to ER/Studio Data
Architect (the data modeling software and the main component in the ER/Studio suite).
Learn what ER/Studio can do and how to install and start the software. Chapter 3 covers at
a broad level what features are within each ER/Studio tab, window, menu, and toolbar. By
the end of this section, you will have created and saved your first data model in ER/Studio
and be ready to start modeling in Section II!
Section II explains all of the symbols and text on a data model. Chapter 4 defines a
submodel and how to work with one. Chapter 5 defines an entity and instances and
discusses the different categories of entities. The three different levels at which entities
may exist—conceptual, logical, and physical—are also explained. Chapter 6 defines an
attribute and key, distinguishing the terms candidate, primary, surrogate, foreign, and
alternate key. Domains are also introduced in this chapter. Chapter 7 defines rules and
relationships. Cardinality and labels are explained so that the reader can read any data
model as easily as reading a book. Other types of relationships, such as recursive
relationships and subtyping, are also discussed. By the end of this section, you will be able
to “read” a data model of any size or complexity as well as create and modify entities,
attributes, and relationships in ER/Studio.
Section III explores the three different levels of models: conceptual, logical, and physical.
A conceptual data model (CDM) represents the business need within a defined scope, a
logical data model (LDM) the detailed business solution, and a physical data model
(PDM) the detailed technical solution. Chapter 8 focuses on the CDM, Chapter 9 the
LDM, and Chapter 10 the PDM. By the end of this section, you will be able to create
conceptual, logical, and physical data models in ER/Studio.
Section IV discusses additional features of ER/Studio: Chapter 11 covers the data
dictionary; Chapter 12 data lineage; Chapter 13 import, export, printing, and reporting;
Chapter 14 naming standards; Chapter 15 the compare and merge functionality; and
Chapter 16 iterative development practices including agile, macros, reusable procedure
logic, change management, and model validation.
To connect the book’s content with the key objectives stated on the previous page, the
following table shows the primary sections that support each objective.

Objective

Section 1 2 3 4 5 6 7 8 9 10

I ü ü ü

II ü ü ü

III ü ü ü ü ü

IV ü ü ü ü ü

Key points are included at the end of each chapter as a way to reinforce concepts. Every
chapter starts with a poem in the form of a haiku, which is a three-line poem containing
five syllables in the first line, seven in the second, and five in the third. After all, there is a
lot of creativity in data modeling!
The book is loaded with hands-on exercises along with their answers provided in
Appendix B. Appendix A contains all of the book’s references, Appendix C a glossary of
the terms used throughout the text, and Appendix D a quick reference sheet of ER/Studio
commands. There is also a comprehensive index.

Conventions Used in This Book


You will see the term object used frequently throughout the text. Object includes any data
model component such as entities, attributes, and relationships. As you work through the
book, you will see references to objects in data models, keys on the keyboard, and sections
of the ER/Studio environment such as options on ER/Studio menus, tools on the palette,
and dialog buttons. We make use of the following simple conventions:

Object names e.g., Customer Last Name is an attribute within the Customer entity.

menu options e.g., Insert > Entity refers to the “Entity” option on the “Insert” menu.

Tool, tab, screen, or e.g., Datatype Mapping Editor, Data Model Explorer
window name

<keyboard keys> e.g., <ALT + I>, then <E>


(Means press and hold the <ALT> key and then press the <I> key, then release both and press the <E> key.)

<dialog buttons> e.g., <OK> <Cancel> <Help>

In addition to the above conventions, there are two types of spreadsheets you will see
frequently throughout the text, one describing different ways to invoke the same
command, and one describing tabs available on a screen. Here is an example of the
spreadsheet showing different ways to invoke the same command, in this case creating an
entity:

Menu Toolbar Explorer Shortcut Shortcut


Key Menu

Insert > Entity Modeling toolbar: Right-click on <ALT + I>, then Right-click on
Entities, New <E> white space, Insert
Entity… Entity

Become an ER/Studio Hotshot:


Choose View > Diagram And Object Display
Options, or click on the icon , and then
experiment with the display level settings.
The three settings that are relevant in this
chapter are Definition, Note, and Entity.
Definition displays the definition of each
entity in the entity box, Note displays the
note, and Entity just displays the entity name
in the box. Choose Entity for the following
example.
This spreadsheet describes five ways to create an entity such as selecting the Insert menu
and then selecting Entity or right-clicking on any white space around the data model and
then selecting Insert Entity. In the same spreadsheet, there are often tips related to these
commands such as choosing different ways to view the entities on the diagram. These tips
will help you quickly become an ER/Studio Hotshot! The second spreadsheet describes
each tab on a screen as in this example from Chapter 5 on submodels:

Tab Here’s what you need to know:

Attributes Choose which attributes of the entities selected to include in the submodel. If you deselect an attribute,
ER/Studio can display an ellipsis to indicate that not all attributes are displayed.

Definition Enter a definition for the submodel.

Attribute Bindings Bind an external piece of information, such as a Microsoft Word document or PDF file, to the submodel.
Very useful for requirements documents, user stories, etc.

Security Information Change or view the current security information as defined in the Data Dictionary. (Data Dictionary will be
discussed in Chapter 11.)

To keep this book simple, instead of going into detail on each tab, we’ll briefly describe
each tab as shown in the above spreadsheet including covering which settings are most
important to know.

What’s Different in the 2nd Edition?


ER/Studio has been updated with many powerful features that are described in this text
including support for NoSQL and for agile development. In addition, a number of
corrections from the first edition were applied as well as updates based on my evolving
perspective on data modeling and updates on how to use ER/Studio based on my
continued experience using the tool on many data modeling assignments.

How to Get the Most out of This Book


Here is a suggested approach to leveraging this book based upon your data modeling and
ER/Studio experience:

Data Modeling ER/Studio Suggested Approach


Experience Experience

Little or None Little or None Start at the beginning of the text and read through Chapter 10 on Physical Data
Models (Sections I through III). Make sure you do all of the data modeling and
ER/Studio exercises, and save Section IV for after you get comfortable with
basic ER/Studio functionality.

Good or Great Little or None You can skip Chapter 1 and go straight to Chapters 2 and 3 to get comfortable
with the ER/Studio landscape. Then, in each of the chapters in Sections II and
III, briefly scan the data modeling sections and focus on the ER/Studio-specific
sections. Save Section IV for after you get comfortable with the basic
ER/Studio features.

Good or Great Good or Great You can treat this book as a reference, and whenever you need a refresher in a
certain topic, you can use the table of contents and index to find that topic.
Make sure you read about the latest features of ER/Studio in Chapter 2 and
read the feature chapters from Section IV.

This book will explain data modeling and how to use ER/Studio while still maintaining
the spirit of keeping it simple. Keeping it simple required resisting the temptation to go
into more detail than necessary and saving the more advanced stuff for the ER/Studio User
Guide that comes with the product.
I am a firm believer in the 80/20 rule; you can learn 80 percent of data modeling and
ER/Studio functionality in 20 percent of the time, and then learn the remaining 20 percent
you need to know over time by practicing with the tool and by taking on more and more
challenging data modeling assignments.
I am also a firm believer in playing. We might as well have fun learning, so throughout the
book, feel free to play with the buttons and menus and see what happens. You can always
hit the undo button or close your data model without saving it.
Data modeling is more than a job or a career—it is a mindset, an invaluable process, a
healthy addiction, a way of life. Remember to Keep It Simple and enjoy the ride!
SECTION I
Foundation

This section introduces data modeling and the ER/Studio landscape. Learn why data
modeling is so critical to software development and, even more importantly, why data
modeling is so critical to understanding the business. You will also learn about the
ER/Studio environment.
Chapter 1 explains the data model and why it is an invaluable wayfinding tool in eliciting
requirements and capturing a precise representation of the business. This chapter also
introduces the publisher case study we will use throughout the text. Chapter 2 introduces
you to ER/Studio Data Architect (ER/Studio). Learn what ER/Studio can do and how to
install and start the software. Chapter 3 covers at a broad level what features are within
each ER/Studio tab, window, menu, and toolbar. By the end of this section, you will have
created and saved your first data model in ER/Studio and be ready to starting modeling in
Section II!
CHAPTER 1
Data Model Overview

How do I get there?


Maps, blueprints, data models
Please show me the way
I gave the steering wheel a heavy tap with my hands as I realized that, once again, I was
completely lost. It was about an hour before dawn, I was driving in France, and an
important business meeting awaited me. I spotted a gas station up ahead that appeared to
be open. I parked, went inside, and showed the attendant the address of my destination.
I don’t speak French and the attendant didn’t speak English. The attendant did, however,
recognize the name of the company I needed to visit. Wanting to help and unable to
communicate verbally, the attendant took out a pen and paper. He drew lines for streets,
circles for roundabouts along with numbers for exit paths, and rectangles for his gas
station and my destination, MFoods. The picture he drew resembled Figure 1.1.

Figure 1.1 Simplification of geographic landscape

With this custom-made map, which contained only the information that was relevant to
me, I arrived at my address without making a single wrong turn. This map was a model of
the actual roads I needed to travel.
A map simplifies a complex geographic landscape in the same way that a data model
simplifies a complex information landscape. In many cases, the complexities in the actual
data can make those roundabouts in France look ridiculously simple.
This chapter explains the data model and introduces the publishing case study that appears
in each chapter, allowing you to build on prior work.
Finding Your Way
If the term data model does not excite you or your business users, try the term wayfinding
tool instead. Wayfinding encompasses all of the techniques and tools used by people (and
animals) to find their way from one site to another. If travelers navigate by the stars, for
example, the stars are their wayfinding tools. Maps and compasses are also wayfinding
tools.
All models are wayfinding tools. A model is a set of symbols and text used to make a
complex concept easier to grasp. The world around us is full of obstacles that can
overwhelm our senses and make it very challenging to focus only on the relevant
information needed to make intelligent decisions. A map helps a visitor navigate a city. An
organization chart helps an employee understand reporting relationships. A blueprint helps
an architect communicate building plans. The map, organization chart, and blueprint are
all types of models that represent a filtered, simplified view of something complex, with
the goal of improving a wayfinding experience by helping people understand part of the
real world.
It would probably have taken me hours of trial and error to reach my destination in France,
whereas that simple map the gas station attendant drew provided me with an almost
instantaneous broad understanding of how to reach my destination. A model makes use of
standard symbols that allow one to grasp the content quickly. In the map he drew for me,
the attendant used lines to symbolize streets and circles to symbolize roundabouts. His
skillful use of those symbols helped me visualize the streets and roundabouts.

Representing an Information Landscape


A data model is a wayfinding tool for both business and data professionals that uses a set
of symbols and text to precisely explain a subset of real information to improve
communication within the organization and thereby lead to a more flexible and stable
application environment. A line represents a motorway on a map of France. A box with the
word “Customer” within it represents the concept of a real Customer, such as Bob, IBM,
or Walmart, on a data model.
Our broad definition of a data model as “a set of symbols and text that precisely explain a
subset of real information” encompasses models in many different forms. Data models can
look like the box and line drawings that are the subject of this book, or they can take other
forms such as Unified Modeling Language (UML) Class Diagrams, spreadsheets, or State
Transition Diagrams. All of these models are wayfinding tools designed with the single
purpose of simplifying complex information to facilitate communication in our real world.

Leveraging the Data Model


Precision, with respect to data modeling, means there is a clear, unambiguous way of
reading every symbol and term on the model. You might argue with others about whether
the rule is accurate, but that is a different argument. In other words, it is not possible for
you to view a symbol on a model and say “I see A here” and for someone else to view the
same symbol and respond “I see B here.” In a data model, precision is primarily the result
of applying a standard set of symbols. The traffic circles the gas station attendant drew for
me were standard symbols we both understood. There are also standard symbols used in
data models, as we will discover shortly.
Traditionally, data models have been built during the analysis and design phases of a
project to ensure the requirements for a new application are fully understood and correctly
captured before the actual database is created. Due to being precise, the data model has
additional uses as well:
To understand an existing application. The data model provides a simple and
precise picture of the concepts within an application. We can derive a data model
from an existing application by examining the application’s database and building a
data model of its structures. The technical term for the process of building data
models from existing applications is reverse engineering. Recently, a manufacturing
organization needed to move a 25-year-old application to a new database platform.
This was a very large application, so to understand its structures, we reverse
engineered the database into a data model.
To manage risk. A data model can capture the concepts and interactions that are
impacted by a development project or program. What is the impact of adding or
modifying structures for an application already in production? How many of an
application’s structures are needed for archival purposes? Many organizations today
purchase software and then customize it. One example of managing risk through
impact analysis would be to use data modeling to determine what impact modifying
its structures would have on the purchased software.
To learn about the business. As a prerequisite to a large development effort, it
usually is necessary to understand how the business works before you can
understand how the applications that support the business will work. Before building
an order entry system, for example, you need to understand the order entry business
process. One of my favorite sentences in the classic 1978 text Data and Reality by
William Kent occurs during a section where Kent is discussing the steps required to
build a database to store book information: So, once again, if we are going to have a
database about books, before we can know what one representative stands for, we
had better have a consensus among all users as to what “one book” is.
To educate team members. When new team members need to come up to speed or
developers need to understand requirements, a data model is an effective
explanatory medium. A picture is worth a thousand words, and a data model is a
picture that can convey information at different levels of detail. Whenever a new
person joined our department, I spent some time walking through a series of data
models to educate the person on concepts and rules as quickly as possible.

Embarking on Our Publishing Adventure


In addition to being a data modeler, I am also the CEO of a large publishing empire called
Technics Publications, LLC. “Empire” might be a slight exaggeration, as I am also the
only employee. Being a one-person company has a very large advantage however, in that I
know the publishing business inside and out. I can describe every step necessary to
produce a book. Publishing is a great example to use in this book because I can be your
business expert, and together we will build the data models from idea through design.

In fact, let’s build our first publishing data model right now! However, instead of the
typical boxes and lines we associate with a data model, let’s start with a data model in the
form of a spreadsheet. Data models come in many forms, and perhaps the most common
form of data model we work with on a daily basis is the spreadsheet. A spreadsheet is a
representation of a paper worksheet containing a grid defined by rows and columns where
each cell in the grid can contain text or numbers. The columns often contain different
types of information.
As a publisher, I need to submit information about each new title to many stores and
distributors. Businesses such as Amazon.com and Barnes & Noble need to know
® ®

information about an upcoming title so they can sell the title on their Websites and in their
stores.
Take a moment and look at the front and back covers of this book. What information do
you see? Table 1.1 contains a subset of the information I saw when doing this exercise.
Data Modeling Made Simple with Embarcadero ER/Studio Data Architect
Steve Hoberman
$59.95
DATA MODELING / DATABASE DESIGN
Build a working knowledge of data modeling concepts and best practices, along with how to apply these principles with
ER/Studio…
Table 1.1 Information on the front and back cover of Data Modeling Made Simple with Embarcadero ER/Studio
Data Architect

We can also list the graphics, barcode, etc., but this is enough to get us started.
We can now take this information and list it in the form of a spreadsheet, as you see in
Table 1.2.

Title Name Author Title Retail Category Title Description


Name Price Name

Data Modeling Made Simple with Steve Hoberman $59.95 DATA Build a working knowledge of data
Embarcadero ER/Studio Data MODELING / modeling concepts and best
Architect DATABASE practices, along with how to apply
DESIGN these principles with ER/Studio…

Table 1.2 Spreadsheet of front and back cover of Data Modeling Made Simple with Embarcadero ER/Studio Data
Architect

In the first row we listed the type of information and in the second row, the values from
Table 1.1. This is a data model because it is representing data using a set of symbols and
text—in this case, in the common form of a spreadsheet. Of course, there is quite a bit
more information we can model in this spreadsheet, but in order to keep things readable in
the layout on this page, we can stop here for now and confidently conclude that we have
completed our first data model.
There are three very important similarities between the exercise we just completed on
modeling the information on this title and any modeling assignment we do for real:
1. Process. The process we went through, where we looked at something ambiguous
(such as a book cover) and brought precision to it, is what the data modeler spends
at least half their time working on. Data modelers are fantastic organizers. We can
take complete chaos and bring clarity by organizing and sorting “things”—in this
case, descriptive information about a title becomes neatly organized into a
spreadsheet.
2. Creativity. There are many ways we can communicate information via a data
model. You can choose Information Engineering (IE, for short), which is the
notation used in this book; Integration Definition for Information Modeling
(IDEF1X); Object Role Modeling (ORM); the Unified Modeling Language (UML)
Class Diagram; spreadsheets—the list goes on. It comes down to knowing which
notation the audience for the data model would best understand. After all, a data
model is a communication tool, and therefore we should choose the visual that is
easiest to communicate. So we can be very creative on which formatting to use in a
given situation. In this first publishing example, we have chosen to use the easy-to-
understand spreadsheet format.
3. 80/20 rule. Every modeling assignment I have ever worked on has been constrained
by time. I always wish I had more time to complete the data model: “If only I had
one more week, I could really make this perfect.” In reality, we never reach
perfection, and I have learned over the years to follow the 80/20 rule of data
modeling: in 20 percent of the time we can get the data model 80 percent complete.
Questions and issues are raised during the data modeling process, and to go from 80
to 100 percent complete requires answering these questions and resolving these
issues. In this book example, you were given just a few moments to think about the
information on this cover—that’s not a lot of time!
However, there is one very important difference between the model you just completed
and the ones we do for real: There is no one around to argue our solution with us! That is,
should we call it a “Title” or a “Book”? What’s a good definition for “Title” anyway?
These types of discussions are often where the data modeler spends quite a bit of time.
If the data modeler spends about 50 percent of their time organizing information, the other
50 percent can be spent working with different groups to come to consensus on
terminology and definitions. So half the time we are Organizers and the other half we are
Diplomats—pretty important roles!

EXERCISE 1.1: Educating Your Neighbor


Reinforce your own understanding of what a data model is by explaining the concept of a
data model to someone completely outside the world of IT such as a neighbor, family
member, or friend. Did they get it?

Key Points
A data model is a wayfinding tool for both business and data professionals that uses a set of symbols and text to precisely explain a
subset of real information. The goal is to improve communication within the organization and thereby lead to a more flexible and
stable application environment.
In addition to using data models to build new applications, data models can also be leveraged in understanding existing applications
and business areas, performing impact analysis, and educating team members.
Practice the 80/20 rule when it comes to data modeling:20 percent of the time, we can get it at least 80 percent right—and that last
20 percent takes a lot more time to complete and may not be worth the effort anyway.
CHAPTER 2
ER/Studio Functionality

Go – Give it a Try
Install ER/Studio
A powerful tool
In this chapter, we introduce you to ER/Studio Data Architect (often shortened to
“ER/Studio,” which is the term we will use in this book). You will learn what ER/Studio
can do and how to install and start the software. ER/Studio is a data modeling tool for
eliciting, representing, and reporting on data requirements and for designing and
describing databases. We will learn how to leverage ER/Studio functionality, which will
allow you to build applications with greater accuracy and success, increase the use of data
standards, and enhance collaboration within your organization. ER/Studio Data Architect
offers:
Model-driven design environment
Complete database life cycle support
Enterprise model management
Data lineage documentation
Enterprise communication capabilities
Data warehouse and integration support
Quality database designs
ER/Studio Enterprise Team Edition contains a number of software development
productivity tools including ER/Studio Data Architect. ER/Studio Enterprise Team Edition
is a powerful business-driven data architecture solution that combines multi-platform data
modeling, design, and reporting with cross-organizational team collaboration. Data,
business process, and software modeling interfaces allow business analysts and data
architects to understand, design, and communicate about data architectures across the
organization for improved alignment between business and IT. In addition to ER/Studio
Data Architect, ER/Studio Enterprise Team Edition includes:
Business Architect. This process modeling tool enables architects to create
conceptual and business process models for data context. Business Architect enables
companies to visualize, understand and refine the relationships between business
processes and data as part of their enterprise architecture. Business Architect makes
it easy to model how data is incorporated into business processes by allowing users
to both model and analyze the relationships between business processes and data.
With this capability, data architects and business users can come to a common
understanding of the business. A shared repository between Data Architect and
Business Architect means users can seamlessly model systems conceptually,
logically, and physically in a collaborative and integrated environment.
Repository. The server-side model management system solves the day-to-day
challenges of modeling in a team environment, where model collaboration,
versioning, security, and object reuse are vital. The Repository allows multiple users
to collaborate on data and business process modeling projects with real-time
concurrent access that allows team members to share and re-use assets across
projects. This collaborative working environment allows organizations to maintain
compliance with business standards and mandatory regulations while more
effectively leveraging enterprise data as a corporate asset. The Repository also
provides support for model version management, designed to allow data
professionals to easily manage all successive states of models and model metadata
and track changes made to the models.
Software Architect. An object-oriented modeling tool for application architects to
visually analyze and design complex software applications. Software Architect
simplifies the design stage of a project by organizing and visualizing the
requirements, subsystems, logical and physical elements, and structural and
behavioral patterns of intensive software systems. It provides developers with
powerful productivity facilities through pre-defined patterns, model audits and
metrics for quality assurance, and project report documentation. Software Architect
supports popular industry standards like OMG’s Unified Modeling Language
(UML) 2.0 and Object Constraint Language (OCL) as well as providing XMI
import/export options and exports to many other common formats.
MetaWizard. These bridges help data professionals integrate metadata from
multiple data sources, including modeling tools, business intelligence, ETL
platforms, and industry-standard exchange formats (XMI, XML, and XSD). This
tool enables ER/Studio to integrate with more than seventy other applications by
sharing metadata through an import-export capability.
Team Server. This server-side component serves as the central hub for business
glossaries and metadata for the business-driven data architecture. It provides a web
user interface that provides the right level of access to both business and data
stakeholders. This data model and metadata collaboration platform for data
professionals, developers, and business analysts provides greater meaning and value
to enterprise data, helping companies find, know, and protect their valuable assets.
Employees across the organization have the ability to use and improve metadata,
adding context, consistency, and compliance, and enabling faster and more effective
decision-making using more accurate data.

EXERCISE 2.1: Learning More About the ER/Studio


Family
You can learn more about each of the ER/Studio components and editions and download
trial versions at http://www.embarcadero.com/products/er-studio.

New Features in ER/Studio


This book is based on ER/Studio Data Architect release 11, which is a major release with
a number of new features including numerous database-specific enhancements. The key
features for release 11 are:
Change Management. Allowing you to collaborate in an Agile environment, the
Change Management Center manages multiple modelers working in the same model
as well as providing the ability to track and manage the changes made to the model.
Model changes can be associated with agile development workflow stories and
tasks. More on this in Chapter 16.
Welcome Page. The Welcome Page is the opening window that opens when you
start ER/Studio. It contains links to your recent files, plus the ability to create new
models, open the reverse engineer, or import wizards in a single click. The Welcome
Page also includes a number of helpful videos to guide you through some of the
more important features and, for new users, a simple getting started video. More on
the Welcome Page later in this chapter.
Automated Naming Standards. Naming Standards have been an effective method
of keeping your models in line with any organizational naming conventions and
compliance that is in place; however, now the Automated Naming Standards feature
allows you to create and modify while automatically applying your naming standard
templates. More on this in Chapter 14.
New Installer. Streamlining the install process, the new WiX installer means you
have more power with fewer keystrokes. More on this later in this chapter.
Enhanced Platform Support. While release 11 did not introduce additional
platform support, it does include the new platform support added to recent releases,
including native round-trip support for Hadoop Hive tables and MongoDB
databases. ER/Studio also keeps current on the latest releases of popular platforms
including Oracle and Teradata. More on this in Chapter 10.
Glossary Integration. The business glossary is an extremely important source of
information for collaboration between all stakeholders including data modelers,
business analysts, developers, and subject matter experts. More on this in Chapter
11.
User Interface Enhancements. To ease keyboard navigation, the tab order has been
improved on the dialog boxes. To learn about all of the new features, or for more
details on these features, please refer to the ER/Studio User Guide.

My “Top 10” Favorite Features of ER/Studio


1. Intuitive. ER/Studio is very easy to learn. The commands I was looking for seemed
to be where I expected to find them. This is due in part to being very comfortable
with the Microsoft Windows environment and ER/Studio having been built with a
high degree of consistency with products like Microsoft Word and navigation like
®

Microsoft Explorer . I also like that the list of possible commands from the menus
®

changes based on what I am working on. For example, highlighting an entity would
bring up entity-specific commands under the menus.
2. Cannot start with physical. To promote sound software development practices,
ER/Studio does not permit creating a physical data model from scratch. Instead the
physical data model must be based upon an existing logical data model or reverse
engineered from an existing database (such as the actual database or data definition
language like SQL). More on this in Chapter 10, Physical Data Models.
3. Modeler Explorer. The Modeler Explorer window is extremely useful and intuitive.
In most modeling tools, I close all of the windows except for my diagram window to
maximize real estate for the diagram. In ER/Studio I can keep Modeler Explorer
open during my modeling and it is an extremely quick and user-friendly way to
navigate or modify a data model.
4. Level of customization. The level of customization with ER/Studio is extremely
impressive. For example, Tools > Options brings up an incredible number of settings
that can be changed to personalize the display, enforce rules on the model, facilitate
SQL generation, etc. You will learn more about this powerful feature throughout the
book.
5. Lineage. You can document and view mappings right in ER/Studio as well as use
ER/Studio Data Lineage, which is a separate tool in the ER/Studio XE family that
allows you to explore existing or proposed Extraction, Transformation, and Load
(ETL) mappings to quickly and accurately perform impact analysis. As a data
modeler, we are responsible for not just the models, but also the mappings.
ER/Studio allows you to capture the mappings. Chapter 12 is completely dedicated
to lineage.
6. Universal Naming Utility. Using the Universal Naming Utility, you can globally
search for, and replace if desired, names, strings, and attachment value overrides for
bound attachments. You define your search and then confine the search to specific
objects within your models. More on this in Chapter 4 on finding entities, and
Chapter 6 on finding attributes.
7. Help! The User Guide in ER/Studio is extremely comprehensive. In addition, hitting
<F1> or selecting help from the Help menu or on any of the screens brings up
detailed and hyperlinked information straight from the User Guide. The
documentation is informative and explains many of the more advanced features of
ER/Studio. If you would like more details on any ER/Studio feature as you go
through this text, just hit <F1>.
8. Version compatibility. ER/Studio can load models from earlier versions into newer
versions, bringing the models up to the latest release.
9. Macros. ER/Studio comes shipped with over 70 macros and also provides you with
the functionality to edit these existing macros or create your own. These macros can
save you lots of time and improve data consistency within your organization.
10. Data Dictionary. Even without using the Repository, you can share domains, rules,
reference values, and other valuable types of metadata across models using the Data
Dictionary.

EXERCISE 2.2: Installing and Starting ER/Studio


If you do not yet own a license of ER/Studio Data Architect, you can download a 14-day
trial at http://www.embarcadero.com/downloads.
Double click on the downloaded file and follow the wizard to install the software. Accept
the licensing terms, click <Next>, and then select the destination folder where the
application should be stored. I chose the default location and hit <Next>.
The next screen in the installation wizard will let you choose the Repository Server you
would like to connect with. Choose your server from the drop-down list or keep the
default of None if you do not have a server or do not want to decide on one at this point.
You can always select the server later. Click <Next>.
The next screen will let you set how you would like the application to appear in the Start
menu. I kept the default and hit <Next>. Then click <Install> and ER/Studio will be
installed. After installation, you are given the option of displaying the Readme file or just
clicking <Finish>.
You can now launch ER/Studio from the Start menu and enter the provided license details.
For the default notation, choose IE (Crow’s Feet). This is the notation we will be using
throughout the book. You can always change the notation later under Tools > Options and
then click the Logical or Physical tab where you can choose the notation type.
After completing registration, the first screen you will see is the Embarcadero Product
Registration screen. If you downloaded a trial version, enter the temporary serial number
on the product registration screen. If you have an account for the Embarcadero Developer
Network (EDN), enter your EDN login name or email and password information on this
screen as well. (Contact http://www.embarcadero.com/support if you have issues
registering.)
If you are using the ER/Studio Repository, make sure you have compatible versions of the
Repository and Data Architect. That is, if you upgrade one, upgrade the other to ensure
compatibility. Also, multiple versions of ER/Studio can be run on the same machine, but it
is not advisable to share models between versions. Once you have upgraded your models,
you may want to remove the older versions.
Along with the installation of the software comes a number of sample models you can
play with. We will be opening one of these sample models in the next chapter.
The Welcome Page shown in Figure 2.1 is the first screen we encounter after starting
ER/Studio.
Figure 2.1 Welcome Page
This is a great starting point for both new and experienced users. There are shortcut links
to your most recently opened files plus links to creating new models, reverse engineering,
and importing external metadata. The Welcome Page also includes a number of helpful
videos to guide you through some of the more important features and, for new users, a
simple getting started video.
The Welcome Page acts as both a window and a toolbar. It acts as a window because it can
stay active while other windows are opened during the course of your modeling activities
and can also be closed similar to any window by clicking the ‘x’ in the upper right hand
corner. It acts a toolbar because there are many functions that can be invoked from this
window, and it can be made to appear or disappear as with any toolbar through these
commands:

Menu Toolbar Explorer Shortcut Key Shortcut Menu

View, followed by the n/a n/a <ALT + V>, followed by n/a


toolbar name the letter for the
appropriate toolbar name

Key Points
ER/Studio is a data modeling tool for eliciting, representing, and reporting on data requirements and for designing and describing
databases.
ER/Studio Enterprise Team Edition contains a number of software development productivity tools along with ER/Studio Data
Architect. ER/Studio Enterprise Team Edition is a powerful data architecture solution that combines business, data, and application
modeling in a multi-platform environment.
There are a number of new features in ER/Studio Data Architect including Auto Naming Standards and enhanced database platform
support.
You can learn more about each of the ER/Studio Enterprise Team Edition products and download trial versions at
http://www.embarcadero.com/ products/er-studio.
CHAPTER 3
ER/Studio Landscape

Get the big picture


Windows, menus, shortcut keys,
Time to get feet wet
In this chapter, learn at a broad level what features are within each ER/Studio window,
menu, and toolbar. By the end of this chapter, you will have opened an existing data model
as well as created and saved your first data model in ER/Studio. Are you ready?
The application interface shown in Figure 3.1 has a standard Microsoft Windows look
® ®

and feel and is divided into several tabbed windows that let you navigate and customize
your workspace. We will briefly describe each of the different sections of this workspace
including all of the callouts in Figure 3.1.
Figure 3.1 ER/Studio Landscape

Using the Windows


In addition to the Welcome Page, there are four windows in ER/Studio: Data Model
Explorer, Data Model, Overview, and Zoom. We’ll describe each in this section.
Data Model Explorer
The Data Model Explorer helps you navigate data models and their objects, reuse design
elements, and create new objects. The Data Model Explorer has four tabs that offer access
to important functionality, enabling you to efficiently manage your data models:
Data Model. Uses a Windows-like file structure to navigate and modify a data
model. This containment-type structure works very well for data models as you can
navigate from a data model to a submodel (submodels discussed in Chapter 5) to the
entities within this submodel (entities discussed in Chapter 4) and then to the
attributes within each entity (attributes discussed in Chapter 6).
Data Dictionary. Helps you manage data dictionary objects including attachments,
defaults, rules, reference values, user-defined datatypes, domains, reusable
procedural logic, reusable procedures, and libraries.
Data Lineage. Provides a visual, drag-and-drop interface to enable you to document
how data moves between the target and source systems along with why and when
the data is moved. Data lineage documents the Extraction, Transformation, and Load
(ETL) of data movement and the relevant computations required when moving data
between disparate systems. You can create data movement rules that can dictate, for
example, when the data should be archived or a specific value range the data must
fall within in order to be moved.
Macros. Allows you to add, edit, rename, delete, and run macros. You can also
create folders in which to store macros for easier reference. ER/Studio comes with
many useful macros installed right out of the box.
Data Model Window
The Data Model Window is the palette where we do the data modeling and display the
data models. We can move diagram objects, copy and paste them into a new location,
resize the diagram objects, and change their colors.
Overview Window
The Overview Window allows you to navigate large data models by providing a thumbnail
view of the entire model. It is a good idea to hide the Overview Window when working in
small diagrams. You can open and close the Overview Window as needed using the View
menu or by pressing <F9>. When you zoom in or out, the Overview Window places a
border around the portion of the model displayed in the Data Model Window. In the
Overview Window, click on the section of the model you would like to see displayed in
greater detail.
Zoom Window
The Zoom Window is useful when working on a large diagram as it shows the area that
your cursor passes over in larger scale—very similar to how a magnifying glass works. It
is a good idea to hide the Zoom Window when working in small diagrams. You can open
and close the Zoom Window as needed using the View menu or by pressing <F8>. You can
also move the window by dragging it by its title bar.

Using the Menus


There are both application and shortcut menus that can be used in ER/Studio. You can
access the entire ER/Studio feature set from the application menus. You can also access
selected features from shortcut menus. ER/Studio application menus are across the top of
the user interface, and shortcut menus are available when you right-click on an object or
on the white space in a diagram. All menus are context-sensitive and therefore change
depending on what is selected in the Data Model Window. Note that functionality
available in application menus or shortcut menus is also available through the toolbars.
Application Menus
ER/Studio application menus provide access to all functionality. The menus are context-
sensitive and change depending on what is selected in the Data Model Window. The
application menu differs for logical and physical data models. Here is a brief description
on each of the menus:
File. Use this menu for model level operations such as to create, open, close, and
save data models. You can also import, export, and print models under this menu.
Under Diagram Properties…, you can capture descriptive information about the
model including model name, modeler, and attachments.
Edit. Use this menu for object level operations such as undo and redo, copy and
paste, and to find and edit objects. You can also select all of the objects on the model
or select all of a given object type (such as selecting all entities).
View. Use this menu for determining what should be displayed on the screen such as
which toolbars and what to display when hovering your mouse over objects. You
can also zoom in and out using this menu or enter the Diagram and Object Display
Options… feature, which allows you to decide what will display on the model.
Insert. Use this menu for creating new model objects such as entities and
relationships. You can also pan around the model with the relationship navigation
feature, which is a wonderful way to walk through the model by highlighting each
relationship on a selected entity.
Model. Use this menu for model level operations such as invoking the data
dictionary, capturing lineage, and generating physical data models. You can change
the model notation here between relational and dimensional, perform data model
validation functions, and create and edit submodels. You can also set model options,
such as the maximum length of an entity name, under this menu.
Format. Use this menu for object colors, fonts, and alignment. Alignment includes
arranging entities consistently, such as left-justified, as well as selecting whether
straight or elbowed relationship lines are preferred.
Layout. Use this menu for deciding which layout theme works best such as circular
and tree layout. These settings can be applied to the entire model or to just a selected
subset.
Tools. Use this menu for accessing various ER/Studio tools such as the Universal
Naming Utility and the Datatype Mapping Editor. You can also invoke the Options
function from the Tools menu, which contains many tabs on model preferences such
as defining naming rules, model notation, default datatype, datatype mappings,
rolename prefixes, and attribute order. Throughout this book, we will return to the
Options function to set model defaults.
Repository. Use this menu for interacting with the Repository and models that have
been saved there. You can also login to establish a Team Server connection in order
to activate business glossary integration with ER/Studio Data Architect.
Macro Shortcuts. Use this menu for adding up to ten pre-defined macros or your
own macros to the menu for easy access.
Window. Use this menu for arranging the open windows or for minimizing, closing,
or restoring them.
Help. Use this menu for accessing the User Guide as well as other useful references
such as the Online Community. This menu also includes licensing and version
information.
Shortcut Menus
ER/Studio shortcut menus offer an easy method of accessing object functionality. Shortcut
menus offer a subset of the functionality you can access from the toolbars or menus,
specific to the object of interest. To access a shortcut menu, right-click on an object or on
any white space in the Data Model Window.

Using the Toolbars


Toolbar buttons offer quick access to common features of ER/Studio. All functionality
accessible from toolbar buttons are also accessible from the menus (and shortcut menus).
ER/Studio toolbars are context-sensitive and therefore become active or inactive (grayed
out) according to what you are doing.
There are six toolbars in ER/Studio: Application, Diagram, Modeling, Layout &
Alignment, Drawing Shapes, and Repository. We’ll describe each in this section, with the
exception of the Repository toolbar because the Repository is a separate tool. The toolbars
can be displayed or hidden through these commands:

Menu Toolbar Explorer Shortcut Shortcut


Key Menu

View, followed by the toolbar name n/a n/a <ALT + V>, n/a
followed by the
letter for the
appropriate toolbar
name

Become an ER/Studio Hotshot:


ER/Studio allows you to move toolbars anywhere
on the ER/Studio workspace. You can also dock
toolbars anywhere on the perimeter of the
workspace. To undock a toolbar, click and hold the
toolbar handle (the four vertical dots to the left of
the toolbar) and drag it to a new location. To dock
a toolbar, double-click the title bar of the toolbar.

The Application toolbar contains icons for creating, opening, and saving models as well as
icons for some handy tools such as the naming standard utility. Figure 3.2 shows each of
the icons on this toolbar along with its name.
Figure 3.2 Application toolbar

The Diagram toolbar contains icons for selecting and viewing objects. Figure 3.3 shows
each of the icons on this toolbar along with its name.

Figure 3.3 Diagram toolbar

The Modeling toolbar contains icons for creating objects. The tools available on the
Modeling toolbar depend on whether your data model is logical or physical, relational or
dimensional, and the designated platform for the physical data model. More on these types
of models in Section III. Figure 3.4 shows each of the icons on this toolbar along with its
name.
Figure 3.4 Modeling toolbar

The Layout & Alignment toolbar contains icons to quickly and accurately arrange your
entire diagram or a subset of entities. More on this toolbar in Chapter 4, Entities. Figure
3.5 shows each of the icons on this toolbar along with its name.

Figure 3.5 Layout & Alignment toolbar

The Drawing Shapes toolbar contains icons for different shapes such as rectangles and
lines. Figure 3.6 shows each of the icons on this toolbar along with its name.
Figure 3.6 Drawing Shapes toolbar

Drawing shapes have no fixed meaning in your diagrams, so you can determine how they
are used and interpreted. They can represent objects in your model that are not commonly
represented by data modeling syntax as well as communicate the concept of containment
such as grouping objects by subject area or status (e.g., “The box around these five entities
indicates they will be implemented in Phase II.”).

Using Keyboard Commands


Keyboard commands, function keys, and shortcuts offer alternative ways to access
ER/Studio functionality without using the mouse. Below are the most common
commands; we will cover additional commands throughout the book.
Here are the most common keyboard commands:
Page Up: Scrolls up the Data Model Window.
Page Down: Scrolls down the Data Model Window.
Up Arrow: Scrolls up one line.
Down Arrow: Scrolls down one line.
Right Arrow: Scrolls over one position to the right.
Left Arrow: Scrolls over one position to the left.
<->: Decreases zoom level by one step (first click on model white space).
<SHIFT + F8>: Allows you to freeze the Zoom window so that you can pan around
the diagram and still maintain focus on a specific diagram object. The same
command unfreezes the Zoom window.
<CTRL + Home>: Scrolls to the upper left hand page of the model.
Here are the function keys:
<F1>: Opens the online Help.
<F4>: Opens the Find Entity/View dialog.
<F7>: Activates or deactivates shadowing.
<F8>: Opens or closes a zoom window.
<F9>: Opens or closes the overview window.
Here are the most common shortcuts:
Double-click: Allows you to edit the object you double-clicked on.
<CTRL + A>: Selects all entities in the Data Model Window.
<CTRL + C>: Copies the selected structures.
<CTRL + V>: Pastes what has been copied into the active window.
<CTRL + Z>: Restores your model to the last stage of edit (the invaluable “undo”
command).
<CTRL + Y>: Redoes the last undo command (the “redo” command).
<Delete>: Removes what is highlighted from the data model.

Using the Status Bar


ER/Studio provides statistics pertaining to your data model in the status bar at the bottom
of the application. Table 3.1 describes the statistics available on the status bar.

Diagram Mode Statistic Definition

Logical Entities Total number of entities in the current model or


submodel

Views Total number of views in the current model or submodel

Attributes Total number of attributes in the current model or


submodel

Relationships Total number of relationships in the current model or


submodel

Physical Tables Total number of tables in the current model or submodel

Views Total number of views in the current model or submodel

Columns Total number of columns in the current model or


submodel

Foreign Keys Total number of foreign keys in the current model or


submodel

Table 3.1 What appears on the status bar

Note that in the physical diagram model, what is displayed is specific for that type of
database. For example, the number of tables would display for an Oracle database and the
number of collections would display for a MongoDB database. You can display or hide
the Status Bar under Options:

Menu Toolbar Explorer Shortcut Key Shortcut Menu

Tools > Options… n/a n/a <ALT + T>, then <P> n/a

Once the Options window appears, go to the Application tab and change the setting shown
circled in Figure 3.7.

Figure 3.7 Where to turn the Status Bar on and off

Turning the status bar on and off using Options will determine whether this bar will appear
when you create a new model. To hide or show the status bar in your currently open
model, use View > Status Bar.

EXERCISE 3.1: Creating a New Data Model


If ER/Studio is not open, click Windows Start > Embarcadero > ERStudio Data Architect.
If you are using the All-Access Toolbox, open the Toolbox and click on ER/Studio Data
Architect. The version you are using, such as 11.0, will appear as the suffix in the names
of the product. This book is based on version 11.0.
Create a new data model using one of the following commands:

Menu Toolbar Explorer Shortcut Shortcut


Key Menu
File > New Application n/a <CTRL + N> n/a
or
toolbar:
<ALT + F>, then
<N>

Become an ER/Studio Hotshot:


You can change the look and feel of the
screens by right-clicking in the gray space
near the menus and toolbars and selecting
Customize. You can experiment with the
different styles and choose your favorite. I am
partial to the Microsoft® Office 2003 style.
Model > Model Options will allow you to set
some important data modeling parameters
including model notation and text case.

The screen in Figure 3.8 appears.

Figure 3.8 New Model screen

This screen defaults to creating a new data model, and from the drop-down you can select
either Relational or Dimensional, which will both be discussed in Section III starting in
Chapter 8. You can also reverse-engineer an existing database. Reverse-engineering means
taking an actual database structure and importing it into ER/Studio to create a picture of
what the database looks like. Reverse-engineering is a great first step in understanding
how an existing application works (especially when that existing application may not have
been properly data modeled to begin with). You will learn how to reverse-engineer in
Chapter 10. The third option on this submenu is to import a data model from different
formats such as CA ERwin Data Modeler (discussed in Chapter 13) or SQL files
® ®

(discussed in Chapter 10). For the publishing data model, which we will use and modify
throughout the text, go with the default and click <OK> to create a new relational data
model.
Creating Title Blocks
The first object we are going to create in this new model is a Title Block, which provides
important identification information such as the project name and modeler. It is always a
good idea to start with a Title Block before modeling so printouts of our model will never
get mixed up with other printouts.

Menu Toolbar Explorer Shortcut Key Shortcut Menu


Insert > Title Block Drawing Shapes toolbar: n/a <ALT + I>, then <B> Right-click on white
space, Insert Title Block

Become an ER/Studio Hotshot:


ER/Studio supports “sticky buttons,” meaning you can create many occurrences of an object and then, when you are done, right-
click on any white space to return the cursor to the default selector symbol.

Editing Title Blocks


Once you have created a title block, you can edit it to modify its contents by selecting it
and choosing one of these commands:

Menu Toolbar Explorer Shortcut Key Shortcut Menu

Edit > Edit Title Block… n/a n/a <ALT + E>, then <E> Right-click on Title
Block, Edit Title
Or
Block…
Double-click on the title
block

Fill in the options. I filled this out for me, as shown in Figure 3.9. You should fill it out for
yourself and click <OK>. Note that the File Name and Submodel are read-only, as are the
creation and modification dates. Note, too, that the blank box to the right of the copyright
year contains the copyright holder information.

Figure 3.9 Title Block screen

After clicking OK, the object in Figure 3.10 appears (with the information you entered in
it).
Figure 3.10 Title Block object

Deleting Title Blocks


Create a few title blocks, highlight them, and use one of the following options to remove
them:

Menu Toolbar Explorer Shortcut Key Shortcut Menu

Edit > Delete Title Block n/a n/a <DELETE> Right-click on Title
Block, Delete Title
or
Block
<ALT + E>, then <D>

EXERCISE 3.2: Saving Your Data Model

Menu Toolbar Explorer Shortcut Key Shortcut Menu

File > Save n/a <CTRL + S> n/a


Application toolbar:
or or for Save:
File > Save As <ALT + F>, then <S>
or for Save As:
<ALT + F>, then <A>

Find a good file location to store your model, type Publishing, and click <Save>. We will
be working on this publishing data model throughout the text. Note that ER/Studio files
have the .dm1 file type.
Congratulations! You have just created and saved your first data model in ER/Studio. Now
let’s start filling it in with data modeling objects in the next section!

EXERCISE 3.3: Closing and Opening Existing Data Models


Close the model that you have just created:

Menu Toolbar Explorer Shortcut Key Shortcut Menu


Exploring the Variety of Random
Documents with Different Content
176.
The “Birchdale” bog seems to be a myth; but that stories of such a marvel
were current is evident from a statement by Giraldus Cambrensis, who has
heard that there was such a bog in Norway. Opera, V, 86. Möre is an old
Norwegian shire lying to the west of Trondhjem along the coast.

177. Cf. Giraldus Cambrensis, Opera, V, 26-28. Giraldus quotes Bede (Historia
Ecclesiastica, i, c. 1). See also Isidore, Etymologiae, xiv, 6.

178.
Cf. Giraldus, Opera, V, 62; see also Bede, Hist. Eccles., i, c. 1.

179.
“Wonders of Ireland” (Irish Nennius, 219); this writer states that the
experiment has been made.

180.
Giraldus tells us that the Irish are faithless and treacherous (Opera, V, 165)
but that the island has no martyrs (ibid., 174). Cf. Ériu, IV, 4 (Meyer, “Irish
Memorabilia in the Speculum Regale”).

181.
The editor of the Irish Nennius gives this name as Loch n-Echach (Lough
Neagh). P. 195, note.

182.
Error for aquifolium.

183.
See the “Wonders of Ireland” (Irish Nennius, 195) where a similar account is
given; but according to this “the part of it that sinks into the earth will be
stone, the part that remains in the water will be iron.” Giraldus writes of a
petrifying well (fons) in the north of Ulster, but gives no place name. Opera,
V, 86. See also Wright-Halliwell, Reliquiae Antiquae, II, 103. (Latin poem on
the wonders of Ireland.)
184.
Blandina (Bladina, Bladma) is the Slieve Bloom range in central Ireland.

185.
Giraldus has heard of such springs, but he locates the one in Ulster and the
other in Munster. Opera, V, 84. A spring that whitens hair is mentioned in
Wright-Halliwell, Reliquiae Antiquae, II, 104, and in the Irish Nennius, 195.

186.
See Ériu, IV, 6. Kuno Meyer knows of no such story in Irish folklore, but
refers to similar tales told of floating islands in Wales and Scotland.

187. Inhisgluair, now Inishglory, is on the west coast of Ireland in county Mayo.
Giraldus mentions the legend but assigns it to a different locality; see Opera,
V, 83 and note. The Irish Nennius (193) adds that the nails and hair grow
and that unsalted meat does not decay on the island. The island is also
referred to in the Reliquiae Antiquae, II, 103.

188.
Giraldus refers briefly to this legend. Opera, V, 81. The editor of Giraldus’
writings adds in a note (ibid.): “the isle of the living was three miles from
Roscrea, parish of Cobally, in a lake called Loch Cré, now dried up.” Roscrea
is near the north edge of Munster not far from the Slieve Bloom mountains.
See also the Irish Nennius, 217. Meyer identifies Logri with Loch Ree in west
central Ireland. Ériu, IV, 7.

189.
Probably Lough Erne, though Loch Uair, now Lough Owel, in Westmeath has
also been suggested.

190.
Giraldus calls this island the Purgatory of Saint Patrick; but this famous place
was “on an island in Lough Derg, in county Donegal.” Opera, V, 82-83 and
note. It seems likely, however, that two different legends have been
confused in the Welshman’s account.
191.
The holy island which is shunned by all females is mentioned by Giraldus
(Opera, V, 80-81), but he fails to give the name of either the lake or the
island. In the “Wonders of Ireland” (Irish Nennius, 217) this island is also the
one on which no one is permitted to die. A similar legend is alluded to in
Reliquiae Antiquae, II, 107. Meyer believes that “the Norse version offers a
combination or confusion of two different Irish stories, one relating to
Diarmait’s churchyard in Inis Clothrann, and the other relating to an island
on Loch Cré.” Ériu, IV, 9.

192.
Glendalough. St. Kevin was the founder of the great abbey of Glendalough.
The year of his death is variously given as 617 and 618.

193.
For a less detailed account of Saint Kevin and the wonderful willow, see
Giraldus, Opera, V, 113. Cf. Ériu, IV, 9.

194.
Themar was the ancient royal seat Temhair, now Tara. It seems to be alluded
to in Reliquiae Antiquae, II, 105. Cf. Ériu, IV, 10.

195.
Saint Patrick.

196.
See the poem on the “Wonders of Ireland” (Reliquiae Antiquae, II, 105),
where this transformation is alluded to. Stories of men who have become
wolves are also told in Giraldus, Opera, V, 101, and in the Irish Nennius, 205;
but these differ widely from the account given above. Stories of werewolves
and lycanthropy are found in folklore everywhere.

197. Gelt (gjalti) is evidently a Celtic loanword, a form of the Irish geilt, meaning
mad or madman. Cf. the Adventures of Suibhne Geilt, translated by J. G.
O’Keefe. Suibhne was an Irish king who lost his reason in battle and for
years afterwards led a wild life in the woods. O’Keefe thinks that the author
of the King’s Mirror must have heard the tale of Suibhne (pp. xxxiv-xxxv).
See also Ériu, IV, 12.

198.
Kuno Meyer identifies Cloena with Clonmacnois. Ériu, IV, 12. Clonmacnois is
in King’s county eight miles southwest of Athlone.

199.
St. Ciaran (Kiranus) of Clonmacnois was the founder of a great monastery
there. The year of his death is given as 547.

200.
In the Irish Nennius (211-213) the following version of this tale appears.
“Congalach, son of Maelmithig, was at the fair of Teltown on a certain day,
when he saw a ship (sailing) along in the air. One of the crew cast a dart at a
salmon. The dart fell down in the presence of the gathering, and a man
came out of the ship after it. When he seized its end from above, a man
from below seized it from below. Upon which the man from above said: ‘I am
being drowned,’ said he. ‘Let him go,’ said Congalach; and he is allowed to
go up, and then he goes from them swimming.” The translation is by Kuno
Meyer: Ériu, IV, 13. Congalach was an Irish king (944-956); Teltown is in
county Meath. The legend is alluded to in Reliquiae Antiquae, II, 105, with
some difference in details.

201.
A somewhat different version of this tale is found in the poem on the
“Wonders of Ireland” (Reliquiae Antiquae, II, 105). See also Ériu, IV, 14.

202.
An ell was approximately eighteen inches.

203.
Whale fishing is an ancient industry in Norway; it is mentioned as early as
the ninth century in the writings of Alfred the Great. See Nansen, In
Northern Mists, I, 172.
204.
Probably the beluga, also called white whale. The other varieties named in
this paragraph, excepting the beaked whale and the baleen whale seem not
to have been identified with any known types of whales. It has been
suggested that some of them may have been sharks. See Nansen, In
Northern Mists, II, 243.

205.
The editor of the Sorö edition identifies this with the nor-caper (Balæna
glacialis), though he thinks it possible that the fin-fish (Balænoptera laticeps)
may be meant (p. 125).

206.
Balæna mysticetus; also called bowhead or Greenland whale.

207. It is possible that the basking sharks are meant rather than the Greenland
sharks; they are larger than the Greenland sharks, but do not seem to be
common in the Arctic waters.

208.
The “horse whale” and the “red comb” have not been identified.

209.
This is another name for the right whale described above; the author’s
classification in this case must have been based on size only.

210.
The author seems to believe that the whalebone rises from the lower jaw or
the floor of the mouth; as a matter of fact it is fastened to the palate.

211.
The kraken myth probably came to the North with the legend of St. Brendan,
an Irish abbot, who was believed to have made a journey into the Atlantic
about the middle of the sixth century. The oldest extant form of the legend,
the Navigatio Brendani, dates from the eleventh century. For earlier versions
of the myth see Nansen, In Northern Mists, II, 234.
212.
Dialogorum Libri IV. Pope Gregory died in 604. The Icelandic version of
Gregory’s Dialogues is published in Heilagra Manna Sögur, I.

213.
It is difficult to determine whether the author uses “places of torment” as a
term for hell or for purgatory; it seems probable, however, that in this case
hell is meant.

214.
For the history of this theory see above, pp. 17–18.

215.
The number of volcanoes in Iceland is variously given, but the more reliable
authorities give 107.

216.
The common belief of medieval scientists was that lightning was caused by
the collision of clouds.

217. The belief that hell was a region of extreme cold as well as of heat was
common in the middle ages. The author of the King’s Mirror probably derived
his ideas of hell in part from the Old Norse version of the Elucidarium of
Honorius of Autun. See Annaler for nordisk Oldkyndighed, 1857, 292.

218.
Mineral springs yielding carbonated waters are found in Iceland, though they
are not numerous. The Hiterdale spring is probably mythical. See Herrmann,
Island, I, 66.

219.
The belief that mermaids lived in the Arctic waters was one that was long
held by European navigators. Henry Hudson reports that on his voyage into
the Arctic in 1608 (June 15) some of his men saw a mermaid. “This morning
one of our companie looking over boord saw a mermaid, and calling up some
of the companie to see her, one more came up and by that time shee was
come close to the ships side, looking earnestly on the men: a little after a
sea came and overturned her: from the navill upward her backe and breasts
were like a womans, as they say that saw her; her body as big as one of us;
her skin very white, and long haire hanging downe behind of colour blacke:
in her going downe they saw her tayle, which was like the tayle of a
porposse and speckled like a macrell.” Asher, Henry Hudson, 28.

220.
The Danish scientist I. Japetus S. Steenstrup has shown in his paper “Hvad
er Kongespeilets Havgjerdinger?” that this phenomenon is produced by sea
quakes. The three huge waves did not form a triangle as the author’s
account would seem to imply; they were three successive waves rolling in
toward the shore. Steenstrup argues chiefly from the behavior of sea quakes
in modern times. Aarböger for nordisk Oldkyndighed og Historie, 1871.

221.
The settled portion of Greenland is in the southern part on the west coast.
The author wishes to say that a ship sailing from Norway to Greenland must
round Cape Farewell and proceed some distance up the west coast before
trying to make land. For a discussion of the conditions of settlement in
Greenland and the navigation of the waters about Greenland, see Hovgaard,
The Voyages of the Norsemen to America, c. ii; Nansen, In Northern Mists,
cc. vii, viii.

222.
This is called haverkn in modern Norse and seems to be the same as the
grey seal: Halichoerus gryphus. See Nansen, In Northern Mists, II. 155.

223.
Also called the harp seal: Phoca Grœnlandica.

224.
This observation accords with modern scientific classification.
225.
In the thirteenth century, the century of the King’s Mirror, falconry was a
favorite sport of the European nobility and there seems to have been some
demand for Norwegian hawks. In the Close Rolls of the reign of Henry III
there are allusions to gifts of hawks sent by the king of Norway to the
English king. See above p. 29.

226.
The diocese of Gardar in Greenland was established about 1110. For an
account of the Norwegian colony in Greenland see Gjerset, History of the
Norwegian People, I, 197-204.

227. Cf. the papal letter of Alexander VI, written in 1492. Olson and Bourne, The
Northmen, Columbus, and Cabot, 73-74.

228.
We should infer from the form of this question and from the later discussion
of the northern lights that this phenomenon was not prominent in Norway in
the thirteenth century. There seem to be periods when these “lights” are less
in evidence than at other times. But it should also be noted that the author
discusses whales in connection with Greenland and Iceland only, though it is
extremely likely that whales were not unknown on the shores of Norway.

229.
The “home-circle” (kringla heimsins) was the Old Norse translation for the
Latin orbis terrae, orb of the earth.

230.
Isidore of Seville (d. 636) discusses the five zones in his Etymologiae, iii, c.
xliv; xiii, c. vi; and in his De Natura Rerum, c. x. The editors of the Sorö
edition suggest that the “other learned men” may be Macrobius and
Martianus Capella, the famous encyclopedists of the fifth century (p. 195).
But as these writers preceded Isidore by nearly two centuries, it is unlikely
that their works were more than indirect sources for the scientific statements
in the Speculum Regale. It is more probable that the reference is to such
writers as Bede, Rabanus Maurus, and Honorius of Autun, though it is
impossible to specify what authority was followed.

231.
By glacier the author evidently means the great inland ice masses. On the
effect of this inland ice on the climate of Greenland and neighboring regions,
see Nansen, In Northern Mists, II, 247.

232.
Cf. Macrobius, 601. “... for both the northern and the southern extremities lie
stiff with perpetual frost, and they are like two zones with which the earth is
girdled, but narrow as if they were circlets drawn about the farthest regions.”

233.
Macrobius states the same belief in quite similar terms: the south wind
comes from a frozen clime just as the north wind does; but “since it comes
to us through the flames of the torrid zone and mixes with the fire, it
becomes hot, so that what was cold in the beginning comes to us with
warmth.” (P. 603.)

234.
Cf. Capella, Satiricon, 204.

235.
To go to the king’s hand (ganga konungi til handa) is the technical term for
the formal initiation into the royal service. “The king was in his high-seat
with his guard grouped about him; across his knees lay a sword, his right
hand grasping the hilt. The candidate approached, knelt, touched the
swordhilt, and kissed the royal hand. He then arose and took the oath of
fealty. Kneeling once more he placed his folded hands between those of the
king and kissed his new lord.” Larson, “The Household of the Norwegian
Kings in the Thirteenth Century:” American Historical Review, XIII, 461.

236.
The mark as a standard of value was widely used in the middle ages.
Originally it was a measure of weight equivalent to eight ounces of gold or
silver. Its value varied at different times and in different places. Dr. Gjerset
estimates the purchasing power of a mark of silver in the fourteenth century
as equal to that of $80 at the present time. History of the Norwegian People,
II, 18-19, note.

237. Thegn money (þegngildi) was a fine paid to the king by one who had been
guilty of manslaughter.

238.
The housecarle fine was higher than that exacted for the death of a common
subject because the housecarle stood in a personal relation to the king.

239.
See American Historical Review, XIII, 469-471.

240.
The head-ward was stationed near the king’s person, usually outside the
door of the chamber where he slept. See American Historical Review, XIII,
462.

241.
The Eyrir (pl. aura, from Latin aurum?) was an ounce of silver, or one-eighth
of a mark.

242.
The landedman (lendir maðr) was one who enjoyed a fief granted by the
king. The term was also used in a more restricted sense for the local
chieftains who in return for the fief enjoyed gave certain assistance in the
local administration. See Norges Gamle Love, V, 396-397; Gjerset, History of
the Norwegian People, I, 387-388; American Historical Review, XIII, 467-
468.

243.
The kings of medieval Norway seem to have engaged quite actively in the
mercantile profession. The trade with the Finns was made a royal monopoly
at least as early as the tenth century; later the trade with Greenland also
passed into the king’s hands.

244.
Such meetings of two or three of the kings of the North were occasionally
held all through the later middle ages. The conferences were often held at
some point near the mouth of the Göta River, on the southwest coast of
modern Sweden. See above, p. 30.

245.
It is impossible to determine what style of beard this jaðarskegg was; if we
may judge from contemporary German illustrations, the German mode was a
smooth-shaven face. See also Weiss, Kostumekunde, II, 581.

246.
Skjaðak. The translation is uncertain; possibly some sort of weed is meant.

247. In this chapter the author has summed up the history of Norwegian kingship
in the twelfth century, when minorities were frequent and joint kingships
almost the rule. Three boys were proclaimed kings in 1103; two kings shared
the power in 1130; the royal title fell to three children in 1136. At no time
was the realm actually divided, the theory being that the administration and
the revenues might be divided, while the monarchy remained a unit. The
century was a period of great calamities; pretenders were numerous; and
civil war raged at intervals. For a fuller discussion of the theory of Norwegian
kingship in the twelfth and thirteenth centuries, see above, pp. 35 ff.

248.
The gambison (panzari) was a form of defensive armor made of cloth
padded and quilted. It is described on page 217 as being made “of soft linen
thoroughly blackened.” Usually it was worn under the coat of mail, but it
could also be worn outside. See Annaler for nordisk Oldkyndighed, 1867, 74
ff. (Blom.); Falk, Altnordische Waffenkunde, 181-182.
249.
The staff sling was a sling fastened to the end of a stick; it was an earlier
form which was not used much in the thirteenth century.

250.
The wedge-shaped column (svínfylking, perhaps so named from a fancied
resemblance to a boar’s head) was a common form of battle array among
the Northern peoples as well as among the early Germans generally.

251.
As the shield was born on the left arm, the front edge would be the right
edge.

252.
These scythes were apparently used to catch and hold the hostile ships and
perhaps also to cut the ropes on the ship. See the Sorö edition, 388.

253.
The broadax (skeggöx) had the blade extended backward somewhat like
that of a halberd, though in the latter case the extension was usually
forward. See Falk, Altnordische Waffenkunde, 108-110.

254.
Skeptifletta: a dart of some sort with a cord attached.

255.
Coal and sulphur seem to have been used chiefly to fire the enemy’s ship.

256.
Caltrops were instruments provided with iron prongs and were usually
scattered where the enemy’s horsemen were likely to pass, in the hope of
maiming the horses. It is evident that they were also used in naval warfare,
the purpose being to maim the men on the enemy’s deck. See the Sorö
edition, 392.

257. Atgeirr. The translation is doubtful, but it seems clear that some kind of
spear useful for striking as well as for thrusting is meant. See Falk,
Altnordische Waffenkunde, 81-82.

258.
Probably some sort of a cage placed at the top or near the top of the mast
from which men with bows and slings could fight to better advantage. See
Aarböger for nordisk Oldkyndighed, 1872, 242; Falk, Altnordische
Waffenkunde, 197.

259.
Only one end of the beam was cloven in this way. See the Sorö edition, 394-
395. The beam was apparently fastened to the mast and used to crush the
sides of the enemy’s ship in much the same way as the ram was used
against a castle wall. See Falk, Altnordische Waffenkunde, 199.

260.
The prow-boar (rôðrgoltr) was not a beak but apparently some device
fastened to the prow which served much the same purpose, namely to run
down and sink an opposing ship. See the Sorö edition, 395-396; Falk,
Altnordische Waffenkunde, 198-199.

261.
See the Sorö edition, 397-399; Falk, Altnordische Waffenkunde, 196. This
rampart was built of logs and planks and raised on the gunwales. Sometimes
it seems to have been placed along the entire length of the ship, but often,
perhaps, only where the ship was lowest. Inside it was braced with strong
beams. The plank walk on the outside projected over the edge of the ship
and was no doubt in part intended to make it difficult for the enemy to board
it.

262.
On the equipment of the horse in medieval warfare, see Aarböger for nordisk
Oldkyndighed, 1867, 90-97.

263.
In the thirteenth century the saddle was made with high bows before and
behind so as to provide a firmer seat for the rider. The surcingle was a girth
drawn over the saddle; the breast strap served to keep the saddle from
slipping backwards. Aarböger for nordisk Oldkyndighed, 91.

264.
Kovertur, from medieval French couverture. But the couverture was not a
covering worn underneath the mail; it was probably the mail itself or an
outer covering for the horse. See Falk, Altnordische Waffenkunde, 191.

265.
Falk believes that this description is in some respects inaccurate. No such
elaborate equipment could have been used in the North where cavalry was
not an important part of the host in the thirteenth century. He also doubts
that an equipment just like the one described was in use anywhere in Europe
at the time. Ibid., 190-191. The medieval couverture was not placed beneath
the covering of mail as the Speculum Regale states; and Falk can see no
reason why a gambison placed beneath the mail should be ornamented. It
seems clear that the author is somewhat confused as to these various
coverings.

266.
The mail hose were made of chain mail. Aarböger for nordisk Oldkyndighed,
1867, 73-74.

267. The kneepieces, or genouillères were pieces of armor worn to protect the
knees.

268.
Blom thinks that the breastplate was a new thing in the thirteenth century
(ibid., 76), but Falk believes that it was used quite generally (Altnordische
Waffenkunde, 182).

269.
The dirk (brynknifr) was probably a poniard-like weapon used to pierce the
chain mail at the joints. Falk, Altnordische Waffenkunde, 124.
270.
The helmet with the visor appears in the illustrations of the closing years of
the twelfth century; the earlier helmet was a steel cap with a nose guard.
Aarböger for nordisk Oldkyndighed, 83-84.

271.
Little seems to be known about the hornbow. Captain Blom finds it
mentioned in the Latin sources as balista cornea or balista cum cornu.
Aarböger for nordisk Oldkyndighed, 1867, 100-101. Falk believes that it was
a bow which was reinforced on the inner side with horn. Altnordische
Waffenkunde, 91-92.

272.
The trebucket (French trébuchet) was a siege engine which came into use in
the twelfth century; it was worked by counterpoises. For a description see
Oman, Art of War, 143-144; Aarböger for nordisk Oldkyndighed, 1867, 103-
104; Falk, Altnordische Waffenkunde, 193-194.

273.
The ram was a massive beam used to batter down walls; it was an
inheritance from antiquity and was much in use. See Oman, Art of War, 132;
Aarböger for nordisk Oldkyndighed, 1867, 104; Falk, Altnordische
Waffenkunde, 198.

274.
Grafsvin. Falk translates this with “badger” and seems to believe that it was
a shelter on wheels under which the attackers might work in comparative
safety. Altnordische Waffenkunde, 196. It is more likely, however, that a “cat”
is meant. The cat was a long pointed pole used to loosen the stones in a wall
and thus to make a breach. It is also called a “sow” and the Old Norse term
grafsvin, “digging boar,” was evidently an attempt to translate the Latin term
scrofa or sus, “hog” or “sow.” For a description of the cat, see Oman, Art of
War, 132.

275.
On the subject of the movable tower see Oman, Art of War, 134-135, 549.
276.
These curtains were evidently placed on the outer side of the wall.

277. This translation of hengivigskarð is based on Blom’s interpretation (Aarböger


for nordisk Oldkyndighed, 1867, 105-106, note). The brattices were
projecting galleries built along the top of the wall and were in use before it
became customary to build stone parapets. Cf. Oman, Art of War, 534.

278.
The hedgehog (ericius) in common use was a form of the cheval de frise and
was laid on the earth to impede a hostile advance. I know of no other
mention of the device (igelkǫttr) described above.

279.
Captain Blom is disposed to look on the brynklungr as an imaginary device
(Aarböger for nordisk Oldkyndighed, 1867, 106) but Falk finds that some
such instrument was in use in Italy as early as the tenth century
(Altnordische Waffenkunde, 199-200).

280.
Devices somewhat similar to the “running wheel” seem to have been used in
medieval warfare, but of this particular form no other mention has been
found. See Falk, Altnordische Waffenkunde, 200.

281.
Ibid. The “shot wagon” is not mentioned elsewhere.

282.
See the Sorö edition, 424-425, where the editor cites a number of references
to the use of fire in defensive warfare; these are nearly all drawn from the
sagas.

283.
Evidently the purpose would be to crush the engine with the beam, to set it
on fire with the hot plowshares, and to put the assailants to flight with the
pitch, sulphur, or tar; these would also feed the flames.
284.
On the subject of mines see Oman, Art of War, 549-550.

285.
The posts were apparently placed on top of the wall, the purpose being to
raise the wall to a greater height as well as to furnish shelter for the
defenders.

286.
The shield-giant was probably a mythical device; but it is possible as has
been suggested that its fiery breath may refer to the use of Greek fire, with
which the Norwegians became acquainted during the crusades, or even to
early experiments with gunpowder. Falk, Altnordische Waffenkunde, 200-201.
It is not known when gunpowder was invented, but the earliest known
formula for making it is found in the writings of Roger Bacon, who was a
contemporary of the author of the King’s Mirror.

287. Genesis, cc. xxxix-xli. The author treats the Biblical narratives with great
freedom.

288.
Isaiah, xlv, 1. In this case the author quotes directly from the Vulgate:
“Christo meo Sciro, cujus apprehendi dexteram, ut subjiciam ante faciem
ejus gentes et dorsa regum vertam.”

289.
See Esther, cc. i-viii.

290.
The author’s source for his account of the council where Craton and
Zenophilus served as judges is the legend of Pope Silvester, probably the Old
Norse version of the legend, Silvesters Saga, published by Unger in Heilagra
Manna Sögur, II, 245-286.
291.
Not India but Persia in the Biblical story; but the Northmen in the middle
ages used the term India very much as we use the term Orient to-day.

292.
The reference is evidently to Psalms, cxv, 16: “The heavens, even the
heavens, are the Lord’s: but the earth hath he given to the children of men”
(King James’ version). The Vulgate reads (cxiii, 16), “Caelum caeli Domino;
terram autem dedit filiis hominum.” In neither case is the idea of an earthly
kingship implied. It is evident that the author is quoting and translating from
memory.

293.
I Peter, ii, 17.

294.
The compiler of Stjórn, an Old Norse paraphrase of the larger part of the Old
Testament, following Petrus Comestor’s Historia Scholastica, attributes to
Bede the statement that the serpent in those days bore the face of a maiden
(p. 34). The author of the King’s Mirror cannot have used Stjórn, as it seems
to be a production of the fourteenth century, nor is there any evidence that
he knew the Historia Scholastica.

295.
The story of the court proceedings in Paradise after the fall of man and the
discussion between Mercy and Peace on the one side and Truth and Justice
on the other was widely current in the thirteenth century. It made an
important scene in certain types of mystery plays, and it seems quite likely
that the source of the version given in the King’s Mirror must be sought in
some dramatic representation of the creation story. The account of the trial
was made the theme of two poems in Old French which have been
attributed to the English ecclesiastics Archbishop Langton and Bishop
Grosseteste, both of whom were contemporaries of our Norwegian author.
Homilies were written on this theme in the twelfth century by St. Bernard of
Clairvaux (Migne, Patrologia Latina, CLXXXIII, 770) and by Hugh of St. Victor
(ibid., CLXXVII, 623-626). There is a still earlier version of the story in a
homily attributed, though for no good reason, to the Venerable Bede.
According to this story a man has a son and four daughters named Mercy,
Truth, Peace, and Justice. He also has a servant whom he wishes to try by
giving him an easy task. The servant fails and is handed over to the
executioner. The daughters now come into violent disagreement, but the son
finds a way out of the difficulty: he saves the servant and succeeds in
bringing the sisters into agreement. Ibid., XCIV, 505-507.
W. Scherer, in Zeitschrift für deutsche Altertumskunde, N. F., IX, 414-416,
finds traces of the legend in Talmudic sources. In the Hebrew story, however,
the disagreement is over the expediency of creating man, Mercy favoring
and Truth opposing the project. The ultimate source appears to be Psalms,
lxxxv, 10: “Mercy and truth are met together; righteousness and peace have
kissed each other.”

For bibliographical information see L. Petit du Juleville, Les Mystères, II, 359.

296.
The statement that Lucifer planned to set up a rival throne in the northern
regions of heaven also appears in the Michaels Saga (Heilagra Manna Sögur,
I, 677). It was apparently a common belief in medieval Christendom and was
based on Isaiah, xiv, 13.

297. I Corinthians, xii, 4-10.

298.
Exodus, xiv.

299.
Numbers, xvi.

300.
Joshua, vi.

301.
I Samuel, xv.
302.
Exodus, xxxii. No high priest by the name of Ur is mentioned in this
connection; but Hur, the son of Caleb, is associated with Aaron on two earlier
occasions. See ibid., xvii, 10; xxiv, 14. There was a legend that Ur refused to
make the golden calf and that the people spitting into his face suffocated
him with the spittle. Petrus Comestor, Historia Scholastica, c. 73: Migne,
Patrologia Latina, CXCVIII, 1189.

303.
II Samuel, xii.

304.
Exodus, xxxii, 7-14.

305.
Jonah, iii.

306.
II Kings, xx; Isaiah, xxxviii. The prayer is imaginary.

307. Probably from Psalms, xvi, 8 (Vulgate, xv, 8): “I have set the Lord always
before me, because He is at my right hand....”

308.
This prayer is a translation of a Latin original which the author has
incorporated and given in full. Both the original and the author’s translation
are given in the manuscripts.

309.
Cf. Proverbs, viii, 22 ff.; see also, among the “Apochrypha,” Ecclesiasticus
(The Wisdom of Jesus the son of Sirach), xxiv, 5 ff.

310.
An echo of Psalms, xix, 5.

311.
C. xi.
312.
According to the legend the priest Justin assisted at the funeral of St.
Lawrence. Heilagra Manna Sögur, I, 430.

313.
A somewhat different version of this story is given in the Legenda Aurea of
Jacques de Voragine, who quotes the “Miracles of the Virgin Mary.”

314.
This is probably an allusion to the edict of Theodosius II “which interposes a
salutary interval of thirty days between the sentence and the execution.”
Gibbon, Decline and Fall of the Roman Empire, III, 176; Mommsen and
Meyer (editors), Theodosiani Libri XVI, I, part 2, 503 (viii, 40:13). The edict
was probably a part of the penance exacted from the Emperor after his
massacre of the Thessalonians. See Ambrosius Saga in Heilagra Manna
Sögur, I, 40.

315.
Exodus, xxxii.

316.
II Samuel, i.

317. II Samuel, iv.

318.
The story of David’s great sin concerning Bathsheba and Uriah and its
consequences is told in II Samuel, xi-xii, but it is probable that the author’s
source is some Biblical paraphrase rather than the Vulgate itself.

319.
I Chronicles, xxii, 8.

320.
II Samuel, xvi, 21-22.
321.
On this episode see I Samuel, xv.

322.
I Samuel, xvi, 14-23.

323.
Ibid., xviii, 12-21.

324.
Ibid., xviii, 6-9.

325.
Cf. I Samuel, xix, 8-11.

326.
Cf. I Samuel, xix, 4-7.

327. On the fate of Ahimelech and the inhabitants of Nob, cf. I Samuel, xxi, 1-9;
xxii, 9-19.

328.
I Samuel, xxii, 1-2, 20-23.

329.
The story of David and Saul at En-gedi is told in I Samuel, xxiv.

330.
Cf. I Samuel, xxvi.

331.
Cf. David’s lament in II Samuel, i: 17-27. The author has made but slight use
of David’s own language.

332.
Cf. II Samuel, xviii, 33.
333.
Cf. II Samuel, xxiv.

334.
See I Kings, iii, 16-28.

335.
The story of Shimei is told in II Samuel, xvi, 5-8; xix, 16-23; I Kings, ii, 8-9,
36-46.

336.
According to the Scriptural story Shimei left Jerusalem to bring back two
runaway servants. I Kings, ii, 39-40.

337. Error for Gihon.

338.
On the subject of Adonijah’s rebellion and Solomon’s triumphant accession
see I Kings, i. The author has used little more than the outline of the story
as given in the Bible.

339.
Cf. I Kings, ii, 1-11. In the Biblical story David’s charge to Solomon comes
after the day of Solomon’s accession, and not, as the author has it, during
the day.

340.
Cf. I Kings, i, 41-53.

341.
Cf. I Kings, ii, 13 ff.

342.
Cf. I Kings, ii, 28-34.

343.
Cf. I Kings, ii, 26-27.
344.
Cf. Matthew xiv, 1-12; Mark, vi, 16-29.

345.
See Exodus, xxviii.
Transcriber’s Notes:
The footnotes have been gathered together
and inserted after the index. A “FOOTNOTES”
entry was added to the Table of Contents.
Missing or obscured punctuation was silently
corrected.
Typographical errors were silently corrected.
Inconsistent spelling and hyphenation were
made consistent only when a predominant
form was found in this book.
*** END OF THE PROJECT GUTENBERG EBOOK THE KING'S
MIRROR (SPECULUM REGALE-KONUNGS SKUGGSJÁ) ***

Updated editions will replace the previous one—the old editions


will be renamed.

Creating the works from print editions not protected by U.S.


copyright law means that no one owns a United States
copyright in these works, so the Foundation (and you!) can copy
and distribute it in the United States without permission and
without paying copyright royalties. Special rules, set forth in the
General Terms of Use part of this license, apply to copying and
distributing Project Gutenberg™ electronic works to protect the
PROJECT GUTENBERG™ concept and trademark. Project
Gutenberg is a registered trademark, and may not be used if
you charge for an eBook, except by following the terms of the
trademark license, including paying royalties for use of the
Project Gutenberg trademark. If you do not charge anything for
copies of this eBook, complying with the trademark license is
very easy. You may use this eBook for nearly any purpose such
as creation of derivative works, reports, performances and
research. Project Gutenberg eBooks may be modified and
printed and given away—you may do practically ANYTHING in
the United States with eBooks not protected by U.S. copyright
law. Redistribution is subject to the trademark license, especially
commercial redistribution.

START: FULL LICENSE


THE FULL PROJECT GUTENBERG LICENSE
PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK

To protect the Project Gutenberg™ mission of promoting the


free distribution of electronic works, by using or distributing this
work (or any other work associated in any way with the phrase
“Project Gutenberg”), you agree to comply with all the terms of
the Full Project Gutenberg™ License available with this file or
online at www.gutenberg.org/license.

Section 1. General Terms of Use and


Redistributing Project Gutenberg™
electronic works
1.A. By reading or using any part of this Project Gutenberg™
electronic work, you indicate that you have read, understand,
agree to and accept all the terms of this license and intellectual
property (trademark/copyright) agreement. If you do not agree
to abide by all the terms of this agreement, you must cease
using and return or destroy all copies of Project Gutenberg™
electronic works in your possession. If you paid a fee for
obtaining a copy of or access to a Project Gutenberg™
electronic work and you do not agree to be bound by the terms
of this agreement, you may obtain a refund from the person or
entity to whom you paid the fee as set forth in paragraph 1.E.8.

1.B. “Project Gutenberg” is a registered trademark. It may only


be used on or associated in any way with an electronic work by
people who agree to be bound by the terms of this agreement.
There are a few things that you can do with most Project
Gutenberg™ electronic works even without complying with the
full terms of this agreement. See paragraph 1.C below. There
are a lot of things you can do with Project Gutenberg™
electronic works if you follow the terms of this agreement and
help preserve free future access to Project Gutenberg™
electronic works. See paragraph 1.E below.
1.C. The Project Gutenberg Literary Archive Foundation (“the
Foundation” or PGLAF), owns a compilation copyright in the
collection of Project Gutenberg™ electronic works. Nearly all the
individual works in the collection are in the public domain in the
United States. If an individual work is unprotected by copyright
law in the United States and you are located in the United
States, we do not claim a right to prevent you from copying,
distributing, performing, displaying or creating derivative works
based on the work as long as all references to Project
Gutenberg are removed. Of course, we hope that you will
support the Project Gutenberg™ mission of promoting free
access to electronic works by freely sharing Project Gutenberg™
works in compliance with the terms of this agreement for
keeping the Project Gutenberg™ name associated with the
work. You can easily comply with the terms of this agreement
by keeping this work in the same format with its attached full
Project Gutenberg™ License when you share it without charge
with others.

1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside
the United States, check the laws of your country in addition to
the terms of this agreement before downloading, copying,
displaying, performing, distributing or creating derivative works
based on this work or any other Project Gutenberg™ work. The
Foundation makes no representations concerning the copyright
status of any work in any country other than the United States.

1.E. Unless you have removed all references to Project


Gutenberg:

1.E.1. The following sentence, with active links to, or other


immediate access to, the full Project Gutenberg™ License must
appear prominently whenever any copy of a Project
Gutenberg™ work (any work on which the phrase “Project
Gutenberg” appears, or with which the phrase “Project
Gutenberg” is associated) is accessed, displayed, performed,
viewed, copied or distributed:

This eBook is for the use of anyone anywhere in the United


States and most other parts of the world at no cost and
with almost no restrictions whatsoever. You may copy it,
give it away or re-use it under the terms of the Project
Gutenberg License included with this eBook or online at
www.gutenberg.org. If you are not located in the United
States, you will have to check the laws of the country
where you are located before using this eBook.

1.E.2. If an individual Project Gutenberg™ electronic work is


derived from texts not protected by U.S. copyright law (does not
contain a notice indicating that it is posted with permission of
the copyright holder), the work can be copied and distributed to
anyone in the United States without paying any fees or charges.
If you are redistributing or providing access to a work with the
phrase “Project Gutenberg” associated with or appearing on the
work, you must comply either with the requirements of
paragraphs 1.E.1 through 1.E.7 or obtain permission for the use
of the work and the Project Gutenberg™ trademark as set forth
in paragraphs 1.E.8 or 1.E.9.

1.E.3. If an individual Project Gutenberg™ electronic work is


posted with the permission of the copyright holder, your use and
distribution must comply with both paragraphs 1.E.1 through
1.E.7 and any additional terms imposed by the copyright holder.
Additional terms will be linked to the Project Gutenberg™
License for all works posted with the permission of the copyright
holder found at the beginning of this work.

1.E.4. Do not unlink or detach or remove the full Project


Gutenberg™ License terms from this work, or any files
Welcome to Our Bookstore - The Ultimate Destination for Book Lovers
Are you passionate about books and eager to explore new worlds of
knowledge? At our website, we offer a vast collection of books that
cater to every interest and age group. From classic literature to
specialized publications, self-help books, and children’s stories, we
have it all! Each book is a gateway to new adventures, helping you
expand your knowledge and nourish your soul
Experience Convenient and Enjoyable Book Shopping Our website is more
than just an online bookstore—it’s a bridge connecting readers to the
timeless values of culture and wisdom. With a sleek and user-friendly
interface and a smart search system, you can find your favorite books
quickly and easily. Enjoy special promotions, fast home delivery, and
a seamless shopping experience that saves you time and enhances your
love for reading.
Let us accompany you on the journey of exploring knowledge and
personal growth!

ebookgate.com

You might also like