`Cason et al.
`
`US0060353OOA
`Patent Number:
`11
`(45) Date of Patent:
`
`6,035,300
`Mar. 7, 2000
`
`54 METHOD AND APPARATUS FOR
`GENERATING A USER INTERFACE FROM
`
`5,659,723 8/1997 Dimitrios et al. ...................... 395/614
`5,713,014
`1/1998 Durflinger et al. ..................... 395/604
`
`THE ENTITYIATTRIBUTE/RELATIONSHIP
`
`MODEL OF A DATABASE
`75 Inventors: Stanley Phillip Cason, Johnson City,
`N.Y.; Mark Anthony Musa, Williston,
`Vt.
`
`73 Assignee: International Business Machines
`Corporation, Armonk, N.Y.
`
`21 Appl. No.: 08/572,988
`
`Dec. 15, 1995
`22 Filed:
`7
`51) Int. Cl.' ...................................................... G06F 17/00
`52 U.S. Cl. ..................
`7/102; 707/104; 345/333
`58 Field of Search .................................... 707/1, 2, 103,
`707/104,102,100; 345/333-335
`
`56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`5. 3.E. E. - - - - - - - - - - - - - - - - - - - - - - - - - - - S.
`2Y- - - 2
`Ollilla el al. . . . . . . . . . . . . . . . . . . . . . . . . . . .
`5,832,498 11/1998 Exertier ................................... 707/103
`FOREIGN PATENT DOCUMENTS
`
`04127370 4/1992 Japan.
`WO9324896 12/1993 WIPO.
`OTHER PUBLICATIONS
`IBM Technical Disclosure Bulletin, vol. 27, No. 4A, Sep.
`1984, "Automated Engineering Schedule Algorithm, pp.
`2028-2030.
`IBM Technical Disclosure Bulletin, vol. 33, No. 9, Feb.
`1991, “Interactive Schema Diagram to Visually Represent
`Tables of Related Data and Meaningful Joins Between
`Tables' pp. 243-246
`Research Disclosure: 31720, Sep. 1990, No. 317, Method to
`Maintain Discarded Information in a Graphical Interface.
`Logic Works Erwin Methods Guide, Copyright Logic
`Works, 1989–95, pp. 13–29, 53 & 55.
`Mighty Morphin Programming Packages Flatten the Back
`log Curve, Sep. 12, 1995, J. Brooks, S. Cason.
`
`G. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 33. Business Area Analysis. Using ADW, Copyright by Data
`alarajan .....
`- - - -
`
`5: 3.
`2Y-a-
`
`... 395/600
`5,193,183 3/1993 Bachman .....
`... 3S4/401
`5,233,513 8/1993 Doyle ...............
`5,235,673 8/1993 Austvold et al. ......................... 395/76
`5,249,300 9/1993 Bachman et al.
`... 395/800
`5,261,044 11/1993 Dev et al. ........
`... 395/159
`5,291,587 3/1994 Kodosky et al. ...
`... 395/500
`5,303,146 4/1994 Ammirato et al. ..
`... 364/401
`5,315,709 5/1994 Alston, Jr. et al. ..
`... 395/600
`5,335,323 8/1994 Kolnick ............
`... 395/164
`5,448,686 9/1995 Borrel et al......
`... 395/120
`5,550,971
`8/1996 Brunner et al...
`... 395/161
`5,555,365 9/1996 Selby et al. ......
`... 395/159
`5,594,899
`1/1997 Knudsen et al. .
`... 395/600
`5,627,979 5/1997 Chang et al. ........................... 395/335
`
`Base Management, Inc. DBMI, Data Management Inc.
`Primary Examiner Paul V. Kulik
`Attorney, Agent, Or Firm-Ratner & Prestia; Arthur J.
`Samodovitz
`
`ABSTRACT
`57
`A computer system modeling tool generates a working user
`interface from the entities, attributes and relationships of a
`data model while assuring referential data integrity and and
`enforcing cardinalit
`9.
`y.
`
`8 Claims, 27 Drawing Sheets
`
`---------------------------
`
`O4
`1.
`112 NDEPARTMENT (OBJECT)
`114 - DEPT NUM
`DEP NAME
`116- DEPT MGR EMPLNUM
`DEP MGR NAME
`(ATRIBUTES)
`
`
`
`
`
`
`
`
`
`p1
`
`124
`- 136 SPECIFC PANEL
`OPEN DEPARTMENT
`ACTION BAR ACTIONS
`
`140
`
`DEPT NUM -
`DEP NAME D- 142
`DEPT MGREMPL NUM
`DEPT MGR NAME
`
`
`
`k
`ser-r-
`
`--w-le
`
`reror-rr
`
`AS MANY
`
`'m
`
`1 O2
`SPECIFC DATA MODEL
`?
`(RELATIONSHIPS)
`EMPLOYEET (OBJECT) - 106
`is a
`EMPL NUM
`(KEY) - 108
`20
`Bios i-DEF-NUM mSv
`m
`PHONE NUM
`OFFICE NUM
`TITLE
`(ATRIBUTES)
`
`- 10
`
`122
`SPECIFIC PANEL 1 T4-126
`e OPEN EMPLOYEE
`ACTION BARACTIONS
`DEPARTMENT PANELS
`
`
`
`128
`
`EMPL NUM
`DEPT NUM
`PHONE NUM
`OFFICE NUM
`TITLE
`
`132
`
`Salesforce Ex. 1006 – Page 1
`
`
`
`US. Patent
`
`Mar. 7, 2000
`
`Sheet 1 0f 27
`
`6,035,300
`
`No2\«agzwzozsmgSr\«d8:(:559%
`
`
`
`
`1E823%:22EB£22Ema
`
`9:1zazdzoEEDZJQEQQEIEEm:
`
`ABSmEEVE553:3
`
`
`
`EDZJQEOm2<znx§lamo
`
`mm—
`
`
`
`\dz:0:5QO
`
`
`
`._m_z<n_QEGMEmmm.—
`
`E
`\
`
`
`
`
`
`weEv:2255CEEv;2321532‘:
`
`
`
`>232m<I
`
`
`
`
`
`2::889$553w:9838EEK/EaN:
`
`EDZIJQEm
`
`NEE.
`
`I1UEDZJQEQRH3sz3mo:Ema
`NH232M201;N:HmszszmoH2:25%NHzaanmo
`
`m
`
`§<zimozlEma
`
`Salesforce Ex. 1006 — Page 2
`
`Salesforce Ex. 1006 – Page 2
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Mar. 7, 2000
`
`Sheet 2 of 27
`
`6,035,300
`
`- 4.252
`EMPLOYEE
`
`-
`
`/265
`5267 i?
`
`260
`
`268
`266
`
`wro
`
`262
`
`254
`COURSE
`
`256
`SALARY
`SCALE
`
`M P L o
`
`2 7 4.
`
`D E P A R T ME :
`
`
`
`Salesforce Ex. 1006 – Page 3
`
`
`
`U.S. Patent
`
`Mar. 7, 2000
`
`Sheet 3 of 27
`
`6,035,300
`
`
`
`MANAGER
`MEMBER
`
`
`
`
`
`
`
`
`
`
`
`- - - - - - - - - - - - - - -
`
`168
`I - 164
`178
`EMPLOYEE NAME
`LEVEL
`i
`
`i
`
`u1
`156
`
`-
`
`182 - 184
`DEPT |
`DEPT
`i
`NAME
`P LAW
`P LAW
`
`
`
`
`
`
`
`186
`188
`190
`192
`EMPLOYEE EMPLOYEE EMPLOYEE EMPL
`#
`NAME
`TYPE
`LEVEL
`123456
`MANAGER
`147 141
`MARY | MEMBER
`
`Salesforce Ex. 1006 – Page 4
`
`
`
`U.S. Patent
`
`Mar. 7, 2000
`
`Sheet 4 of 27
`
`6,035,300
`
`MANUFACTURES
`MANFACTURED AT
`
`10000}}d
`
`}}{\fTWS
`
`ETVOS
`
`SHOW]d
`
`
`
`Salesforce Ex. 1006 – Page 5
`
`
`
`U.S. Patent
`
`Mar. 7, 2000
`
`Sheet 5 of 27
`
`6,035,300
`
`USER TERMINAL
`
`
`
`DATABASE REGION
`
`216
`
`218
`
`201
`
`Salesforce Ex. 1006 – Page 6
`
`
`
`U.S. Patent
`US. Patent
`
`Mar. 7, 2000
`
`Sheet 6 0f 27
`
`6,035,300
`6,035,300
`
`momxx
`
`\\ZOEZEMQENE
`
`AEvmz/‘zlwzamflmfi
`
`
`
`EUEZJEEzed;
`
`
`
`
`
`
`
`Lmom\
`
`x
`
`\
`
`zoEzEmEHES
`
`Emxz:
`
`mom\\\
`59:.x2:
`
`QEz<zum2E£m§E
`
`EVE/202E053
`
`Qbmzédgfinxz:
`
`E
`
`m2<2lm§_mmlo._m_n_ddr_o.—
`
`Qbmézdzamgz:
`
`EUEZJEEISE
`
`3m:x2:
`
`Salesforce Ex. 1006 — Page 7
`
`Salesforce Ex. 1006 – Page 7
`
`
`
`
`
`
`
`U.S. Patent
`
`Mar. 7, 2000
`
`Sheet 7 of 27
`
`6,035,300
`
`224
`
`DELETE OLD
`RECORD
`
`220
`
`RECORD EDT
`INTERFACE
`
`236
`NVOKE A
`RELATIONSHIP
`CONTROL
`
`
`
`1N-(240
`DESCRIPTION- YES
`p
`
`242
`
`NO
`
`
`
`
`
`
`
`
`
`
`
`204
`
`ONLINE
`HELP
`
`ADD NEW
`RECORD
`
`i.S.S
`
`SEN &
`BTMAPS \
`
`NITIALIZATIONS
`& DEFAULTS
`
`222
`
`2O2
`
`217
`
`
`
`USER
`CUSTOM
`TABLE
`
`--
`208
`PPLICATION
`ENTY
`LIST
`
`F.G.
`F.G.
`1 OA 1 OB
`
`FG.10
`
`sis or
`216
`
`DESTINY
`META-DATA
`
`218
`
`USER'S O
`
`DATABASE
`
`FIG.10A
`
`Salesforce Ex. 1006 – Page 8
`
`
`
`U.S. Patent
`
`Mar. 7, 2000
`
`Sheet 8 of 27
`
`6,035,300
`
`
`
`
`
`
`
`
`
`CHANGE
`RECORD KEY
`
`226
`
`230
`
`228
`
`SAVE CURRENT
`RECORD
`
`GET NEXT
`RECORD
`
`
`
`GET PREV
`RECORD
`
`
`
`234
`
`SELECT A
`RECORD
`
`--
`
`
`
`
`
`
`
`238
`
`
`
`PAGE
`INPUT EDITOR
`
`
`
`
`
`244
`
`ONE TO
`
`
`
`
`
`p
`
`246
`
`SELECT FROM
`MANY LIST
`
`FIG.10B
`
`Salesforce Ex. 1006 – Page 9
`
`
`
`U.S. Patent
`
`Mar. 7, 2000
`
`Sheet 9 of 27
`
`6,035,300
`
`LINK-TABLE
`- 302
`'E'S.R."NYS
`TABLE PRIME NAME(FK
`TO.TABLE PRIMENAME(FK)
`LINK ORD BY NUM
`LINK PRIMENAME(FK)
`LINK SHORT DESC
`WINDOW. TYPE NAME(FK)
`LINK TYPE NAME(FK)
`CONTROL NAME(FK)
`LNK CONTROL TXT
`LINK TYPE FG
`LINK ID
`
`
`
`
`
`
`
`358---'
`
`350 LINKS FROM
`
`LNKS TO
`
`CONTAINS
`ESAN ALTERNATE KEY TO
`-522
`LINK-ID
`APPLSYS PRIME NAME(FK)
`LINK PRIME NAME
`
`HAS THIS
`
`LINK TYPE
`
`
`
`-18
`
`FIG.11
`
`Salesforce Ex. 1006 – Page 10
`
`
`
`U.S. Patent
`
`Mar. 7, 2000
`
`Sheet 10 of 27
`
`6,035,300
`
`TABLE DEFINITION /
`APPLSYS. PRIME NAME(FK)
`TABLE PRIME NAME
`
`TABLE HQUAL NAME
`TABLE SHORT NAME
`TABLE SHORT DESC
`TABLED
`TABLEVERSION NUM
`
`348-) P
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIELD DEFINITION - 0
`APPLSYS PRIME NAME(FK)
`TABLE PRIME NAME(FK)
`FIELD PRIME NAME(FK)
`FIELD SHORT NAME
`FIELD SHORT DESC
`FIELD HEADER DESC
`FIELD DEFAULT CD(FK)
`FIELD DOMAIN_NAME(FK)
`CONTROL-NAME(FK)
`FIELD CONTROL TEXT
`FIELD REQUIRED FG
`FIELD, KEYFG
`FIELD LENGTH MS
`FIELD SEQ NUM
`FIELD ORDBY NUM
`FIELD LOOKUP NAME
`
`CONANS
`
`
`
`-526
`APPLSYS PRIME NAME(FK)
`LINK PRIMENAME
`
`HAS THIS
`
`(-364
`
`
`
`544
`---O
`LINK-FIELD
`(FK)
`APPLSYS PRIME NAME
`LINK PRIMENAME(FK)
`FIELD PRIMENAME(FK)
`TOFIELD.FIELD PRIMENAME(FK)
`LINK FIELD D
`
`
`
`
`
`-524
`
`-328
`
`EAR MODEL
`FIG.11B
`
`Salesforce Ex. 1006 – Page 11
`
`
`
`U.S. Patent
`
`Mar. 7, 2000
`
`6,035,300
`
`Sheet 11 of 27
`-402
`
`LINKS FROM
`
`43O
`
`LNKS TO
`4.32
`
`TABLE 3
`LINK-TABLE DEFS
`APPLSYS PRIME NAME:CHAR(8)
`TABLE PRIME NAME:CHAR(8)
`T TABLE PRIME NAME:CHAR(8)
`LINK ORDBY NUM:SMALLINT
`LINK PRIME NAME:CHAR(8)
`LINKSHORT DESC:VARCHAR(72)
`WINDOW. TYPE NAME:CHAR(8)
`Sir SES
`CONTROLNAME:CHAR(8
`LINK CONTROLTXT:CHAR(32)
`LINK TYPE FG:CHAR(1)
`LINK D:SMALLINT
`
`
`
`
`
`
`
`IS ANALTERNATEKEY TO
`
`- unu as a mm - - - - - - - - - - - - - - - army
`
`
`
`CONTAINS
`422
`
`HAS THIS
`
`-418
`TABLE 5,6
`TYPEDEF_LINKS
`LINK TYPE NAME:CHAR(8)
`LINK TYPE ID:SMALLINT
`LINK TYPE DESC:VARCHAR(72)
`
`
`
`
`
`PHYSICAL MODEL
`FIG.12A
`
`Salesforce Ex. 1006 – Page 12
`
`
`
`U.S. Patent
`
`Mar. 7, 2000
`
`Sheet 12 0f 27
`
`6,035,300
`
`
`
`
`
`
`
`
`
`-404
`TABLE 1
`TABLE DEFINITIONS
`APPLYSYS PRIME NAME:CHAR(8)
`TABLE PRIME NAME:CHAR(8)
`TABLE HQUALNAME:CHART(8)
`TABLE SHORT NAME:CHAR(16)
`( TABLE SHORT DESC:VARCHAR(72)
`
`TABLE ID:SMALLINT
`TABLE VERSION NUM:DECIMAL(5,2)
`
`CONTAINS
`
`
`
`APPLSYS PRIMENAME:CHAR(8)
`FIELD PRIME NAME:CHAR(8)
`
`APPLSYS PRIME NAME:CHAR(8)
`LINK PRIME NAME:CHAR(8)
`FIELD PRIME NAME:CHAR(8)
`T FIELD PRIMENAME:CHAR(8)
`LINK FIELD ID:SMALLINT
`
`FIG.12B
`
`Salesforce Ex. 1006 – Page 13
`
`
`
`U.S. Patent
`
`Mar. 7, 2000
`
`Sheet 13 of 27
`
`6,035,300
`
`-406
`FIELD DEFINITIONS
`TABLE 2
`APPLSYS PRIMENAME:CHAR(8)
`TABLE PRIMENAME:CHAR(8)
`FIELD PRIMENAME:CHAR(8)
`FIELD SHORT NAME:VARCHAR(72)
`FIELD SHORT DESC:VARCHAR(72)
`FIELD HEADER DESC:VARCHAR(72)
`FIELD DEFAULT CD:VARCHAR(72)
`FIELD TYPE NAME:CHAR(8)
`CONTROL NAME:CHAR(8)
`FIELD CONTROLTEXT:CHAR(32)
`FIELD REQUIRED FG:CHAR(1)
`FIELD, KEYFG:CHAR(1)
`FIELD LENGTH MS:SMALLINT
`FIELD SEQ NUM:SMALLINT
`FIELD ORDBY NUM:SMALLINT
`FIELD LOOKUP NAME:CHAR(8)
`
`440 N
`
`HAS THIS
`8-464
`
`-428
`TABLE 9,10
`TYPEDEFFIELDS
`FIELD TYPE NAME:CHAR(8)
`FIELD TYPE ID:SMALLINT
`FIELD_TYPE DESC:VARCHAR(72)
`
`
`
`FIG.12C
`
`FIG.
`F.G.
`FIG.
`12A 12B 12C
`
`FIG.12
`
`Salesforce Ex. 1006 – Page 14
`
`
`
`U.S. Patent
`
`Mar. 7, 2000
`
`Sheet 14 Of 27
`
`6,035,300
`
`-310
`CONTROL NAME TABLE 7
`
`USES ----------------------1y--------------
`d
`Y352
`LINK-TABLE
`APPLSYS PRIME NAME(FK)
`TABLE PRIME NAME(FK)
`TO.TABLE PRIMENAME(FK)
`LINK ORDBY NUM
`LINK PRIMENAME(FK)
`LINKSHORT DESC
`WINDOW. TYPE NAME(FK)
`LINK TYPE NAME(FK)
`CONTROLNAME(FK)
`LINK CONTROL TXT
`LINK TYPE FG
`LINKID
`
`-302
`
`350 LINKS FROM
`
`
`
`LINKS TO
`
`358---
`
`FIG.13A
`
`ISAN ALTERNATE KEYIO
`
`i
`
`CONTAINS
`
`Salesforce Ex. 1006 – Page 15
`
`
`
`U.S. Patent
`
`Mar. 7, 2000
`
`Sheet 15 of 27
`
`6,035,300
`
`FIG.13B
`
`DEFAULT VALUE
`DEFAULTNAME
`DEFAULT ID
`DEFAULT DESC
`
`-312
`
`...ISIDENTIFIED BY
`Y354
`
`
`
`DEFAULT DOMAIN 1
`FELD-DEFAULCD
`1 DEFAULT_NAME(FK)
`
`- - - - - - - - - - - - - - - - - - - - - - - - - m a USES------------------------- DEFAULTSTO
`
`1 --
`
`356
`b
`-506
`FIELD DEFINITION
`APPLSYS PRIMENAME(FK)
`TABLE PRIME NAME(FK
`FIELD PRIMENAME(FK)
`FIELD SHORT NAME
`FIELD SHORT DESC
`FIELD HEADER DESC
`P| FIELD DEFAULT CD(FK)
`FIELD DOMAIN_NAME(FK)
`CONTROLNAME(FK)
`FIELD CONTROL TEXT
`FIELD REQUIRED FG
`FIELD, KEYFG
`FIELD LENGTHMS
`FIELD, SEQ NUM
`FIELD ORDBY NUM
`FIELD LOOKUPNAME
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`304
`1.
`TABLE DEFINITION
`APPLSYS PRIMENAME(FK)
`TABLE PRIMENAME
`TABLE HQUAL NAME
`TABLE SHORT NAME
`TABLE SHORT DESC
`TABLE ID
`TABLE VERSION NUM
`
`
`
`
`
`
`
`
`
`
`
`CONTAINS
`334
`
`HAS
`APPLICATION SYSTEM
`APPLSYS PRIMENAME
`
`316
`
`336
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`P
`DESCRIBES
`P -340
`
`Salesforce Ex. 1006 – Page 16
`
`
`
`U.S. Patent
`
`Mar. 7, 2000
`
`Sheet 16 of 27
`
`6,035,300
`
`LOOKS LIKE
`
`LINK-D
`APPLSYS PRIME NAME(FK)
`LINK PRIMENAME
`
`
`
`322
`
`342
`
`
`
`-120
`WINDOW TYPE
`WINDOW. TYPE NAME
`WINDOW. TYPE ID
`WINDOW. TYPE DESC
`
`FIG.13C
`
`Salesforce Ex. 1006 – Page 17
`
`
`
`U.S. Patent
`
`Mar. 7, 2000
`
`Sheet 17 of 27
`
`6,035,300
`
`-526
`A TRIBUTE
`APPLSYS PRIMENAME(FK)
`LINK PRIMENAME
`
`HAS
`
`344-
`
`
`
`LINKS TO
`LINKS FROM
`
`1. J24
`
`
`
`LNK-FIELD
`APPLSYS PRIMENAME(FK)
`LINK PRIME NAME(FK)
`FIELD PRIMENAME(FK)
`TOFIELD.FIELD PRIMENAME(FK)
`LINK FIELD ID
`
`EAR MODEL
`FIG.13D
`
`Salesforce Ex. 1006 – Page 18
`
`
`
`US. Patent
`
`6,035,300
`
`
`
`
`
`
`
`..............fisméoéxsaimgETX
`.............1:I-zII----1--:-::-::--:----:Hmm:
`
`mum:__0EWEE835E200aEEK/Somme52EEgzméJoEzoo
`
`
`
`
`
`
`
`
`Amvm<xoum2<zJoEzoo
`
`\
`
`minimeibomafi
`
`
`
`_
`
`
`LA\I:_3.3m:2858baa:Ni:Mimi
`80%3EZHSEQ
`
`
`n.Egonoflmtgz:MaafizfixjoEzoouxz:
`
`
`
`
`
`
`
`Amvm<Iom§<zu§EQ0m>mfia<F
`
`Iw;53:59v2:
`\«Emalzgzozna,‘
`
` <¢fie:
`
`
`
`mboflmfiaxz:o avaEEZJEOI59:29:Q2:mAmvmfiamfzdgfiflmfiA8@Emgfi‘bmzzmmmwmwmfifim,ABEIBEZQEE35%SEEEEZJEEJSEm\x_5m:mzoEzEQIEmE\«@méomézAzanfimymifim:3mgmwas
`
`
`
`
`
`
`
`SANme<Iom<>HQmmmLEOImlmgmflrANNVM<IQK<>HUWMQleOIWIXZE8..I@«EBEZJOEZSu9.9289232zoafiififiazéomizdmtgz:m.HzflémemsfiElmxz:vam/‘Iomfzjatlzgzé
`
`
`
`
`
`
`A©FVK<IOME<Z.EOImlmngF|Amvm<loum2<zlm§mmlx23
`
`
`
`Salesforce Ex. 1006 — Page 19
`
`Salesforce Ex. 1006 – Page 19
`
`
`
`
`
`
`
`
`U.S. Patent
`
`6,035,300
`
`o] ] sinnyJºãTTTTTTTTTTTTTTTTTTTTTTTTT
`
`(9 1)\!\'HO:EWWNTITQW J?0 ||
`
`(ZZ), HORVAGOTI?ABO-JEB TAG GEHINGGI SI
`
`
`
`
`
`
`
`
`
`
`
`Salesforce Ex. 1006 – Page 20
`
`
`
`US. Patent
`
`6,035,300
`
`
`
`
`
`
`
`._
`
`11111111111I|11|o.11:111_MQ:Qa24328EEEzfiz,‘z<2____
`av,,,,,,,,n21%:m__
`AngEEZQEEis$3953
`
`mboddcgz:ml|l|l|1ll|._m20E1mxz:alaamm,8192:_7_u_M-_1
`t?\s.V59:
`
`
`mEméomézdzmldd:M@méomézdzgdda:Amvm<xonmz<z1uain.Ejéméddzgz:Ambm<zom<>uomwodmfimgooz;pzaémedatkogzé
`
`
`
`
`
`
`
`
`382:;mEméomzédémmgz:\\3.?ESmaogz§1bomat%Amvm<$m§m2<zdgfimain:0%M
`
`_
`
`01.0:
`
`
`
`Salesforce Ex. 1006 — Page 21
`
`Salesforce Ex. 1006 – Page 21
`
`
`
`
`U.S. Patent
`
`Mar. 7, 2000
`
`Sheet 21 of 27
`
`6,035,300
`
`
`
`
`
`
`
`THGOW TWOIS), Hod
`
`Salesforce Ex. 1006 – Page 22
`
`
`
`U.S. Patent
`
`Mar. 7, 2000
`
`Sheet 22 of 27
`
`6,035,300
`
`
`
`
`
`
`
`
`
`
`
`
`
`! | | | | } } | | | |
`
`Salesforce Ex. 1006 – Page 23
`
`
`
`US. Patent
`
`Mar. 7, 2000
`
`Sheet 23 0f 27
`
`6,035,300
`
`Em.
`AA“- 1.\‘__-V_____.___________.__..____.
`
`_2T:2:Nvm
`,358%3:Emma.—mzizoo9E52%?z<m.0%J“!
`
`
`o?_
`
`..........anan1$3$59
`\‘BEE:Xx9&2:
`
`AEEEEJEEIWEQQ<v:wizdgEdadflz
`
`.534figBEMEZJEEx2:
`
`m§<zlmmfilxzj
`
`ommolonEIxz:
`
`Elmmtlxz:
`
`MECx2:
`
`_
`
`.1
`
`___fi.a
`
`mmm.\‘ZEEOQQEEngllxzj
`
`o~m\\E:2,825,\g
`
`ommoleEOQIodE
`QEEZJEEISEEEB
`
`
`
`::Qbmézdzamddze2228SEQuiz/\zdzmnfixz:
`
`
`
`m2<zlz§ooddzEmizfiémlyflmg,‘
`
`QIodEIxz:
`
`
`
`MEZEEEOQE;
`
`
`
`ommoQQCIBQQZE,
`
`QIEEI‘soozE
`
`Salesforce Ex. 1006 — Page 24
`
`Salesforce Ex. 1006 – Page 24
`
`
`
`
`
`
`
`
`US. Patent
`
`Mar. 7, 2000
`
`Sheet 24 0f 27
`
`6,035,300
`
`
`
`
`
`.1IS:Emsmgimgbag:359:29:28baa:
`
`m;\\
`acfizfiézflsimoMo;\\EKEEEZJOEZS
`
`
`
`Ambm<zom<>uommoli2me
`
`
`
`Gem/$99jibe
`
`1AmsméofiéfljoEzoo
`
`Hz_.:<§md_1r6mkzoo
`
`
`mm:0J“Em:
`--:§-/l,..............om?“
`
`
`
`
`
`020‘Imo¢\\m59:$399:x2:
`
`
`
`
`
`FHim/EmZQbeglflmE
`
`35185242?£39:
`
`swvfiromzédzgflmé
`
`vaméoméz.mzilmaafi
`
`
`
`$E<Iom§<zdzgJams;
`
`
`
`$51332@251”.sz
`
`Efiémgzgmomogzz
`
`
`
`
`
`
`
`$528aKEBEZJEQIQSE20Emv23.avgzomézdgggz:
`
`2‘2atm<5m<>o$glaozmuflmé@fizomfizflmfilggz;
`
`
`
`«§fizomézdmOImlflmEAEK<IE<>NQBQE0132:
`$332392:zlzgmmglmzmfifwvaomEzJoEzoo
`
`232275?a“Eomzédmtgz:
`a.:E‘Iouoflltgz:
`
`Quméogéjogzoogz:
`
`
`
`Ejémélxz:
`
`___
`
`£57k:
`
`Salesforce Ex. 1006 — Page 25
`
`Salesforce Ex. 1006 – Page 25
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Mar. 7, 2000
`
`Sheet 25 0f 27
`
`6,035,300
`
`
`
`Agm<xom<>dolba<bolad:
`
`ASEEEXEJOEZSnew:
`
`AEEOEIEmsSmdd:
`EZEQNEIEIEE
`
`@mEomEszmfidd:
`
`Amvm<IQHmE<zJoEzoo
`
`Eméoumézdsxog13m:
`
`Ejémfiszflmgmolem:
`
`Hz_j<2mum211525IQdE
`
`anémsgzlamlod:
`
`4V:\22285353
`
`OHm:Ema
`O0g:m.
`
`NEmEmzoEzEmoIodE
`
`
`
`$E§9§<zdzg:93;
`
`Qm/‘Iomfzunglfims
`Qméomizdzgddc
`
`Amnvx<xom<>mz<zIEOImIQd:
`
`Amtw<10m<>uommelmmo<mzladi
`Qm<$m§uommolaormlemc
`
`
`Salesforce Ex. 1006 — Page 26
`
`Salesforce Ex. 1006 – Page 26
`
`
`
`
`
`
`US. Patent
`
`Mar. 7, 2000
`
`Sheet 26 0f 27
`
`6,035,300
`
`\‘ed:\\9x2:lllllllllllllJ_a?_N?“53553n_II|LrIIIIIIIIIIIIIIIIIIIIJ._“mmmaomoam?2:
`
`
`
`0£328Eumxgzzfis/fizfim:9:4,“,_72STWmm
`
`@fizomfizdgg192%:
`
`
`
`
`QEEEEZJEEIEE
`
`EoElmxz:n_aaElmxz:
`
`$3
`
`o$\\
`
`A
`
`mm
`
`E<Iom<>dmmelomfilx23
`
`Hz_._._<zmuo_lmmfilv_z:
`
`
`
`ed39:szxbanE
`
`Eméomizdmtgz:
`
`
`§\\¢”:9:mbougdcnxz:
`1.239:mgoDZEEBQE\m:
`
`
`
`
`
`35:32;uzglflmdg‘
`
`Egomfizdzzlgzz
`
`@mégmézdzmaddc
`
`BEEBEZJEE:32:
`
`
`
`523.2299odllxz:
`
`avmiomizgtggzg
`
`
`
`abm<zom§nomo021382;)
`
`ESEQQDQEIEQZE
`
`Salesforce Ex. 1006 — Page 27
`
`Salesforce Ex. 1006 – Page 27
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Mar. 7, 2000
`
`Sheet 27 Of 27
`
`6,035,300
`
`SHI?SWH
`
`
`
`
`
`
`
`01'6 ET8WI SOTB|BT3303d,\!
`
`(9)MWHO:BWVNTEdAITOTE?A
`
`Salesforce Ex. 1006 – Page 28
`
`
`
`6,035,300
`
`1
`METHOD AND APPARATUS FOR
`GENERATING A USER INTERFACE FROM
`THE ENTITY/ATTRIBUTE/RELATIONSHIP
`MODEL OF A DATABASE
`
`2
`This invention further comprises a method and System
`which generates from an entity, attribute, relationship (EAR)
`data model a working user interface. It is a further aspect of
`this invention that missing entities, attributes, or relation
`ships in the underlying data model are identified by use of
`the generated user interface, thus assuring completeness of
`the data model while maintaining the referential integrity
`and cardinality of the user interface.
`Other features and advantages of this invention will
`become apparent from the following detailed description of
`the presently preferred embodiment of the invention, taken
`in conjunction with the accompanying drawings.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 is a graphical illustration of relationships in a
`Specific data model and a representative corresponding
`graphical user interface.
`FIG. 2 is a block diagram illustrating the Syntax used in
`the ADW database model.
`FIG. 3 is a block diagram illustrating yet another possible
`Syntax for modeling a database.
`FIG. 4 is a block diagram illustrating the ERwin database
`model Syntax.
`FIGS. 5 and 6 are graphical representations of relation
`ships in a specific data model illustrating the concepts of
`normalization and data integrity. FIG. 5 illustrates a nor
`malized data model, and FIG. 6 illustrates a denormalized
`data model.
`FIG. 7 is a block diagram illustrating a typical database
`model according to the ADW syntax.
`FIG. 8 is a block diagram illustration of a typical system
`for implementing the model of the invention.
`FIG. 9 is a graphical representation of the entity, attribute,
`relationship (EAR) model of the database model of an
`embodiment of the invention.
`FIG. 10 is a block diagram illustration of the method of
`the invention for generating a graphical user interface from
`an entity, attribute, relationship data model.
`FIG. 11 is a graphical representation of the entity,
`attribute, relationship (EAR) model of the database model of
`an expanded embodiment of the invention.
`FIG. 12 is a graphical representation of the physical
`model corresponding to the EAR database model of FIG. 11.
`FIG. 13 is a graphical representation of the entity,
`attribute, relationship (EAR) model of the user interface
`model of a preferred embodiment the invention.
`FIG. 14 is a graphical representation of the physical
`model corresponding to the EAR user interface model of
`FIG. 13.
`FIG. 15 is a graphical representation of the combined data
`base and user interface EAR models of FIGS. 11 and 13.
`FIG. 16 is a graphical representation of the combined data
`base and user interface physical models of FIGS. 12 and 14.
`
`BEST MODE FOR CARRYING OUT THE
`INVENTION
`AS previously noted, there is a need in the art for a facility
`which enables a user to avoid having to learn many com
`plicated Syntaxes, by allowing the user to design a database
`System at a user friendly interface, Such as a graphical user
`interface. Such a user need not understand, nor be required
`to access, the underlying data model to add, for example, an
`employee to a database including tables of employees and
`
`BACKGROUND OF THE INVENTION
`1. Technical Field of the Invention
`This invention relates to a computer application System
`for generating a working user interface, and more
`particularly, to a design tool that generates Such from the
`entities, attributes and relationships of a data model.
`2. Background Art
`There are currently many programs that help data mod
`elers create valid models of business areas. See, for example,
`15
`Logic Works ERwin Methods Guide, a publication of Logic
`Works, Inc., 1060 Route 206, Princeton, N.J. 08.540 (Logic
`Works ERwin is part of power builder series where ER
`means entity relationship and win means windows), and
`Application Development Workbench (ADW) of Knowl
`edgeware. See ADW Planning Workstation Basics User
`Guide, a publication of Knowledgeware, 3340 Peachtree
`Road, N.E. Atlanta, Ga. 30326 (currently doing business as
`Sterling Software).
`There are also many tools available to assist user interface
`designers generate user interfaces. See, for example, the
`graphical user interface (GUI) facilities as provided in
`Systems Applications and Products (SAP) in Data
`Processing, a product of SAP America Inc, Philadelphia, Pa.,
`IBM VisualAge for SmallTalk, IBM VisualAge C++ for
`OS/2, Hockware's Vispro RexX, and Borland's Object
`Vision 2.0. However, if the data modeller and the user
`interface designer are not working closely together, the
`resulting application will be lacking in either usability or
`data integrity.
`Thus, there is a need in the art for a facility which enables
`a user to avoid having to learn many complicated Syntaxes,
`by allowing the user to design a database System at a user
`friendly interface, Such as a graphical user interface. Such a
`user need not be required to read and understand the
`underlying data model.
`Products currently available for automatically generating
`a user interface do So only for entities and attributes, and
`relationships are not automatically created and checked. A
`further problem with current products and practices is that
`45
`usually a data model is written first, then the user interface
`is defined without, often, updating the data model. There is,
`therefore, a need to assure that as the user interface is
`developed, the underlying data model is updated-and fix
`ing one automatically fixes the other.
`Consequently, it is an object of the invention to provide an
`interface design tool that takes the entities, attributes, and
`relationships, with cardinality and optionality on data
`models, and generates therefrom a working user interface
`characterized by usability and assured data integrity. It is a
`further object of the invention to provide an interface design
`tool that directly accesses the entity, attribute, relationship
`(EAR) data model and generates an appropriate user inter
`face.
`
`25
`
`35
`
`40
`
`50
`
`55
`
`SUMMARY OF THE INVENTION
`This invention provides a method and data structure
`describing a database model with relationships in the user
`interface as first class, or dynamic, objects within the model
`itself-thus making relationships a part of the user interface
`along with entities and attributes, with referential integrity
`and cardinality resulting therefrom.
`
`60
`
`65
`
`Salesforce Ex. 1006 – Page 29
`
`
`
`6,035,300
`
`15
`
`25
`
`3
`Salaries. Typically, an employee must have a Salary. If the
`user enters a Salary that is not on the grid, the System of the
`invention would not permit the addition of the employee
`until the required salary is defined. If it were possible to add
`an employee without a Salary, there would be Something
`wrong with the data model. The modeling tool of the
`invention will facilitate and assure validation of entries to
`tables of this type. Alternatively, entries to other types of
`tables are permitted. For example, it is permitted, in a typical
`case, to add Salary Schedules to a Salary table even if an
`employee is not being added to the data base.
`Referring now to FIG. 1, by way of introduction to the
`modeling System of the invention, a description will be
`given of a typical entity, attribute, relationship (EAR) data
`model and a resulting user interface. A specific data model,
`which illustrates the concept of relationships, includes
`employee object 102 and department object 104. Employee
`table 102 includes object name 106, object key 108 and
`object attributes 110. Department table 104 includes object
`name 112, object key 114 and object attributes 116. Double
`arrow 118 indicates that department table 104 “has many”
`employee objects 102, and single arrow 120 indicates that
`employee object 102 “belongs to” department object 104.
`Thus, the relationship between objects 102 and 104 is
`defined by from and two fields within the two tables, in this
`instance, the Dept Num attribute and Dept Num key
`fields, respectively. (In this description, “table”, “entity” and
`“object may be used interchangeably.)
`Referring further to FIG. 1, the specific panel displays 122
`and 124 provide examples of graphical user interface (GUI)
`representations of the data model entities 102 and 104,
`respectively. GUI panel 122 includes title bar 126, action bar
`actions 128, pull down menus 130 and 134, and attribute
`fields 132. GUI panel 124 includes title bar 136, action bar
`138, pull down menues 140 and 144, and attribute fields 142.
`The user may, by entering attribute Dept Num in attribute
`field 132 and then activating department panel 134 bring up
`in window panel 124 the corresponding department panel, as
`is show by arrow 148, which corresponds to relationship 120
`of the data model. Similarly, by entering a particular Dept
`Mgr Name into attribute field 142 and activitaling employee
`panel 144, employee panel 122 is brought into the display
`window.
`Referring to FIGS. 2-4, various database modeling syn
`taxes are presented. First, In FIG. 2, the ADW syntax is
`illustrated, showing the cardinality relationships between
`employee table 252, course table 254, salary scale table 256,
`and other table 258. This is the syntax used hereafter in
`connection with FIG. 7. In accordance with the ADW
`syntax, relationships are illustrated by lines 260, 262, 264,
`50
`with min/max and max/min designations 0, 1 and > repre
`Senting the minimum and maximum cardinality values, Zero,
`one, and many (one or more), respectively. Thus, as is
`represented by line 260, min 266/max 268 represent the
`view which employee table 252 has of course table 254; that
`is, each employee 252 may have enrolled in Zero, one or
`many courses 254. Similarly, relationship 260 shows the
`view which course table 254 has of employee table 252, with
`min/max values 267/265 establishing that for each course
`254 there may be Zero, one or many employees enrolled.
`Similarly, the relationship 262 between employee table 252
`and salary scale table 256 illustrates that an employee 252
`may have one and only one (minimum=1 and maximum=1)
`Salary Scale, but each Salary Scale 256 may apply to Zero, one
`or many employees 252. To complete the Syntax
`representation, relationship 264 illustrates that an employee
`252 may relate to one or many entries in other table 258, and
`
`4
`an entry in other table 258 may have Zero or one related
`entries in employee table 252, as is illustrated by relation
`ship 264.
`Referring to FIG. 3, the relationship syntax used hereafter
`in the database model of FIG. 5 is shown. In this syntax, the
`single and double arrows on relationship 274 between
`employee table 270 and department table 272 represent,
`respectively, that an employee 270 may be a member of
`exactly one department 272, and department 272 may have
`many employees 270.
`Referring now to FIG. 4, the ERwin syntax is illustrated
`for displaying cardinality with respect to database tables
`280, 286, 288, 290, 292 and 294. This syntax will be used
`hereafter in connection with FIGS. 11-16, which set forth
`the modeling System of the invention.
`An ERwin diagram may be viewed as a graphical lan
`guage for expressing Statements about a model wherein
`entities are the nouns, attributes are the adjectives or modi
`fiers and relationships are the verbs. Herein, an entity is any
`perSon, place, thing, event, or concept about which infor
`mation is kept. It is a set or collection of indiviudal objects
`called instances. Each instance must have an identity distinct
`from all other instances. With respect to a relational
`database, an entity corresponds to a table whose rows consist
`of possible instances of the entity and each column Stores
`information about a certain property. These properties are
`the attributes of the entity.
`In an ERwin diagram, the entity is represented by drawing
`a box 280 with the name of the entity on top and all of the
`attributes of the entity inside the box. The horizontal line 281
`in the entity box divides the attributes into two sets: keys and
`non-keys (or, data). The area above the line is the key area
`282, and the area below the line is the data area 284. The key
`is the set of attributes that identifies an entity. A key attribute
`is an attribute which, either by itself, or in combination with
`other key attributes, forms a unique identifier for an entity.
`Primary keys are placed above the line in the key area. A
`non-key attribute is an attribute which has not been chosen
`as a key, and is placed in the data area. Entity instances in
`an ERwin model are always identified by key attributes. Key
`attributes are chosen from a set of candidate key attributes,
`which are attributes, or groups of attributes, which can be
`Selected as primary keys, and as a candidate key must
`uniquely identify each instance of the entity, and may have
`no part null, i.e., empty or missing. In choosing a primary
`key from the Set of candidate key attributes, the data modeler
`trys to find an attribute which will not change its value over
`the life of each instance of the entity, is reasonably Small,
`and is not an intelligent key. An intelligent key is a key
`where the structure of the digits in the identifer indicates
`groupings, locations, classifications, dates or the like. Can
`didate keys not Selected as primary keys are designated as
`alternate keys, and the Symbol AKn, where n is a number, is
`placed after those attributes which form the alternate key.
`Alternate keys are used to Show different indexes the busi
`neSS will use to access the data.
`Relationships represent connections, links or associations
`between entities. They are the verbs of a diagram showing
`how entities relate to each other. The relationship 1-to-many
`means that one (and only one instance) of the first entity is
`related or connected to many instances of the Second entity.
`The entity on the 1-end is called the parent entity, and the
`entity on the many end, represented by a dotted end, is the
`child entity. The “many in one-to-many as used herein
`means that there are Zero, one or more instances of the child
`paired to the parent. When there is a one-to-many relation
`
`35
`
`40
`
`45
`
`55
`
`60
`
`65
`
`Salesforce Ex. 1006 – Page 30
`
`
`
`S
`ship both between parent and child and between child and
`parent, then a many-to-many relationship exists, and is
`represented by dots at both ends of the relationship line on
`a ERwin diagram. It is desireable in ERwin diagrams to
`eliminate many-to-many relationships in favor of one-to
`many relationships.
`The cardinality of a relationship expresses the number of
`instances of the child entity that participate in the relation
`ship. Various Symbols are used in an ERwin diagram to
`Specify the number of instances, which may be one or more,
`Zero or more, Zero or one, or exactly N.
`In accordance with the basic diagram Syntax for relation
`ships in an ERwin diagram, relationships are displayed as a
`line connecting two entities, with a dot on one end, and a
`verb phrase written along the line. In general, a relationship
`is read from the parent to the child using an active verb
`phrase, but this is not the case with asSociative entities
`(however, in this implementation, associative entities are not
`used). Verb phrases can also be read from the perspective of
`a child entity, as passive verb phrases. A generalization
`entity, also referred to as a generic parent, may be formed to
`represent information which is common acroSS a plurality of
`entities. Cardinality is a property of relationships which
`defines how many of each participating entity of a relation
`ship may, or must, participate. Cardinality Statements des
`ignate how many instances of the parent child entity are
`connected to how many instances of the child. Thus, in the
`ERwin Syntax, a relationship Symbol near the dot on a
`relationship line displayS cardinality in graphic form,
`according to the following notation:
`
`e
`
`Zo
`No
`{X
`
`One to zero or more 287
`One to one or more 289
`One to zero or one 291
`One to exactly N 293
`Zero or one to many 295
`
`In key-based and fully-attributed models, all relationships
`are (Zero or) on