Академический Документы
Профессиональный Документы
Культура Документы
Management Systems,
Database Design, and
GIS
presented by:
Tim Haithcoat
University of Missouri
Columbia
Strategy
Conceptual
ANALYSIS
DESIGN
BUILD USER
DOCUMENTATION
TRANSITION
PRODUCTION
Operational System
Strategy Conceptual Cross-Checking Function
Data Modeling Modeling
Analysis E-R Data Model Function Hierarchy
Entity Definitions Function Definitions
Database Application Data Flow Diagrams
Design Design Cross-Checking Design
Table Definitions Module Designs
Index, View, Cluster,
Database and Space Application
Build Definitions
Build Build
Operational Operational
Database Application
Operational
System
Good Database Design Prevents...
Column (Attribute)
STUDENT
name CATALOG ITEM
for VENDOR
phone number * current price
* package quantity #* code
* unit of measure the * name
supplier
of
for
supplied
by
PRODUCT
#* id
* name
* description
• A line between two
entities
one
• Lower case Many
mandatory
(crowsfoot) optional
relationship names
• Optionality managed
Optional (may be) ACCOUNT by BANK
Mandatory (must be) * number #* number
the
• Degree manager
of
One or more
One & only one managed
ACCOUNT by BANK
* number #* number
the
manager
of
Entity-Relationship (E-R) Model
Sample
Data
(1 of 2)
EASEMENTS
EASEMENT_ID = EASEMENT_ID
EASEMENTID <pk.fk> NUMBER(8) not null
PARCEL_EASEMENT_DATA
INSTRUMENT_NO NUMBER(16) not null
ES ASEMENT_ID <pk> NUMBER(8) not null
BOOK NUMBER(5) null
RE NO <pk> VARCHAR2(16) not null
PAGE NUMBER(4) null
ACQUISITION <fk> VARCHAR2(1) null
CASE_NO VARCHAR2(10) null
ACQUIRED_DATE DATE null
EASEMENT_TYPE <fk> VARCHAR2(2) null
DISCLAIMER_TYPE <fk> VARCHAR2(2) not null
REFERENCE_NO VARCHAR2(16) null
DISCLAIMED_DATE DATE null
WIDTH NUMBER null
LASTUPDATED DATE null
EASEMENT_AREA NUMBER null
LAST_USER VARCHAR2(30) null
LAST_UPDATED DATE null
LAST_USER VARCHAR2(30) null
DISCLAIMER_TYPE = DISCLAIMER_TYPE
EASEMENT_TYPE = EASEMENT_TYPE
DISCLAIMER_TYPE_L
EASEMENT_TYPE_L
DISCLAIMER_TYPE <pk> VARCHAR2(1) not null
EASEMENT_TYPE <pk> VARCHAR2(2) not null
DESCRIPTION VARCHAR2(50) null
DESCRIPTION VARCHAR2(50) null
INACTIVE VARCHAR2(1) null
INACTIVE VARCHAR2(1) null
V_EASEMENT
V_EASEMENT
PARCEL_EASEMENT_DATA.LAST_UPDATE
PARCEL_EASEMENT_DATA.LAST_UPDATE DATE
DATE
Select PARCEL_EASEMENT_DATA.
PARCEL_EASEMENT_DATA.LAST_USER VARCHAR2(30) LAST_UPDATED, PARCEL_EASEMENT_
PARCEL_EASEMENT_DATA.LAST_USER VARCHAR2(30) DATA.LAST_USER, EASEMENTS.
EASEMENTS.INSTRUMENT_NO NUMBER(16)
EASEMENTS.INSTRUMENT_NO NUMBER(16) INSTRUMENT_NO,EASEMENTS.PAGE,
EASEMENTS.PAGE NUMBER(4) EASEMENTS.CASE_NO,EASEMENTS.REF
EASEMENTS.PAGE NUMBER(4)
EASEMENTS.CASE_NO VARCHAR2(10) ERENCE_NO, EASEMENTS.WITH,
EASEMENTS.CASE_NO VARCHAR2(10)
EASEMENTS.EASEMENT_AREA,
EASEMENTS.REFERENCE_NO VARCHAR2(16)
EASEMENTS.REFERENCE_NO VARCHAR2(16) EASEMENTS.LAST_UPDATED,
EASEMETNS.WIDTH NUMBER EASEMENTS. LAST_USER, EASEMENT_
EASEMETNS.WIDTH NUMBER
EASEMENTS.EASEMENT_AREA NUMBER TYPE_L.DESCRIPTION, PARCEL_
EASEMENTS.EASEMENT_AREA NUMBER
EASEMENTS.LAST_UPDATED DATE EASEMENT_DATA.ACQUIRED_DATE,
EASEMENTS.LAST_UPDATED DATE EASEMENTS.EASEMENT_ID,
EASEMENTS.LAST_USER VARCHAR2(30) EASEMENTS. BOOK, EASEMENTS.
EASEMENTS.LAST_USER VARCHAR2(30)
EASEMENT_TYPE_L.DESCRIPTION
EASEMENT_TYPE_L.DESCRIPTION VARCHAR(50)
VARCHAR(50) EASEMENT_TYPE, EASEMENT_TYPE_L.
PARCEL_EASEMENT_DATA.ACQUIRED_DATE DATE EASEMENT_TYPE from EASEMENT_
PARCEL_EASEMENT_DATA.ACQUIRED_DATE DATE
TYPE_L, PARCEL_EASEMENT_DATA,
EASEMENTS.EASEMENT_ID NUMBER(8)
EASEMENTS.EASEMENT_ID NUMBER(8) EASEMENTS where
EASEMENTS.BOOK NUMBER(5) PARCEL_EASEMENT_DATA.
EASEMENTS.BOOK NUMBER(5)
EASEMENTS.EASEMENT_TYPE VARCHAR2(2) EASEMENT_ID = EASEMENTS.
EASEMENTS.EASEMENT_TYPE VARCHAR2(2)
EASEMENTS_TYPE_L.EASEMENT_TYPE VARCHAR2(2)
EASEMENT_ID and EASEMENT_TYPE_L.
EASEMENTS_TYPE_L.EASEMENT_TYPE VARCHAR2(2) EASEMENT_TYPE = EASEMENTS.
EASEMENT_TYPE group by EASEMENT_
EASEMENT_TYPE_L
EASEMENT_TYPE_L TYPE_L.EASEMENT_TYPE order by
PARCEL_EASEMENT_DATA EASEMENTS.EASEMENT.ID
PARCEL_EASEMENT_DATA
EASEMENTS
EASEMENTS
SQL> CREATE TABLE EMPLOEE
2 (DEPTNO NUMBER(2) NOT NULL PIMRARY KEY
3 DNAME CHAR (20) NOT NULL
4 LOC CHAR(15) NOT NULL) ;
EMPLOYEE
EMP_ EMP_ DEPT_ DEPT_NAME MGR_ MGR_ PROJECT_ PROJECT_ START_ BILLED_
NUM NAME NUM NUM NAME NUM NAME DATE HOURS
PK
7902 SMITH 10 SALES 7988 JONES 15 FEASIBILITY 10-SEP-94 100
35 TESTING 20-SEP-94 100
45 HANDOVER 20-OCT-94 150
7988 JONES 20 MARKETING 7699 WALKER 15 FEASIBILITY 05-SEP-94 200
25 ANALYSIS 15-SEP-94 250
45 HANDOVER 20-OCT-94 200
7562 SMITH 10 SALES 7099 PHILLIPS 25 ANALYSIS 20-MAY-94 150
• Objective: to create physical relational database tables
to implement the database design. Structured query
language (SQL) is used to create & manipulate
relational databases.
Design Indexes
• Used to speed the retrieval of data from RDBMS
by reducing the amount of searching that the
RDBMS must do to locate an individual record
• Means of accessing a subset of database as if it
were a table, the view may be:
• Restricted to named columns, change column
names, derive new columns, give access to a
combination of related tables