Download 2010SprDmaProceduresv3 - MIS315-05

Document related concepts

Relational algebra wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Oracle Database wikipedia , lookup

IMDb wikipedia , lookup

Extensible Storage Engine wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Entity–attribute–value model wikipedia , lookup

Concurrency control wikipedia , lookup

Database wikipedia , lookup

Clusterpoint wikipedia , lookup

Relational model wikipedia , lookup

ContactPoint wikipedia , lookup

Database model wikipedia , lookup

Transcript
Database Applications GIT 150
Overview
Methodology and Documentation
Modeling Procedures
Model Translation
Object Orientation
Product Data Exchange Standard
Enterprise Model Utilization & Summary
Database Applications GIT 150
Information Modeling
• Definition:
– A structured (primarily graphical) set of rules for
representing the file and database information and business
process requirements.
• Purpose:
– To provide a “template” for managing and integrating the
information used and/or produced in support of a business
and/or personal need(s).
• Benefit:
– The information model provides the design foundation for
implementing a physical database(s). This “template” is
essential to avoid constant redesign of a physical
database(s) as the scope is extended.
Database Applications GIT 150
Sample Information Model
Database Applications GIT 150
Why Information Modeling Is Needed for
Designing Database Applications
• Traditional information system development
approaches contain inherent weaknesses.
• Increasingly complex information systems are being
developed.
• Complexity of modern systems increases
development risks.
Database Applications GIT 150
The Problem: Timely Access to Critical
Information
Is this the
current version
of the Design?
Who is
responsible?
Who can I
call?
What is the
failure rate of
this Part?
Database Applications GIT 150
How Is An Information Model Built?
• Starts with good business process or workflow activity information needs analysis.
Database and
Application Design
User Requirements Analysis
USED AT :
AUTHOR :
PROJECT, IDS
DATE :
REV:
NOTES : 1 2 3 4 5 6 7 8 9 10
WORKING
DRAFT
X RECOMMENDED
PUBLICATON
READER
DATE
CONTEXT :
Physical_Unit_Occurrence
CONTRACT AND MISSION REQMTS
NONCONFORMANCE
DOCUMENTATION
Usage
26,6 Function_Domain
Port
Functional_Domain_Port
Allocation
ANALYZE FOR
REPAIR
DISPOSITIONING
DISCREPANT PART W / DOC. REFERING PART BACK TO MFG FOR REWORK
source
element
L[1:?]
NONREWORKABLE DISCREPANT PART
DISCREPANT
PART
A1421
ANALYZE FOR
STANDARD
DISPOSITIONING
DISCREPANT PART
descendent
Physical_Connectivity
Defintion
DISCREPANT PART W / DOC REFERING PART
FOR STANDARD REPAIR
Path_Element
NON STANDARD REPAIRABLE PART
ENGR DWGS AND ANALYSIS
A1422
DISCREPANT PART
ENGR DWGS AND ANALYSIS
ANALYZE FOR
DISPOSITION
BY UNIQUE
REPAIR
PROCEDURES
A1423
NODE :
A142
TITLE :
DETERMINE REPAIR DISPOSITION REQUIRED
DISCREPANT PART
W / DOC REFERING
DISPOSITION
TO MR ACTION
DISCREPANT
PART NOT
DISPOSITIONED
BY MR ACTION
Functional_Connectivity
implementation
Defintion
BOOLEAN
requirement
restricted
Connectivity_Allocation
NUMBER
Business Process Requirements
Analysis
Application Specific
Information Model
Local to Enterprise
Mapping
Information
Standards
- Hardware
- Software
- Database
- Network
- Platforms
- Budget
- Schedule
Corporate Constraints
(Standards)
Enterprise
Information
Model
Integrate-able
Database Applications
Application Interpreted
Information Model
(Design Specification)
Database Applications GIT 150
How Is An Information Model Built?
(continued)
• From document, report and database decomposition.
CHANGE
ORDERS
GEOMETRIC
CONFIGURATION
CHANGE
REVISION
NOTES
PART
SHAPE
PART
PART
LIST
(BOM)
PART
INSTRUCTIONS
PART
APPROVAL
TASK
PART
RELEASE
PART
EFFECTIVITY
Database Applications GIT 150
Overview
Methodology and Documentation
Modeling Procedures
Model Translation
Object Orientation
Product Data Exchange Standard
Enterprise Model Utilization & Summary
Database Applications GIT 150
What Is an Information Model?
• A structured, primarily graphical, set of rules for
representing information of interest to a community.
– Specifies information needed to support the activities of a
business.
• Depicts real or abstract objects, their characteristics
and relationships to one another.
• Two types:
– Logical models/schemas
– Physical models/schemas.
Database Applications GIT 150
Logical and Physical Information Models
• Logical
– Defines information requirements in the form of a set of
non-redundant technical and management data declarations,
but does not include the design considerations and physical
storage parameters.
– A logical schema contains entities made up of attributes,
and connected by relations.
• Physical
– Contains all the needed logical and physical design choices
and physical storage parameters needed to generate a
design in a data definition language, which can then be
used to create a database.
Database Applications GIT 150
The Modeling Languages
• Several techniques/languages have been developed for the
design of information models. While these methodologies
guide modelers in their work, two different people using
the same methodology will often come up with different
results.
• Some are based upon a Relational paradigm, others on
Object-Oriented paradigm, and some are hybrids.
Examples include:
– Entity-relationship diagrams (R)
– IDEF-1x (R), IDEF-4 (O)
– Object Role Modeling (ORM) or Nijssen's Information Analysis
Method (NIAM) (H)
– EXPRESS, EXPRESS-G (O)
– RM/T (R)
– UML (O)
Database Applications GIT 150
Sample Information Model
(Relational - IDEF 1X)
(SET TYPE)
Database Applications GIT 150
Sample Information Model
(Object Oriented - EXPRESS G)
hair
children S[0:?]
(INV) parents
S[0:2]
person
(DER) age
hair_type
birth_date
date
A[1:3]
INTEGER
first_name
last_name
INTEGER
STRING
nickname
1
*husband
male
female
wife
*maiden_name
Database Applications GIT 150
How Is an Information Model Documented?
• With a modeling language/methodology in conjunction with a data
dictionary repository.
– A data dictionary is a set of metadata that contains definitions and
representations of data elements.
– A data dictionary holds the following information:
•
•
•
•
•
•
Precise definition of the information elements
Usernames, roles and privileges
Integrity constraints
Stored procedures and triggers
General database structure
Space allocations
• One benefit of a well-prepared data dictionary is a consistency
between data items across different tables. For example, several
tables may hold telephone numbers; using a data dictionary the
format of this telephone number field will be consistent.
• Both the methodology (e.g., IDEF1x) and data dictionary are
required to fully understand the content of the information models.
Database Applications GIT 150
Information Models Contain
• Entities/Objects:
– A generalization of a real or abstract thing.
– Example : part, system, or person
– MS Access  Table
• Attributes/Characteristics:
– A fact or property about an object.
– Example : part name, or system number
– MS Access  Field
• Relationships/Relations:
– The association between two entities/objects.
– Example : a system contains many parts
– MS Access  Relationship
Database Applications GIT 150
Entity
• A class of objects about which one wishes to retain
data
• Identifies places, things or events that have common
characteristics
• Uniquely identifiable
• Named with a noun or noun phrase
• Represented by a box on the IDEF1x diagram
Database Applications GIT 150
Entity Rules
• Each entity must have a unique name and same
meaning must always apply to same name
• An entity must have one or more characteristics
which uniquely identify every instance of the entity
• Every entity must have one or more characteristics
which are either owned by the entity or inherited
through a relationship
Database Applications GIT 150
Entity Instance
• An occurrence of an entity
• Entity instances are the information that goes into a
database
• They are not represented in an information model
• An information model captures the structure of the
instance meanings
– - Characteristics
– - Characteristics Values
= Information Model
= Data Base
Database Applications GIT 150
Entity Example
Entity
Characteristics
MOVIE
Movie Number
Instances
Name
Rating
Rental Rate
12345345
Die Hard
PG13
$3
23456781
Wings
PG
$2
65656565
Black Beauty
G
$2
CUSTOMER
Cust Number
Name
Address
12 Oak St
Status
Code
123-345
Tom Jones
789-789
Mary Sullivan 456 Hill Ave
Pend
567-342
Bob Waters
OK
7676 Scutter Rd
OK
Database Applications GIT 150
Attributes
• The characteristics of entities
• A common property for all entity instances
• Identified by a noun phrase that describes the
characteristics being depicted
• Represented as text inside the entity box on the
IDEF1x diagram
• May be either identifying (key) or non-identifying
(non-key)
Database Applications GIT 150
Attribute Rules
• Each attribute must have a unique name and same
meaning must always apply to the same name
• Every attribute is owned by exactly one entity but can
be related to many others
• Every instance of an entity must have a value for
every attribute (no-null rule)
• No instance of an entity can have more than one
value for an attribute (no-repeat rule)
Database Applications GIT 150
Key Attributes
• An attribute or set of attributes whose values uniquely
identify instances of an entity
• Placed at the top of the attribute list within an entity
box
ENTITY
KEY ATTRIBUTE
MOVIE
Movie Number
Database Applications GIT 150
Non-Key Attributes
• A property or characteristic of an entity that is not
part of the key
• Placed after the key attributes and separated by a
horizontal line crossing the entity box
ENTITY
KEY ATTRIBUTE
NON-KEY ATTRIBUTE
MOVIE
Movie Number
Name
Rating
Rental Rate
Database Applications GIT 150
Relationships
• Identify associations between pairs of entities
• Two types of relationships
– Category
– Connection
• Represented by lines drawn between entity boxes
Database Applications GIT 150
Category Relationships
• Used to identify 'subtype relationships' when some
instances of a generic entity have an attribute that
others do not have
• Composed of one generic entity and one or more
category entities
•
•
•
•
Both entities describe the same object
Generic entity contains attributes that are common to all subtypes
Category entities contain attributes that apply only to subtypes
Category entities are mutually exclusive
• Example:
– Movie= generic entity
– Western, Suspense, Comedy = category entities
Database Applications GIT 150
Category Syntax
Generic Entity
Double Line for
Complete Set of
Category Entities
(Discriminator)
Category
Category
Category
Single Line for
Incomplete
Set of Category
Entities
Database Applications GIT 150
Category Rules
• A category entity in one categorization relationship
may be a generic entity in another categorization
relationship
• A generic entity can have multiple categorization
relationships
• The key attributes of a category entity must be the
same as the generic entity
• All instances of a category entity have the same
discriminator value
Database Applications GIT 150
Categorization Example
WESTERN
SUSPENSE
COMEDY
(MOVIETYPE)
MOVIE
INCOMPLETE CATEGORIZATION
(there are other movie types such as Documentary)
MALE
FEMALE
(SEX)
PERSON
COMPLETE CATEGORIZATION
Database Applications GIT 150
Connection Relationships
• Represent an association that exists between two
different entities
• Captures that one entity instance may be related to
zero, one, or many ( 0,1,M ) instances of another
entity
e.g., Customer rents ( 0,1,M ) Movies
• Can be either a Specific or Non-Specific instance
identification
Database Applications GIT 150
Connection Syntax
• Line with solid circle at end point
• Relationship is described with a verb phrase placed
next to connection line
- Circle : represents zero, one or many (0,1,M)
- Circle with Letter P: represents one or more (1,M)
P
- Circle with Letter Z: represents zero or one (0,1)
Z
- Circle with Number: represents an exact number (n)
n
Database Applications GIT 150
Non-Specific Connection
Relationships
• A relationship where one instance of an entity may
relate to 0, 1, M instances of a second entity; and
one instance of the second entity may relate to 0, 1,
M instances of the first entity
• For Example:
– A Customer Rents at 0,1,M Movies, and Each Movie is
Rented by 0, 1, M Customers
MOVIE
CUSTOMER
Cust Number
Name
Address
Status Code
Movie Number
rents/is rented by
Name
Rating
Rental Rate
Database Applications GIT 150
Specific Connection Relationships
• A Parent - Child relationship that resolves a nonspecific relationship to capture additional detail
• A relationship where one instance of an entity
(Parent) may relate to 0, 1, M instances of the second
entity (Child), and the Child entity is related to one
and only one instance of the Parent entity
• For Example:
- A CUSTOMER Rents a specific copy of a MOVIE
Movie Rental Record
Customer
Cust Number
Name
Address
Status Code
rents according to
Movie Number
Movie Copy Id
Rental Date
Cust Number (FK)
Database Applications GIT 150
Attribute Migration
• In all Specific relationships the key attributes of the
parent (first) entity migrate to the child (second)
entity
e.g., Become attributes of the child entity
• These attributes are known as Foreign Key attributes
• The non-key attributes of the parent entity never
migrate
• A migrated key may migrate to either a key or nonkey position in the child entity
Database Applications GIT 150
Attribute Migration Syntax
• A solid line is used to depict a parent-child
relationship where, foreign key migrates to key
position in child entity
– An identifying relationship
– Child entity box has rounded corners
• A dashed line is used to depict a parent-child
relationship where foreign key migrates to non-key
position in child entity
– An non-identifying relationship
– Child entity box has square corners
Database Applications GIT 150
Identifying Relationships
{
Key
"Migrates"
to Key
Position
AIRLINE
Airline-Name
issues
AIRLINE-TICKET
Airline-Ticket-No
Airline-Name (FK)
Database Applications GIT 150
Non-Identifying Relationships
{
Key
"Migrates"
to Non-Key
Position
TRAVEL-AGENCY-BRANCH
Travel-Agency-Br-ID-No
employs
EMPLOYEE
Social Security Number
Travel-Agency-Br-ID-No (FK)
Database Applications GIT 150
Entity Dependency
ZZ
PARENT - EXISTENCE INDEPENDENT, IDENTIFIER INDEPENDENT ENTITY
YY
XX (FK1)
CHILD - EXISTENCE DEPENDENT, IDENTIFIER INDEPENDENT ENTITY
XX (FK1)
CHILD - EXISTENCE DEPENDENT, IDENTIFIER DEPENDENT ENTITY
YY
XX
ZZ
YY (FK1)
XX (FK1)
CHILD - EXISTENCE DEPENDENT, IDENTIFIER DEPENDENT ENTITY
Database Applications GIT 150
Attribute Role Names
• Role names are noun phrases assigned to attributes to
help convey a characteristic's (attribute's) meaning
• Required when a single attribute is inherited more
than once, distinguishes multiple attributes
occurrences
• May be used (optional) for single attribute occurrence
migrations
Database Applications GIT 150
Attribute Role Name
PERSON
PERSON
Name
is Parent in
Name
is Child in
is
Z
FAMILY TREE
Parent.Name
Child.Name
REQUIRED ROLE NAMES
MINOR
MinorPerson.Name
OPTIONAL ROLE NAME
Database Applications GIT 150
Levels of Modeling Detail
• DATA PLANNING MODEL
(ENTITY RELATIONSHIP MODEL)
– The Highest or Most Generalized Level of Abstraction Cannot Make Precise Business Rule Statements
R
E
F
I
N
E
M
E
N
T
DATA PLANNING
MODEL
KEY - BASED MODEL
FULLY ATTRIBUTED MODEL
NUMBER OF ENTITIES
G
E
N
E
R
A
L
I
Z
A
T
I
O
N
Database Applications GIT 150
Planning Model Example
MOVIE
CUSTOMER
Is Rented By
/ Rents
Is Produced In/
Produces
(TYPE)
WESTERN
STUDIO
Database Applications GIT 150
Levels of Modeling Detail
• Key - Based Model
– Adds Unique Identifiers or Key Attributes To the Entities
of the Planning Model
R
E
F
I
N
E
M
E
N
T
DATA PLANNING
MODEL
KEY - BASED MODEL
FULLY ATTRIBUTED MODEL
NUMBER OF ENTITIES
G
E
N
E
R
A
L
I
Z
A
T
I
O
N
Database Applications GIT 150
Key-Based Model Example
MOVIE
RENTAL
MOVIE
MOVIE #
Is Rented By
MOVIE # (FK1)
CUSTOMER # (FK2)
DATE
CUSTOMER
CUSTOMER #
Rents
Is Produced by
(TYPE)
WESTERN
MOVIE #
MOVIE
PRODUCTION
STUDIO ID (FK2)
MOVIE # (FK1)
STUDIO
Funds
STUDIO ID
Database Applications GIT 150
Levels of Modeling Detail
• FULLY ATTRIBUTED MODEL
(FULLY REFINED MODEL)
– Completely Defines Characteristics And
– Relationships of All the Entities Within A
– Given Scope - Greatest Level of Refinement
R
E
F
I
N
E
M
E
N
T
DATA PLANNING
MODEL
KEY - BASED MODEL
FULLY ATTRIBUTED MODEL
NUMBER OF ENTITIES
G
E
N
E
R
A
L
I
Z
A
T
I
O
N
Database Applications GIT 150
Fully Attributed/Refined Model Example
MOVIE
RENTAL
MOVIE
MOVIE #
Is Rented By
TITLE
LENGTH
MOVIE # (FK1)
CUSTOMER # (FK2)
DATE
CUSTOMER
CUSTOMER #
Rents
NAME
ADDRESS
LATE STATUS
Is Produced by
(TYPE)
WESTERN
MOVIE #
LOCATION
ASPCA RATING
MOVIE
PRODUCTION
STUDIO ID (FK2)
MOVIE # (FK1)
BUDGET
STUDIO
Funds
STUDIO ID
STUDIO NAME
ADDRESS
Database Applications GIT 150
• Overview
• Methodology and Documentation
• Modeling Procedures
• Model Translation
• Object Orientation
• Product Data Exchange Standard
• Enterprise Model Utilization & Summary
Database Applications GIT 150
Model Building Procedures
DATA
PLANNING
MODEL
1. SCOPE PROJECT
2. ENTITY DEFINITION
3. RELATIONSHIP DEFINITION
4. KEY ATTRIBUTE DEFINITION
5. NON-KEY ATTRIBUTE DEFINITION
KEY
BASED
MODEL
FULLY
ATTRIBUTED
MODEL
Database Applications GIT 150
Step 1 : Scope Project
• Organize Team
– Manager
– Subject Experts
– Modeling Expert
• Build, Analyze, and Optimize Process Model *
• Identify Functional Requirements and Data Objects
• Collect Source Material
–
–
–
–
Data Object Examples
Interview Results
Policy / Procedure Manual
Data Base / File Specifications for Existing Systems
*Not a trivial exercise
Database Applications GIT 150
Reasons for Process Evaluation and
Measurement
• Process Measurement And Evaluation
Helps To:
1)Focus attention on the real drivers behind achieving the
organization's mission
2)Determine how to use the organization's resources effectively
3)Set goals and monitor trends
4)Analyze root causes and sources of errors
5)Identify opportunities for improvement
6)Give employees a sense of accomplishment
7)Provide a means of knowing whether you're "Winning Or Losing"
• Process Re-Design
Database Applications GIT 150
End Customer = Key to Process Re-Design
• Start workflow evaluation by understanding the
process’s end customer(s).
• An end customer is one who pays for the results of
the process.
– Product
– Service
• Determine "What" is being paid for.
• Intermediate or internal customers (quality circle) are
typically an expense rather than a revenue generator.
Database Applications GIT 150
AS-IS Process to TO-BE Process
• Identify the activities and objects within the AS-IS
process that the end customer pays for.
• Question all others.
• Start at the end of the process and work backward
adding only those activities and objects that are on the
critical path.
Database Applications GIT 150
Process Defined:
• A process or workflow is any activity or group of
activities that takes an input, adds value to it, and
provides an output to an internal or external
customer.
Database Applications GIT 150
Definition of a Process Flow Model
• A graphical workflow model and glossary that
describes what an organization or system actually
does.
• Depicts the time phased actions that are performed by
a person, object, or system component in the
performance of a given action or scenario.
• Views an environment from a process centered view many objects at various points within their life cycle.
Database Applications GIT 150
Purpose of a Process Flow Model
• Drive out the requirements for automation by
capturing the objects, access reasons, approvers,
notifications, organizations, and decision points for
an event.
• Defines the process rulebase for the PDM process
flow engine (i.e., enables the PDM to automate the
environment’s policies and procedures).
• Define configuration management and control
requirements.
• Can help optimize the entire process cycle time by
exposing nonessential or ill-timed tasks.
Graphical process model depicting activities
to be supported by a Student Registration
Database Application
Database Applications GIT 150
Manage 1.1
Student
Data
Manage 1.2
Instructor
Data
Student Information
Identify 1.6
Textbook
Requirements
Instructor Information
Capture 1.8
Student
Registration
Data
Class Details
Manage 1.3
Course
Data
Manage 1.4
Facility
Data
Course
Information
Identify 1.5
Class
Offerings
Facility Information
Textbook Details
Develop 1.7
Class
Catalog
Catalog of Classes
Reg Report
Database Applications GIT 150
Manage Airline Meal Catering Process
Model Example
Airline Information including Ticket Sales
Track
Special Meal
Requests 1.1
Special Requests
1.2.1
Manage
Customers
(Airlines) 1.3
Ticket
Sales
Airline
Information
Understand
Flight
Schedules
Manage
Airline Meal
Delivery 1.2
Schedules
Determine
Flight
Passenger
Counts
1.2.2
Passenge
r
Flight
Details
Identify
Departure
Gate
Location
and Plan
Delivery
Meal
Delivery
Plan
Manage
Flight Delays
and
Cancellations
1.2.4
1.2.3
Schedules
Flight Changes
Database Applications GIT 150
Process Flow Diagram Example
Commercial Loan Process
approved*
application
procedures
new*loan
evaluation worksheet
received*loan
application
O
unapproved*
loan application
approved*
qualification
procedures
completed*
loan
evaluation
worksheet
reviewed* loan
application
CONDUCT
CREDIT CHECK
1
A11
approved*
loan booking
procedures
approved loan*
application
X
MAKE LOAN
DETERMINATION
in-work*
loan
application
2
A12
BOOK
LOAN
O
generated*
internal order
3
A13
qualified*
loan officer
qualified*
loan officer
qualified*
branch
manager
rejected* loan application
with information request
trained*note
department
approved*
loan file
approved*
loan dollars
Database Applications GIT 150
Process Flow Model Elements
• A process flow model is composed of the following
elements:
–
–
–
–
–
–
Activities and Events (Units Of Behavior)
Inputs and Outputs (Object & State Links)
Constraints and Rules (Controls)
Resources (Mechanisms)
Decision Points (Junctions)
Notifications and Messages
Database Applications GIT 150
Process Model Information Interview
Form
MODELER PROFILE
NAME:
JOB TITLE:
LOCATION:
ORG/DEPT/SECTION/GROUP:
ADDRESS:
MAIL STOP:
PHONE#:
SKILLS (optional)
SKILL NAME CODE
EXPERIENCE (optional)
a) PROGRAM/PRODUCT:
JOB DESCRIPTION PFROM TO
b) PROGRAM/PRODUCT:
JOB DESCRIPTION PFROM TO
ACTIVITY INFORMATION
ACTIVITY NAME:
PAGE (2)
NODE#
ACTIVITY DESCRIPTION:
PERFORMING ORG/DEPT/SECTION/GROUP:
AUTHORIZING ORG/DEPT/SECTION/GROUP:
APPROVING ORG/DEPT/SECTION/GROUP:
EQUIPMENT REQUIRED TO PERFORM ACTIVITY
(INCLUDING HW/SW):
ACTIVITY SUCCESS CRITERIA:
c) PROGRAM/PRODUCT:
JOB DESCRIPTION PFROM TO
MAJOR GOALS/OBJECTIVES (optional):
PROBLEMS ASSOCIATED WITH ACTIVITY:
NEEDS FOR PROBLEM SOLUTIONS:
Database Applications GIT 150
Process Model Information Interview
Form
ACTIVITY INFORMATION
ACTIVITY NAME:
PAGE (3)
NODE#
TYPE OF QUESTIONS ASKED IN PERFORMING THE
ACTIVITY:
1)
INPUT & CONTROL INFORMATION FLOW PAGE (4)
ACTIVITY NAME:
NODE#
a) INPUT/CONTROL NAME:
MEDIA:
SIZE:
LIFECYCLE STATE:
NODE#(s) RECEIVED PFROM:
(INPUT) HOW MODIFIED:
(CONTROL) HOW USED:
2)
3)
b) INPUT/CONTROL NAME:
MEDIA:
SIZE:
LIFECYCLE STATE:
NODE#(s) RECEIVED PFROM:
(INPUT) HOW MODIFIED:
4)
(CONTROL) HOW USED:
5)
6)
7)
8)
9)
c) INPUT/CONTROL NAME:
MEDIA:
SIZE:
LIFECYCLE STATE:
NODE#(s) RECEIVED PFROM:
(INPUT) HOW MODIFIED:
(CONTROL) HOW USED:
d) INPUT/CONTROL NAME:
MEDIA:
SIZE:
LIFECYCLE STATE:
NODE#(s) RECEIVED PFROM:
(INPUT) HOW MODIFIED:
(CONTROL) HOW USED:
Database Applications GIT 150
Process Model Information Interview
Form
OUTPUT INFORMATION FLOW
ACTIVITY NAME: NODE#
PAGE (5)
NOTIFICATION INFORMATION FLOWS PAGE (6)
ACTIVITY NAME:
a) OUTPUT NAME:
MEDIA:
SIZE:
LIFECYCLE STATE:
NODE#(s) GOING TO:
b) OUTPUT NAME:
MEDIA:
SIZE:
LIFECYCLE STATE:
NODE#(s) GOING TO:
c) OUTPUT NAME:
MEDIA:
SIZE:
LIFECYCLE STATE:
NODE#(s) GOING TO:
d) OUTPUT NAME:
MEDIA:
SIZE:
LIFECYCLE STATE:
NODE#(s) GOING TO:
e) OUTPUT NAME:
MEDIA:
SIZE:
LIFECYCLE STATE:
NODE#(s) GOING TO:
f) OUTPUT NAME:
MEDIA:
SIZE:
LIFECYCLE STATE:
NODE#(s) GOING TO:
NODE#
a) NOTIFICATION NAME:
PURPOSE:
MEDIA:
SIZE:
ORG/DEPT/SEC/GROUP/PERSON(s) SENDING MESSAGE:
ORG/DEPT/SEC/GROUP/PERSON(s) RECEIVING MESSAGE:
NODE#(s) GOING TO:
b) NOTIFICATION NAME:
PURPOSE:
MEDIA:
SIZE:
ORG/DEPT/SEC/GROUP/PERSON(s) SENDING MESSAGE:
ORG/DEPT/SEC/GROUP/PERSON(s) RECEIVING MESSAGE:
NODE#(s) GOING TO:
c) NOTIFICATION NAME:
PURPOSE:
MEDIA:
SIZE:
ORG/DEPT/SEC/GROUP/PERSON(s) SENDING MESSAGE:
ORG/DEPT/SEC/GROUP/PERSON(s) RECEIVING MESSAGE:
NODE#(s) GOING TO:
Database Applications GIT 150
Project Functional Requirements (PFR)
• A mechanism for translating a process vision (i.e.,
Should Maps, To-Be Process Models) into
information system and database application
requirements.
• Used to organize and summarize one or more
application concepts into reusable capabilities.
• Provides a technique for maintaining traceability
between user requirements and the application system
design specifications.
• The set of PFRs bound the scope of the information
model vision.
Database Applications GIT 150
Each PFR Contains
• A Capability Statement
– A description of “What” function or concept of operation the PFR is providing.
This is extracted from user process analysis.
• A Rationale Statement
– A description of “Why” the PFR is needed. Describes what process(s) is being
supported.
• A Presentation Statement
– A description of “How” the capability(s) defined by the PFR is to be provided or
accomplished. Identifies the implementation approach (i.e., query on-line, report).
• A Data Assertion Statement
– A description of the information needs of the PFR. Identifies the entity/object
classes and their attributes needed to initiate the capability and the entity/object
classes and associated attributes provided by the completion of the capability.
• A Players Statement
– A description of “Who” desires and “Who” utilizes the capability identified in the
PFR.
Database Applications GIT 150
Example PFR for Responsible Personnel for a
Part
• Capability Statement:
– Be able to retrieve responsible personnel or part ownership information
for a given part and optionally include most current system
requirements information as well.
• Rationale Statement:
– To facilitate and make team communication more efficient.
– To support issue resolution by providing the immediate association of
parts that are the subject of or that are affected by an issue and the
people who need to be contacted to achieve team resolution (during
both informal change control and formal issue management).
• Presentation Statement:
– Multi-level screens, using Part, System, Requirement, Responsible
Person as selection to get to secondary screens. Reports not required
but limited printing based upon screen context. Most critical
requirements always shown first based upon area (part) criticality.
Database Applications GIT 150
Part Responsibility PFR Example (Con’t)
• Data Assertion Statement:
– The Part Prefix, Base, with Suffix is the input information
for returning Personnel information that includes Person’s
Name, Title, Phone Number, Department Name, Alternate
Extension, FAX Phone Number. There is a single set of
the Personnel information for each Part Number input.
– Optional Requirements information would include
Requirements text, Product Line, Series Name, Unit Cost,
Total Program Invest, Weight, Quality Assessment, . . .
• Players Statement
– Desired by: Designer, Program Office
– Utilized by: Program Office, CAE Personnel
Database Applications GIT 150
Step 2 : Entity/Object Definition
• Use the Process Flow Model Links and the
Functional Requirement’s Data Assertion Statements
to create an Entity/Object Pool
– list of "things" that have data associated with them
• Test Pool for validity
– Can each entity be described?
– Are there several instances?
– Can one instance be separated from another?
• Define entities in Pool and identify synonyms
Database Applications GIT 150
Step 3 : Relationship Definition
• Build entity relationship matrix
– Identify related entities
– Define connection relationships
– Define category relationships
• Identify dependencies
• Capture narrative statements about the relationship business rules
• Build data planning model
Database Applications GIT 150
Entity Relationship Matrix
MOVIE
X
WESTERN
X
STUDIO
X
CUSTOMER
X
X
X
Database Applications GIT 150
Entity Relationship Matrix
Could Is Prod- Is
Be A uced By Rented
By
MOVIE
WESTERN Is A
Type Of
STUDIO
Produces
CUSTOMER Rents
Database Applications GIT 150
Planning Model Example
MOVIE
CUSTOMER
Is Rented By
/ Rents
Is Produced In/
Produces
(TYPE)
WESTERN
STUDIO
Database Applications GIT 150
Step 4 : Key Attribute Definition
• Resolve non-specific relationships
• Determine primary and alternate keys
• Define key attributes
• Migrate key attributes
• Determine identifying (solid line) and non-identifying
(dashed line) relationships
• Perform no-null, no-repeat, and smallest-key testing
Database Applications GIT 150
Attribute Testing
• No-null rule: for each instance of an entity, all
attributes must have a value
• No-repeat rule: no entity instance can have more than
one value for a given entity key
• Smallest key test: entities with compound keys must
require whole key set for unique identification
Database Applications GIT 150
Key-Based Model Example
MOVIE
RENTAL
MOVIE
MOVIE #
Is Rented By
MOVIE # (FK1)
CUSTOMER # (FK2)
DATE
CUSTOMER
CUSTOMER #
Rents
Is Produced by
(TYPE)
WESTERN
MOVIE #
MOVIE
PRODUCTION
STUDIO ID (FK2)
MOVIE # (FK1)
STUDIO
Funds
STUDIO ID
Database Applications GIT 150
Step 5 : Non-Key Attribute Definition
• Determine non-key attributes
• Define non-key attributes
• Specify precise cardinalities and other information
constraints
• Validate single entity ownership
• Apply no null, no repeat, and smallest key set rules
Database Applications GIT 150
Attribute Ownership
• Each and every attribute must be "owned" by one and
only one entity
• A non-key attribute can only be found within a single
entity unless the attribute is a foreign key (migrated
as a non-key attribute)
PERSON
SSN
PASSPORT
PASSPORT #
has
Z
SSN (FK1)
Database Applications GIT 150
Fully Attributed/Refined Model Example
MOVIE
RENTAL
MOVIE
MOVIE #
Is Rented By
TITLE
LENGTH
MOVIE # (FK1)
CUSTOMER # (FK2)
DATE
CUSTOMER
CUSTOMER #
Rents
NAME
ADDRESS
LATE STATUS
Is Produced by
(TYPE)
WESTERN
MOVIE #
LOCATION
ASPCA RATING
MOVIE
PRODUCTION
STUDIO ID (FK2)
MOVIE # (FK1)
BUDGET
STUDIO
Funds
STUDIO ID
STUDIO NAME
ADDRESS
Database Applications GIT 150
Normalization
• A set of rules for analyzing the attributes of an
information model
–
–
–
–
Eliminate model redundancy
Ensure model consistency
Verify structural correctness
Maximize stability
• However, normalization cannot validate a model's
accuracy in reflecting the business meaning of the
information
Database Applications GIT 150
Normal Forms
• Sequential steps for achieving an optimized and
logically desirable information model
• Provides a common foundation from which an
efficient physical database design can be created
• There are six degrees of normal form - the first three
are usually sufficient for most modeling applications
•
•
•
•
•
•
First normal form
Second normal form
Third normal form
Boyce/Codd normal form
Fourth normal form
Fifth normal form
Database Applications GIT 150
First Normal Form - (1NF)
• Every key and non-key attribute of an entity must be
single valued
• No entity instance can have multiple values for a
given attribute
• i.e., The No Repeat Rule
• A violating entity is corrected by removing repeating
or multivalued attributes to another, dependent (child)
entity
Database Applications GIT 150
First Normal Form - Example
RESTAURANT
REST NAME
ADDRESS
PHONE #
EMPLOYEE NAME
REST NAME
ADDRESS
PHONE #
BURGER KING 123 NORTH ST
123-2345
TACO HOUSE
345 126TH PLACE 765-8907
FISH COMPANY 77 SUNSET AVE
395-5682
RESTAURANT
REST NAME
ADDRESS
PHONE #
EMPLOYEE NAME
JOHN, SUE, LISA
MARY, BILL
ED, SAM, JOSE, RICK
EMPLOYEE
employs
EMPLOYEE NAME
REST NAME
POSITION
Database Applications GIT 150
Second Normal Form - (2NF)
• An entity that is in first normal form and each nonkey attribute is dependent on the entire primary key
• No non-key attribute instance can be determined by
knowing just part of an entity instances key
• A violating entity is corrected by removing to a
parent entity any attributes that depend on only a
subset of the primary key
Database Applications GIT 150
Second Normal Form - Example
RESTAURANT ORDER
REST NAME
SUPPLIER NAME
ORDER ITEM
SUPPLIER PHONE #
REST NAME
SUPPLIER NAME ORDER ITEM
BURGER KING SAM'S PRODUCE
TACO HOUSE
SALSA INC.
FISH COMPANY SAM'S PRODUCE
SUPPLIER
SUPPLIER NAME
PHONE #
fills
BEEF
PEPPERS
SNAPPER
SUPPLIER PHONE #
123-2345
765-8907
123-2345
RESTAURANT ORDER
REST NAME
ORDER ITEM
SUPPLIER NAME (FK1)
Database Applications GIT 150
Third Normal Form - (3NF)
• An entity that is in second normal form and each nonkey attribute is only dependent on the entire primary
key and nothing other than the key
• No non-key attribute instance can be determined by
knowing the value of another non-key attribute for
the same instance
• A violating entity is corrected by removing to a
parent entity any attributes exhibiting transitive
dependencies (non-key attributes that not only depend
on the whole key but also on other non-key attributes)
Database Applications GIT 150
Third Normal Form - Example
RESTAURANT RESERVATION
REST NAME
RESERVATION #
CUSTOMER NAME
CUSTOMER PHONE #
TIME
# IN PARTY
REST NAME
RES # CUST NAME
F. JONES
BURGER KING 12
R. SMITH
TACO HOUSE
234
F. JONES
FISH COMPANY 88
CUSTOMER
CUSTOMER NAME
PHONE #
makes
CUST PH #
123-2345
765-8907
123-2345
TIME
11:00 AM
2:30 PM
8:15 PM
# IN PARTY
4
4
6
RESTAURANT RESERVATION
REST NAME
RESERVATION #
CUSTOMER NAME (FK1)
TIME
# IN PARTY
Database Applications GIT 150
Boyce/Codd Normal Form - (BCNF)
• An entity that is in third normal form and all
attributes depend on only the entire primary or
alternate keys (candidate keys) and do not depend on
any subset of the candidate keys.
• No non-key attribute instance can be determined by
knowing the value of another non-key or partial key
attribute for an alternate key entity instance
• A violating alternate key instance entity is corrected
by removing to a parent entity any attributes that
depend on only a subset of the primary key or those
exhibiting transitive dependencies
Database Applications GIT 150
Fourth Normal Form - (4NF)
(APPLIES ONLY TO COMPOUND/COMPOSITE KEYS)
• An entity that is in boyce/codd normal form and the
primary and alternate keys do not contain any
independently multivalued attributes
• No entity instance should contain two or more
independent facts about an entity unless inherited
through relationships
• Don't mix apples and oranges
• A violating entity is corrected by removing any
independently multivalued components of the
primary key to two or more new (possibly) parent
entities
Database Applications GIT 150
Fifth Normal Form - (5NF)
(APPLIES ONLY TO COMPOUND/COMPOSITE KEYS)
• An entity that is in fourth normal form and the
primary key does not contain any pairwise cyclic
redundancies
• No entity instance should contain information which
can be reconstructed from smaller pieces of
information which can be maintained with less
redundancy
• A violating entity is corrected by simultaneous
decomposition into three or more new parent entities
Database Applications GIT 150
• Overview
• Methodology and Documentation
• Modeling Procedures
• Model Translation
• Object Orientation
• Product Data Exchange Standard
• Enterprise Model Utilization & Summary
Database Applications GIT 150
Model Translation
• Logical to Physical, Relational Database
• Converting IDEF-1X (ER Models) to EXPRESS (OO
Models)
Database Applications GIT 150
Translation of a Logical Model into a
Physical, Relational Database
• Identify Tables
• Identify Columns
• Adapt Data Structure To Product Environment
• Design Databases For Business Rules About Entities
• Design For Business Rules About Relationships
• Design For Business Rules About Attributes
Database Applications GIT 150
STEP 1 : Identify Tables
• In general, identify one table for each AIM entity.
• Define each bottom level Subtype entity as a table
rolling all Supertype attributes down into the
Subtypes. Or, define top level Supertype entity as a
table rolling all Subtype attributes into Supertype as
optional class dependent attributes. Write triggers to
enforce inheritance rules (ONEOF etc.).
• Document tables in a data dictionary.
Database Applications GIT 150
STEP 2 : Identify Columns
• In general, identify one column for each attribute of
an AIM entity.
• In general, don't define composite columns (multiple
AIM attributes per column).
• Define triggers to enforce integrity and cardinality
rules.
• Document table columns in data dictionary.
• Create ER diagram of global internal schema by
depicting tables as ER entities and columns as ER
entity attributes.
Database Applications GIT 150
STEP 3 : Adapt Data Structure To
Product Environment
• Define optimum sequencing of columns for physical
device storage and performance
• If feasible, for each table allocate enough primary
storage space to contain the entire table - try to
minimize use of secondary space
• If feasible, for each table allocate enough free storage
space to accommodate all anticipated row inserts and
updates that may occur after initial table load or after
table reorganization
Database Applications GIT 150
STEP 3 : Adapt Data Structure To
Product Environment (con't)
• Define database(s) to facilitate greater concurrency/data
availability and to avoid physical size limitations.
• Group common business meaning entity/tables together
into separate databases.
• Group commonly accessed entity/tables together into
separate databases.
• Evaluate and design databases to utilize locking
parameters which optimize data record locking for
minimal size and time.
• Document database meta data in data dictionary.
• Create ER subset diagrams of global internal schema for
each database.
Database Applications GIT 150
STEP 4 : Design Databases For
Business Rules About Entities
i.e., Uniqueness, Minimality, And Key Null Value Disallowance
• Enforce entity uniqueness key (and alternate key)
concepts through DBMS data definition language
(DDL) and/or DBMS domain definitions.
• Document database table key and alternate key
concepts and enforcement methods in data dictionary.
Database Applications GIT 150
STEP 5 : Design For Business Rules
About Relationships
i.e.,
Key Attribute Insert, Delete, And Update Constraints
• Enforce entity referential integrity concepts through
DBMS data definition language (DDL) foreign key
designation and/or DBMS triggering techniques.
• Document database table foreign key concepts and
enforcement methods in data dictionary.
Database Applications GIT 150
STEP 6 : Design For Business Rules About
Attributes (Domain Constraints & Events)
• Enforce entity attribute domain and action event
concepts through DBMS data definition language
(DDL), indexes, and/or standard maintenance
routines.
– Domain constraints = data type, length, format/mask,
allowable value definition, uniqueness, null support, and/or
default value specification.
– Action events = triggering mechanisms to enforce object
methods and algorithms specified in aim.
• Document database domain and action event concepts
and enforcement techniques in data dictionary.