Newer
Older
Discussion_Papers / Papers / 1997 / 97-07 / dp9707ns.doc.ps
%!PS-Adobe-3.0
%%Title: (Discussion paper)
%%Creator: (Microsoft Word: LaserWriter 8 8.4.2)
%%CreationDate: (11:53 AM Tuesday, 7 October 1997)
%%For: (Nigel Stanger)
%%Routing: (mailto:\000nigel.stanger@stonebow.otago.ac.nz)
%%Pages: 15
%%DocumentFonts: Palatino-Roman Helvetica-Oblique Palatino-Bold Helvetica Helvetica-BoldOblique Times-Roman Times-Italic ArialMT Palatino-Italic CourierNewPSMT Symbol Palatino-BoldItalic TimesNewRomanPS-ItalicMT
%%+ TimesNewRomanPS-BoldItalicMT
%%DocumentNeededFonts: Palatino-Roman Helvetica-Oblique Palatino-Bold Helvetica Helvetica-BoldOblique Times-Roman Times-Italic ArialMT Palatino-Italic CourierNewPSMT Symbol Palatino-BoldItalic TimesNewRomanPS-ItalicMT
%%+ TimesNewRomanPS-BoldItalicMT
%%DocumentSuppliedFonts:
%%DocumentData: Clean7Bit
%%PageOrder: Ascend
%%Orientation: Portrait
%%DocumentMedia: Default 595 842 0 () ()
%ADO_ImageableArea: 28 30 566 811
%%EndComments
userdict/dscInfo 5 dict dup begin
/Title(Discussion paper)def
/Creator(Microsoft Word: LaserWriter 8 8.4.2)def
/CreationDate(11:53 AM Tuesday, 7 October 1997)def
/For(Nigel Stanger)def
/Pages 15 def
end put
/md 321 dict def md begin/currentpacking where {pop /sc_oldpacking currentpacking def true setpacking}if
%%BeginFile: lw8_basic-2.0
%%Copyright: Copyright 1990-1996 Adobe Systems Incorporated and Apple Computer Incorporated. All Rights Reserved.
/bd{bind def}bind def
/xdf{exch def}bd
/xs{exch store}bd
/ld{load def}bd
/Z{0 def}bd
/T/true
/F/false
/:L/lineto
/lw/setlinewidth
/:M/moveto
/rl/rlineto
/rm/rmoveto
/:C/curveto
/:T/translate
/:K/closepath
/:mf/makefont
/gS/gsave
/gR/grestore
/np/newpath
14{ld}repeat
/framewidth -1 def
/QDframwid -1 def
/numframes Z
/mTS matrix def
/$m matrix def
/av 84 def
/por T def
/normland F def
/psb-nosave{}def
/pse-nosave{}def
/us Z
/psb{/us save store}bd
/pse{us restore}bd
/level2
/languagelevel where
{
pop languagelevel 2 ge
}{
F
}ifelse
def
/odictstk Z
/oopstk Z
/fcl
{
count oopstk sub dup 0 gt
{
{pop}repeat
}{
pop
}ifelse
countdictstack odictstk sub dup 0 gt
{
{end}repeat
}{
pop
}ifelse
}bd
/sfcl2
{
/odictstk countdictstack store
count/oopstk xs
}bd
/efcl2
{
stopped{$error/newerror F put}if
fcl
}bd
/noload Z
/startnoload
{
{/noload save store}if
}bd
/endnoload
{
{noload restore}if
}bd
level2 startnoload
/setjob
{
statusdict/jobname 3 -1 roll put
}bd
/setcopies
{
userdict/#copies 3 -1 roll put
}bd
/devg/DeviceGray def
/devr/DeviceRGB def
/devc/DeviceCMYK def
/ststpgdev{}def
/dopgdev{}def
/stpgdev{}def
/buf Z
/didstop T def
/sfcl
{
/didstop T store
/odictstk countdictstack store
count/oopstk xs
currentfile cvx stopped
{
$error/newerror F put
didstop
{
save/didstop xs
/buf vmstatus exch sub exch pop dup 0 lt{pop 0}if
dup 64000 gt{pop 64000}if string store
{
currentfile buf readline
{
(}efcl)eq{exit}if
}{
/UnexpectedEOF errordict/rangecheck get exec
}ifelse
}loop
didstop restore
}if
}if
fcl
}bd
/efcl
{
/didstop F store
exec
stop
}bd
level2 endnoload level2 not startnoload
/setjob
{
1 dict begin/JobName xdf currentdict end setuserparams
}bd
/setcopies
{
1 dict begin/NumCopies xdf currentdict end setpagedevice
}bd
/devg[/DeviceGray]def
/devr[/DeviceRGB]def
/devc[/DeviceCMYK]def
/setpagedevice where{pop/realstpgdev/setpagedevice ld}if
/SC_topddict Z
/SC_spdict Z
/dopgdev
{
md/setpagedevice undef
SC_topddict realstpgdev
}bd
/stpgdev
{
SC_topddict dup 3 -1 roll
{
SC_spdict 2 index known
{
SC_spdict 2 index get
dup 3 -1 roll
{
put dup
}forall
pop put dup
}{
put dup
}ifelse
}forall
pop pop
}bd
/ststpgdev
{
md/setpagedevice/stpgdev load put
/SC_topddict 0 dict store
/SC_spdict 3 dict begin
/InputAttributes 0 dict def
/Policies 0 dict def
/OutputAttributes 0 dict def
currentdict
end
store
}def
/sfcl/sfcl2 ld
/efcl/efcl2 ld
level2 not endnoload
/pm Z
/mT Z
/sD Z
/realshowpage Z
/initializepage
{
mT $m currentmatrix mTS concatmatrix pop
/pm save store mT concat
}bd
/endp
{
pm restore showpage
}def
/adjRect
{
dup 2 mul 6 2 roll
4 index sub exch 5 -1 roll sub exch
4 2 roll
4 index add exch 5 -1 roll add exch
4 2 roll
}bd
/frame1up
{
gS
mTS setmatrix
QDframwid lw
/setstrokeadjust where{pop T setstrokeadjust}if
clippath pathbbox
2 index sub exch
3 index sub exch
currentlinewidth framewidth mul
adjRect
numframes dup 0 lt{pop 0}if
{
4 copy
rS
currentlinewidth framewidth
mul 4 mul
adjRect
}repeat
pop pop pop pop
gR
}bd
/$c devr def
/rectclip where
{
pop/rC/rectclip ld
}{
/rC
{
np 4 2 roll
:M
1 index 0 rl
0 exch rl
neg 0 rl
:K
clip np
}bd
}ifelse
/rectfill where
{
pop/rF/rectfill ld
}{
/rF
{
gS
np
4 2 roll
:M
1 index 0 rl
0 exch rl
neg 0 rl
fill
gR
}bd
}ifelse
/rectstroke where
{
pop/rS/rectstroke ld
}{
/rS
{
gS
np
4 2 roll
:M
1 index 0 rl
0 exch rl
neg 0 rl
:K
stroke
gR
}bd
}ifelse
%%EndFile
%%BeginFile: lw8_level1_colorspace-2.0
/G/setgray ld
/:F1/setgray ld
/:F/setrgbcolor ld
/:F4/setcmykcolor where
{
pop
/setcmykcolor ld
}{
{
3
{
dup
3 -1 roll add
dup 1 gt{pop 1}if
1 exch sub
4 1 roll
}repeat
pop
setrgbcolor
}bd
}ifelse
/:Fx
{
counttomark
{0{G}0{:F}{:F4}}
exch get
exec
pop
}bd
/$cs Z
/:rg{devr :ss}bd
/:sc{$cs :ss}bd
/:dc
{
dup type/arraytype eq{0 get}if
dup/DeviceCMYK eq
{
pop devc
}{
/DeviceGray eq
{
devg
}{
devr
}ifelse
}ifelse
/$cs xdf
}bd
/:sgl{}def
/:dr{}bd
/:fCRD{pop}bd
/:ckcs{}bd
/:ss{/$c xdf}bd
%%EndFile
level2 startnoload
%%BeginFile: lw8_level1_patterns-2.0
/patfreq Z
/patangle Z
/bk Z
/fg Z
/docolorscreen Z
/graystring Z
/pattransf{}def
/initQDpatterns
{
/patfreq 9.375 store
/patangle
1 0 $m defaultmatrix dtransform
exch atan
por not
{90 add}if
normland{180 add}if
store
:a
}def
/docolorscreen
/setcolorscreen where
{
pop/currentcolorscreen where
{
pop/setcmykcolor where
{
pop T
}{
F
}ifelse
}{
F
}ifelse
}{
F
}ifelse
def
/setgraypattern
{
/graystring xs
patfreq
patangle
{
1 add
4 mul
cvi
graystring
exch get
exch
1 add 4 mul
cvi
7 sub
bitshift
1 and
}setscreen
64 div setgray
}bd
/:b
{
/pattransf load settransfer
pop pop pop
setgraypattern
}bd
docolorscreen startnoload
/screensave 5 array def
/:a{currentgray currentscreen currenttransfer screensave astore pop}bd
/:e{screensave aload pop settransfer setscreen setgray}bd
/:d
{
pop pop pop
/pattransf load settransfer
setgraypattern 8{pop}repeat
}bd
/:c
/:d ld
docolorscreen endnoload docolorscreen not startnoload
/screensave 20 array def
/:a{currentcmykcolor currentcolorscreen currentcolortransfer screensave astore pop}bd
/:e{screensave aload pop setcolortransfer setcolorscreen setcmykcolor}bd
/rstring Z
/grstring Z
/blstring Z
/convroll{64 div 4 -1 roll}bd
/setcolorpattern
{
/graystring xs
/blstring xs
/grstring xs
/rstring xs
patfreq
patangle
{
1 add 4 mul cvi rstring
exch get exch 1 add 4 mul
cvi 7 sub bitshift 1 and
}
patfreq
patangle
{
1 add 4 mul cvi grstring
exch get exch 1 add 4 mul
cvi 7 sub bitshift 1 and
}
patfreq
patangle
{
1 add 4 mul cvi blstring
exch get exch 1 add 4 mul
cvi 7 sub bitshift 1 and
}
patfreq
patangle
{
1 add 4 mul cvi graystring
exch get exch 1 add 4 mul
cvi 7 sub bitshift 1 and
}
setcolorscreen
convroll convroll convroll convroll
setcmykcolor
}bd
/:d
{
pop pop pop
/pattransf load settransfer
pop pop setcolorpattern
}bd
/:c
/:d ld
docolorscreen not endnoload
%%EndFile
level2  endnoload level2 not startnoload
%%BeginFile: lw8_level2_patterns-2.0
/pmtx Z
/BGnd Z
/FGnd Z
/PaintData Z
/PatternMtx Z
/PatHeight Z
/PatWidth Z
/$d Z
/savecolor 4 array def
/savecolorspace Z
/patDecode Z
/:a{
mark 0 0 0 currentcolor savecolor astore pop cleartomark
/savecolorspace currentcolorspace store
$c setcolorspace
/patDecode
[currentcolor counttomark
dup 2 add 1
roll
cleartomark[exch
{0 1}repeat]
def
}bd
/:e{
savecolorspace setcolorspace
mark savecolor aload pop setcolor cleartomark
}bd
/initQDpatterns
{
gS
initmatrix
mT dup 4 get exch 5 get :T
1 0 dtransform round exch round exch idtransform
dup mul exch dup mul exch add sqrt
0 1 dtransform round exch round exch idtransform
dup mul exch dup mul exch add sqrt
neg
scale
0
por not{90 add}if
normland{180 add}if
rotate
matrix currentmatrix
gR
/pmtx xs
:a
}bd
/:t
{
14 dict begin
/BGnd xdf
/FGnd xdf
/PaintData xdf
/PatternType 1 def
/PaintType 1 def
/BBox[0 0 1 1]def
/TilingType 1 def
/XStep 1 def
/YStep 1 def
/PatternMtx[24 0 0 24 0 0]def
/PaintProc
BGnd null ne
{
{
begin
BGnd aload pop :F
0 0 1 1 rF
FGnd aload pop :F
24 24 T PatternMtx PaintData imagemask
end
}
}{
{
begin
FGnd aload pop :F
24 24 T PatternMtx PaintData imagemask
end
}
}ifelse
def
currentdict
PatternMtx
end
$c setcolorspace
gS pmtx setmatrix makepattern gR
}bd
/:u
{
14 dict begin
/$d 8 dict def
/PatternType 1 def
/PaintType 1 def
/BBox[0 0 1 1]def
/TilingType 1 def
/XStep 1 def
/YStep 1 def
/PaintData xdf
/PatHeight xdf
/PatWidth xdf
/PatternMtx[PatWidth 0 0 PatHeight 0 0]def
$d begin
/ImageType 1 def
/MultipleDataSource F def
/Height PatHeight def
/Width PatWidth def
/Decode patDecode def
/ImageMatrix PatternMtx def
/DataSource PaintData def
/BitsPerComponent 8 def
end
/PaintProc
{
begin
$d image
end
}def
currentdict
PatternMtx
end
gS $c setcolorspace pmtx setmatrix makepattern gR
}bd
/bk[1 1 1]def
/fg[0 0 0]def
/:b{
:t
setpattern
pop pop
}bd
/:d{
:t
setpattern
10{pop}repeat
}bd
/:c{
:u
setpattern
10{pop}repeat
}bd
%%EndFile
level2 not endnoload
%%BeginFile: lw8_uniform_graphics-2.0
/@a
{
np :M 0 rl :L 0 exch rl 0 rl :L fill
}bd
/@b
{
np :M 0 rl 0 exch rl :L 0 rl 0 exch rl fill
}bd
/@c
{
moveto 0 rlineto stroke
}bd
/@w
{
moveto 0 exch rlineto stroke
}bd
/arct where
{
pop
}{
/arct
{
arcto pop pop pop pop
}bd
}ifelse
/x1 Z
/x2 Z
/y1 Z
/y2 Z
/rad Z
/@q
{
/rad xs
/y2 xs
/x2 xs
/y1 xs
/x1 xs
np
x2 x1 add 2 div y1 :M
x2 y1 x2 y2 rad arct
x2 y2 x1 y2 rad arct
x1 y2 x1 y1 rad arct
x1 y1 x2 y1 rad arct
fill
}bd
/@s
{
/rad xs
/y2 xs
/x2 xs
/y1 xs
/x1 xs
np
x2 x1 add 2 div y1 :M
x2 y1 x2 y2 rad arct
x2 y2 x1 y2 rad arct
x1 y2 x1 y1 rad arct
x1 y1 x2 y1 rad arct
:K
stroke
}bd
/@i
{
np 0 360 arc fill
}bd
/@j
{
gS
np
:T
scale
0 0 .5 0 360 arc
fill
gR
}bd
/@e
{
np
0 360 arc
:K
stroke
}bd
/@f
{
np
$m currentmatrix
pop
:T
scale
0 0 .5 0 360 arc
:K
$m setmatrix
stroke
}bd
/@k
{
gS
np
:T
0 0 :M
0 0 5 2 roll
arc fill
gR
}bd
/@l
{
gS
np
:T
0 0 :M
scale
0 0 .5 5 -2 roll arc
fill
gR
}bd
/@m
{
np
arc
stroke
}bd
/@n
{
np
$m currentmatrix
pop
:T
scale
0 0 .5 5 -2 roll arc
$m setmatrix
stroke
}bd
%%EndFile
%%BeginFile: lw8_bubn-2.0
/$t Z
/$p Z
/$s Z
/$o 1. def
/2state? F def
/ps Z
level2 startnoload
/pushcolor/currentrgbcolor ld
/popcolor/setrgbcolor ld
/setcmykcolor where
{
pop/currentcmykcolor where
{
pop/pushcolor/currentcmykcolor ld
/popcolor/setcmykcolor ld
}if
}if
level2 endnoload level2 not startnoload
/pushcolor
{
currentcolorspace $c eq
{
currentcolor currentcolorspace T
}{
currentcmykcolor F
}ifelse
}bd
/popcolor
{
{
setcolorspace setcolor
}{
setcmykcolor
}ifelse
}bd
level2 not endnoload
/pushstatic
{
2state?
$o
$t
$p
$s
$cs
ps
}bd
/popstatic
{
/ps xs
/$cs xs
/$s xs
/$p xs
/$t xs
/$o xs
/2state? xs
}bd
/pushgstate
{
save errordict/nocurrentpoint{pop 0 0}put
currentpoint
3 -1 roll restore
pushcolor
currentlinewidth
currentlinecap
currentlinejoin
currentdash exch aload length
np clippath pathbbox
$m currentmatrix aload pop
}bd
/popgstate
{
$m astore setmatrix
2 index sub exch
3 index sub exch
rC
array astore exch setdash
setlinejoin
setlinecap
lw
popcolor
np :M
}bd
/bu
{
pushgstate
gR
pushgstate
2state?
{
gR
pushgstate
}if
pushstatic
pm restore
mTS setmatrix
}bd
/bn
{
/pm save store
popstatic
popgstate
gS
popgstate
2state?
{
gS
popgstate
}if
}bd
/cpat{pop 64 div setgray 8{pop}repeat}bd
%%EndFile
%%BeginFile: lw8_basic_text-2.0
/S/show ld
/A{
0.0 exch ashow
}bd
/R{
0.0 exch 32 exch widthshow
}bd
/W{
0.0 3 1 roll widthshow
}bd
/J{
0.0 32 4 2 roll 0.0 exch awidthshow
}bd
/V{
0.0 4 1 roll 0.0 exch awidthshow
}bd
/fcflg T def
/fc{
fcflg{
vmstatus exch sub 50000 lt{
(%%[ Warning: Running out of memory ]%%\r)print flush/fcflg F store
}if pop
}if
}bd
/$f[1 0 0 -1 0 0]def
/:ff{$f :mf}bd
/MacEncoding StandardEncoding 256 array copy def
MacEncoding dup 9/space put dup 39/quotesingle put 96/grave put
/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis/Udieresis/aacute
/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute/egrave
/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde/oacute
/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex/udieresis
/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls
/registered/copyright/trademark/acute/dieresis/notequal/AE/Oslash
/infinity/plusminus/lessequal/greaterequal/yen/mu/partialdiff/summation
/product/pi/integral/ordfeminine/ordmasculine/Omega/ae/oslash
/questiondown/exclamdown/logicalnot/radical/florin/approxequal/Delta/guillemotleft
/guillemotright/ellipsis/space/Agrave/Atilde/Otilde/OE/oe
/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide/lozenge
/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright/fi/fl
/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand
/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex/Idieresis/Igrave
/Oacute/Ocircumflex/apple/Ograve/Uacute/Ucircumflex/Ugrave/dotlessi/circumflex/tilde
/macron/breve/dotaccent/ring/cedilla/hungarumlaut/ogonek/caron
MacEncoding 128 128 getinterval astore pop
level2 startnoload
/copyfontdict
{
findfont dup length dict
begin
{
1 index/FID ne{def}{pop pop}ifelse
}forall
}bd
/$ckeyd md def
/:skey
{
1 index maxlength 2 index
length sub
ge
{
begin
/$mkeys 20 dict def
/$mkeys load
end
dup/$ckeyd xs
}if
3 1 roll put
}bd
/fD1pass
{
40
$ckeyd
//md
ne
{
pop 1
}if
$ckeyd exch
:skey
}bd
/:searchdict Z
/:searchdict
{
exch 2 copy
known
{
get
}{
exch/$mkeys
get
:searchdict
}ifelse
}bd
/lU
{
//md exch 2 copy
known
{
get
}{
exch
/$mkeys get
:searchdict
}ifelse
}bd
level2 endnoload level2 not startnoload
/copyfontdict
{
findfont dup length dict
copy
begin
}bd
/fD1pass/def ld
/lU/load ld
level2 not endnoload
/fD Z
/sf Z
/scf Z
/sf1pass
{
lU setfont
}bd
/scf1pass
{
exch lU exch scalefont fD
}bd
/scf2pass
{
scalefont fD
}bd
md/fontname known not{
/fontname/customfont def
}if
/Encoding Z
/:mre
{
copyfontdict
/Encoding MacEncoding def
fontname currentdict
end
definefont :ff fD
}bd
/:bsr
{
copyfontdict
/Encoding Encoding 256 array copy def
Encoding dup
}bd
/pd{put dup}bd
/:esr
{
pop pop
fontname currentdict
end
definefont :ff fD
}bd
/ps Z
/fz{/ps xs}bd
/cF/currentfont ld
/mbf
{
/makeblendedfont where
{
pop
makeblendedfont
/ABlend exch definefont
}{
pop
}ifelse
fD
}def
%%EndFile
%%BeginFile: lw8_derived_styles-2.0
/wi
version(23.0)eq
{
{
gS 0 0 0 0 rC stringwidth gR
}bind
}{
/stringwidth load
}ifelse
def
/$o 1. def
/gl{$o G}bd
/ms{:M S}bd
/condensedmtx[.82 0 0 1 0 0]def
/:mc
{
condensedmtx :mf fD
}bd
/extendedmtx[1.18 0 0 1 0 0]def
/:me
{
extendedmtx :mf fD
}bd
/basefont Z
/basefonto Z
/dxa Z
/dxb Z
/dxc Z
/dxd Z
/dsdx2 Z
/bfproc Z
/:fbase
{
dup/FontType get 0 eq{
dup length dict begin
dup{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall
/FDepVector exch/FDepVector get[exch/:fbase load forall]def
}/bfproc load ifelse
/customfont currentdict end definefont
}bd
/:mo
{
/bfproc{
dup dup length 2 add dict
begin
{
1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse
}forall
/PaintType 2 def
/StrokeWidth .012 0 FontMatrix idtransform pop def
/customfont currentdict
end
definefont
8 dict begin
/basefonto xdf
/basefont xdf
/FontType 3 def
/FontMatrix[1 0 0 1 0 0]def
/FontBBox[0 0 1 1]def
/Encoding StandardEncoding def
/BuildChar
{
exch begin
basefont setfont
( )dup 0 4 -1 roll put
dup wi
setcharwidth
0 0 :M
gS
gl
dup show
gR
basefonto setfont
show
end
}def
}store :fbase
}bd
/:mso
{
/bfproc{
7 dict begin
/basefont xdf
/FontType 3 def
/FontMatrix[1 0 0 1 0 0]def
/FontBBox[0 0 1 1]def
/Encoding StandardEncoding def
/BuildChar
{
exch begin
sD begin
/dxa 1 ps div def
basefont setfont
( )dup 0 4 -1 roll put
dup wi
1 index 0 ne
{
exch dxa add exch
}if
setcharwidth
dup 0 0 ms
dup dxa 0 ms
dup dxa dxa ms
dup 0 dxa ms
gl
dxa 2. div dup ms
end
end
}def
}store :fbase
}bd
/:ms
{
/bfproc{
dup dup length 2 add dict
begin
{
1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse
}forall
/PaintType 2 def
/StrokeWidth .012 0 FontMatrix idtransform pop def
/customfont currentdict
end
definefont
8 dict begin
/basefonto xdf
/basefont xdf
/FontType 3 def
/FontMatrix[1 0 0 1 0 0]def
/FontBBox[0 0 1 1]def
/Encoding StandardEncoding def
/BuildChar
{
exch begin
sD begin
/dxb .05 def
basefont setfont
( )dup 0 4 -1 roll put
dup wi
exch dup 0 ne
{
dxb add
}if
exch setcharwidth
dup dxb .01 add 0 ms
0 dxb :T
gS
gl
dup 0 0 ms
gR
basefonto setfont
0 0 ms
end
end
}def
}store :fbase
}bd
/:mss
{
/bfproc{
7 dict begin
/basefont xdf
/FontType 3 def
/FontMatrix[1 0 0 1 0 0]def
/FontBBox[0 0 1 1]def
/Encoding StandardEncoding def
/BuildChar
{
exch begin
sD begin
/dxc 1 ps div def
/dsdx2 .05 dxc 2 div add def
basefont setfont
( )dup 0 4 -1 roll put
dup wi
exch dup 0 ne
{
dsdx2 add
}if
exch setcharwidth
dup dsdx2 .01 add 0 ms
0 .05 dxc 2 div sub :T
dup 0 0 ms
dup dxc 0 ms
dup dxc dxc ms
dup 0 dxc ms
gl
dxc 2 div dup ms
end
end
}def
}store :fbase
}bd
/:msb
{
/bfproc{
7 dict begin
/basefont xdf
/FontType 3 def
/FontMatrix[1 0 0 1 0 0]def
/FontBBox[0 0 1 1]def
/Encoding StandardEncoding def
/BuildChar
{
exch begin
sD begin
/dxd .03 def
basefont setfont
( )dup 0 4 -1 roll put
dup wi
1 index 0 ne
{
exch dxd add exch
}if
setcharwidth
dup 0 0 ms
dup dxd 0 ms
dup dxd dxd ms
0 dxd ms
end
end
}def
}store :fbase
}bd
/italicmtx[1 0 -.212557 1 0 0]def
/:mi
{
italicmtx :mf fD
}bd
/:v
{
[exch dup/FontMatrix get exch
dup/FontInfo known
{
/FontInfo get
dup/UnderlinePosition known
{
dup/UnderlinePosition get
2 index 0
3 1 roll
transform
exch pop
}{
.1
}ifelse
3 1 roll
dup/UnderlineThickness known
{
/UnderlineThickness get
exch 0 3 1 roll
transform
exch pop
abs
}{
pop pop .067
}ifelse
}{
pop pop .1 .067
}ifelse
]
}bd
/$t Z
/$p Z
/$s Z
/:p
{
aload pop
2 index mul/$t xs
1 index mul/$p xs
.012 mul/$s xs
}bd
/:m
{gS
0 $p rm
$t lw
0 rl stroke
gR
}bd
/:n
{
gS
0 $p rm
$t lw
0 rl
gS
gl
stroke
gR
strokepath
$s lw
/setstrokeadjust where{pop
currentstrokeadjust T setstrokeadjust stroke setstrokeadjust
}{
stroke
}ifelse
gR
}bd
/:o
{gS
0 $p rm
$t 2 div dup rm
$t lw
dup 0 rl
stroke
gR
:n
}bd
%%EndFile
%%BeginFile: lw8_dashes-2.0
/:q/setdash ld
/:r{
np
:M
:L
stroke
}bd
/nodash[]def
/qdenddash
{
nodash 0 setdash
}bd
%%EndFile
/currentpacking where {pop sc_oldpacking setpacking}if end
%%EndProlog
%%BeginSetup
md begin
/fD/def ld/sf/setfont ld /scf/scf2pass ld
sfcl{
%%BeginFeature: *HPHalftone Enhanced
 
<< /Install {
	currentpagedevice /HWResolution get
	dup 0 get 600 eq exch 1 get 600 eq and
	{/EnhancedColorRendering600} {/EnhancedColorRendering} ifelse
	/ColorRendering findresource setcolorrendering
	/EnhancedHalftone /Halftone findresource sethalftone
	{ } settransfer false setstrokeadjust
} >> setpagedevice
currentpagedevice /HWResolution get dup 0 get 600 eq exch 1 get 600 eq and
	{ 
		<< /PostRenderingEnhance true 
			/PostRenderingEnhanceDetails << /REValue 0 /Type 8 >> 
		>>  setpagedevice	
	}if
/setscreen { pop pop pop } def
/setcolorscreen { pop pop pop pop pop pop pop pop pop pop pop pop } def
/sethalftone { pop } def 

%%EndFeature

}efcl

sfcl{
%%BeginFeature: *Smoothing None
 
<< /PostRenderingEnhance true 
    /PostRenderingEnhanceDetails << /REValue 0 /Type 8 >> 
>>  setpagedevice
%%EndFeature

}efcl

sfcl{
%%BeginFeature: *ManualFeed False

	<</ManualFeed false>> setpagedevice
%%EndFeature

}efcl

sfcl{
%%BeginFeature: *PageSize A4Small

	<</DeferredMediaSelection true /PageSize [595 842] /ImagingBBox null>> setpagedevice
%%EndFeature

}efcl

(Nigel Stanger)setjob
sfcl{/currentdistillerparams where{pop 1 dict dup/Orientation 2 put setpagedevice}if
}efcl

/mT[1 0 0 -1 28 811]def
initQDpatterns
/sD 16 dict def
 600 level2{1 dict dup/WaitTimeout 4 -1 roll put setuserparams}{statusdict/waittimeout 3 -1 roll put}ifelse
%%IncludeFont: Palatino-Roman
/f44/Palatino-Roman
:mre
/f60 f44 10 scf
%%IncludeFont: Helvetica-Oblique
/f81/Helvetica-Oblique
:mre
/f98 f81 10 scf
%%IncludeFont: Palatino-Bold
/f109/Palatino-Bold
:mre
/f124 f109 24 scf
%%IncludeFont: Helvetica
/f135/Helvetica
:mre
/f148 f135 12 scf
/f159 f81 12 scf
/f170 f44 12 scf
/f181 f109 18 scf
%%IncludeFont: Helvetica-BoldOblique
/f192/Helvetica-BoldOblique
:mre
/f211 f192 12 scf
/f222 f135 10 scf
%%IncludeFont: Times-Roman
/f241/Times-Roman
:mre
/f255 f241 10 scf
/f266 f241 7 scf
%%IncludeFont: Times-Italic
/f277/Times-Italic
:mre
/f292 f277 10 scf
%%IncludeFont: ArialMT
/f311/ArialMT
:mre
/f323 f311 10 scf
/f334 f109 12 scf
%%IncludeFont: Palatino-Italic
/f345/Palatino-Italic
:mre
/f361 f345 12 scf
/f372 f44 9 scf
/f383 f135 9 scf
%%IncludeFont: CourierNewPSMT
/f405/CourierNewPSMT
:mre
/f421 f405 10 scf
/f432 f241 20 scf
/f443 f277 20 scf
/f454 f241 14 scf
/f465 f277 14 scf
/f476 f345 9 scf
/f487 f109 14 scf
%%IncludeFont: Symbol
/f507/Symbol
:bsr
240/apple pd
:esr
/f519 f507 12 scf
%%IncludeFont: Palatino-BoldItalic
/f530/Palatino-BoldItalic
:mre
/f548 f530 12 scf
/f559 f507
:mi
/f563 f559 12 scf
%%IncludeFont: TimesNewRomanPS-ItalicMT
/f587/TimesNewRomanPS-ItalicMT
:mre
/f608 f587 14 scf
%%IncludeFont: TimesNewRomanPS-BoldItalicMT
/f619/TimesNewRomanPS-BoldItalicMT
:mre
/f642 f619 12 scf
/f653 f241 12 scf
/f664 f192 10 scf
/f675 f135 11 scf
/f686 f135 7 scf
/f697 f345 10 scf
/Courier findfont[10 0 0 -10 0 0]:mf setfont
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
initializepage
(Nigel Stanger; page: 1 of 15)setjob
%%EndPageSetup
gS 0 0 538 781 rC
128 725 :M
f60 sf
([)S
f98 sf
(To appear in Proceedings of the Fifth European Conference on)S
125 736 :M
(Information Systems \(ECIS \32597\), June 18\32021 1997, Cork, Ireland)S
411 736 :M
f60 sf
(])S
114 61 :M
f124 sf
(Environments for viewpoint)S
185 88 :M
(representations)S
177 124 :M
f148 sf
(Nigel Stanger and Richard Pascoe)S
122 136 :M
f159 sf
(Department of Information Science, University of Otago)S
208 148 :M
(Dunedin, New Zealand)S
152 160 :M
(Email: nigel.stanger@stonebow.otago.ac.nz)S
endp
%%Page: 2 2
%%BeginPageSetup
initializepage
(Nigel Stanger; page: 2 of 15)setjob
%%EndPageSetup
-28 -31 :T
gS 28 31 538 781 rC
294 803 :M
f170 sf
(1)S
72 92 :M
f124 sf
(Environments for viewpoint)S
72 119 :M
(representations)S
72 153 :M
f181 sf
(Abstract)S
72 180 :M
f170 sf
(Modelling the structure of data is an important part of any system analysis project.)S
72 193 :M
(One problem that can arise is that there may be many differing viewpoints among)S
72 206 :M
(the various groups that are involved in a project. Each of these viewpoints describes)S
72 219 :M
(a perspective on the phenomenon being modelled. In this paper, we focus on the)S
72 232 :M
(representation of developer viewpoints, and in particular on how multiple)S
72 245 :M
(viewpoint representations may be used for database design. We examine the issues)S
72 258 :M
(that arise when transforming between different viewpoint representations, and)S
72 271 :M
(describe an architecture for implementing a database design environment based on)S
72 284 :M
(these concepts.)S
72 324 :M
f181 sf
(1. Introduction)S
72 351 :M
f170 sf
(Modelling the structure of data is an important part of any system analysis project.)S
72 364 :M
(In this paper, the modelling of data is discussed using the concepts of perspectives,)S
72 377 :M
(viewpoints, representations, techniques and schemes, as shown in Figure\3121, and)S
72 390 :M
(suggested by Finkelstein\312\(1989\), Easterbrook\312\(1991a\) and Darke and Shanks\312\(1995\).)S
1 G
122 406 350 317 rC
.5 lw
50.5 331.25 407 @w
.75 G
1 lw
148.5 561.5 298 43 rS
.5 G
124.5 622.5 347 88 rS
0 G
np 191 568 :M
190 555 :L
193 560 :L
198 557 :L
191 568 :L
.5 lw
eofill
-.5 -.5 193.5 560.5 .5 .5 205 519 @b
np 403 568 :M
404 555 :L
401 560 :L
396 557 :L
403 568 :L
eofill
389 519.5 -.5 .5 401.5 560 .5 389 519 @a
np 205 632 :M
214 622 :L
212 628 :L
218 630 :L
205 632 :L
eofill
-.5 -.5 212.5 628.5 .5 .5 269 597 @b
np 389 632 :M
376 630 :L
382 628 :L
380 622 :L
389 632 :L
eofill
325 597.5 -.5 .5 382.5 628 .5 325 597 @a
np 297 568 :M
293 556 :L
297 560 :L
301 556 :L
297 568 :L
eofill
27.5 297.25 533 @w
np 297 505 :M
293 492 :L
297 496 :L
301 492 :L
297 505 :L
eofill
55.5 297.25 441 @w
np 389 505 :M
377 499 :L
383 499 :L
383 493 :L
389 505 :L
eofill
325 441.5 -.5 .5 383.5 499 .5 325 441 @a
np 205 505 :M
211 493 :L
211 499 :L
217 499 :L
205 505 :L
eofill
-.5 -.5 211.5 499.5 .5 .5 269 441 @b
gR
gS 28 31 538 781 rC
np 289 416 :M
287 417 :L
284 418 :L
281 418 :L
278 418 :L
275 417 :L
273 416 :L
269 415 :L
266 415 :L
264 416 :L
263 416 :L
261 417 :L
256 419 :L
254 419 :L
251 420 :L
247 420 :L
245 419 :L
243 419 :L
239 418 :L
236 417 :L
235 416 :L
233 415 :L
231 415 :L
229 415 :L
228 415 :L
227 415 :L
226 415 :L
225 416 :L
223 418 :L
223 418 :L
223 419 :L
221 422 :L
219 423 :L
218 424 :L
217 425 :L
217 427 :L
218 428 :L
218 429 :L
219 430 :L
219 432 :L
219 433 :L
218 434 :L
217 435 :L
215 436 :L
213 437 :L
211 438 :L
211 438 :L
210 439 :L
209 441 :L
209 442 :L
209 443 :L
209 444 :L
209 445 :L
210 447 :L
211 448 :L
211 448 :L
212 449 :L
215 451 :L
216 451 :L
217 452 :L
219 453 :L
220 454 :L
221 455 :L
221 455 :L
222 456 :L
225 458 :L
227 458 :L
229 459 :L
232 461 :L
234 462 :L
236 463 :L
241 465 :L
243 465 :L
246 465 :L
251 466 :L
254 467 :L
257 468 :L
262 469 :L
264 469 :L
266 469 :L
270 468 :L
272 467 :L
274 466 :L
278 465 :L
280 465 :L
280 465 :L
283 466 :L
286 467 :L
289 468 :L
290 468 :L
292 469 :L
294 469 :L
296 469 :L
298 469 :L
298 469 :L
299 469 :L
301 467 :L
302 466 :L
302 466 :L
304 465 :L
307 464 :L
310 464 :L
311 464 :L
314 464 :L
320 463 :L
322 463 :L
324 463 :L
328 464 :L
329 465 :L
329 465 :L
332 466 :L
333 466 :L
337 467 :L
338 467 :L
341 467 :L
347 468 :L
349 469 :L
351 470 :L
353 470 :L
355 470 :L
356 470 :L
357 469 :L
358 469 :L
360 467 :L
361 465 :L
362 464 :L
363 463 :L
365 462 :L
367 461 :L
368 461 :L
369 461 :L
372 459 :L
374 458 :L
375 456 :L
375 456 :L
376 455 :L
378 453 :L
378 452 :L
378 452 :L
380 451 :L
381 450 :L
382 450 :L
383 449 :L
384 449 :L
385 448 :L
386 447 :L
386 445 :L
386 444 :L
386 443 :L
386 442 :L
385 441 :L
383 439 :L
382 438 :L
381 437 :L
379 436 :L
377 435 :L
375 434 :L
374 434 :L
373 434 :L
371 434 :L
370 433 :L
368 431 :L
368 431 :L
368 431 :L
367 430 :L
366 428 :L
365 426 :L
364 424 :L
364 423 :L
362 421 :L
360 420 :L
358 419 :L
357 419 :L
356 419 :L
353 419 :L
350 419 :L
346 419 :L
344 419 :L
343 419 :L
339 419 :L
336 418 :L
334 417 :L
333 416 :L
332 415 :L
330 414 :L
326 413 :L
324 414 :L
323 414 :L
322 415 :L
320 415 :L
319 415 :L
318 415 :L
317 414 :L
316 413 :L
314 412 :L
313 411 :L
312 411 :L
311 411 :L
310 411 :L
309 411 :L
308 412 :L
307 414 :L
307 414 :L
307 414 :L
305 416 :L
304 416 :L
303 416 :L
301 415 :L
299 414 :L
297 414 :L
294 414 :L
291 415 :L
289 416 :L
eofill
.75 G
289 416 :M
285.662 417.994 281.163 418.16 275.5 416.5 :C
269.829 414.827 265.663 414.66 263 416 :C
260.329 417.327 257.329 418.327 254 419 :C
250.663 419.66 247.663 419.827 245 419.5 :C
242.33 419.16 239.496 418.16 236.5 416.5 :C
233.496 414.827 230.663 414.16 228 414.5 :C
225.33 414.827 223.663 415.994 223 418 :C
222.33 419.994 220.997 421.66 219 423 :C
216.997 424.327 216.663 426.327 218 429 :C
219.33 431.66 218.997 433.493 217 434.5 :C
214.997 435.493 213.163 436.493 211.5 437.5 :C
209.83 438.493 209 440.327 209 443 :C
209 445.66 209.663 447.493 211 448.5 :C
212.33 449.493 214.163 450.493 216.5 451.5 :C
218.83 452.493 220.497 453.66 221.5 455 :C
222.497 456.326 224.163 457.326 226.5 458 :C
228.83 458.66 231.33 459.826 234 461.5 :C
236.663 463.16 239.663 464.16 243 464.5 :C
246.33 464.826 249.996 465.66 254 467 :C
257.996 468.326 261.329 469 264 469 :C
266.663 469 269.329 468.326 272 467 :C
274.663 465.66 277.162 465.16 279.5 465.5 :C
281.829 465.826 285.162 466.66 289.5 468 :C
293.829 469.326 296.662 469.66 298 469 :C
299.329 468.326 300.829 467.326 302.5 466 :C
304.162 464.66 306.995 463.826 311 463.5 :C
314.995 463.16 318.495 463 321.5 463 :C
324.495 463 326.995 463.493 329 464.5 :C
330.995 465.493 333.995 466.16 338 466.5 :C
341.995 466.826 345.828 467.66 349.5 469 :C
353.161 470.326 355.828 470.493 357.5 469.5 :C
359.161 468.493 360.494 466.993 361.5 465 :C
362.494 462.993 364.828 461.493 368.5 460.5 :C
372.161 459.493 374.494 458.16 375.5 456.5 :C
376.494 454.826 377.328 453.493 378 452.5 :C
378.661 451.493 380.327 450.493 383 449.5 :C
385.661 448.493 386.827 446.827 386.5 444.5 :C
386.161 442.16 384.661 439.827 382 437.5 :C
379.327 435.16 376.494 434 373.5 434 :C
370.494 434 368.494 433.16 367.5 431.5 :C
366.494 429.827 365.328 427.494 364 424.5 :C
362.661 421.493 360.328 419.66 357 419 :C
353.661 418.327 349.495 418.327 344.5 419 :C
339.495 419.66 335.495 418.66 332.5 416 :C
329.495 413.327 326.495 412.66 323.5 414 :C
320.495 415.327 318.162 415.16 316.5 413.5 :C
314.828 411.827 312.995 411 311 411 :C
308.995 411 307.662 411.994 307 414 :C
306.329 415.994 304.329 416.16 301 414.5 :C
297.662 412.827 293.662 413.327 289 416 :C
.5 lw
gS
eofill
gR
0 G
stroke
122 406 350 317 rC
231 437 134 12 rC
232 446 :M
f211 sf
(Real-world phenomena)S
gR
1 G
gS 122 406 350 317 rC
262 505 72 29 rF
0 G
.5 lw
262.5 505.5 71 28 rS
271 514 54 10 rC
272 522 :M
f222 sf
(Perspective)S
gR
gS 122 406 350 317 rC
269 541 59 10 rF
269 541 59 10 rC
270 549 :M
0 G
f255 sf
(expressed as a)S
gR
gS 122 406 350 317 rC
262 568 72 30 rF
0 G
.5 lw
262.5 568.5 71 29 rS
276 578 45 10 rC
277 586 :M
f222 sf
(Viewpoint)S
gR
0 G
gS 122 406 350 317 rC
np 297 632 :M
293 620 :L
297 624 :L
301 620 :L
297 632 :L
eofill
.5 lw
27.5 297.25 597 @w
1 G
261 605 74 10 rF
261 605 74 10 rC
262 613 :M
0 G
f255 sf
(using one or more)S
gR
1 G
gS 122 406 350 317 rC
134 643 72 58 rF
0 G
.5 lw
134.5 643.5 71 57 rS
132 647 76 21 rC
147 655 :M
f222 sf
(Technique)S
147 664 :M
f266 sf
([E-R modelling])S
gR
gS 263 631 69 10 rC
264 639 :M
0 G
f222 sf
(Representation)S
gR
.5 G
gS 122 406 350 317 rC
np 262 671 :M
248 676 :L
252 671 :L
248 667 :L
262 671 :L
eofill
48 205 671.5 @c
np 389 671 :M
375 676 :L
380 671 :L
375 667 :L
389 671 :L
eofill
48 333 671.5 @c
126 712 286 10 rC
127 720 :M
0 G
f292 sf
(Database design environment using multiple viewpoint representations)S
gR
1 G
gS 122 406 350 317 rC
354 505 72 29 rF
0 G
.5 lw
354.5 505.5 71 28 rS
363 514 54 10 rC
364 522 :M
f222 sf
(Perspective)S
gR
gS 122 406 350 317 rC
170 505 71 29 rF
0 G
.5 lw
170.5 505.5 70 28 rS
178 514 54 10 rC
179 522 :M
f222 sf
(Perspective)S
gR
gS 122 406 350 317 rC
368 568 72 30 rF
0 G
.5 lw
368.5 568.5 71 29 rS
381 578 45 10 rC
382 586 :M
f222 sf
(Viewpoint)S
gR
gS 122 406 350 317 rC
155 568 72 30 rF
0 G
.5 lw
155.5 568.5 71 29 rS
169 578 45 10 rC
170 586 :M
f222 sf
(Viewpoint)S
gR
.75 G
gS 122 406 350 317 rC
np 226 583 :M
240 578 :L
236 583 :L
240 587 :L
226 583 :L
eofill
np 262 583 :M
248 587 :L
252 583 :L
248 578 :L
262 583 :L
eofill
17 236 583.5 @c
np 333 583 :M
347 578 :L
342 583 :L
347 587 :L
333 583 :L
eofill
np 368 583 :M
354 587 :L
359 583 :L
354 578 :L
368 583 :L
eofill
18 342 583.5 @c
147 606 89 10 rC
148 614 :M
0 G
f292 sf
(Viewpoint integration)S
gR
gS 229 659 7 10 rC
230 667 :M
0 G
f292 sf
(T)S
gR
gS 235 664 5 7 rC
236 669 :M
0 G
f266 sf
(1)S
gR
gS 356 659 7 10 rC
357 667 :M
0 G
f292 sf
(T)S
gR
gS 362 664 5 7 rC
363 669 :M
0 G
f266 sf
(2)S
gR
1 G
gS 122 406 350 317 rC
256 479 83 10 rF
256 479 83 10 rC
257 487 :M
0 G
f255 sf
(viewed from several)S
gR
gS 132 675 76 21 rC
152 683 :M
0 G
f222 sf
(Scheme)S
138 692 :M
f266 sf
([Martin ERD notation])S
gR
:a
0(\377\377\377\377\377\377\377\377)(\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377)fg bk
:b
gS 122 406 350 317 rC
.5 lw
[4
4
] 0 :q
205 671 134 671 :r
[] 0 :q
205 671 :M
psb
pse
:e
0 G
136 631 69 10 rC
137 639 :M
f222 sf
(Representation)S
gR
:e
1 G
gS 122 406 350 317 rC
262 643 72 58 rF
0 G
.5 lw
262.5 643.5 71 57 rS
259 647 76 21 rC
274 655 :M
f222 sf
(Technique)S
281 664 :M
f266 sf
([Relational])S
gR
gS 259 675 76 22 rC
279 684 :M
0 G
f323 sf
(Scheme)S
288 693 :M
f266 sf
([SQL])S
gR
:a
0(\377\377\377\377\377\377\377\377)(\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377)fg bk
:b
gS 122 406 350 317 rC
.5 lw
[4
4
] 0 :q
333 671 262 671 :r
[] 0 :q
333 671 :M
psb
pse
:e
0 G
391 631 69 10 rC
392 639 :M
f222 sf
(Representation)S
gR
:e
1 G
gS 122 406 350 317 rC
389 643 72 58 rF
0 G
.5 lw
389.5 643.5 71 57 rS
387 647 76 21 rC
402 655 :M
f222 sf
(Technique)S
401 664 :M
f266 sf
([Functional dep.])S
gR
gS 387 675 76 22 rC
407 684 :M
0 G
f323 sf
(Scheme)S
406 693 :M
f266 sf
([FD diagram])S
gR
:a
0(\377\377\377\377\377\377\377\377)(\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377)fg bk
:b
gS 122 406 350 317 rC
.5 lw
[4
4
] 0 :q
460 671 389 671 :r
[] 0 :q
460 671 :M
psb
pse
:e
0 G
gR
:e
gS 28 31 538 781 rC
151 746 :M
0 G
f334 sf
(Figure\3121.)S
f170 sf
( Perspectives, viewpoints and representations.)S
endp
%%Page: 3 3
%%BeginPageSetup
initializepage
(Nigel Stanger; page: 3 of 15)setjob
%%EndPageSetup
-28 -31 :T
gS 28 31 538 781 rC
294 803 :M
f170 sf
(2)S
90 82 :M
(A )S
f361 sf
(perspective)S
156 82 :M
f170 sf
( is a description of some real-world phenomenon that has internal)S
72 95 :M
(consistency and a specified focus \(Easterbrook 1991a\))S
355 95 :M
(. During the requirements)S
72 108 :M
(definition phase of systems analysis, developers often encounter many different)S
72 121 :M
(perspectives on the problem being modelled. Perspectives may overlap, or even)S
72 134 :M
(conflict with each other. Part of the process of database design is deciding how to)S
72 147 :M
(deal with these multiple perspectives. This is an active area of research and has been)S
72 160 :M
(discussed by several authors \(Leite and Freeman 1991; Easterbrook, Finkelstein et al.)S
72 173 :M
(1994; Kotonya and Sommerville 1996\).)S
90 186 :M
(A )S
f361 sf
(viewpoint)S
f170 sf
( is a formatted expression of a perspective )S
376 186 :M
(\(Finkelstein, Goedicke et al.)S
72 199 :M
(1989\))S
100 199 :M
(. Darke and Shanks\312\(1995\))S
238 199 :M
( define two main types of viewpoint, )S
f361 sf
(user)S
457 199 :M
f170 sf
( )S
f361 sf
(viewpoints)S
72 212 :M
f170 sf
(and )S
f361 sf
(developer)S
141 212 :M
f170 sf
( )S
f361 sf
(viewpoints)S
f170 sf
(. These viewpoints may be described using various)S
72 225 :M
f361 sf
(representations)S
f170 sf
(, each of which comprises a )S
f361 sf
(technique)S
341 225 :M
f170 sf
( expressed in some notation or)S
72 238 :M
f361 sf
(scheme)S
f170 sf
(. A technique may have one or more associated schemes, but each)S
72 251 :M
(combination of a technique and a scheme to describe a viewpoint forms a distinct)S
72 264 :M
(representation. For example, the relational model \(RM\) is a technique, with SQL and)S
72 277 :M
(QUEL being two possible schemes, but the combinations RM\312+\312SQL and)S
72 290 :M
(RM\312+\312QUEL form two distinct representations. Figure\3121 does not show techniques)S
72 303 :M
(with multiple schemes for the sake of clarity.)S
90 316 :M
(Darke and Shanks\312\(1995\))S
222 316 :M
( grouped representations into three categories:)S
90 342 :M
(\245)S
108 342 :M
f361 sf
(informal)S
f170 sf
( representations, consisting of unstructured descriptions, often)S
108 355 :M
(expressed using a natural language;)S
90 380 :M
(\245)S
108 380 :M
(s)S
f361 sf
(emi-formal)S
166 380 :M
f170 sf
( representations, consisting of structured descriptions. Examples)S
108 393 :M
(include entity-relationship modelling and data flow diagrams; and)S
90 418 :M
(\245)S
108 418 :M
f361 sf
(formal)S
f170 sf
( representations, consisting of structured descriptions and a set of)S
108 431 :M
(operators for processing these descriptions. Examples include the relational)S
108 444 :M
(model )S
145 444 :M
(\(Codd 1970\))S
210 444 :M
( and logic-based languages.)S
90 469 :M
(Unlike informal representations, which are often ill-defined, inconsistent and)S
72 482 :M
(incomplete, semi-formal and formal representations are well-defined, consistent and)S
72 495 :M
(unambiguous. A key feature of formal representations that is lacking in semi-formal)S
72 508 :M
(representations is the inclusion of operators which allow us to make assertions about)S
72 521 :M
(the viewpoints being described. User viewpoints are typically defined using)S
72 534 :M
(informal representations, whereas developer viewpoints are typically defined using)S
72 547 :M
(more formal representations.)S
90 560 :M
(In general, no single representation will be adequate to fully describe all types of)S
72 573 :M
(viewpoint, and indeed, the current plethora of modelling techniques suggests that a)S
72 586 :M
(single representation is inadequate to fully describe even a )S
386 586 :M
f361 sf
(single)S
f170 sf
( viewpoint. The)S
72 599 :M
(approach suggested here is to use multiple representations to describe a particular)S
72 612 :M
(viewpoint. This is because the use of many representations, each with their slightly)S
72 625 :M
(different constructs, allows a more complete description of a viewpoint to be formed)S
72 638 :M
(than that formed using a single representation.)S
90 652 :M
(Thus, we can say that a viewpoint is specified by a set of )S
f361 sf
(descriptions)S
f170 sf
(, each using)S
72 665 :M
(some kind of representation to describe either the whole viewpoint, or some subset)S
72 678 :M
(of the viewpoint. These descriptions may be distinct from each other, or they may)S
72 691 :M
(overlap. For example, Figure\3122 shows a developer viewpoint of a simplified used-car)S
72 704 :M
(dealership, specified by the union of four descriptions: )S
365 704 :M
f361 sf
(D)S
f372 sf
0 2 rm
(1)S
0 -2 rm
379 704 :M
f170 sf
(, an entity-relationship)S
72 717 :M
(diagram \(ERD\); )S
f361 sf
(D)S
168 719 :M
f372 sf
(2)S
173 717 :M
f170 sf
(, a functional dependency diagram \(FDD\); )S
f361 sf
(D)S
f372 sf
0 2 rm
(3)S
0 -2 rm
414 717 :M
f170 sf
(, an SQL schema;)S
72 730 :M
(and )S
f361 sf
(D)S
105 732 :M
f372 sf
(4)S
110 730 :M
f170 sf
(, a data flow diagram \(DFD\). Some of these descriptions overlap considerably)S
72 743 :M
(\(for example, )S
f361 sf
(D)S
155 745 :M
f372 sf
(1)S
160 743 :M
f170 sf
( and )S
f361 sf
(D)S
196 745 :M
f372 sf
(3)S
201 743 :M
f170 sf
(\), whereas others overlap to a lesser extent \(for example, )S
502 743 :M
f361 sf
(D)S
f372 sf
0 2 rm
(1)S
0 -2 rm
72 756 :M
f170 sf
(and )S
f361 sf
(D)S
105 758 :M
f372 sf
(4)S
110 756 :M
f170 sf
(\). Each description uses a different representation.)S
endp
%%Page: 4 4
%%BeginPageSetup
initializepage
(Nigel Stanger; page: 4 of 15)setjob
%%EndPageSetup
-28 -31 :T
gS 28 31 538 781 rC
294 803 :M
f170 sf
(3)S
96 72 420 470 rC
np 377 226 :M
371 230 :L
371 228 :L
370 227 :L
377 226 :L
.25 lw
eofill
-.25 -.25 330.25 247.25 .25 .25 371 228 @b
1 G
33 12 392.5 224 @j
0 G
32 11 392.5 224 @f
1 G
62 33 330 247.5 @j
0 G
.5 lw
61 32 330 247.5 @f
np 330 231 :M
328 224 :L
330 224 :L
332 224 :L
330 231 :L
eofill
.25 lw
118.25 330.125 106 @w
1 G
48 24 330 106 @j
0 G
.5 lw
47 23 330 106 @f
1 G
328 107 -3 3 354 133 3 328 104 @a
0 G
np 353 135 :M
348 131 :L
349 130 :L
350 129 :L
353 135 :L
.75 lw
eofill
330 106.25 -.25 .25 349.25 130 .25 330 106 @a
1 G
40 16 330 106 @j
0 G
.5 lw
39 15 330 106 @f
315 102 28 6 rC
gS
.55 .55 scale
598.064 191.431 :T
-598.064 -191.431 :T
574.064 194.431 :M
f222 sf
(TRANS_ID)S
gR
gR
1 G
gS 96 72 420 470 rC
3 lw
32 329.5 254 @w
0 G
np 330 285 :M
328 278 :L
330 278 :L
332 278 :L
330 285 :L
.75 lw
eofill
.25 lw
22.25 330.125 256 @w
np 330 279 :M
328 273 :L
330 273 :L
332 273 :L
330 279 :L
eofill
25.25 330.125 248 @w
1 G
55 26 329.5 247 @j
0 G
.5 lw
54 25 329.5 247 @f
1 G
3 lw
105 328 246.5 @c
0 G
np 431 247 :M
425 249 :L
425 247 :L
425 245 :L
431 247 :L
.75 lw
eofill
.25 lw
95.25 330 247.125 @c
1 G
48 18 330 247 @j
0 G
.5 lw
47 17 330 247 @f
308 244 43 6 rC
gS
.55 .55 scale
598.348 449.461 :T
-598.348 -449.461 :T
561.348 452.461 :M
f222 sf
(REGISTRATION)S
gR
gR
gS 96 72 420 470 rC
63 48 462.5 247 @j
0 G
.5 lw
62 47 462.5 247 @f
1 G
39 24 462.5 256 @j
0 G
.25 lw
38 23 462.5 256 @f
446 249 33 11 rC
gS
.55 .55 scale
839.13 462.547 :T
-839.13 -462.547 :T
821.13 461.547 :M
f222 sf
(MAKE +)S
gR
gS
.55 .55 scale
839.13 462.547 :T
-839.13 -462.547 :T
812.047 470.632 :M
f222 sf
(MODEL + \311)S
gR
gR
gS 96 72 420 470 rC
59 24 330.5 297 @j
0 G
.5 lw
58 23 330.5 297 @f
1 G
3 lw
34 329.5 295 @w
51 16 330.5 336 @j
0 G
.5 lw
50 15 330.5 336 @f
np 330 328 :M
328 321 :L
330 321 :L
332 321 :L
330 328 :L
eofill
24.5 330.25 297 @w
1 G
51 16 330.5 297 @j
0 G
50 15 330.5 297 @f
307 293 46 6 rC
gS
.55 .55 scale
597.715 537.5 :T
-597.715 -537.5 :T
557.715 541.5 :M
f222 sf
(FEATURE_CODE)S
gR
gR
gS 311 332 38 6 rC
gS
.55 .55 scale
597.981 609.367 :T
-597.981 -609.367 :T
564.981 612.367 :M
0 G
f222 sf
(DESCRIPTION)S
gR
gR
gS 96 72 420 470 rC
381.5 165.5 42.5 @i
0 G
.25 lw
381.5 165.5 42 @e
1 G
3 lw
54 380 167.5 @c
54 380 190.5 @c
0 G
np 433 167 :M
426 169 :L
426 167 :L
426 166 :L
433 167 :L
.75 lw
eofill
.25 lw
44.25 382 167.125 @c
np 433 190 :M
426 192 :L
426 190 :L
426 189 :L
433 190 :L
eofill
44.25 382 190.125 @c
1 G
82 21 474 167.5 @j
0 G
.5 lw
81 20 474 167.5 @f
436 164 76 5 rC
gS
.55 .55 scale
860.88 302.275 :T
-860.88 -302.275 :T
793.88 305.275 :M
f222 sf
(NAME + ADDRESS + PHONE)S
gR
gR
gS 96 72 420 470 rC
53 15 381.5 167.5 @j
0 G
.5 lw
52 14 381.5 167.5 @f
360 163 43 6 rC
gS
.55 .55 scale
691.998 301.275 :T
-691.998 -301.275 :T
653.998 305.275 :M
f222 sf
(CUSTOMER_NO)S
gR
gR
gS 96 72 420 470 rC
45 16 381.5 191 @j
0 G
.5 lw
44 15 381.5 191 @f
361 186 39 6 rC
gS
.55 .55 scale
690.631 343.069 :T
-690.631 -343.069 :T
657.631 347.069 :M
f222 sf
(SALESREP_ID)S
gR
gR
gS 350 132 63 16 rC
gS
.55 .55 scale
693.264 254.127 :T
-693.264 -254.127 :T
661.264 247.127 :M
0 G
f222 sf
(TRANS_DATE)S
gR
gS
.55 .55 scale
693.264 254.127 :T
-693.264 -254.127 :T
661.264 267.116 :M
0 G
f222 sf
(TRANS_TYPE)S
gR
gR
gS 96 72 420 470 rC
63 16 464.5 191 @j
0 G
.5 lw
62 15 464.5 191 @f
438 188 54 5 rC
gS
.55 .55 scale
843.697 344.886 :T
-843.697 -344.886 :T
795.697 348.886 :M
f222 sf
(COMMISSION_RATE)S
gR
gR
0 G
gS 96 72 420 470 rC
gR
gS 28 31 538 781 rC
.5 lw
406 184 :M
409.327 184 411 184 411 184 :C
411 184 410.16 182.664 408.5 180 :C
406.827 177.331 406 176 406 176 :C
406 176 405.161 177.331 403.5 180 :C
401.827 182.664 401 184 401 184 :C
401 184 402.66 184 406 184 :C
:K
stroke
96 72 420 470 rC
404 177 4 5 rC
gS
.55 .55 scale
735.931 325.897 :T
-735.931 -325.897 :T
733.931 328.897 :M
f383 sf
(1)S
gR
gR
gS 96 72 420 470 rC
np 471 122 :M
470 115 :L
471 115 :L
473 115 :L
471 122 :L
eofill
.25 lw
16.25 471.125 99 @w
1 G
75 19 471.5 131.5 @j
0 G
.5 lw
74 18 471.5 131.5 @f
439 128 62 6 rC
gS
.55 .55 scale
853.33 237.676 :T
-853.33 -237.676 :T
799.33 241.676 :M
f222 sf
(NAME + ADDRESS + \311)S
gR
gR
1 G
gS 96 72 420 470 rC
51 15 471.5 98.5 @j
0 G
.5 lw
50 14 471.5 98.5 @f
449 95 43 6 rC
gS
.55 .55 scale
854.497 177.711 :T
-854.497 -177.711 :T
817.497 181.711 :M
f222 sf
(EMPLOYEE_NO)S
gR
gR
0 G
gS 96 72 420 470 rC
gR
gS 28 31 538 781 rC
501.5 103 :M
504.492 103 506 103 506 103 :C
506 103 505.159 101.665 503.5 99 :C
501.826 96.332 501 95 501 95 :C
501 95 500.326 96.332 499 99 :C
497.659 101.665 497 103 497 103 :C
497 103 498.492 103 501.5 103 :C
:K
stroke
499 96 4 5 rC
gS
.55 .55 scale
910.33 178.711 :T
-910.33 -178.711 :T
908.33 181.711 :M
f383 sf
(1)S
gR
gR
gS 96 72 420 470 rC
gR
gS 28 31 538 781 rC
.5 lw
419 343 :M
422.327 343 424 343 424 343 :C
424 343 423.16 341.662 421.5 339 :C
419.827 336.328 419 335 419 335 :C
419 335 418.16 336.328 416.5 339 :C
414.827 341.662 414 343 414 343 :C
414 343 415.66 343 419 343 :C
:K
stroke
96 72 420 470 rC
416 336 4 5 rC
gS
.55 .55 scale
759.547 614.818 :T
-759.547 -614.818 :T
757.547 617.818 :M
f383 sf
(1)S
gR
gR
gS 425 337 46 5 rC
gS
.55 .55 scale
813.897 616.636 :T
-813.897 -616.636 :T
773.897 619.636 :M
f222 sf
(Employee number)S
gR
gR
gS 96 72 420 470 rC
np 476 317 :M
474 311 :L
476 311 :L
477 311 :L
476 317 :L
eofill
.25 lw
17.25 476.125 294 @w
1 G
59 16 476.5 294 @j
0 G
.5 lw
58 15 476.5 294 @f
449 290 52 6 rC
gS
.55 .55 scale
862.497 533.048 :T
-862.497 -533.048 :T
817.497 536.048 :M
f222 sf
(SALARY_STAFF_ID)S
gR
gR
1 G
gS 96 72 420 470 rC
29 11 476.5 322.5 @j
0 G
.5 lw
28 10 476.5 322.5 @f
465 319 22 6 rC
gS
.55 .55 scale
863.747 585.745 :T
-863.747 -585.745 :T
844.747 588.745 :M
f222 sf
(SALARY)S
gR
gR
0 G
gS 96 72 420 470 rC
gR
gS 28 31 538 781 rC
.5 lw
475 285 :M
478.326 285 480 285 480 285 :C
480 285 479.159 283.662 477.5 281 :C
475.826 278.329 475 277 475 277 :C
475 277 474.159 278.329 472.5 281 :C
470.826 283.662 470 285 470 285 :C
470 285 471.659 285 475 285 :C
:K
stroke
96 72 420 470 rC
473 278 4 5 rC
gS
.55 .55 scale
863.097 509.426 :T
-863.097 -509.426 :T
861.097 512.426 :M
f383 sf
(1)S
gR
gR
gS 96 72 420 470 rC
np 404 304 :M
402 297 :L
404 297 :L
405 297 :L
404 304 :L
eofill
.25 lw
17.25 404.125 280 @w
1 G
58 15 404 280.5 @j
0 G
.5 lw
57 14 404 280.5 @f
381 277 46 5 rC
gS
.55 .55 scale
733.147 506.609 :T
-733.147 -506.609 :T
692.147 510.609 :M
f222 sf
(WAGE_STAFF_ID)S
gR
gR
1 G
gS 96 72 420 470 rC
67 22 404.5 315 @j
0 G
.5 lw
66 21 404.5 315 @f
376 308 57 11 rC
gS
.55 .55 scale
734.964 567.939 :T
-734.964 -567.939 :T
693.964 566.939 :M
f222 sf
(HOURLY_RATE +)S
gR
gS
.55 .55 scale
734.964 567.939 :T
-734.964 -567.939 :T
686.697 576.025 :M
f222 sf
(HOURS_PER_WEEK)S
gR
gR
0 G
gS 96 72 420 470 rC
gR
gS 28 31 538 781 rC
.5 lw
404 272 :M
407.327 272 409 272 409 272 :C
409 272 408.16 270.829 406.5 268.5 :C
404.827 266.163 404 265 404 265 :C
404 265 403.161 266.163 401.5 268.5 :C
399.827 270.829 399 272 399 272 :C
399 272 400.66 272 404 272 :C
:K
stroke
96 72 420 470 rC
402 266 4 5 rC
gS
.55 .55 scale
734.114 487.621 :T
-734.114 -487.621 :T
732.114 490.621 :M
f383 sf
(1)S
gR
gR
gS 96 72 420 470 rC
np 330 224 :M
328 218 :L
330 218 :L
332 218 :L
330 224 :L
eofill
.25 lw
2.25 330.125 216 @w
379 220 25 6 rC
gS
.55 .55 scale
711.331 404.033 :T
-711.331 -404.033 :T
690.331 407.033 :M
f222 sf
(AMOUNT)S
gR
gR
1 G
gS 96 72 420 470 rC
15 11 462.5 229.5 @j
0 G
.25 lw
14 10 462.5 229.5 @f
457 226 10 6 rC
gS
.55 .55 scale
839.03 415.753 :T
-839.03 -415.753 :T
832.03 419.753 :M
f222 sf
(VIN)S
gR
gR
0 G
gS 96 72 420 470 rC
np 463 244 :M
461 238 :L
463 238 :L
464 238 :L
463 244 :L
eofill
.25 lw
4.25 463.125 234 @w
109 278 130 255 rC
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 514.243 :M
f421 sf
(        .)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 525.146 :M
f421 sf
(        .)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 536.048 :M
f421 sf
(        .)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 546.951 :M
f421 sf
(create table trans_head)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 557.854 :M
f421 sf
<28>S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 568.756 :M
f421 sf
(  trans_id char\(8\),)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 579.659 :M
f421 sf
(  trans_date date,)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 590.562 :M
f421 sf
(  trans_type char,)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 601.464 :M
f421 sf
(  salesrep_id char\(8\))S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 612.367 :M
f421 sf
(    not null,)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 623.27 :M
f421 sf
(    -- no unique constraint)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 634.172 :M
f421 sf
(  customer_no char\(8\),)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 645.075 :M
f421 sf
(       ...)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 655.978 :M
f421 sf
(  primary key \(trans_id\),)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 668.698 :M
f421 sf
(  foreign key customer_no)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 679.6 :M
f421 sf
(    references customer \(customer_no\),)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 690.503 :M
f421 sf
(       ...)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 701.406 :M
f421 sf
(\);)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 723.211 :M
f421 sf
(create table trans_line)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 734.114 :M
f421 sf
<28>S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 745.016 :M
f421 sf
(  trans_id char\(8\),)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 755.919 :M
f421 sf
(  registration char\(6\),)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 766.822 :M
f421 sf
(  amount decimal\(2\),)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 777.724 :M
f421 sf
(  primary key \(trans_id, registration\),)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 788.627 :M
f421 sf
(  foreign key \(trans_id\))S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 799.53 :M
f421 sf
(    references trans_head \(trans_id\))S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 810.432 :M
f421 sf
(       ...)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 821.335 :M
f421 sf
(\);)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 843.14 :M
f421 sf
(create table car)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 854.043 :M
f421 sf
<28>S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 866.763 :M
f421 sf
(  registration char\(6\),)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 877.666 :M
f421 sf
(  VIN char\(20\))S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 888.568 :M
f421 sf
(    unique,)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 899.471 :M
f421 sf
(       ...)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 910.374 :M
f421 sf
(  primary key \(registration\))S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 921.276 :M
f421 sf
(\);)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 932.179 :M
f421 sf
(        .)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 943.082 :M
f421 sf
(        .)S
gR
gS
.55 .55 scale
315.016 737.243 :T
-315.016 -737.243 :T
198.016 953.984 :M
f421 sf
(        .)S
gR
gR
.5 lw
gS 96 72 420 470 rC
159.5 91.5 31 21 rS
97.5 138.5 30 21 rS
159.5 138.5 31 21 rS
222.5 138.5 30 21 rS
26.5 175.25 112 @w
8.5 113.25 130 @w
124.5 113 130.25 @c
8.5 237.25 130 @w
6 7 175 130.5 @j
5 6 175 130.5 @f
12.5 169 118.25 @c
168 100 12 6 rC
gS
.55 .55 scale
317.016 185.98 :T
-317.016 -185.98 :T
307.016 188.98 :M
f222 sf
(Staff)S
gR
gR
gS 98 146 29 6 rC
gS
.55 .55 scale
203.849 271.384 :T
-203.849 -271.384 :T
179.849 274.384 :M
f222 sf
(Wage_staff)S
gR
gR
gS 163 146 23 6 rC
gS
.55 .55 scale
316.932 271.384 :T
-316.932 -271.384 :T
297.932 274.384 :M
f222 sf
(Salesrep)S
gR
gR
gS 222 146 30 6 rC
gS
.55 .55 scale
431.115 271.384 :T
-431.115 -271.384 :T
405.115 274.384 :M
f222 sf
(Salary_staff)S
gR
gR
gS 96 72 420 470 rC
159.5 185.5 31 21 rS
160 194 30 5 rC
gS
.55 .55 scale
315.666 356.788 :T
-315.666 -356.788 :T
290.666 359.788 :M
f222 sf
(Transaction)S
gR
gR
gS 96 72 420 470 rC
26.5 175.25 159 @w
-.5 -.5 172.5 185.5 .5 .5 175 179 @b
175 179.5 -.5 .5 177.5 185 .5 175 179 @a
1 G
175 175 3 @i
0 G
175 175 2.5 @e
5.5 172 162.25 @c
5.5 172 164.25 @c
97.5 185.5 30 21 rS
100 194 25 5 rC
gS
.55 .55 scale
202.666 356.788 :T
-202.666 -356.788 :T
181.666 359.788 :M
f222 sf
(Customer)S
gR
gR
gS 96 72 420 470 rC
31.5 128 195.25 @c
153 195.5 -.5 .5 159.5 198 .5 153 195 @a
-.5 -.5 153.5 195.5 .5 .5 159 193 @b
1 G
150 196 3 @i
0 G
150 196 2.5 @e
5.5 131.25 193 @w
5.5 133.25 193 @w
222.5 185.5 30 21 rS
231 194 10 5 rC
gS
.55 .55 scale
428.465 356.788 :T
-428.465 -356.788 :T
421.465 359.788 :M
f222 sf
(Car)S
gR
gR
gS 96 72 420 470 rC
32.5 190 195.25 @c
-.5 -.5 190.5 198.5 .5 .5 196 195 @b
190 193.5 -.5 .5 196.5 195 .5 190 193 @a
5.5 199.25 193 @w
215 195.5 -.5 .5 222.5 198 .5 215 195 @a
-.5 -.5 215.5 195.5 .5 .5 222 193 @b
5.5 213.25 193 @w
222.5 232.5 30 21 rS
223 240 29 5 rC
gS
.55 .55 scale
430.115 440.376 :T
-430.115 -440.376 :T
405.115 443.376 :M
f222 sf
(Car_feature)S
gR
gR
gS 96 72 420 470 rC
159.5 232.5 31 21 rS
164 240 20 5 rC
gS
.55 .55 scale
315.749 440.376 :T
-315.749 -440.376 :T
299.749 443.376 :M
f222 sf
(Feature)S
gR
gR
gS 96 72 420 470 rC
32.5 190 242.25 @c
215 242.5 -.5 .5 222.5 245 .5 215 242 @a
-.5 -.5 215.5 242.5 .5 .5 222 239 @b
1 G
212 242 3 @i
0 G
212 242 2.5 @e
6.5 193.25 239 @w
6.5 195.25 239 @w
26.5 237.25 206 @w
-.5 -.5 234.5 232.5 .5 .5 237 226 @b
237 226.5 -.5 .5 240.5 232 .5 237 226 @a
1 G
7 6 237.5 222 @j
0 G
6 5 237.5 222 @f
6.5 234 209.25 @c
6.5 234 211.25 @c
gR
gS 28 31 538 781 rC
348 372 :M
321.995 372 309 372 309 372 :C
309 372 309 373.828 309 377.5 :C
309 381.161 309 383 309 383 :C
309 383 315.495 383 328.5 383 :C
341.495 383 348 383 348 383 :C
stroke
96 72 420 470 rC
gR
gS 28 31 538 781 rC
426 372 :M
399.994 372 387 372 387 372 :C
387 372 387 373.828 387 377.5 :C
387 381.161 387 383 387 383 :C
387 383 393.494 383 406.5 383 :C
419.494 383 426 383 426 383 :C
stroke
96 72 420 470 rC
309.5 405.5 348.5 444.5 7 @s
39.5 309 415.25 @c
387.5 405.5 426.5 444.5 7 @s
39.5 387 415.25 @c
22.5 329.25 383 @w
329 383.5 -.5 .5 332.5 390 .5 329 383 @a
-.5 -.5 326.5 390.5 .5 .5 329 383 @b
309.5 467.5 37 37 rS
1 G
311 469 38 38 rF
0 G
311.5 469.5 37 37 rS
321 376 25 5 rC
gS
.55 .55 scale
605.964 686.503 :T
-605.964 -686.503 :T
584.964 690.503 :M
f222 sf
(Customer)S
gR
gR
gS 310 376 8 5 rC
gS
.55 .55 scale
570.981 686.503 :T
-570.981 -686.503 :T
564.981 690.503 :M
f222 sf
(D1)S
gR
gR
gS 388 376 8 5 rC
gS
.55 .55 scale
712.681 686.503 :T
-712.681 -686.503 :T
706.681 690.503 :M
f222 sf
(D2)S
gR
gR
gS 406 376 10 5 rC
gS
.55 .55 scale
746.381 686.503 :T
-746.381 -686.503 :T
739.381 690.503 :M
f222 sf
(Car)S
gR
gR
gS 325 408 8 5 rC
gS
.55 .55 scale
597.231 744.651 :T
-597.231 -744.651 :T
592.231 748.651 :M
f222 sf
(P1)S
gR
gR
gS 403 408 7 5 rC
gS
.55 .55 scale
738.114 744.651 :T
-738.114 -744.651 :T
732.114 748.651 :M
f222 sf
(P2)S
gR
gR
gS 309 421 39 17 rC
gS
.55 .55 scale
595.964 781.09 :T
-595.964 -781.09 :T
584.964 774.09 :M
f222 sf
(Enter)S
gR
gS
.55 .55 scale
595.964 781.09 :T
-595.964 -781.09 :T
575.881 783.176 :M
f222 sf
(customer)S
gR
gS
.55 .55 scale
595.964 781.09 :T
-595.964 -781.09 :T
583.148 794.078 :M
f222 sf
(details)S
gR
gR
gS 387 421 39 17 rC
gS
.55 .55 scale
737.664 781.09 :T
-737.664 -781.09 :T
726.664 774.09 :M
f222 sf
(Enter)S
gR
gS
.55 .55 scale
737.664 781.09 :T
-737.664 -781.09 :T
713.947 783.176 :M
f222 sf
(transaction)S
gR
gS
.55 .55 scale
737.664 781.09 :T
-737.664 -781.09 :T
724.847 794.078 :M
f222 sf
(details)S
gR
gR
gS 313 469 4 6 rC
gS
.55 .55 scale
570.615 857.312 :T
-570.615 -857.312 :T
568.615 861.312 :M
f222 sf
(a)S
gR
gR
gS 96 72 420 470 rC
12.5 352 377.25 @c
-90 0 7 8 364 381.5 @n
15.5 372 424.25 @c
372 421 3.5 90 180 @m
39.5 368.25 381 @w
-.5 -.5 381.5 428.5 .5 .5 387 424 @b
381 421.5 -.5 .5 387.5 424 .5 381 421 @a
22.5 407.25 383 @w
-.5 -.5 407.5 405.5 .5 .5 410 398 @b
404 398.5 -.5 .5 407.5 405 .5 404 398 @a
317 485 25 5 rC
gS
.55 .55 scale
598.698 884.568 :T
-598.698 -884.568 :T
577.698 888.568 :M
f222 sf
(Customer)S
gR
gR
gS 96 72 420 470 rC
23.5 329.25 444 @w
329 444.5 -.5 .5 332.5 451 .5 329 444 @a
-.5 -.5 326.5 451.5 .5 .5 329 444 @b
gR
gS 28 31 538 781 rC
426 466 :M
399.994 466 387 466 387 466 :C
387 466 387 467.826 387 471.5 :C
387 475.16 387 477 387 477 :C
387 477 393.494 477 406.5 477 :C
419.494 477 426 477 426 477 :C
stroke
96 72 420 470 rC
388 469 8 6 rC
gS
.55 .55 scale
712.681 857.312 :T
-712.681 -857.312 :T
706.681 861.312 :M
f222 sf
(D3)S
gR
gR
gS 397 469 29 6 rC
gS
.55 .55 scale
746.214 857.312 :T
-746.214 -857.312 :T
721.214 861.312 :M
f222 sf
(Transaction)S
gR
gR
gS 96 72 420 470 rC
22.5 407.25 444 @w
-.5 -.5 407.5 466.5 .5 .5 410 458 @b
404 458.5 -.5 .5 407.5 466 .5 404 458 @a
387.5 502.5 426.5 541.5 7 @s
39.5 387 513.25 @c
403 505 7 6 rC
gS
.55 .55 scale
738.114 923.728 :T
-738.114 -923.728 :T
732.114 926.728 :M
f222 sf
(P4)S
gR
gR
gS 387 522 39 11 rC
gS
.55 .55 scale
739.214 958.619 :T
-739.214 -958.619 :T
721.214 957.619 :M
f222 sf
(Transfer)S
gR
gS
.55 .55 scale
739.214 958.619 :T
-739.214 -958.619 :T
715.764 966.704 :M
f222 sf
(ownership)S
gR
gR
gS 96 72 420 470 rC
25.5 407.25 477 @w
-.5 -.5 407.5 502.5 .5 .5 410 496 @b
404 496.5 -.5 .5 407.5 502 .5 404 496 @a
54.5 333 522.25 @c
12.5 329.25 506 @w
90 180 7 8 333 518.5 @n
329 506.5 -.5 .5 332.5 513 .5 329 506 @a
-.5 -.5 326.5 513.5 .5 .5 329 506 @b
1 G
344 516 32 11 rF
344 516 32 11 rC
gS
.55 .55 scale
653.381 948.716 :T
-653.381 -948.716 :T
630.381 946.716 :M
0 G
f222 sf
(Ownership)S
gR
gS
.55 .55 scale
653.381 948.716 :T
-653.381 -948.716 :T
637.648 955.801 :M
0 G
f222 sf
(papers)S
gR
gR
gS 96 72 420 470 rC
465.5 420.5 504.5 459.5 7 @s
39.5 465 431.25 @c
481 424 7 5 rC
gS
.55 .55 scale
879.813 774.724 :T
-879.813 -774.724 :T
873.813 777.724 :M
f222 sf
(P3)S
gR
gR
gS 465 440 39 11 rC
gS
.55 .55 scale
881.097 810.615 :T
-881.097 -810.615 :T
861.097 808.615 :M
f222 sf
(Calculate)S
gR
gS
.55 .55 scale
881.097 810.615 :T
-881.097 -810.615 :T
853.83 817.701 :M
f222 sf
(commission)S
gR
gR
gS 96 72 420 470 rC
465.5 502.5 37 37 rS
1 G
467 504 38 38 rF
0 G
467.5 504.5 37 37 rS
469 505 4 5 rC
gS
.55 .55 scale
854.013 920.911 :T
-854.013 -920.911 :T
852.013 924.911 :M
f222 sf
(b)S
gR
gR
gS 474 520 23 5 rC
gS
.55 .55 scale
881.913 948.167 :T
-881.913 -948.167 :T
862.913 952.167 :M
f222 sf
(Salesrep)S
gR
gR
gS 96 72 420 470 rC
gR
gS 28 31 538 781 rC
504 372 :M
477.993 372 465 372 465 372 :C
465 372 465 373.828 465 377.5 :C
465 381.161 465 383 465 383 :C
465 383 471.493 383 484.5 383 :C
497.493 383 504 383 504 383 :C
stroke
96 72 420 470 rC
466 376 8 5 rC
gS
.55 .55 scale
854.38 686.503 :T
-854.38 -686.503 :T
848.38 690.503 :M
f222 sf
(D4)S
gR
gR
gS 478 376 23 5 rC
gS
.55 .55 scale
889.18 686.503 :T
-889.18 -686.503 :T
870.18 690.503 :M
f222 sf
(Salesrep)S
gR
gR
gS 96 72 420 470 rC
37.5 485.25 383 @w
-.5 -.5 485.5 420.5 .5 .5 488 414 @b
482 414.5 -.5 .5 485.5 420 .5 482 414 @a
1 G
464 395 42 11 rF
464 395 42 11 rC
gS
.55 .55 scale
880.83 727.028 :T
-880.83 -727.028 :T
853.83 725.028 :M
0 G
f222 sf
(Commission )S
gR
gS
.55 .55 scale
880.83 727.028 :T
-880.83 -727.028 :T
871.997 735.931 :M
0 G
f222 sf
(rate)S
gR
gR
gS 96 72 420 470 rC
15.5 450 440.25 @c
16.5 426 471.25 @c
442.5 467.5 4 0 90 @m
450 444 3.5 180 270 @m
23.5 446.25 444 @w
-.5 -.5 459.5 443.5 .5 .5 465 440 @b
459 437.5 -.5 .5 465.5 440 .5 459 437 @a
gR
gS 28 31 538 781 rC
gS
.55 .55 scale
800.797 827.421 :T
270 rotate
-800.797 -827.421 :T
784.797 830.421 :M
f222 sf
(Amount)S
gR
96 72 420 470 rC
43.5 485.25 459 @w
-.5 -.5 485.5 502.5 .5 .5 488 496 @b
482 496.5 -.5 .5 485.5 502 .5 482 496 @a
gR
gS 28 31 538 781 rC
gS
.55 .55 scale
873.563 866.397 :T
270 rotate
-873.563 -866.397 :T
846.563 870.397 :M
f222 sf
(Commission)S
gR
96 72 420 470 rC
11.5 319.25 372 @w
11.5 397.25 372 @w
11.5 475.25 372 @w
11.5 397.25 466 @w
gS
.55 .55 scale
209.733 147.637 :T
-209.733 -147.637 :T
210.733 152.637 :M
f432 sf
(  )S
gR
117 73 9 11 rC
gS
.55 .55 scale
218.549 142.186 :T
-218.549 -142.186 :T
212.549 147.186 :M
f443 sf
(D)S
gR
gR
gS 125 79 4 8 rC
gS
.55 .55 scale
229.082 150.455 :T
-229.082 -150.455 :T
227.082 154.455 :M
f454 sf
(1)S
gR
gR
gS 129 73 4 11 rC
gS
.55 .55 scale
238.166 142.186 :T
-238.166 -142.186 :T
236.166 147.186 :M
f432 sf
<28>S
gR
gR
gS 132 73 8 11 rC
gS
.55 .55 scale
246.616 142.186 :T
-246.616 -142.186 :T
241.616 147.186 :M
f443 sf
(V)S
gR
gR
gS 141 73 3 11 rC
gS
.55 .55 scale
258.966 142.186 :T
-258.966 -142.186 :T
257.966 147.186 :M
f432 sf
(,)S
gR
gR
gS 146 73 23 11 rC
gS
.55 .55 scale
285.232 142.186 :T
-285.232 -142.186 :T
265.232 147.186 :M
f443 sf
(ERM)S
gR
gR
gS 173 73 3 11 rC
gS
.55 .55 scale
317.099 142.186 :T
-317.099 -142.186 :T
316.099 147.186 :M
f432 sf
(,)S
gR
gR
gS 177 73 22 11 rC
gS
.55 .55 scale
341.365 142.186 :T
-341.365 -142.186 :T
323.365 147.186 :M
f443 sf
(ERD)S
gR
gR
gS 202 79 22 8 rC
gS
.55 .55 scale
384.965 150.455 :T
-384.965 -150.455 :T
366.965 154.455 :M
f465 sf
(Martin)S
gR
gR
gS 229 73 5 11 rC
gS
.55 .55 scale
419.832 142.186 :T
-419.832 -142.186 :T
417.832 147.186 :M
f432 sf
<29>S
gR
gS
.55 .55 scale
643.914 147.637 :T
-643.914 -147.637 :T
644.914 152.637 :M
f432 sf
(  )S
gR
gR
gS 356 73 9 11 rC
gS
.55 .55 scale
652.731 142.186 :T
-652.731 -142.186 :T
646.731 147.186 :M
f443 sf
(D)S
gR
gR
gS 364 79 4 8 rC
gS
.55 .55 scale
663.264 150.455 :T
-663.264 -150.455 :T
661.264 154.455 :M
f454 sf
(2)S
gR
gR
gS 369 73 4 11 rC
gS
.55 .55 scale
674.164 142.186 :T
-674.164 -142.186 :T
672.164 147.186 :M
f432 sf
<28>S
gR
gR
gS 372 73 8 11 rC
gS
.55 .55 scale
682.614 142.186 :T
-682.614 -142.186 :T
677.614 147.186 :M
f443 sf
(V)S
gR
gR
gS 381 73 3 11 rC
gS
.55 .55 scale
694.964 142.186 :T
-694.964 -142.186 :T
693.964 147.186 :M
f432 sf
(,)S
gR
gR
gS 386 73 15 11 rC
gS
.55 .55 scale
713.231 142.186 :T
-713.231 -142.186 :T
701.231 147.186 :M
f443 sf
(FD)S
gR
gR
gS 402 73 3 11 rC
gS
.55 .55 scale
733.114 142.186 :T
-733.114 -142.186 :T
732.114 147.186 :M
f432 sf
(,)S
gR
gR
gS 406 73 24 11 rC
gS
.55 .55 scale
759.381 142.186 :T
-759.381 -142.186 :T
739.381 147.186 :M
f443 sf
(FDD)S
gR
gR
gS 432 79 18 8 rC
gS
.55 .55 scale
799.797 150.455 :T
-799.797 -150.455 :T
784.797 154.455 :M
f465 sf
(Smith)S
gR
gR
gS 455 73 4 11 rC
gS
.55 .55 scale
828.58 142.186 :T
-828.58 -142.186 :T
826.58 147.186 :M
f432 sf
<29>S
gR
gS
.55 .55 scale
271.499 520.146 :T
-271.499 -520.146 :T
272.499 525.146 :M
f432 sf
(  )S
gR
gR
gS 151 277 9 11 rC
gS
.55 .55 scale
282.132 514.694 :T
-282.132 -514.694 :T
276.132 519.694 :M
f443 sf
(D)S
gR
gR
gS 159 284 4 8 rC
gS
.55 .55 scale
290.849 522.963 :T
-290.849 -522.963 :T
288.849 526.963 :M
f454 sf
(3)S
gR
gR
gS 164 277 5 11 rC
gS
.55 .55 scale
301.749 514.694 :T
-301.749 -514.694 :T
299.749 519.694 :M
f432 sf
<28>S
gR
gR
gS 168 277 7 11 rC
gS
.55 .55 scale
310.199 514.694 :T
-310.199 -514.694 :T
305.199 519.694 :M
f443 sf
(V)S
gR
gR
gS 176 277 4 11 rC
gS
.55 .55 scale
322.549 514.694 :T
-322.549 -514.694 :T
321.549 519.694 :M
f432 sf
(,)S
gR
gR
gS 181 277 16 11 rC
gS
.55 .55 scale
341.815 514.694 :T
-341.815 -514.694 :T
328.815 519.694 :M
f443 sf
(RM)S
gR
gR
gS 199 277 4 11 rC
gS
.55 .55 scale
364.332 514.694 :T
-364.332 -514.694 :T
363.332 519.694 :M
f432 sf
(,)S
gR
gR
gS 204 277 20 11 rC
gS
.55 .55 scale
387.599 514.694 :T
-387.599 -514.694 :T
370.599 519.694 :M
f443 sf
(SQL)S
gR
gR
gS 226 277 4 11 rC
gS
.55 .55 scale
412.565 514.694 :T
-412.565 -514.694 :T
410.565 519.694 :M
f432 sf
<29>S
gR
gS
.55 .55 scale
645.731 663.698 :T
-645.731 -663.698 :T
646.731 668.698 :M
f432 sf
(  )S
gR
gR
gS 357 357 9 11 rC
gS
.55 .55 scale
654.548 658.246 :T
-654.548 -658.246 :T
648.548 663.246 :M
f443 sf
(D)S
gR
gR
gS 365 362 4 8 rC
gS
.55 .55 scale
665.081 664.698 :T
-665.081 -664.698 :T
663.081 668.698 :M
f454 sf
(4)S
gR
gR
gS 370 357 5 11 rC
gS
.55 .55 scale
675.981 658.246 :T
-675.981 -658.246 :T
673.981 663.246 :M
f432 sf
<28>S
gR
gR
gS 373 357 8 11 rC
gS
.55 .55 scale
684.431 658.246 :T
-684.431 -658.246 :T
679.431 663.246 :M
f443 sf
(V)S
gR
gR
gS 382 357 4 11 rC
gS
.55 .55 scale
696.781 658.246 :T
-696.781 -658.246 :T
695.781 663.246 :M
f432 sf
(,)S
gR
gR
gS 387 357 16 11 rC
gS
.55 .55 scale
716.047 658.246 :T
-716.047 -658.246 :T
703.047 663.246 :M
f443 sf
(PM)S
gR
gR
gS 405 357 4 11 rC
gS
.55 .55 scale
738.564 658.246 :T
-738.564 -658.246 :T
737.564 663.246 :M
f432 sf
(,)S
gR
gR
gS 410 357 23 11 rC
gS
.55 .55 scale
764.83 658.246 :T
-764.83 -658.246 :T
744.83 663.246 :M
f443 sf
(DFD)S
gR
gR
gS 435 362 7 8 rC
gS
.55 .55 scale
796.064 664.698 :T
-796.064 -664.698 :T
792.064 668.698 :M
f465 sf
(G)S
gR
gR
gS 441 362 6 8 rC
gS
.55 .55 scale
805.147 664.698 :T
-805.147 -664.698 :T
801.147 668.698 :M
f465 sf
(&)S
gR
gR
gS 447 362 5 8 rC
gS
.55 .55 scale
815.864 664.698 :T
-815.864 -664.698 :T
813.864 668.698 :M
f465 sf
(S)S
gR
gR
gS 453 357 4 11 rC
gS
.55 .55 scale
824.947 658.246 :T
-824.947 -658.246 :T
822.947 663.246 :M
f432 sf
<29>S
gR
gR
gS 96 72 420 470 rC
gR
gS 28 31 538 781 rC
156 565 :M
f334 sf
(Figure\3122.)S
f170 sf
( Four descriptions of the same phenomenon.)S
90 592 :M
(We introduce the notation )S
f361 sf
(D\(V, T, S\))S
284 592 :M
f170 sf
( to mean a description )S
405 592 :M
f361 sf
(D)S
f170 sf
( of viewpoint )S
488 592 :M
f361 sf
(V)S
72 605 :M
f170 sf
(comprises constructs defined by technique )S
f361 sf
(T)S
f170 sf
(, and expressed using scheme )S
469 605 :M
f361 sf
(S)S
f170 sf
(. For)S
72 618 :M
(example, in Figure\3122, description )S
249 618 :M
f361 sf
(D)S
f372 sf
0 2 rm
(1)S
0 -2 rm
263 618 :M
f170 sf
(, denoted by )S
332 618 :M
f361 sf
(D)S
f372 sf
0 2 rm
(1)S
0 -2 rm
346 618 :M
f170 sf
<28>S
350 618 :M
f361 sf
(V)S
359 618 :M
f170 sf
(, )S
f361 sf
(ERM)S
f170 sf
(, )S
f361 sf
(ERD)S
422 621 :M
f476 sf
(Martin)S
f170 sf
0 -3 rm
(\), is)S
0 3 rm
72 631 :M
(represented using entity-relationship modelling \(ERM\) and expressed as an ERD in)S
72 644 :M
(Martin notation )S
159 644 :M
(\(Evergreen Software Tools 1995\))S
331 644 :M
(; )S
f361 sf
(D)S
f372 sf
0 2 rm
(2)S
0 -2 rm
351 644 :M
f170 sf
<28>S
355 644 :M
f361 sf
(V)S
364 644 :M
f170 sf
(, )S
f361 sf
(FD)S
f170 sf
(, )S
f361 sf
(FDD)S
f476 sf
0 3 rm
(Smith)S
0 -3 rm
f170 sf
(\) is represented)S
72 657 :M
(using functional dependencies \(FD\) and expressed as an FDD using Smith\325s notation)S
72 670 :M
(\(Smith 1985\); )S
f361 sf
(D)S
f372 sf
0 2 rm
(3)S
0 -2 rm
158 670 :M
f170 sf
<28>S
162 670 :M
f361 sf
(V)S
171 670 :M
f170 sf
(, )S
f361 sf
(RM)S
f170 sf
(, )S
f361 sf
(SQL)S
225 670 :M
f170 sf
(\) is represented using the relational model \(RM\) and)S
72 683 :M
(expressed in SQL; and )S
194 683 :M
f361 sf
(D)S
f372 sf
0 2 rm
(4)S
0 -2 rm
208 683 :M
f170 sf
<28>S
212 683 :M
f361 sf
(V)S
221 683 :M
f170 sf
(, )S
f361 sf
(PM)S
f170 sf
(, )S
f361 sf
(DFD)S
277 686 :M
f476 sf
(G&S)S
296 683 :M
f170 sf
(\) is represented using process modelling)S
72 696 :M
(\(PM\) and expressed as a DFD in Gane & Sarson notation.)S
90 709 :M
(Representations may differ in both the technique and scheme used, or they may)S
72 722 :M
(differ only in the scheme. )S
210 722 :M
f361 sf
(D)S
f372 sf
0 2 rm
(1)S
0 -2 rm
224 722 :M
f170 sf
(, )S
f361 sf
(D)S
f372 sf
0 2 rm
(2)S
0 -2 rm
244 722 :M
f170 sf
(, )S
f361 sf
(D)S
f372 sf
0 2 rm
(3)S
0 -2 rm
264 722 :M
f170 sf
( and )S
f361 sf
(D)S
300 724 :M
f372 sf
(4)S
305 722 :M
f170 sf
( all differ in both the technique and the)S
72 735 :M
(scheme used. If we were to add )S
f361 sf
(D)S
f372 sf
0 2 rm
(5)S
0 -2 rm
256 735 :M
f170 sf
<28>S
260 735 :M
f361 sf
(V)S
269 735 :M
f170 sf
(, )S
f361 sf
(RM)S
f170 sf
(, )S
f361 sf
(QUEL)S
333 735 :M
f170 sf
(\) to the viewpoint in Figure\3122, we)S
72 748 :M
(would have two descriptions that use the same technique \()S
384 748 :M
f361 sf
(D)S
f372 sf
0 2 rm
(4)S
0 -2 rm
398 748 :M
f170 sf
( and )S
f361 sf
(D)S
434 750 :M
f372 sf
(5)S
439 748 :M
f170 sf
(\), but different)S
72 761 :M
(schemes \(QUEL instead of SQL\).)S
endp
%%Page: 5 5
%%BeginPageSetup
initializepage
(Nigel Stanger; page: 5 of 15)setjob
%%EndPageSetup
-28 -31 :T
gS 28 31 538 781 rC
294 803 :M
f170 sf
(4)S
90 83 :M
(Much of the work into viewpoints has been from a software engineering)S
72 96 :M
(perspective. Our focus, however, is on database design. In this paper, we examine)S
72 109 :M
(how to facilitate the database design process when using multiple representations)S
72 122 :M
(within a particular viewpoint, which is an area that has only just begun to receive)S
72 135 :M
(attention )S
123 135 :M
(\(Darke and Shanks 1995\))S
255 135 :M
(. In other words, given descriptions )S
f361 sf
(D)S
456 137 :M
f476 sf
(i)S
459 135 :M
f170 sf
<28>S
463 135 :M
f361 sf
(V)S
472 135 :M
f170 sf
(, )S
f361 sf
(T)S
f476 sf
0 2 rm
(i)S
0 -2 rm
488 135 :M
f170 sf
(, )S
f361 sf
(S)S
501 137 :M
f476 sf
(i)S
504 135 :M
f170 sf
(\), )S
514 135 :M
f361 sf
(V)S
72 148 :M
f170 sf
(remains constant for all values of )S
251 148 :M
f361 sf
(i)S
f170 sf
(, otherwise we will enter the area of viewpoint)S
72 161 :M
(integration.)S
90 173 :M
(If we consider a database design environment that allows the use of multiple)S
72 186 :M
(viewpoint representations \(indicated in Figure\3121 by the dark grey box\), then a useful)S
72 199 :M
(feature for such an environment would be to allow designers to shift from one)S
72 212 :M
(representation to another at will, so that they may more fully describe the problem at)S
72 225 :M
(hand. Ideally, the environment should handle as much of this shifting process as)S
72 238 :M
(possible, leaving the designer to \322fill in the gaps\323. What we therefore need is some)S
72 251 :M
(means of transforming viewpoint descriptions from one representation to another. In)S
72 264 :M
(considering this problem, we restrict ourselves to developer viewpoints using formal)S
72 277 :M
(and semi-formal representations. At present, informal representations are not)S
72 290 :M
(considered because they generally lack the structure required to enable effective)S
72 303 :M
(transformations between representations to be carried out \(see further research later)S
72 316 :M
(in this paper\).)S
90 329 :M
(In the next section we examine the issues that arise when performing such)S
72 342 :M
(transformations, and give examples of the problems that can arise. In the third)S
72 355 :M
(section, we discuss an architecture for the implementation of a database design)S
72 368 :M
(environment which facilitates the use multiple viewpoint representations. This)S
72 381 :M
(architecture is derived from work done in the area of automatic data translation. The)S
72 394 :M
(fourth section discusses implementation issues and directions for future research.)S
72 424 :M
f181 sf
(2. Issues)S
72 451 :M
f170 sf
(When transforming viewpoint descriptions between different representations there)S
72 464 :M
(are three main issues to consider:)S
90 490 :M
(\245)S
108 490 :M
(how the actual transformation process is carried out;)S
90 515 :M
(\245)S
108 515 :M
(the overall integrity of the design that is produced; and)S
90 540 :M
(\245)S
108 540 :M
(the quality of the transformations.)S
90 565 :M
(The examples given in this section are based on the used-car dealership model)S
72 578 :M
(shown in Figure\3122. The examples focus on those elements which relate directly to a)S
72 591 :M
(transaction \(either a sale or a purchase\), such as salesreps, customers and cars, and)S
72 604 :M
(have been chosen to illustrate many of the \322interesting\323 elements of the)S
72 617 :M
(transformation in question.)S
72 644 :M
f487 sf
(2.1. The transformation process)S
72 671 :M
f170 sf
(In the introduction, we described the rationale for transforming viewpoint)S
72 684 :M
(descriptions from one representation to another. We shall denote the transforma)S
498 684 :M
(tion)S
72 697 :M
(operator using the symbol )S
215 697 :M
f519 sf
(\256)S
f170 sf
( and describe the transforming of a description )S
478 697 :M
f361 sf
(D)S
f372 sf
0 2 rm
(1)S
0 -2 rm
492 697 :M
f170 sf
( in)S
72 710 :M
(one representation to a description )S
f361 sf
(D)S
269 712 :M
f372 sf
(2)S
274 710 :M
f170 sf
( in another representation as )S
f361 sf
(D)S
438 712 :M
f372 sf
(1)S
443 710 :M
f170 sf
<28>S
447 710 :M
f361 sf
(V)S
456 710 :M
f170 sf
(, )S
f361 sf
(T)S
f476 sf
0 2 rm
(i)S
0 -2 rm
472 710 :M
f170 sf
(, )S
f361 sf
(S)S
485 712 :M
f476 sf
(j)S
488 710 :M
f170 sf
(\) )S
495 710 :M
f519 sf
(\256)S
72 723 :M
f361 sf
(D)S
f372 sf
0 2 rm
(2)S
0 -2 rm
86 723 :M
f170 sf
<28>S
90 723 :M
f361 sf
(V)S
99 723 :M
f170 sf
(, )S
f361 sf
(T)S
f476 sf
0 2 rm
(k)S
0 -2 rm
116 723 :M
f170 sf
(, )S
f361 sf
(S)S
129 725 :M
f476 sf
(l)S
132 723 :M
f170 sf
(\). For example, transforming a viewpoint description expressed using)S
72 736 :M
(SQL into one using QUEL is denoted by )S
288 736 :M
f361 sf
(D)S
f372 sf
0 2 rm
(1)S
0 -2 rm
302 736 :M
f170 sf
<28>S
306 736 :M
f361 sf
(V)S
315 736 :M
f170 sf
(, )S
f361 sf
(RM)S
f170 sf
(, )S
f361 sf
(SQL)S
369 736 :M
f170 sf
(\) )S
376 736 :M
f519 sf
(\256)S
388 736 :M
f170 sf
( )S
f361 sf
(D)S
f372 sf
0 2 rm
(2)S
0 -2 rm
405 736 :M
f170 sf
<28>S
409 736 :M
f361 sf
(V)S
418 736 :M
f170 sf
(, )S
f361 sf
(RM)S
f170 sf
(, )S
f361 sf
(QUEL)S
482 736 :M
f170 sf
(\) and)S
72 749 :M
(transforming a Chen-style ERD into a relational schema is denoted by )S
f361 sf
(D)S
f372 sf
0 2 rm
(1)S
0 -2 rm
459 749 :M
f170 sf
<28>S
463 749 :M
f361 sf
(V)S
472 749 :M
f170 sf
(, )S
f361 sf
(ERM)S
f170 sf
(,)S
72 762 :M
f361 sf
(ERD)S
97 764 :M
f476 sf
(Chen)S
f170 sf
0 -2 rm
(\) )S
0 2 rm
123 762 :M
f519 sf
(\256)S
135 762 :M
f170 sf
( )S
f361 sf
(D)S
f372 sf
0 2 rm
(2)S
0 -2 rm
152 762 :M
f170 sf
<28>S
156 762 :M
f361 sf
(V)S
165 762 :M
f170 sf
(, )S
f361 sf
(RM)S
f170 sf
(, )S
f361 sf
(SQL)S
219 762 :M
f170 sf
(\).)S
endp
%%Page: 6 6
%%BeginPageSetup
initializepage
(Nigel Stanger; page: 6 of 15)setjob
%%EndPageSetup
-28 -31 :T
gS 28 31 538 781 rC
294 803 :M
f170 sf
(5)S
90 82 :M
(As noted earlier, a transformation may involve changing both the technique and)S
72 95 :M
(the scheme, or just the scheme. We shall call these two types of transformation)S
72 108 :M
f361 sf
(technique transformations)S
199 108 :M
f170 sf
( and )S
f361 sf
(scheme transformations)S
340 108 :M
f170 sf
( respectively. At first glance, it)S
72 121 :M
(may appear that scheme transformations are trivial and do not need to be)S
72 134 :M
(considered. It is important to note, however, that some schemes do not fully adhere)S
72 147 :M
(to the technique that they express. For example, SQL does not fully adhere to the)S
72 160 :M
(definition of the relational model \(Date and Darwen 1993\). In addition, some)S
72 173 :M
(schemes may be able to express more information than others, for example, some)S
72 186 :M
(ERD notations can express AND/OR relationships, whereas others cannot.)S
72 199 :M
(Although we cannot disregard scheme transformations, we shall only examine two)S
72 212 :M
(simple examples of technique transformations: one from an entity-relationship)S
72 225 :M
(\322model\323 to the relational model, and one from the relational model to functional)S
72 238 :M
(dependencies.)S
72 263 :M
f548 sf
(2.1.1. Entity-relationship )S
f563 sf
(\256)S
221 263 :M
f548 sf
( relational)S
72 278 :M
f170 sf
(In this example, we are transforming from an entity-relationship \322model\323 expressed)S
72 291 :M
(in Martin ERD notation, to the relational model expressed in ANSI SQL/92, that is)S
72 304 :M
f361 sf
(D)S
f372 sf
0 2 rm
(1)S
0 -2 rm
86 304 :M
f170 sf
<28>S
90 304 :M
f361 sf
(V)S
99 304 :M
f170 sf
(, )S
f361 sf
(ERM)S
f170 sf
(, )S
f361 sf
(ERD)S
162 306 :M
f476 sf
(Martin)S
f170 sf
0 -2 rm
(\) )S
0 2 rm
195 304 :M
f519 sf
(\256)S
207 304 :M
f170 sf
( )S
f361 sf
(D)S
f372 sf
0 2 rm
(2)S
0 -2 rm
224 304 :M
f170 sf
<28>S
228 304 :M
f361 sf
(V)S
237 304 :M
f170 sf
(, )S
f361 sf
(RM)S
f170 sf
(, )S
f361 sf
(SQL/92)S
f170 sf
(\). This transformation is illustrated by)S
72 317 :M
(the arrow labelled )S
172 317 :M
f361 sf
(T)S
f372 sf
0 2 rm
(1)S
0 -2 rm
184 317 :M
f170 sf
( in Figure\3121. The ER representation is a semi-formal)S
72 330 :M
(representation, while the relational representation is a formal one.)S
90 342 :M
(This transformation should be familiar to most readers, as SQL schema)S
72 355 :M
(generation from an ERD is probably one of the most common operations performed)S
72 368 :M
(by CASE tools. Figure\3123 shows an example of such a transformation. In this case, we)S
72 381 :M
(are transforming the entities for Salesrep and Transaction into equivalent SQL)S
72 394 :M
(structures.)S
271 411 225 242 rC
272 419 :M
f421 sf
(create table salesrep)S
272 430 :M
<28>S
272 441 :M
(  salesrep_id char\(8\),)S
272 452 :M
(  commission_rate smallint,)S
272 463 :M
(  primary key \(employee_id\))S
272 474 :M
(\);)S
272 496 :M
(create table transaction)S
272 507 :M
<28>S
272 518 :M
(  transaction_id char\(6\),)S
272 529 :M
(  transaction_date date,)S
272 540 :M
(  transaction_type char\(1\),)S
272 551 :M
(  customer_no char\(6\),)S
272 562 :M
(  salesrep_id char\(8\))S
272 573 :M
(    not null,)S
272 584 :M
(    -- no unique constraint)S
272 595 :M
(  primary key \(transaction_id\),)S
272 606 :M
(  foreign key \(salesrep_id\))S
272 617 :M
(    references salesrep \(salesrep_id\))S
272 628 :M
(  foreign key \(customer_no\))S
272 639 :M
(    references customer \(customer_no\))S
272 650 :M
(\);)S
gR
gS 97 410 400 244 rC
2 lw
94 164 488 @w
1 G
128 583 71 36 rF
0 G
128 583 71 36 rS
136 598 54 10 rC
137 606 :M
f222 sf
(Transaction)S
gR
1 G
gS 97 410 400 244 rC
128 452 71 35 rF
.5 G
2 lw
128 452 71 35 rS
gR
.5 G
gS 28 31 538 781 rC
.5 lw
134 535 :M
120.665 535 111.832 538.658 107.5 546 :C
103.165 553.325 100.498 561.158 99.5 569.5 :C
98.498 577.825 98.332 584.824 99 590.5 :C
99.665 596.158 100.665 601.324 102 606 :C
103.332 610.657 106.665 616.324 112 623 :C
117.332 629.657 124.998 633.99 135 636 :C
144.998 637.99 155.331 638.824 166 638.5 :C
176.664 638.157 187.997 637.157 200 635.5 :C
211.997 633.824 223.163 631.657 233.5 629 :C
243.83 626.324 256.996 621.324 273 614 :C
stroke
97 410 400 244 rC
0 G
2 lw
16 156 503 @c
16 156 507 @c
1 G
14 15 164 556.5 @j
0 G
14 15 164 556.5 @f
-2 -2 158 582 2 2 163 570 @b
163 572 -2 2 172 580 2 163 570 @a
143 465 41 10 rC
144 473 :M
f222 sf
(Salesrep)S
gR
gS 97 410 400 244 rC
np 228 553 :M
215 558 :L
219 554 :L
215 550 :L
228 553 :L
eofill
-.5 -.5 178.5 557.5 .5 .5 219 554 @b
np 295 581 :M
282 585 :L
286 581 :L
283 576 :L
295 581 :L
eofill
178 572.5 -.5 .5 286.5 581 .5 178 572 @a
.5 lw
141 495 3.5 180 270 @m
90 180 7 8 141 576.5 @n
134 539 3.5 -90 0 @m
134 532 3.5 0 90 @m
37.5 137.25 495 @w
37.5 137.25 539 @w
np 282 610 :M
272 619 :L
275 614 :L
269 611 :L
282 610 :L
eofill
-.5 -.5 267.5 617.5 .5 .5 275 614 @b
np 283 603 :M
269 604 :L
274 601 :L
271 596 :L
283 603 :L
eofill
178 578.5 -.5 .5 274.5 601 .5 178 578 @a
283.5 597.5 212 22 rS
1 G
np 214 581 :M
247 589 :L
245 599 :L
211 591 :L
214 581 :L
eofill
gR
1 G
gS 28 31 538 781 rC
gS
229 590 :T
13 rotate
-229 -590 :T
213 593 :M
0 G
f292 sf
(location)S
gR
97 410 400 244 rC
143 633 38 10 rF
143 633 38 10 rC
144 641 :M
0 G
f292 sf
(existence)S
gR
.5 G
gS 97 410 400 244 rC
np 295 571 :M
282 568 :L
287 567 :L
286 561 :L
295 571 :L
eofill
178 505.5 -.5 .5 287.5 567 .5 178 505 @a
np 270 417 :M
262 428 :L
263 422 :L
257 421 :L
270 417 :L
eofill
-.5 -.5 199.5 470.5 .5 .5 263 422 @b
229 546 8 16 rC
230 558 :M
0 G
f608 sf
(?)S
gR
.5 lw
gS 97 410 400 244 rC
270.5 411.5 129 11 rS
295.5 565.5 50 11 rS
295.5 576.5 142 11 rS
150.5 546.5 178.5 567.5 4 @s
150.5 567.5 178.5 588.5 4 @s
150.5 496.5 178.5 514.5 4 @s
gR
gS 28 31 538 781 rC
173 677 :M
0 G
f334 sf
(Figure\3123.)S
f170 sf
( Transformation from an ERD to SQL.)S
90 702 :M
(The arrows in Figure\3123 indicate the transformation of a particular ER construct)S
72 715 :M
(into a corresponding SQL construct. For example, the relationship between the two)S
72 728 :M
(entities indicates that there is a primary/foreign key relationship between them, and)S
72 741 :M
(the location of the foreign key is determined by the cardinality of the relationship. In)S
72 754 :M
(this case, the Transaction entity is on the \322many\323 side of the relationship, so the)S
72 767 :M
(foreign key is placed in the Transaction table definition.)S
endp
%%Page: 7 7
%%BeginPageSetup
initializepage
(Nigel Stanger; page: 7 of 15)setjob
%%EndPageSetup
-28 -31 :T
gS 28 31 538 781 rC
294 803 :M
f170 sf
(6)S
90 82 :M
(There are three main points that arise from the analysis of this transformation.)S
72 95 :M
(First, the optionality of the referenced entity \(Salesrep in Figure\3123\) is expressed in)S
72 108 :M
(SQL by the existence \(or not\) of a NOT NULL constraint on the foreign key attribute)S
72 121 :M
(of the referencing entity \(Transaction\). This is an important aspect of referential)S
72 134 :M
(integrity that is often overlooked and it is interesting to note that many CASE tools)S
72 147 :M
(do not appear to implement this rule.)S
90 160 :M
(Second, a similar situation also arises with the cardinality of the referencing)S
72 173 :M
(entity \(Transaction\). This is expressed in SQL by the existence \(or not\) of a UNIQUE)S
72 186 :M
(constraint on the foreign key attribute of the referencing entity. Again, many CASE)S
72 199 :M
(tools do not appear to implement this.)S
90 212 :M
(Third, the optionality of the referencing entity \(Transaction\) cannot be expressed)S
72 225 :M
(in SQL, as there is no equivalent SQL construct. This is a limitation of SQL, however,)S
72 238 :M
(rather than of the relational model itself \321 it should be possible to represent such a)S
72 251 :M
(constraint using relational calculus or some similar scheme. In other words, this is a)S
72 264 :M
(limitation of the particular representation that we have chosen.)S
90 278 :M
(The inverse transformation )S
f361 sf
(D)S
247 280 :M
f372 sf
(2)S
252 278 :M
f170 sf
<28>S
256 278 :M
f361 sf
(V)S
265 278 :M
f170 sf
(, )S
f361 sf
(RM)S
f170 sf
(, )S
f361 sf
(SQL/92)S
f170 sf
(\) )S
341 278 :M
f519 sf
(\256)S
353 278 :M
f170 sf
( )S
f361 sf
(D)S
f372 sf
0 2 rm
(1)S
0 -2 rm
370 278 :M
f170 sf
<28>S
374 278 :M
f361 sf
(V)S
383 278 :M
f170 sf
(, )S
f361 sf
(ERM)S
f170 sf
(, )S
f361 sf
(ERD)S
446 280 :M
f476 sf
(Martin)S
f170 sf
0 -2 rm
(\) is)S
0 2 rm
72 291 :M
(similar, in that the optionality of the referencing entity cannot be determined from)S
72 304 :M
(the SQL code, whereas the first two items can be determined, )S
f361 sf
(if)S
406 304 :M
f170 sf
( the SQL code has)S
72 317 :M
(been correctly defined.)S
72 341 :M
f548 sf
(2.1.2. Relational )S
f563 sf
(\256)S
174 341 :M
f548 sf
( functional dependencies)S
72 356 :M
f170 sf
(In this example we are transforming from the relational model expressed in SQL, to)S
72 369 :M
(functional dependencies expressed as an FDD using Smith\325s notation. That is )S
f361 sf
(D)S
493 371 :M
f372 sf
(1)S
498 369 :M
f170 sf
<28>S
502 369 :M
f361 sf
(V)S
511 369 :M
f170 sf
(,)S
72 382 :M
f361 sf
(RM)S
f170 sf
(, )S
f361 sf
(SQL/92)S
136 382 :M
f170 sf
(\) )S
143 382 :M
f519 sf
(\256)S
f170 sf
( )S
f361 sf
(D)S
167 384 :M
f372 sf
(2)S
172 382 :M
f170 sf
<28>S
176 382 :M
f361 sf
(V)S
185 382 :M
f170 sf
(, )S
f361 sf
(FD)S
f170 sf
(, )S
f361 sf
(FDD)S
f476 sf
0 2 rm
(Smith)S
0 -2 rm
f170 sf
(\). This is illustrated by the arrow labelled )S
481 382 :M
f361 sf
(T)S
f372 sf
0 2 rm
(2)S
0 -2 rm
493 382 :M
f170 sf
( in)S
72 395 :M
(Figure\3121. Both representations are formal ones. Figure\3124 shows an example of such a)S
72 408 :M
(transformation.)S
97 423 400 311 rC
np 235 640 :M
221 642 :L
221 639 :L
221 636 :L
235 640 :L
eofill
144 636 -2 2 222 638 2 144 634 @a
1 G
90 48 144 635 @j
.5 G
2 lw
90 48 144 635 @f
1 G
5 lw
48 144.5 644 @w
0 G
np 144 689 :M
140 676 :L
144 676 :L
147 676 :L
144 689 :L
eofill
2 lw
32 144 645 @w
np 144 679 :M
140 665 :L
144 665 :L
147 665 :L
144 679 :L
eofill
32 144 634 @w
1 G
79 37 143.5 634.5 @j
0 G
79 36 143.5 635 @f
.5 G
np 185 625 :M
195 620 :L
192 624 :L
195 628 :L
185 625 :L
1 lw
eofill
-.5 -.5 192.5 624.5 .5 .5 317 614 @b
np 253 486 :M
262 481 :L
259 485 :L
264 487 :L
253 486 :L
eofill
-.5 -.5 259.5 485.5 .5 .5 317 469 @b
1 G
48 17 259 639.5 @j
0 G
2 lw
47 16 258.5 639 @f
.5 G
np 144 611 :M
140 597 :L
144 597 :L
147 597 :L
144 611 :L
eofill
148 144 450 @w
1 G
68 34 144 451 @j
.5 G
68 34 144 451 @f
1 G
142 454 -5 5 180 491 5 142 449 @a
0 G
np 178 493 :M
167 485 :L
170 483 :L
172 481 :L
178 493 :L
5 lw
eofill
143 452 -2 2 171 482 2 143 450 @a
1 G
57 22 143.5 451 @j
0 G
2 lw
56 22 144 451 @f
123 445 40 8 rC
gS
.8 .799 scale
177.746 561.386 :T
-177.746 -561.386 :T
153.746 565.386 :M
f222 sf
(TRANS_ID)S
gR
gR
1 G
gS 97 423 400 311 rC
142 637 -5 5 213 672 5 142 632 @a
0 G
np 211 675 :M
197 671 :L
199 668 :L
201 665 :L
211 675 :L
5 lw
eofill
143 636 -2 2 201 667 2 143 634 @a
1 G
68 26 144 635 @j
0 G
2 lw
68 25 144 634.5 @f
115 631 61 8 rC
gS
.8 .799 scale
180.747 792.794 :T
-180.747 -792.794 :T
143.747 796.794 :M
f222 sf
(REGISTRATION)S
gR
gR
gS 97 423 400 311 rC
122 121 219 537.5 @j
.5 G
2 lw
122 121 219 537.5 @f
1 G
3 lw
112.5 436.5 70 59 rS
5 lw
79 217 540.5 @c
79 217 574.5 @c
.875 G
2 lw
65 28 328.5 540 @f
174 489 92 24 rC
gS
.8 .799 scale
274.494 627.424 :T
-274.494 -627.424 :T
242.494 620.424 :M
0 G
f222 sf
(TRANS_DATE)S
gR
gS
.8 .799 scale
274.494 627.424 :T
-274.494 -627.424 :T
242.494 640.437 :M
0 G
f222 sf
(TRANS_TYPE)S
gR
gR
gS 97 423 400 311 rC
181 472 -3 3 318 514 3 181 469 @a
.875 G
2 lw
65 28 326.5 574 @f
307 424 189 308 rC
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 537.867 :M
0 G
f421 sf
(create table trans_head)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 549.125 :M
0 G
f421 sf
<28>S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 560.383 :M
0 G
f421 sf
(  trans_id char\(8\),)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 571.64 :M
0 G
f421 sf
(  trans_date date,)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 581.647 :M
0 G
f421 sf
(  trans_type char,)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 592.905 :M
0 G
f421 sf
(  salesrep_id char\(8\))S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 604.163 :M
0 G
f421 sf
(    not null,)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 615.42 :M
0 G
f421 sf
(    -- no unique constraint)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 626.678 :M
0 G
f421 sf
(  customer_no char\(8\),)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 636.685 :M
0 G
f421 sf
(       ...)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 647.942 :M
0 G
f421 sf
(  primary key \(trans_id\),)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 659.2 :M
0 G
f421 sf
(  foreign key customer_no)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 670.458 :M
0 G
f421 sf
(    references customer \(customer_no\),)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 681.715 :M
0 G
f421 sf
(       ...)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 691.722 :M
0 G
f421 sf
(\);)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 714.238 :M
0 G
f421 sf
(create table trans_line)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 725.495 :M
0 G
f421 sf
<28>S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 735.502 :M
0 G
f421 sf
(  trans_id char\(8\),)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 746.76 :M
0 G
f421 sf
(  registration char\(6\),)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 758.018 :M
0 G
f421 sf
(  amount decimal\(2\),)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 769.275 :M
0 G
f421 sf
(  primary key \(trans_id, registration\),)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 780.533 :M
0 G
f421 sf
(  foreign key \(trans_id\))S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 790.54 :M
0 G
f421 sf
(    references trans_head \(trans_id\))S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 801.797 :M
0 G
f421 sf
(       ...)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 813.055 :M
0 G
f421 sf
(\);)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 835.571 :M
0 G
f421 sf
(create table car)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 845.577 :M
0 G
f421 sf
<28>S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 856.835 :M
0 G
f421 sf
(  registration char\(6\),)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 868.093 :M
0 G
f421 sf
(  VIN char\(20\))S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 879.35 :M
0 G
f421 sf
(    unique,)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 890.608 :M
0 G
f421 sf
(       ...)S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 900.615 :M
0 G
f421 sf
(  primary key \(registration\))S
gR
gS
.8 .799 scale
500.741 721.867 :T
-500.741 -721.867 :T
383.741 911.873 :M
0 G
f421 sf
(\);)S
gR
gR
0 G
gS 97 423 400 311 rC
np 295 541 :M
282 544 :L
282 541 :L
282 537 :L
295 541 :L
2 lw
eofill
64 219 541 @c
np 294 574 :M
281 577 :L
281 574 :L
281 571 :L
294 574 :L
eofill
63 219 574 @c
1 G
76 23 219 540.5 @j
0 G
76 23 219 540.5 @f
188 535 63 8 rC
gS
.8 .799 scale
274.245 672.712 :T
-274.245 -672.712 :T
236.245 676.712 :M
f222 sf
(CUSTOMER_NO)S
gR
gR
1 G
gS 97 423 400 311 rC
64 22 219 574 @j
0 G
2 lw
64 22 219 574 @f
191 569 56 8 rC
gS
.8 .799 scale
272.745 717.492 :T
-272.745 -717.492 :T
238.745 720.492 :M
f222 sf
(SALESREP_ID)S
gR
gR
.5 G
gS 97 423 400 311 rC
np 144 600 :M
140 586 :L
144 586 :L
147 586 :L
144 600 :L
2 lw
eofill
3 144 585 @w
241 634 36 8 rC
gS
.8 .799 scale
323.493 796.547 :T
-323.493 -796.547 :T
302.493 800.547 :M
0 G
f222 sf
(AMOUNT)S
gR
gR
.5 lw
gS 97 423 400 311 rC
369.5 424.5 49 8 rS
325.5 477.5 40 7 rS
325.5 485.5 112 8 rS
317.5 451.5 125 52 rS
113.5 437.5 69 58 rS
np 183 471 :M
193 471 :L
189 473 :L
191 477 :L
183 471 :L
eofill
189 473.5 -.5 .5 317.5 516 .5 189 473 @a
487 457 5 12 rC
gS
.8 .799 scale
610.736 577.647 :T
-610.736 -577.647 :T
608.736 581.647 :M
0 G
f642 sf
(?)S
gR
gR
.875 G
2 lw
gS 97 423 400 311 rC
64 37 144 707.5 @f
1 G
90 70 243 697 @j
0 G
90 70 243 697 @f
1 G
251 673 -3 3 326 700 3 251 670 @a
56 34 243 713 @j
0 G
56 34 243 713 @f
219 703 48 16 rC
gS
.8 .799 scale
302.993 887.856 :T
-302.993 -887.856 :T
284.993 886.856 :M
f222 sf
(MAKE +)S
gR
gS
.8 .799 scale
302.993 887.856 :T
-302.993 -887.856 :T
274.994 896.862 :M
f222 sf
(MODEL + \311)S
gR
gR
1 G
gS 97 423 400 311 rC
20 15 243 671.5 @j
.5 G
20 14 243 672 @f
236 667 15 8 rC
gS
.8 .799 scale
303.243 838.825 :T
-303.243 -838.825 :T
296.243 841.825 :M
0 G
f222 sf
(VIN)S
gR
gR
.5 G
gS 97 423 400 311 rC
np 243 696 :M
240 683 :L
243 683 :L
247 683 :L
243 696 :L
eofill
4 244 680 @w
np 253 672 :M
264 672 :L
259 675 :L
261 679 :L
253 672 :L
1 lw
eofill
259 675.5 -.5 .5 325.5 701 .5 259 675 @a
np 484 466 :M
476 474 :L
478 469 :L
474 468 :L
484 466 :L
eofill
-.5 -.5 437.5 489.5 .5 .5 478 469 @b
np 484 461 :M
475 466 :L
478 462 :L
474 459 :L
484 461 :L
eofill
-.5 -.5 365.5 481.5 .5 .5 478 462 @b
np 484 457 :M
474 456 :L
478 454 :L
476 449 :L
484 457 :L
eofill
419 429.5 -.5 .5 478.5 454 .5 419 429 @a
.5 lw
317.5 512.5 106 8 rS
317.5 609.5 173 9 rS
.25 lw
325.5 697.5 31 9 rS
gR
gS 28 31 538 781 rC
173 757 :M
0 G
f334 sf
(Figure\3124.)S
f170 sf
( Transformation from SQL to an FDD.)S
endp
%%Page: 8 8
%%BeginPageSetup
initializepage
(Nigel Stanger; page: 8 of 15)setjob
%%EndPageSetup
-28 -31 :T
gS 28 31 538 781 rC
294 803 :M
f170 sf
(7)S
90 82 :M
(The points to note here are:)S
90 108 :M
(\245)S
108 108 :M
(Functional dependencies are concerned only with the relationships between)S
108 121 :M
(attributes, so relation names are lost in the transformation.)S
90 146 :M
(\245)S
108 146 :M
(\322Optionality\323 information is lost completely, although as previously noted,)S
108 159 :M
(SQL can only partially represent optionality.)S
90 184 :M
(\245)S
108 184 :M
(The \322cardinality\323 of the referencing relation in a primary/foreign key)S
108 197 :M
(relationship is lost.)S
90 223 :M
(The inverse transformation )S
f361 sf
(D)S
247 225 :M
f372 sf
(2)S
252 223 :M
f170 sf
<28>S
256 223 :M
f361 sf
(V)S
265 223 :M
f170 sf
(, )S
f361 sf
(FD)S
f170 sf
(, )S
f361 sf
(FDD)S
f476 sf
0 2 rm
(Smith)S
0 -2 rm
f170 sf
(\) )S
347 223 :M
f519 sf
(\256)S
359 223 :M
f170 sf
( )S
f361 sf
(D)S
f372 sf
0 2 rm
(1)S
0 -2 rm
376 223 :M
f170 sf
<28>S
380 223 :M
f361 sf
(V)S
389 223 :M
f170 sf
(, )S
f361 sf
(RM)S
f170 sf
(, )S
f361 sf
(SQL/92)S
f170 sf
(\) is again)S
72 236 :M
(similar: we cannot derive table names from the FDD, and there is no optionality or)S
72 249 :M
(cardinality information to be transformed. This infor)S
351 249 :M
(mation must be derived from)S
72 262 :M
(elsewhere; we shall return to this issue shortly.)S
72 286 :M
f548 sf
(2.1.3. Analysis)S
72 299 :M
f170 sf
(Our analysis has shown that there is considerable overlap between entity-rela)S
484 299 :M
(-)S
72 312 :M
(tionship modelling and the relational model. If we were to use a representation that)S
72 325 :M
(fully adhered to the relational model, then the overlap may be total. If we use SQL,)S
72 338 :M
(however, we cannot transform the optionality of a referencing entity.)S
90 351 :M
(Similarly, we find that there is a lesser overlap between the relational model and)S
72 364 :M
(functional dependencies, perhaps on the order of 60%. Because of the considerable)S
72 377 :M
(overlap between entity-relationship modelling and the relational model, it seems)S
72 390 :M
(reasonable to state that there is probably also about a 50\32060% overlap between)S
72 403 :M
(entity-relationship modelling and functional dependencies.)S
90 416 :M
(We acknowledge that these observations are rather )S
364 416 :M
f361 sf
(ad hoc)S
f170 sf
(, however, and that)S
72 429 :M
(some form of quantitative or qualitative measure is needed to determine the degree)S
72 442 :M
(of overlap between different representations. If we can determine this overlap, we)S
72 455 :M
(can use this as a basis for developing a database design environ)S
409 455 :M
(ment that supports)S
72 468 :M
(multiple representations.)S
72 495 :M
f487 sf
(2.2. Integrity of the design)S
72 521 :M
f170 sf
(Suppose a developer uses a single representation to describe a viewpoint \(remember)S
72 534 :M
(that we are assuming only a single viewpoint\). How can they verify the integrity of)S
72 547 :M
(this description? In the past, a design would often be developed and implemented,)S
72 560 :M
(and only then discovered to be inadequate )S
301 560 :M
(\(Brooks 1975\))S
373 560 :M
(. One approach to solving)S
72 573 :M
(this problem is to adopt a prototyping methodology \(Sallis, Tate et al. 1995\), which,)S
72 586 :M
(although potentially time-consuming, can lessen the discontinuity between the)S
72 599 :M
(original requirements and the final solution.)S
90 613 :M
(If the same developer used multiple representations instead, they could use these)S
72 626 :M
(different descriptions to aid in testing the integrity of the overall design. For)S
72 639 :M
(example, as shown in Figure\3125\(a\), if we were to independently create an ERD \()S
f361 sf
(D)S
497 641 :M
f372 sf
(1)S
502 639 :M
f170 sf
<29>S
72 652 :M
(and an FDD \()S
144 652 :M
f361 sf
(D)S
f372 sf
0 2 rm
(3)S
0 -2 rm
158 652 :M
f170 sf
(\) to describe the viewpoint, the integrity of the combination could be)S
72 665 :M
(verified by transforming both )S
f361 sf
(D)S
242 667 :M
f372 sf
(1)S
247 665 :M
f170 sf
( and )S
f361 sf
(D)S
283 667 :M
f372 sf
(3)S
288 665 :M
f170 sf
( into relational form \()S
f361 sf
(D)S
411 667 :M
f372 sf
(2)S
416 665 :M
f170 sf
( and )S
f361 sf
(D)S
452 667 :M
f372 sf
(4)S
457 665 :M
f170 sf
(\) and)S
72 678 :M
(determining whether )S
188 678 :M
f361 sf
(D)S
f372 sf
0 2 rm
(2)S
0 -2 rm
202 678 :M
f170 sf
( and )S
f361 sf
(D)S
238 680 :M
f372 sf
(4)S
243 678 :M
f170 sf
( were equivalent. That is, given )S
412 678 :M
f361 sf
(D)S
f372 sf
0 2 rm
(1)S
0 -2 rm
426 678 :M
f170 sf
<28>S
430 678 :M
f361 sf
(V)S
439 678 :M
f170 sf
(, )S
f361 sf
(ERM)S
f170 sf
(, )S
f361 sf
(ERD)S
502 678 :M
f170 sf
(\) )S
509 678 :M
f519 sf
(\256)S
72 691 :M
f361 sf
(D)S
f372 sf
0 2 rm
(2)S
0 -2 rm
86 691 :M
f170 sf
<28>S
90 691 :M
f361 sf
(V)S
99 691 :M
f170 sf
(, )S
f361 sf
(RM)S
f170 sf
(, )S
f361 sf
(SQL)S
153 691 :M
f170 sf
(\) and )S
f361 sf
(D)S
f372 sf
0 2 rm
(3)S
0 -2 rm
197 691 :M
f170 sf
<28>S
201 691 :M
f361 sf
(V)S
210 691 :M
f170 sf
(, )S
f361 sf
(FD)S
f170 sf
(, )S
f361 sf
(FDD)S
f170 sf
(\) )S
270 691 :M
f519 sf
(\256)S
282 691 :M
f170 sf
( )S
f361 sf
(D)S
f372 sf
0 2 rm
(4)S
0 -2 rm
299 691 :M
f170 sf
<28>S
303 691 :M
f361 sf
(V)S
312 691 :M
f170 sf
(, )S
f361 sf
(RM)S
f170 sf
(, )S
f361 sf
(SQL)S
366 691 :M
f170 sf
(\),we need to determine)S
72 704 :M
(whether )S
f361 sf
(D)S
f372 sf
0 2 rm
(2 )S
0 -2 rm
135 704 :M
f519 sf
(\272)S
142 704 :M
f170 sf
( )S
f361 sf
(D)S
f372 sf
0 2 rm
(4)S
0 -2 rm
159 704 :M
f170 sf
(.)S
90 717 :M
(Alternatively, as shown in Figure\3125\(b\), we could transform )S
404 717 :M
f361 sf
(D)S
f372 sf
0 2 rm
(1)S
0 -2 rm
418 717 :M
f170 sf
( into a second FDD)S
72 730 :M
<28>S
76 730 :M
f361 sf
(D)S
f372 sf
0 2 rm
(5)S
0 -2 rm
90 730 :M
f170 sf
(\) and compare this with )S
f361 sf
(D)S
229 732 :M
f372 sf
(3)S
234 730 :M
f170 sf
( to determine whether )S
355 730 :M
f361 sf
(D)S
f372 sf
0 2 rm
(1)S
0 -2 rm
369 730 :M
f170 sf
( and)S
f361 sf
( D)S
405 732 :M
f372 sf
(3)S
410 730 :M
f170 sf
( were equivalent.)S
72 743 :M
(That is, given )S
147 743 :M
f361 sf
(D)S
f372 sf
0 2 rm
(1)S
0 -2 rm
161 743 :M
f170 sf
<28>S
165 743 :M
f361 sf
(V)S
174 743 :M
f170 sf
(, )S
f361 sf
(ERM)S
f170 sf
(, )S
f361 sf
(ERD)S
237 743 :M
f170 sf
(\) )S
244 743 :M
f519 sf
(\256)S
256 743 :M
f170 sf
( )S
f361 sf
(D)S
f372 sf
0 2 rm
(5)S
0 -2 rm
273 743 :M
f170 sf
<28>S
277 743 :M
f361 sf
(V)S
286 743 :M
f170 sf
(, )S
f361 sf
(FD)S
f170 sf
(, )S
f361 sf
(FDD)S
f170 sf
(\) and )S
f361 sf
(D)S
379 745 :M
f372 sf
(3)S
384 743 :M
f170 sf
<28>S
388 743 :M
f361 sf
(V)S
397 743 :M
f170 sf
(, )S
f361 sf
(FD)S
f170 sf
(, )S
f361 sf
(FDD)S
f170 sf
(\) we need to)S
72 756 :M
(determine whether )S
f361 sf
(D)S
186 758 :M
f372 sf
(3 )S
193 756 :M
f519 sf
(\272)S
200 756 :M
f170 sf
( )S
f361 sf
(D)S
f372 sf
0 2 rm
(5)S
0 -2 rm
217 756 :M
f170 sf
(.)S
endp
%%Page: 9 9
%%BeginPageSetup
initializepage
(Nigel Stanger; page: 9 of 15)setjob
%%EndPageSetup
-28 -31 :T
gS 28 31 538 781 rC
294 803 :M
f170 sf
(8)S
213 184 15 12 rC
214 193 :M
f653 sf
(\(a\))S
gR
gS 383 184 15 12 rC
384 193 :M
f653 sf
(\(b\))S
gR
gS 424 74 29 10 rC
425 82 :M
f222 sf
(\(FDD\))S
gR
gS 410 77 1 11 rC
411 85 :M
f60 sf
(  )S
gR
gS 412 73 9 10 rC
413 81 :M
f292 sf
(D)S
gR
gS 419 79 5 7 rC
420 84 :M
f266 sf
(3)S
gR
gS 352 74 29 10 rC
353 82 :M
f222 sf
(\(ERD\))S
gR
gS 338 77 1 11 rC
339 85 :M
f60 sf
(  )S
gR
gS 340 73 9 10 rC
341 81 :M
f292 sf
(D)S
gR
gS 347 79 5 7 rC
348 84 :M
f266 sf
(1)S
gR
gS 140 72 314 125 rC
np 162 156 :M
158 143 :L
162 147 :L
166 143 :L
162 156 :L
.5 lw
eofill
62.5 162.25 85 @w
np 270 156 :M
266 143 :L
270 147 :L
274 143 :L
270 156 :L
eofill
62.5 270.25 85 @w
np 187 163 :M
200 159 :L
195 163 :L
200 167 :L
187 163 :L
eofill
np 247 163 :M
234 167 :L
239 163 :L
234 159 :L
247 163 :L
eofill
44.5 195 163.25 @c
194 168 48 10 rC
195 176 :M
f292 sf
(equivalent?)S
gR
gS 28 31 538 781 rC
gS
170 118 :T
90 rotate
-170 -118 :T
151 122 :M
f292 sf
(transform)S
gR
gS
278 118 :T
90 rotate
-278 -118 :T
259 122 :M
f292 sf
(transform)S
gR
140 72 314 125 rC
np 431 85 :M
436 98 :L
431 93 :L
427 98 :L
431 85 :L
eofill
np 431 152 :M
427 139 :L
431 144 :L
436 139 :L
431 152 :L
eofill
.5 lw
51.5 431.25 93 @w
np 415 152 :M
404 145 :L
410 146 :L
411 140 :L
415 152 :L
eofill
361 85.5 -.5 .5 410.5 146 .5 361 85 @a
gR
gS 28 31 538 781 rC
gS
380 116 :T
50.5 rotate
-380 -116 :T
361 120 :M
f292 sf
(transform)S
gR
gS
439 120 :T
90 rotate
-439 -120 :T
417 124 :M
f292 sf
(equivalent?)S
gR
155 74 29 10 rC
156 82 :M
f222 sf
(\(ERD\))S
gR
gS 141 77 1 11 rC
142 85 :M
f60 sf
(  )S
gR
gS 143 73 9 10 rC
144 81 :M
f292 sf
(D)S
gR
gS 150 79 5 7 rC
151 84 :M
f266 sf
(1)S
gR
gS 155 159 28 10 rC
156 167 :M
f222 sf
(\(SQL\))S
gR
gS 141 162 1 11 rC
142 170 :M
f60 sf
(  )S
gR
gS 143 158 9 10 rC
144 166 :M
f292 sf
(D)S
gR
gS 150 164 5 7 rC
151 169 :M
f266 sf
(2)S
gR
gS 263 74 29 10 rC
264 82 :M
f222 sf
(\(FDD\))S
gR
gS 249 77 1 11 rC
250 85 :M
f60 sf
(  )S
gR
gS 251 73 9 10 rC
252 81 :M
f292 sf
(D)S
gR
gS 258 79 5 7 rC
259 84 :M
f266 sf
(3)S
gR
gS 264 159 28 10 rC
265 167 :M
f222 sf
(\(SQL\))S
gR
gS 249 162 1 11 rC
250 170 :M
f60 sf
(  )S
gR
gS 251 158 9 10 rC
252 166 :M
f292 sf
(D)S
gR
gS 258 164 5 7 rC
259 169 :M
f266 sf
(4)S
gR
gS 416 157 29 10 rC
417 165 :M
f222 sf
(\(FDD\))S
gR
gS 401 160 1 11 rC
402 168 :M
f60 sf
(  )S
gR
gS 403 156 9 10 rC
404 164 :M
f292 sf
(D)S
gR
gS 410 162 5 7 rC
411 167 :M
f266 sf
(5)S
gR
gS 140 72 314 125 rC
gR
gS 28 31 538 781 rC
112 220 :M
f334 sf
(Figure\3125.)S
f170 sf
( Integrity checking strategies using different representations.)S
90 246 :M
(If the required equivalence does not hold in either of the examples above, this can)S
72 259 :M
(be caused by one of two things:)S
90 286 :M
(\(1\))S
112 286 :M
f361 sf
(D)S
f372 sf
0 2 rm
(1)S
0 -2 rm
126 286 :M
f170 sf
( and )S
f361 sf
(D)S
162 288 :M
f372 sf
(3)S
167 286 :M
f170 sf
(\325s representations are irreconcilable, that is, )S
f361 sf
(D)S
f372 sf
0 2 rm
(1)S
0 -2 rm
413 286 :M
f170 sf
(\325s representation)S
112 299 :M
(expresses some information that )S
287 299 :M
f361 sf
(D)S
f372 sf
0 2 rm
(3)S
0 -2 rm
301 299 :M
f170 sf
(\325s cannot, or vice versa; or)S
90 324 :M
(\(2\))S
112 324 :M
(there is a viewpoint inconsistency between the two descriptions, that is,)S
112 337 :M
(either )S
146 337 :M
f361 sf
(D)S
f372 sf
0 2 rm
(1)S
0 -2 rm
160 337 :M
f170 sf
( or )S
f361 sf
(D)S
187 339 :M
f372 sf
(3)S
192 337 :M
f170 sf
( is inconsistent with the definition of viewpoint )S
446 337 :M
f361 sf
(V)S
455 337 :M
f170 sf
(.)S
72 362 :M
(The first case is to be expected, as different representations generally express)S
72 375 :M
(different information. For example, functional dependencies cannot express entity)S
72 388 :M
(names. The second case, however, may reveal an inconsistency in the design that)S
72 401 :M
(must be addressed by correcting either )S
f361 sf
(D)S
f372 sf
0 2 rm
(1)S
0 -2 rm
295 401 :M
f170 sf
( or )S
f361 sf
(D)S
322 403 :M
f372 sf
(3)S
327 401 :M
f170 sf
(. Alternatively, )S
f361 sf
(D)S
419 403 :M
f372 sf
(2)S
424 401 :M
f170 sf
(,)S
f372 sf
0 2 rm
( )S
0 -2 rm
f361 sf
(D)S
f372 sf
0 2 rm
(4)S
0 -2 rm
443 401 :M
f170 sf
( or )S
f361 sf
(D)S
470 403 :M
f372 sf
(5)S
475 401 :M
f170 sf
(  may)S
72 414 :M
(describe a new viewpoint )S
f361 sf
(V)S
220 416 :M
f372 sf
(2)S
225 414 :M
f170 sf
(, for example )S
f361 sf
(D)S
307 416 :M
f372 sf
(3)S
312 414 :M
f170 sf
<28>S
316 414 :M
f361 sf
(V)S
325 414 :M
f170 sf
(, )S
f361 sf
(FD)S
f170 sf
(, )S
f361 sf
(FDD)S
f170 sf
(\) )S
385 414 :M
f519 sf
(\256)S
397 414 :M
f170 sf
( )S
f361 sf
(D)S
f372 sf
0 2 rm
(4)S
0 -2 rm
414 414 :M
f170 sf
<28>S
418 414 :M
f361 sf
(V)S
427 416 :M
f372 sf
(2)S
432 414 :M
f170 sf
(, )S
f361 sf
(RM)S
f170 sf
(, )S
f361 sf
(SQL)S
486 414 :M
f170 sf
(\). Such)S
72 427 :M
(a situation is beyond the scope of this paper.)S
90 439 :M
(Thus, the use of multiple representations for a single viewpoint improves design)S
72 452 :M
(integrity in two ways. First, different representations may be able to describe aspects)S
72 465 :M
(of the viewpoint that other representations cannot, allowing us to more fully)S
72 478 :M
(describe the viewpoint and produce a better database design. Second,)S
72 491 :M
(inconsistencies in the original viewpoint may be exposed when described using a)S
72 504 :M
(different representation.)S
72 531 :M
f487 sf
(2.3. Quality of transformations)S
72 557 :M
f170 sf
(As stated previously, different representations will most likely overlap in what they)S
72 570 :M
(can represent, although the degree of this overlap may vary considerably. An)S
72 583 :M
(important issue that arises when performing a transformation at either the technique)S
72 596 :M
(or the scheme level is the loss and/or gain of information that occurs. For example,)S
72 609 :M
(entity names are an important element of the ER approach, but they cannot be)S
72 622 :M
(represented by functional dependencies, so this information is apparently \322lost\323 in)S
72 635 :M
(the transformation. The information is not truly lost, however, as it is still contained)S
72 648 :M
(within the original ERD. Gain of information, on the other hand, is a problem that)S
72 661 :M
(must be dealt with. For example, if we start with a set of functional dependencies)S
72 674 :M
(and transform this into an ERD, we must generate the entity names in some way.)S
90 687 :M
(This is a particular problem with technique transformations, as the information)S
72 700 :M
(represented can vary quite considerably from technique to technique, as discussed)S
72 713 :M
(earlier. The same problem can also occur in scheme transformations, but to a much)S
72 726 :M
(lesser extent, as the differences between schemes are generally not as radical as those)S
72 739 :M
(between techniques.)S
90 752 :M
(An important task, therefore, is to determine what the overlap is between)S
72 765 :M
(different representations, so that we can determine the information that needs to be)S
endp
%%Page: 10 10
%%BeginPageSetup
initializepage
(Nigel Stanger; page: 10 of 15)setjob
%%EndPageSetup
-28 -31 :T
gS 28 31 538 781 rC
294 803 :M
f170 sf
(9)S
72 82 :M
(\322gained\323 \(where applicable\) when transforming between representations. This)S
72 95 :M
(knowledge will ultimately determine the efficacy of any database design)S
72 108 :M
(environment that may be developed.)S
72 138 :M
f181 sf
(3. Environments for viewpoint representations)S
72 165 :M
f170 sf
(Our aim is to develop a database design environment which facilitates the use of)S
72 178 :M
(multiple representations. In this section we briefly discuss possible architectures for)S
72 191 :M
(building such an environment.)S
90 204 :M
(Let us return for a moment to the notion of viewpoints. One problem that arises)S
72 217 :M
(from the use of multiple viewpoints is that they may conflict. Traditionally, the)S
72 230 :M
(solution to this has been to define a single \322correct\323 viewpoint that may or may not)S
72 243 :M
(integrate elements from the other viewpoints \(Finkelstein and Sommerville 1996\).)S
72 256 :M
(This approach follows the objectivist paradigm )S
325 256 :M
(\(Klein and Hirschheim 1987\), which)S
72 269 :M
(effectively states that there is always some kind of underlying \322truth\323 to be found)S
72 282 :M
(when modelling reality. In other words, we can always find one \322correct\323 solution.)S
90 295 :M
(In reality, however, this is just not the case. Experience has shown that there are)S
72 308 :M
(usually several different, but equally \322correct\323, solutions to any but the most trivial)S
72 321 :M
(of data modelling problems. The process of generating a single \322correct\323 viewpoint)S
72 334 :M
(may result in much useful information being discarded, especially when different)S
72 347 :M
(viewpoints conflict, as there is usually some reason for such conflicts. Easterbrook)S
72 360 :M
(\(1991\))S
104 360 :M
( refers to this problem as the \322single viewpoint bias\323 and notes that it has been)S
72 373 :M
(criticised by several authors \(Cunningham, Finkelstein et al. 1985; Shaw and Gaines)S
72 386 :M
(1989\))S
100 386 :M
(. Recent work in this area has focused on negotiated resolution of conflicts)S
72 399 :M
(between viewpoints \(Easterbrook 1991b; Easterbrook and Nuseibeh 1995;)S
72 412 :M
(Easterbrook and Nuseibeh 1996\). This approach follows the subjectivist paradigm,)S
72 425 :M
(which states that there is no underlying \322truth\323, only interpretations of reality.)S
90 438 :M
(Viewpoints are a relatively high-level concept, as indicated in Figure\3121. We are)S
72 451 :M
(dealing with a lower level, that of how viewpoints are represented, and it is)S
72 464 :M
(interesting to note that the use of multiple representations to describe a viewpoint)S
72 477 :M
(mirrors the use of multiple viewpoints to describe a phenomenon. This is an)S
72 490 :M
(important point to bear in mind when considering the type of architecture to use for)S
72 503 :M
(implementing an environment which can deal with multiple viewpoint)S
72 516 :M
(representations.)S
72 543 :M
f487 sf
(3.1. Architectures)S
72 569 :M
f170 sf
(One possible approach is to attempt to define some kind of uniform representation)S
72 582 :M
(\(similar to an interchange format\). All information is described using this)S
72 595 :M
(representation, and it is transformed to other representations as required. The main)S
72 608 :M
(disadvantage is that the uniform representation may become a \322moving target\323 \321 as)S
72 621 :M
(new representations are added, the uniform representation must be updated to)S
72 634 :M
(handle them )S
142 634 :M
(\(Pascoe and Penny 1990\))S
273 634 :M
(. This can lead to a proliferation of)S
72 647 :M
(incompatible versions that cannot communicate.)S
90 660 :M
(Another argument against this strategy is that it represents a kind of)S
72 673 :M
(\322representation integration\323 step, which is analogous to the objectivist approach of)S
72 686 :M
(unifying all viewpoints into a single \322correct\323 viewpoint. In other words, we are)S
72 699 :M
(conceptually moving away from the viewpoint-based approach.)S
90 712 :M
(Also consider that the end result of the database design process is usually the)S
72 725 :M
(generation of a database schema. If we are going to take our multiple representations)S
72 738 :M
(and transform them into a single representation anyway, it seems somewhat)S
72 751 :M
(unnecessary to introduce yet another representation into the mix, especially if the)S
endp
%%Page: 11 11
%%BeginPageSetup
initializepage
(Nigel Stanger; page: 11 of 15)setjob
%%EndPageSetup
-28 -31 :T
gS 28 31 538 781 rC
291 803 :M
f170 sf
(10)S
72 82 :M
(\322target\323 representation is one of the original set of representations \(for example,)S
72 95 :M
(SQL\).)S
90 108 :M
(A better approach for database design seems to be to perform transformations)S
72 121 :M
(between representations as needed. The total number of transformation \322engines\323)S
72 134 :M
(required increases, but adding a new representation does not result in a new,)S
72 147 :M
(incompatible version. Also, as stated above, this approach is analogous to the way in)S
72 160 :M
(which viewpoints are handled. It may also provide other advantages to the schema)S
72 173 :M
(generation process which will be discussed in the next section.)S
90 186 :M
(Figure\3126 illustrates an architecture which follows this strategy. The)S
72 199 :M
(transformations between representations are represented by the grey arrows; )S
484 199 :M
f361 sf
(T)S
f372 sf
0 2 rm
(1)S
0 -2 rm
496 199 :M
f170 sf
( and)S
72 212 :M
f361 sf
(T)S
f372 sf
0 2 rm
(2)S
0 -2 rm
84 212 :M
f170 sf
( correspond to the two examples discussed earlier. Each representation is placed)S
72 225 :M
(into its own module, which handles all the needs of that representation. This)S
72 238 :M
(modular approach makes the environment much easier to extend.)S
90 251 :M
(Each module has a )S
193 251 :M
f361 sf
(technique component)S
f170 sf
(, which deals with storage issues, and a)S
72 264 :M
f361 sf
(scheme component)S
f170 sf
(, which deals with the user interface. Technique components can be)S
72 277 :M
(shared across representations, as shown by the relational technique in Figure\3126,)S
72 290 :M
(which is shared across two relational representation modules, one that uses SQL and)S
72 303 :M
(another that uses QUEL.)S
90 316 :M
(If such an architecture is used, we need to consider the issue of information)S
72 329 :M
(gain/loss when transforming from one model to another. Since different)S
72 342 :M
(representations may store different information, it would seem sensible to store)S
72 355 :M
(representation-specific information with that representation. When additional)S
72 368 :M
(information is required to complete a transformation, the environment must query)S
72 381 :M
(the developer in some way to obtain that information, if it is not possible to generate)S
72 394 :M
(it automatically.)S
.5 G
.5 lw
129 410 336 224 rC
130.5 420.5 333 88 rS
1 lw
186 222 501.5 @c
np 400 476 :M
385 481 :L
390 476 :L
385 472 :L
400 476 :L
eofill
91 300 476.5 @c
1 G
-6 -6 332 529 6 6 340 466 @b
6 lw
55 442 481 @w
0 G
1 lw
435.5 533.5 7 0 90 @m
50 442.5 484 @w
1 G
6 lw
55 187 481 @w
283 487 -6 6 303 523 6 283 481 @a
0 G
np 300 526 :M
291 514 :L
297 517 :L
300 511 :L
300 526 :L
eofill
286 485 -1 1 298 517 1 286 484 @a
np 272 540 :M
258 545 :L
263 540 :L
258 536 :L
272 540 :L
1 lw
eofill
70 194 540.5 @c
np 357 540 :M
371 536 :L
366 540 :L
371 545 :L
357 540 :L
eofill
70 366 540.5 @c
50 187.5 484 @w
1 G
173 427 57 58 rF
0 G
.5 lw
173.5 427.5 56 57 rS
175 464 53 10 rC
176 472 :M
f222 sf
(Martin ERD)S
gR
gS 189 436 24 10 rC
190 444 :M
f222 sf
(ERM)S
gR
:a
0(\377\377\377\377\377\377\377\377)(\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377)fg bk
:b
gS 129 410 336 224 rC
.5 lw
[4
4
] 0 :q
229 455 173 455 :r
[] 0 :q
229 455 :M
psb
pse
:e
0 G
1 G
272 427 29 58 rF
0 G
272.5 427.5 28 57 rS
np 329 526 :M
328 511 :L
331 517 :L
337 514 :L
329 526 :L
eofill
-1 -1 332 518 1 1 343 469 @b
1 G
329 427 29 43 rF
0 G
329.5 427.5 28 42 rS
1 G
81 24 314.5 441 @j
.75 G
2 lw
81 24 314.5 441 @f
292 436 46 10 rC
293 444 :M
0 G
f222 sf
(Relational)S
gR
gS 129 410 336 224 rC
.5 lw
[4
4
] 0 :q
300 455 272 455 :r
[] 0 :q
300 455 :M
psb
pse
:e
0 G
1 G
400 427 57 58 rF
0 G
400.5 427.5 56 57 rS
417 464 22 10 rC
418 472 :M
f222 sf
(FDD)S
gR
:e
gS 421 436 15 10 rC
422 444 :M
0 G
f222 sf
(FD)S
gR
:a
0(\377\377\377\377\377\377\377\377)(\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377)fg bk
:b
gS 129 410 336 224 rC
.5 lw
[4
4
] 0 :q
456 455 400 455 :r
[] 0 :q
456 455 :M
psb
pse
:e
0 G
275 464 22 10 rC
276 472 :M
f222 sf
(SQL)S
gR
:e
.5 G
gS 129 410 336 224 rC
np 215 484 :M
220 498 :L
215 493 :L
211 498 :L
215 484 :L
eofill
2 215.5 493 @w
np 414 484 :M
418 498 :L
414 493 :L
409 498 :L
414 484 :L
eofill
2 414.5 493 @w
222.5 494.5 7 90 180 @m
407.5 494.5 7 0 90 @m
0 G
272 526 86 29 rF
.5 lw
272.5 526.5 85 28 rS
272 530 85 20 rC
296 538 :M
1 G
f664 sf
(Schema)S
289 548 :M
(generation)S
gR
gS 132 411 98 10 rC
133 419 :M
0 G
f292 sf
(Representation modules)S
gR
0 G
.5 lw
gS 129 410 336 224 rC
57 14 315 625.5 @f
1 G
286 583 58 43 rF
286.5 583.5 57 42 rS
58 15 315 583.5 @j
0 G
57 14 315 583.5 @f
42.5 286.25 583 @w
42.5 343.25 583 @w
290 602 49 11 rC
291 610 :M
f675 sf
(Database)S
gR
gS 129 410 336 224 rC
np 315 583 :M
310 569 :L
315 573 :L
319 569 :L
315 583 :L
eofill
1 lw
20 315.5 554 @w
132 438 40 10 rC
133 446 :M
f292 sf
(technique)S
gR
gS 136 466 31 10 rC
137 474 :M
f292 sf
(scheme)S
gR
gS 246 443 7 10 rC
247 451 :M
f292 sf
(T)S
gR
gS 252 449 5 7 rC
253 454 :M
f266 sf
(1)S
gR
gS 372 464 7 10 rC
373 472 :M
f292 sf
(T)S
gR
gS 378 470 5 7 rC
379 475 :M
f266 sf
(2)S
gR
.5 G
gS 129 410 336 224 rC
np 272 455 :M
258 460 :L
263 455 :L
258 451 :L
272 455 :L
1 lw
eofill
35 229 455.5 @c
np 300 462 :M
314 458 :L
310 462 :L
314 467 :L
300 462 :L
eofill
np 329 462 :M
315 467 :L
319 462 :L
315 458 :L
329 462 :L
eofill
10 310 462.5 @c
:a
0(\377\377\377\377\377\377\377\377)(\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377)fg bk
:b
.5 lw
[4
4
] 0 :q
357 455 329 455 :r
[] 0 :q
357 455 :M
psb
pse
:e
0 G
328 457 29 10 rC
329 465 :M
f222 sf
(QUEL)S
gR
0 G
1 lw
gS 129 410 336 224 rC
194.5 533.5 7 90 180 @m
gR
gS 28 31 538 781 rC
153 657 :M
f334 sf
(Figure\3126.)S
f170 sf
( An architecture for a multiple representation)S
217 670 :M
(database design environment.)S
72 713 :M
f181 sf
(4. Implementation and further research)S
72 740 :M
f170 sf
(Implementation of an environment, as described in the previous section, has not yet)S
72 753 :M
(begun. It is planned that a preliminary implementation and results will be)S
72 766 :M
(completed by the time of publication. In the remainder of this section, we briefly)S
endp
%%Page: 12 12
%%BeginPageSetup
initializepage
(Nigel Stanger; page: 12 of 15)setjob
%%EndPageSetup
-28 -31 :T
gS 28 31 538 781 rC
291 803 :M
f170 sf
(11)S
72 82 :M
(discuss some issues that were not covered in this paper and will be the focus of)S
72 95 :M
(further research.)S
72 122 :M
f487 sf
(4.1. Transformation issues)S
72 148 :M
f170 sf
(The initial version of the proposed database design environment discussed in this)S
72 161 :M
(paper will implement only a small number of transformations, in order to explore)S
72 174 :M
(the following issues before moving to a more thorough implementation:)S
90 200 :M
(\245)S
108 200 :M
(Information \322gain\323 during a transformation must be dealt with in some way.)S
108 213 :M
(Some of this information may be able to be generated automatically; that)S
108 226 :M
(which cannot will require interaction with the user.)S
90 251 :M
(\245)S
108 251 :M
(Technique transformations are likely to be more difficult to deal with than)S
108 264 :M
(scheme transformations, because of the greater likelihood of differences in the)S
108 277 :M
(information that can be represented.)S
90 302 :M
(\245)S
108 302 :M
(If some schemes do not fully adhere to the technique they express, this raises)S
108 315 :M
(the question of how useful the transformations to, from and between these)S
108 328 :M
(schemes are.)S
90 353 :M
(\245)S
108 353 :M
(When a representation is modified, are the changes automatically propagated)S
108 366 :M
(to other representations, or should the user be required to do this manually?)S
108 379 :M
(Another related issue is revision management.)S
72 418 :M
f487 sf
(4.2. Formal analysis of transformation quality)S
72 444 :M
f170 sf
(Analysis of transformation quality has to this point been relatively informal and )S
f361 sf
(ad)S
72 457 :M
(hoc)S
f170 sf
(. This will be remedied in the near future by performing a more formal analysis)S
72 470 :M
(using the )S
f361 sf
(information capacity)S
f170 sf
( \(Miller, Ioannidis et al. 1993\) of various representations)S
72 483 :M
(as a qualitative measure of representation equivalence. )S
366 483 :M
f361 sf
(Schema intension graphs)S
72 496 :M
f170 sf
(\(Miller, Ioannidis et al. 1994\) will be used to model schema instances from each)S
72 509 :M
(representation, and from this determine the equivalence \(or lack thereof\) of the)S
72 522 :M
(representations. The results of this analysis should be available by the time of)S
72 535 :M
(publication.)S
72 562 :M
f487 sf
(4.3. Additional representations)S
72 588 :M
f170 sf
(This paper has only discussed three main representations: the entity-relationship)S
72 601 :M
(approach, the relational model and functional dependencies. There are many other)S
72 614 :M
(formal and semi-formal representations that could be included in such an)S
72 627 :M
(environment, such as process modelling, object modelling, formal specifications and)S
72 640 :M
(so on. Inclusion of informal representations is another line of research, although this)S
72 653 :M
(could be difficult because of the unstructured nature of many such representations.)S
72 680 :M
f487 sf
(4.4. Schema generation)S
72 706 :M
f170 sf
(The issue of schema generation from multiple representations was introduced in)S
72 719 :M
(Figure\3126 but not explored further. If we discard the notion of a uniform repre)S
480 719 :M
(-)S
72 732 :M
(sentation, generating a schema becomes a multi-step process, in which we must)S
72 745 :M
(decide how to use the different representations. One approach is to refine the)S
72 758 :M
(generated schema in a stepwise fashion \(Figure\3127\) using the information contained)S
endp
%%Page: 13 13
%%BeginPageSetup
initializepage
(Nigel Stanger; page: 13 of 15)setjob
%%EndPageSetup
-28 -31 :T
gS 28 31 538 781 rC
291 803 :M
f170 sf
(12)S
72 82 :M
(within each representation description. We will denote the refinement operator by)S
72 95 :M
(the symbol )S
134 95 :M
f519 sf
(|)S
134 95 :M
(\256)S
146 95 :M
f170 sf
(.)S
.5 G
99 112 397 227 rC
2 lw
87 232 176 @w
0 G
1 lw
209.5 114.5 207 212 rS
1 G
6 lw
20 201 135 @c
20 201 177 @c
20 201 220 @c
20 222 220 @c
20 201 305 @c
35 406 305 @c
.5 G
np 275 177 :M
258 183 :L
264 177 :L
258 172 :L
275 177 :L
eofill
2 lw
62 203 177 @c
np 298 220 :M
281 225 :L
287 220 :L
281 214 :L
298 220 :L
eofill
85 203 220 @c
np 317 262 :M
300 268 :L
306 262 :L
300 257 :L
317 262 :L
eofill
76 231 262 @c
np 338 305 :M
322 310 :L
327 305 :L
322 299 :L
338 305 :L
eofill
125 203 305 @c
0 G
np 115 312 :M
110 295 :L
115 301 :L
121 295 :L
115 312 :L
eofill
175 115 127 @w
.5 G
np 253 135 :M
237 140 :L
242 135 :L
237 129 :L
253 135 :L
eofill
40 203 135 @c
1 G
133 119 72 29 rF
0 G
.5 lw
133.5 119.5 71 28 rS
139 130 24 10 rC
140 138 :M
f222 sf
(ERM)S
gR
.5 lw
gS 99 112 397 227 rC
56 14 466.5 326.5 @f
1 G
438 284 57 43 rF
438.5 284.5 56 42 rS
57 16 466.5 284 @j
0 G
56 15 466.5 284 @f
42.5 438.25 284 @w
42.5 494.25 284 @w
441 303 49 11 rC
442 311 :M
f675 sf
(Database)S
gR
gS 99 112 397 227 rC
np 438 305 :M
421 310 :L
426 305 :L
421 299 :L
438 305 :L
eofill
2 lw
19 408 305 @c
1 G
253 121 72 29 rF
0 G
.5 lw
253.5 121.5 71 28 rS
264 130 47 10 rC
265 138 :M
f222 sf
(initial SQL)S
gR
1 G
gS 99 112 397 227 rC
133 161 72 30 rF
0 G
133.5 161.5 71 29 rS
1 G
133 204 72 29 rF
0 G
133.5 204.5 71 28 rS
1 G
133 289 72 29 rF
0 G
133.5 289.5 71 28 rS
np 300 163 :M
295 150 :L
300 155 :L
304 150 :L
300 163 :L
eofill
6.5 300.25 149 @w
1 G
275 163 72 29 rF
0 G
275.5 163.5 71 28 rS
280 172 55 10 rC
281 180 :M
f222 sf
(refined SQL)S
gR
gS 99 112 397 227 rC
296 206 72 29 rF
0 G
296.5 206.5 71 28 rS
302 215 55 10 rC
303 223 :M
f222 sf
(refined SQL)S
gR
gS 99 112 397 227 rC
317 248 72 29 rF
0 G
317.5 248.5 71 28 rS
323 257 55 10 rC
324 265 :M
f222 sf
(refined SQL)S
gR
gS 99 112 397 227 rC
338 291 72 29 rF
0 G
338.5 291.5 71 28 rS
350 300 43 10 rC
351 308 :M
f222 sf
(final SQL)S
gR
0 G
gS 99 112 397 227 rC
np 321 206 :M
317 193 :L
321 197 :L
325 193 :L
321 206 :L
eofill
6.5 321.25 191 @w
np 342 248 :M
338 235 :L
342 240 :L
346 235 :L
342 248 :L
eofill
6.5 342.25 234 @w
np 363 291 :M
359 278 :L
363 282 :L
368 278 :L
363 291 :L
eofill
6.5 363.25 276 @w
207 328 78 10 rC
208 336 :M
f292 sf
(Schema generation)S
gR
gS 210 121 41 10 rC
211 129 :M
f292 sf
(transform)S
gR
gS 28 31 538 781 rC
gS
105 216 :T
270 rotate
-105 -216 :T
93 219 :M
f292 sf
(merge)S
gR
:a
0(\377\377\377\377\377\377\377\377)(\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377)fg bk
:b
99 112 397 227 rC
[4
4
] 0 :q
168 147 168 119 :r
[] 0 :q
168 147 :M
psb
pse
:e
0 G
:a
0(\377\377\377\377\377\377\377\377)(\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377)fg bk
:b
[4
4
] 0 :q
168 190 168 161 :r
[] 0 :q
168 190 :M
psb
pse
:e
0 G
:a
0(\377\377\377\377\377\377\377\377)(\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377)fg bk
:b
[4
4
] 0 :q
168 232 168 204 :r
[] 0 :q
168 232 :M
psb
pse
:e
0 G
:a
0(\377\377\377\377\377\377\377\377)(\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377)fg bk
:b
[4
4
] 0 :q
168 317 168 289 :r
[] 0 :q
168 317 :M
psb
pse
:e
0 G
143 173 15 10 rC
144 181 :M
f222 sf
(FD)S
gR
gS 139 215 24 10 rC
140 223 :M
f222 sf
(ERM)S
gR
gS 134 300 34 9 rC
135 307 :M
f383 sf
(Process)S
gR
gS 172 130 23 10 rC
173 138 :M
f222 sf
(ERD)S
gR
gS 175 173 22 10 rC
176 181 :M
f222 sf
(FDD)S
gR
gS 172 215 23 10 rC
173 223 :M
f222 sf
(ERD)S
gR
gS 175 300 22 10 rC
176 308 :M
f222 sf
(DFD)S
gR
gS 195 138 5 7 rC
196 143 :M
f686 sf
(1)S
gR
gS 195 223 5 7 rC
196 228 :M
f686 sf
(2)S
gR
gS 310 136 5 7 rC
311 141 :M
f686 sf
(1)S
gR
gS 335 179 5 7 rC
336 184 :M
f686 sf
(2)S
gR
gS 356 222 5 7 rC
357 227 :M
f686 sf
(3)S
gR
gS 378 264 5 7 rC
379 269 :M
f686 sf
(4)S
gR
gS 394 307 5 7 rC
395 312 :M
f686 sf
(5)S
gR
gS 326 134 1 10 rC
327 142 :M
f255 sf
(  )S
gR
gS 328 130 9 10 rC
329 138 :M
f292 sf
(D)S
gR
gS 335 136 5 7 rC
336 141 :M
f266 sf
(2)S
gR
gS 116 176 1 10 rC
117 184 :M
f255 sf
(  )S
gR
gS 118 172 9 10 rC
119 180 :M
f292 sf
(D)S
gR
gS 125 178 5 7 rC
126 183 :M
f266 sf
(3)S
gR
gS 347 176 1 10 rC
348 184 :M
f255 sf
(  )S
gR
gS 349 172 9 10 rC
350 180 :M
f292 sf
(D)S
gR
gS 356 178 5 7 rC
357 183 :M
f266 sf
(4)S
gR
gS 116 134 1 10 rC
117 142 :M
f255 sf
(  )S
gR
gS 118 130 9 10 rC
119 138 :M
f292 sf
(D)S
gR
gS 125 136 5 7 rC
126 141 :M
f266 sf
(1)S
gR
gS 99 112 397 227 rC
gR
gS 28 31 538 781 rC
139 360 :M
f334 sf
(Figure\3127.)S
f170 sf
( Schema generation from multiple representations.)S
90 387 :M
(The box labelled \322schema generation\323 in Figure\3127 corresponds to the \322black box\323)S
72 400 :M
(of Figure\3126. The boxes labelled )S
f361 sf
(D)S
246 402 :M
f372 sf
(1)S
251 400 :M
f170 sf
( through )S
f361 sf
(D)S
f372 sf
0 2 rm
(4)S
0 -2 rm
314 400 :M
f170 sf
( in Figure\3127 correspond to the)S
72 413 :M
(descriptions used in the first step of the refinement process. In this example, the)S
72 426 :M
(\322source\323 representations consist of two ER representations, a functional dependency)S
72 439 :M
(representation and a process model representation expressed using a data flow)S
72 452 :M
(diagram. The \322target\323 representation for schema generation is SQL. The first step is)S
72 465 :M
(to generate an initial SQL schema from the first ER representation \()S
428 465 :M
f361 sf
(D)S
f372 sf
0 2 rm
(1)S
0 -2 rm
442 465 :M
f170 sf
(\). The next step)S
72 478 :M
(is to normalise this description using the information contained within the FD)S
72 491 :M
(representation \()S
156 491 :M
f361 sf
(D)S
f372 sf
0 2 rm
(3)S
0 -2 rm
170 491 :M
f170 sf
(\). We denote these transformations as:)S
164 507 266 28 rC
164 535 :M
1 0 rm
f697 sf
(  )S
164 535 :M
1 0 rm
f60 sf
(  )S
430 535 :M
psb
currentpoint
pse
164 507 :M
psb
30 dict begin
currentpoint 3 -1 roll sub neg 3 1 roll sub 8512 div 896 3 -1 roll exch div scale currentpoint translate 64 60 translate
-9 234 moveto
/fs 0 def
/sf {exch dup /fs exch def dup neg matrix scale makefont setfont} def
/f1 {findfont dup /cf exch def sf} def
/ns {cf sf} def
320 /Palatino-Italic f1
(D) show
229 314 moveto
224 /Palatino-Roman f1
(1) show
364 234 moveto
320 /Palatino-Italic f1
(\() show
481 234 moveto
320 /Palatino-Italic f1
(V) show
742 234 moveto
320 /Palatino-Italic f1
(,) show
866 234 moveto
320 /Palatino-Italic f1
(ERM) show
1598 234 moveto
320 /Palatino-Italic f1
(,) show
1722 234 moveto
320 /Palatino-Italic f1
(ERD) show
2368 314 moveto
224 /Palatino-Roman f1
(1) show
2519 234 moveto
320 /Palatino-Italic f1
(\)) show
2690 234 moveto
320 /Symbol f1
(\256) show
3083 234 moveto
320 /Palatino-Italic f1
(D) show
3331 314 moveto
224 /Palatino-Roman f1
(2) show
3482 234 moveto
320 /Palatino-Italic f1
(\() show
3599 234 moveto
320 /Palatino-Italic f1
(V) show
3860 234 moveto
320 /Palatino-Italic f1
(,) show
3993 234 moveto
320 /Palatino-Italic f1
(RM) show
4530 234 moveto
320 /Palatino-Italic f1
(,) show
4650 234 moveto
320 /Palatino-Italic f1
(SQL) show
5242 314 moveto
224 /Palatino-Roman f1
(1) show
5393 234 moveto
320 /Palatino-Italic f1
(\)) show
3208 714 moveto
320 /Palatino-Italic f1
(D) show
3456 794 moveto
224 /Palatino-Roman f1
(3) show
3606 714 moveto
320 /Palatino-Italic f1
(\() show
3723 714 moveto
320 /Palatino-Italic f1
(V) show
3984 714 moveto
320 /Palatino-Italic f1
(,) show
4122 714 moveto
320 /Palatino-Italic f1
(FD) show
4561 714 moveto
320 /Palatino-Italic f1
(,) show
4699 714 moveto
320 /Palatino-Italic f1
(FDD) show
5393 714 moveto
320 /Palatino-Italic f1
(\)) show
5564 484 moveto
320 /Symbol f1
(\256) show
5957 484 moveto
320 /Palatino-Italic f1
(D) show
6207 564 moveto
224 /Palatino-Roman f1
(4) show
6359 484 moveto
320 /Palatino-Italic f1
(\() show
6476 484 moveto
320 /Palatino-Italic f1
(V) show
6737 484 moveto
320 /Palatino-Italic f1
(,) show
6870 484 moveto
320 /Palatino-Italic f1
(RM) show
7407 484 moveto
320 /Palatino-Italic f1
(,) show
7527 484 moveto
320 /Palatino-Italic f1
(SQL) show
8129 564 moveto
224 /Palatino-Roman f1
(2) show
8296 484 moveto
320 /Palatino-Italic f1
(\)) show
end
pse
gR
gS 28 31 538 781 rC
1 lw
29 339.5 506 @w
90 558 :M
f170 sf
(This refinement process continues for each representation used to describe the)S
72 571 :M
(viewpoint, as shown in Figure\3127. Because of the extra information that multiple)S
72 584 :M
(representations provide, this could result in a \322better\323 schema than if we had)S
72 597 :M
(generated it from just a single representation, although it must be remembered that)S
72 610 :M
(not all of this extra information may be able to be represented in the target schema.)S
90 623 :M
(There is no particular significance to the order of refinements used in the)S
72 636 :M
(example above; indeed, a different order might prove more appropriate or efficient.)S
72 649 :M
(In addition, there is no need for all the steps to output the target representation.)S
72 662 :M
(Automatic optimisation of this process could be a particularly interesting area of)S
72 675 :M
(research. It is also possible that changing the refinement order may result in a)S
72 688 :M
(different final schema. Again, this may indicate a problem with the integrity of the)S
72 701 :M
(design.)S
endp
%%Page: 14 14
%%BeginPageSetup
initializepage
(Nigel Stanger; page: 14 of 15)setjob
%%EndPageSetup
-28 -31 :T
gS 28 31 538 781 rC
291 803 :M
f170 sf
(13)S
72 87 :M
f181 sf
(5. Summary)S
72 114 :M
f170 sf
(In this paper, we discussed the concept of describing a developer viewpoint using)S
72 127 :M
(multiple representations. The advantage of such an approach is that the viewpoint)S
72 140 :M
(may be described more fully by using multiple representations than by using a)S
72 153 :M
(single representation. Such an approach could be implemented in a database design)S
72 166 :M
(environment by enabling the environment to support the transformation of)S
72 179 :M
(viewpoint descriptions from one representation to another. We discussed the issues)S
72 192 :M
(raised by such transformations, such as the integrity of the design produced and the)S
72 205 :M
(quality of the transformations in terms of information gained and/or lost, and)S
72 218 :M
(introduced a notation for describing operations on viewpoint descriptions. A)S
72 231 :M
(possible architecture for a database design environment that uses multiple)S
72 244 :M
(viewpoint representations was proposed and possible directions for future research)S
72 257 :M
(were discussed.)S
72 287 :M
f181 sf
(6. References)S
72 314 :M
f170 sf
(Brooks, F. P. \(1975\). )S
179 314 :M
f361 sf
(The Mythical Man-Month: Essays on Software Engineering)S
f170 sf
(.)S
72 327 :M
(Addison-Wesley, Reading, Massachusetts.)S
72 353 :M
(Codd, E. F. \(1970\). A relational model of data for large shared data banks.)S
72 366 :M
f361 sf
(Communications of the ACM)S
f170 sf
(, )S
f334 sf
(13)S
f170 sf
(\(6\).)S
72 392 :M
(Cunningham, R. J., A. C. W. Finkelstein, S. Goldsack, T. S. E. Maibaum and C. Potts)S
72 405 :M
(\(1985\). Formal requirements specification \321 The FOREST project. In )S
437 405 :M
f361 sf
(Proceedings of)S
72 418 :M
(the Third IEEE International Workshop on Software Specification and Design)S
449 418 :M
f170 sf
(, London.)S
72 444 :M
(Darke, P. and G. Shanks \(1995\). Viewpoint development for requirements definition:)S
72 457 :M
(Towards a conceptual framework. In )S
271 457 :M
f361 sf
(Proceedings of the 6th Australasian Conference on)S
72 470 :M
(Information Systems \(ACIS \32595\))S
230 470 :M
f170 sf
(, Perth, Australia, pages 277-288.)S
72 496 :M
(Date, C. J. and H. Darwen \(1993\). )S
251 496 :M
f361 sf
(A Guide to the SQL Standard)S
f170 sf
(. Addison-Wesley,)S
72 509 :M
(Reading, Massachusetts, third edition.)S
72 535 :M
(Easterbrook, S. M. \(1991a\). )S
216 535 :M
f361 sf
(Elicitation of requirements from multiple perspectives)S
f170 sf
(. PhD)S
72 548 :M
(thesis, Imperial College of Science Technology and Medicine, University of London,)S
72 561 :M
(London.)S
72 574 :M
([http://research.ivv.nasa.gov/~steve/papers/thesis/thesis.ps])S
72 600 :M
(Easterbrook, S. M. \(1991b\). Handling conflict between domain descriptions with)S
72 613 :M
(computer supported negotiation. )S
251 613 :M
f361 sf
(Knowledge Acquisition: An International Journal)S
f170 sf
(, )S
f334 sf
(3)S
f170 sf
(\(4\):)S
72 626 :M
(255-289.)S
72 652 :M
(Easterbrook, S. M., A. C. W. Finkelstein, J. Kramer and B. A. Nuseibeh \(1994\). Co-)S
72 665 :M
(ordinating distributed ViewPoints: the anatomy of a consistency check. )S
f361 sf
(Journal of)S
72 678 :M
(Concurrent Engineering: Research and Applications)S
326 678 :M
f170 sf
(, )S
f334 sf
(2)S
f170 sf
(\(3\).)S
72 704 :M
(Easterbrook, S. M. and B. A. Nuseibeh \(1995\). Managing inconsistencies in an)S
72 717 :M
(evolving specification. In )S
f361 sf
(Proceedings of the Second IEEE International Symposium on)S
72 730 :M
(Requirements Engineering \(RE\32595\))S
244 730 :M
f170 sf
(, York, UK, pages 48-55.)S
endp
%%Page: 15 15
%%BeginPageSetup
initializepage
(Nigel Stanger; page: 15 of 15)setjob
%%EndPageSetup
-28 -31 :T
gS 28 31 538 781 rC
291 803 :M
f170 sf
(14)S
72 82 :M
(Easterbrook, S. M. and B. A. Nuseibeh \(1996\). Using ViewPoints for inconsistency)S
72 95 :M
(management. )S
f361 sf
(Software Engineering Journal)S
292 95 :M
f170 sf
(, )S
f334 sf
(11)S
f170 sf
(\(1\): 31-43.)S
72 121 :M
(Evergreen Software Tools \(1995\). )S
250 121 :M
f361 sf
(EasyCASE\250 Methodology Guide)S
f170 sf
(,)S
f361 sf
( )S
f170 sf
(Evergreen Software)S
72 134 :M
(Tools, Inc., Redmond, Washington, version 4.2.)S
72 160 :M
(Finkelstein, A. and I. Sommerville \(1996\). The viewpoints FAQ. )S
f361 sf
(Software Engineering)S
72 173 :M
(Journal)S
f170 sf
(, )S
f334 sf
(11)S
f170 sf
(\(1\): 2-4.)S
72 199 :M
(Finkelstein, A. C. W., M. Goedicke, J. Kramer and C. Niskier \(1989\). ViewPoint)S
72 212 :M
(oriented software development: Methods and viewpoints in requirements)S
72 225 :M
(engineering. In )S
f361 sf
(Proceedings of the Second Meteor Workshop on Methods for Formal)S
72 238 :M
(Specification)S
134 238 :M
f170 sf
(, Springer-Verlag.)S
72 264 :M
(Klein, H. K. and R. A. Hirschheim \(1987\). A comparative framework of data)S
72 277 :M
(modelling paradigms and approaches. )S
280 277 :M
f361 sf
(The Computer Journal)S
f170 sf
(, )S
f334 sf
(30)S
f170 sf
(\(1\): 8-15.)S
72 303 :M
(Kotonya, G. and I. Sommerville \(1996\). Requirements engineering with viewpoints.)S
72 316 :M
f361 sf
(Software Engineering Journal)S
217 316 :M
f170 sf
(, )S
f334 sf
(11)S
f170 sf
(\(1\): 5-18.)S
72 342 :M
(Leite, J. C. S. P. and P. A. Freeman \(1991\). Requirements validation through)S
72 355 :M
(viewpoint resolution. )S
189 355 :M
f361 sf
(IEEE Transactions on Software Engineering)S
405 355 :M
f170 sf
(, )S
f334 sf
(17)S
f170 sf
(\(12\): 1253-1269.)S
72 381 :M
(Miller, R. J., Y. E. Ioannidis and R. Ramakrishnan \(1993\). The use of information)S
72 394 :M
(capacity in schema integration and translation. In )S
f361 sf
(Proceedings of the Nineteenth)S
72 407 :M
(International Conference on Very Large Data Bases \(VLDB\))S
365 407 :M
f170 sf
(, Dublin, Ireland, pages 120-)S
72 420 :M
(133.)S
72 446 :M
(Miller, R. J., Y. E. Ioannidis and R. Ramakrishnan \(1994\). )S
374 446 :M
f361 sf
(Schema intension graphs: A)S
72 459 :M
(formal model for the study of schema equivalence)S
308 459 :M
f170 sf
(. Technical report CS-TR-94-1185,)S
72 472 :M
(Department of Computer Sciences, University of Wisconsin.)S
72 485 :M
([http://www.cs.wisc.edu:80/Dienst/Repository/2.0/Body/ncstrl.uwmadison%2fC)S
72 498 :M
(S-TR-94-1185/postscript])S
72 524 :M
(Pascoe, R. T. and J. T. Penny \(1990\). Construction of interfaces for the exchange of)S
72 537 :M
(geographic data. )S
164 537 :M
f361 sf
(International Journal of Geographical Information Systems)S
f170 sf
(, )S
f334 sf
(4)S
f170 sf
(\(2\): 147)S
499 537 :M
(-)S
72 550 :M
(156.)S
72 576 :M
(Sallis, P., G. Tate and S. MacDonell \(1995\). )S
f361 sf
(Software Engineering: Practice Management,)S
72 589 :M
(Improvement)S
137 589 :M
f170 sf
(. Addison-Wesley, Reading, Massachusetts.)S
72 615 :M
(Shaw, M. L. G. and B. R. Gaines \(1989\). Knowledge acquisition: Some foundation,)S
72 628 :M
(manual methods and future trends. In )S
278 628 :M
f361 sf
(Proceedings of the Third European Workshop on)S
72 641 :M
(Knowledge Acquisition for Knowledge-Based Systems \(EKAW-89\))S
395 641 :M
f170 sf
(, Paris.)S
72 667 :M
(Smith, H. C. \(1985\). Database design: composing fully normalized tables from a)S
72 680 :M
(rigorous dependency diagram. )S
239 680 :M
f361 sf
(Communications of the ACM)S
f170 sf
(, )S
f334 sf
(28)S
f170 sf
(\(8\): 826-838.)S
endp
%%Trailer
end
%%EOF