|
The following is a quick summary of the talk Jeremey attended Sep15/94
entitled "Data Modelling Essentials: Analysis, Design, and Innovation",
given by Graeme Simsion from Simsion Bowles & Associates, Sydney, Australia (280
George Street, Sydney 2000; Tel (02) 232-2366, Fax (02) 232-3708; they also have
offices in Melbourne and Canberra). It was an excellent talk about data
modelling with a number of good ideas to "keep things in perspective".
Mr. Simsion has a book published (1994) by the same name, Canadian
publisher is Nelson Canada, 102 Dodds Street, 1120 Birchmount Roac, Scarborough,
Ontario, M1K 5G4. ISBN 1850328773.
Nine fundamental ideas:
1) Data modelling is DESIGN (i.e. not "analysis")
Analysis is the search for truth; design is the search for solutions. There
is no one right solution (therefore a different solution is not necessarily
"wrong"). Data modelling classifies and represents things; we all individually
have different inherent classification systems. Creativity is relevant, vital,
and appropriate for design activities; it's amenable to formal techniques; and
it's manageable (e.g. creativity in building a bridge is OK; creative accounting
is not). Data modelling is a solution, NOT a user requirement (a data model is
one possible answer to the stated requirements). Because of the benefits of
creativity, a data model should not necessarily be forced to conform to the
corporate model.
2) Data modelling is IMPORTANT.
It is not a question of whether to data model, but how much time, money, who
does the model. It's a short activity with a major impact - one doesn't build a
house without a plan and building a system is no different. Well designed
databases (from a good data model) have made the difference between companies
who can adjust to meet changing market demands from those who went under because
it simply took them too long to retool their systems.
3) Data modelling is a DISCIPLINE.
There is a need for professionals; specialists; and they should feel
responsible for the design. (Accreditation is important ...jj)
4) Logical database design is the data modeller's job.
Primary key should be
- applicable (i.e. meets ALL instances; e.g. if you use a car's
registration number as a primary key, how do you identify those cars that
are not registered?)
- unique
- singular (i.e. only one of each instance defined in the database; Joe
must not be both employee #2634 and #2698)
- stable *** most important
NOTE: surrogate keys are not panaceas.
DA and DBA have a shared responsibility for the gray area between the
conceptual (logical) and internal (physical) design. Tradeoffs are required
between business requirements and technical considerations. Data Administration
must go to the level of programming to tell the programmers how to program the
business; otherwise DA's specifications simply get coded around. (Note: this
is equivalent to the Data Administration group being involved in process
modelling, something the ISB committed to in the 1994 reorganization ...jj)
5) Pattern re-use is central to data modelling.
Experienced modellers re-use; novice modellers model from first principles.
Modelling is about patterns; recognizing patterns from other sources often gives
creative or innovative solutions.
6) The level of generalization is critical.
Picking the right level of generalization means picking where the business
rules are enforced (i.e. in the data, or in the programming).
7) Subtypes help.
Especially for communication, comparing options, representing the rules...
Generic data leads to generic functions - this means fewer screens, modules,
reports which is less expensive. BUT, must adequately recognize any true
differences, subtle and otherwise; be careful - users can get confused with more
generic applications.
8) Corporate data modelling is different.
Having a clear purpose is vital. Why are you doing one? ("Distributed Jigsaw
Championship" - each person take any 50 pieces, when everyone's finished we'll
put the whole thing together!) Don't confuse a Corporate Data Model with
corporate data management. Recognize the point of diminishing
returns; draw an arbitrary line.
9) Data modelling isn't everything!!
Data modelling endeavors to enable change easily, in one of two ways:
- table driven values,
- programming changes (good data design makes programming changes easier).
However, there are other things out there... image, text, objects, rich
pictures, dynamic models.... Know what the limits to data modelling are; know
when to call for help externally (i.e. from other disciplines).
|