Date post: | 28-Dec-2015 |
Category: |
Documents |
Upload: | emerald-whitehead |
View: | 214 times |
Download: | 0 times |
Making an E/RD:
When to Use Designer;When to Use Your Brain
A presentation on using Oracle Designer to create anEntity/Relationship Diagram
for a useful database.
Mike Moxcey:
• Programmed in Oracle for 14 Years.– Built forms in Oracle 4 and 5 – Used ReportWriter 1.0 and 1.1 – Heavy experience in SQL, SQL*Plus
and DBA – Built Web Sites with Perl and Oracle
I work for the President: George Bush
• White House – US Department of Agriculture
•Animal and Plant Health Inspection Services
– Wildlife Services » Operations Support Staff
Management Informations Systems
Me
Both of us are often called by
our middle initial: • He's W
– (because of his Dad)
• I'm S – (because of another guy at work
named Mike)
Programmer for Wildlife Services
• Providing Support for Existing Oracle 7 System
• Building Completely New System in Oracle Designer
Worked in the Same Overall Agency
– APHIS: IT• Plant Protection and Quarantine • Veterinary Services• Wildlife Services
Not a consultant who leaves
Overview: 3 Parts to this Talk
• Why Use Users?• How to Use Users• How to Use Designer
– Making an E/RD– Generating Prototype Forms
Definition: A successful system is one that is
used.
• Not one that works correctly• Not one with an elegant design• Not one that's finished
Everyone Hates Data Entry
• Data is good for managers. • Workers just want to do their
job.• Painful to enter pointless data • Less painful for useful data
Best Data Entry Is Part of Job
– Grocery Store Scanners– Time Cards– Keystroke Counters
• Can design without users – (You have management buy-in)
Most Data Is Entered after
the Job Is Done• Estimate how long it took• Write down your mileage• I'm focused on next task
Good Data Requires User Buy-In
• Imagine the Dilbert boss wants a DBS for programmer time
– Hours/form or procedure – Lines of form code
• What would you want to measure? – Form size, procedure complexity
• What could you measure well? – Time, lines of code, speed of
procedure
• What can't be measured? – Elegance, maintainability
Get the Users to Design Their System
• You're the Architect; Not the Client
• You're the Builder; Not the Buyer
Get a Variety of Users Get Good Users
– Don't accept "Spares" – Make management assign the workers
• Otherwise forego the group and work one on one
Teaching Database Designto Users
• Tables are like a spreadsheet without any repeated data
• Data integrity is critical• Links between tables make the
database work
Know the Modeling Concepts
• Entities • Relationships• Foreign Keys
– The Data Model Resource Book by Silverston, Inmon, and Graziano
Brainstorm on Entities
• Entities will become tables – (don't explain why "Account" won't
exist)
• Entities are nouns: – person, place, thing, event, or concept
Consolidate Ideas and Terms
• Listen! Don't talk. • Hear what's important and why.• Take notes!
• Create list of Candidate Entities •Some Nouns Are Attributes Now
Teach Relationships In-depth
• Demonstrate Foreign Keys
Two Parts to Relationships
• Optional vs. Mandatory • One vs. Many
Show Foreign Keys
• Employee Table– ID– NAME
Emp Records1 George2 Nancy3 Lestat
• Job Table– ID– NAME– FKEY
Job Records1 Combine 22 Stir 13 Serve 24 Consume 3
Ask Questions
Songs and Authors Entities
• Optionality– Must a Song have an Author?– Must an Author have a Song?
• Cardinality– Can an Author write more than one
Song?– Can a Song have more than one Author?
Draw Relationships
• Discuss and verify them
• Make Associative Entities– This is a tricky concept for users.– Explain it well.
• Explain why the Account" entity won't exist
• Argue about Intelligent Keys
Show Associative Entities
Songs and Authors Example
Song Song_Author AuthorName ID NameID……………………SONG_ID HistoryHistory AUTHOR_ID……ID
Using Oracle Designer
• Repository Must Be Installed • Requires an Account
•Open Designer – Open the Entity Relationship
Diagrammer – Make Work Areas and Containers – Name the Diagram: ERD_*
Create Relationships
1. Choose correct type 2. Click on From Entity 3. Click on To Entity 4. Name the Relationship
Make Diagram Readable
• Put in about 20 Entities • Group by Subject Area
This Should Work • Try Select All and AutoLayout • Arrange/Resize Entities
Enter Attributes
• Can be done as you do Entities
Entity;Properties has many tabs– Attributes: Name, Optional, Primary– Att Detail: Apply domains
Checking the Design
• Run Scenarios – (capture info during meetings)
• Use Reports for Users– Open Repository Reports – Entity/Relationship Modelling:
8 different reports • Use the Previewer, not the Parameters
Fine-tune diagram
**Don't need users
• Drop weak entities • Look for common data • Look for unneeded data
Categories
• These are how users organize data • They drive the reports • Verify groupings with users
Categorization Questions:
• Can it only ever be one kind? – Apple or Pear
• Are there subkinds? – MacIntosh or Red Delicious
• Are there different kinds of kinds? – Apple is Red, is Fruit, is Round
More Categorization Questions:
• Can it change kinds over time? – Can an Apple become a Pie?
• Can it be multiple similar kinds at once? – Piano is both String and Percussion – Trees: Natural Resource, Landscaping,
Silviculture
Set up Types (can only be one)
• Set up Classes, Categories, etc. • Set up Hierarchies
Sorting Data is aJob for Users
• This group needs to be permanent • They are your data librarians
Building the System
• We know we want a database • Don't need Process Modeller • Don't need Dataflow Diagrammer
Function Hierarchy Diagrammer
• Make a Function for every form • Assign Entity Usages• Run Utilities; Function/Attribute
Matrix to assign IRUN for attributes
Create Tables
• Run Database Design Transformer
• Design Editor: run Generate; Generate Database from Server Model
• SQL: Execute the Table Creation scripts
Create Candidate Modules
• Transform Preliminary Designs: Application Design Transformer – Select top function
• Design Editor – Modules Tab – Modules are Named, Numbered – Rename and Uncandidate Them
• (Properties; Candidate? = No)
To Regenerate
• Design Editor: Delete Unneeded Modules
• Design Editor: Delete Table defs (views, seqs, etc.)
• SQL: Drop Tables and Sequences (by script or by user)