![Page 1: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/1.jpg)
Dept [0..*]dname: stringlocation: string [1..*]
Emp [0..*]name: stringage: integersal: integer [0..1]
worksIn [1..1]
employs [1..*] i50 Dept
i51 dname ”Trade”
i52 location ”Paris”
i53 location „Rome”
i54 employs i10
i60 Dept
i61 dname ”Ads”
i62 location ”Berlin”
i63 employs i30
i64 employs i20
i30 Emp
i31 name ”Lee”
i32 age 20
i33 worksIn i60
i10 Emp
i11 name ”Doe”
i12 age 29
i13 sal 1900
i14 worksIn i50
i20 Emp
i21 name ”Poe”
i22 age 41
i23 sal 2500
i24 worksIn i60
![Page 2: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/2.jpg)
Dept [0..*]dnamelocation[1..*]
worksIn
employs [1..*]
Emp [0..*]namesal address[0..1] city street house#
S – Objects< i1, Emp, {< i2, name, ”Doe”>,
< i3, sal, 2500>,
< i4, worksIn, i17> } >,
< i5, Emp, {< i6, name, ”Poe”>,
< i7, sal, 2000>,
< i8, worksIn, i22> } >,
< i9, Emp, {< i10, name, ”Lee”>,
< i11, sal, 900>,
< i12, address, {
< i13, city, “Rome” >,
< i14, street, “Boogie” >,
< i15, house#, 13 > } >,
< i16, worksIn, i22> } >,
< i17, Dept, {< i18, dname, ”Trade”>,
< i19, location, “Paris”>,
< i20, location, “London”>
< i21, employs, i1> } >,
< i22, Dept, {< i23, dname, ”Ads”>,
< i24, location, “Rome”>,
< i25, employs, i5>,
< i26, employs, i9> } >
R - Start identifiersi1, i5, i9, i17, i22
![Page 3: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/3.jpg)
i17 Dept
i18 dname ”Trade”
i19 location ”Paris”
i20 location ”Rome”
i21 employs
i22 Dept
i23 dname ”Ads”
i24 location ”Rome”
i25 employs
i26 employs
i1 Emp
i2 name ”Doe”
i3 sal 2500
i4 worksIn
i5 Emp
i6 name ”Poe”
i7 sal 2000
i8 worksIn
i9 Emp
i10 name ”Lee”
i16 worksIn
i11 sal 900
i12 address
i13 city ”Rome”
i14 street ”Boogie”
i15 house# 13
![Page 4: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/4.jpg)
Company
C# 102030
CName Syntex
Bossemploys
employs
employs
Employee
Name Doe
Salary 1500
worksIn
Employee
Name Lee
Salary 2000
worksIn
Employee
Name Poe
Salary 2500
worksIn
![Page 5: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/5.jpg)
Relational schema: Emp( name, sal, worksIn )
nameDoePoeLee
sal250020002000
worksInProductionSalesSales
Relation: Emp
Model AS0:
S - Objects:< i1 , Emp, { < i2, name, ” Doe” >, < i3, sal, 2500 >, < i4, worksIn, ” Production” > } >,
< i5 , Emp, { < i6, name, ” Poe” >, < i7, sal, 2000 >, < i8, worksIn, ” Sales” > } >,
< i9 , Emp, { < i10, name, ” Lee” >, < i11, sal, 2000 >, < i12, worksIn, ” Sales” > } >
R - Start identifiersi1 , i5 , i9
![Page 6: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/6.jpg)
<Dept> <dname> Trade </dname > <location> Paris </location > <location> London </location > <employs> Doe </employs></Dept ><Dept> <dname> Ads </dname > <location> Rome </location > <employs> Poe </employs> <employs> Lee </employs></Dept >
S – Objects< i17, Dept, {< i18, dname, ”Trade”>,
< i19, location, “Paris”>,
< i20, location, “London”>
< i21, employs, ”Doe”> } >,
< i22, Dept, {< i23, dname, ”Ads”>,
< i24, location, “Rome”>,
< i25, employs, ”Poe”>,
< i26, employs, ”Lee”> } >
R - Start identifiersi17, i22
![Page 7: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/7.jpg)
<emp version=”1.2” date=”2006.01.10”> <name> Doe </name> ...</emp>
<emp> <@version> 1.2 </@version> <@date> 2006.01.10 </@date> <name> Doe </name> ...</emp>
![Page 8: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/8.jpg)
<emp> John Doe, born 1973 <address> Warsaw, Sienna 5 </address> His salary is 2500</emp>
<emp> <&info> John Doe, born 1973 </&info> <address> Sienna 5, Warsaw </address> <&info> His salary is 2500 </&info></emp>
![Page 9: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/9.jpg)
S – Objects< i1, Person, {< i2, name, ”Doe”>, ... } >,< i5, Emp, {< i6, name, ”Poe”>, < i7, sal, 2000>, < i8, worksIn, i22>, ... } >, < i9, Emp, {< i10, name, ”Lee”>, < i11, sal, 900>, < i16, worksIn, i33>, ...} >C - Classes< i40, PersonClass, {< i41, age, (...the code of the method age)>, ... other invariants of the PersonClass... } >,< i50, EmpClass, { < i51, changeSal, (... the code of the method changeSal...)>, < i52, netSal, (... the code of the method netSal ...)>, ... other invariants of the EmpClass... } >R - Start identifiersi1, i5, i9CC - Inheritance among classes< i50, i40>SC - Membership of objects within classes< i1, i40>, < i5, i50>, < i9, i50>
![Page 10: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/10.jpg)
i1 Person
i2 name ”Doe”
...
i9 Emp
i10 name ”Lee”
i16 worksIn
i11 sal 900
...
i5 Emp
i6 name ”Poe”
i7 sal 2000
i8 worksIn
...
i40 PersonClass
i41 age (...code...)
...
i51 changeSal (...code...)
...
i50 EmpClass
i52 netSal (...code...)
CC
SC
SCSC
i22 i33
![Page 11: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/11.jpg)
StudentEmployee Club-member
Student
Tax-payer
Dog-owner
Person
Patient
![Page 12: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/12.jpg)
S – Objects (and roles)<i1, Person, { <i2, name, ”Doe” >, <i3, born, 1948 > } >,<i4, Person, { <i5, name, ”Poe” >, <i6, born, 1975 >} >,<i7, Person, { <i8, name, ”Lee” >, <i9, born, 1951 >} >,<i13, Emp, { <i14, sal, 2500 >, <i15, worksIn, i127> } >,<i16, Emp, { <i17, sal, 1500 >, <i18, worksIn, i128> } >,<i19, Student, { <i20, studentNo, 223344 >, <i21, faculty, ”Physics” >} >.....C - Classes<i40, PersonClass , { <i41, age, (...code of the method Age...) >, ...other properties of PersonClass...}>,<i50, EmpClass , {<i51, changeSal, (...code of the method changeSal...) >, <i52, netSal, (...code of the method netSal...) >, ...other properties of EmpClass... }>,<i60, StudentClass , { <i61, avgScore, (... code of the method AvgScore...) >, ...other properties of StudentClass ... }>,.....R – Root identifiersi1, i4, i7, i13, i16, i19, ...CC - Inheritance between classesEmpty.SC - Membership of objects and roles in classes< i1, i40>, < i4, i40>, < i7, i40>, < i13, i50>, < i16, i50>, < i19, i60> , ...SS – Inheritance between roles and objects< i13, i4>, < i16, i7>, < i19, i7> , ...
![Page 13: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/13.jpg)
i40 PersonClass
i41 age (...code...)
.............
i1 Person
i2 name ”Doe”
i3 born 1948
i4 Person
i5 name ”Poe”
i6 born 1975
i127
i13 Emp
i14 sal 2500
i15 worksIn
i7 Person
i8 name ”Lee”
i9 born 1951
i128
i16 Emp
i17 sal 1500
i18 worksIn
i19 Student
i20 studentNo 223344
i21 faculty ”Physics”
i60 StudentClass
i61 avgScore (...code...)
.............
i50 EmpClass
i51 changeSal (...code...)
i52 netSal (...code...)
.............
![Page 14: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/14.jpg)
S – Objects
< i1, Person, {< i2, name, ”Doe”>, ... } >,
< i5, Emp, {< i6, name, ”Poe”>, < i7, sal, 2000>, < i8, works_in, i22>, ... } >,
< i9, Emp, {< i10, name, ”Lee”>, < i11, sal, 900>, < i16, works_in, i33>, ...} >
C - Classes
< i40, PersonClass, {< i41, age, (...the code of the method age)>, ... other invariants of the PersonClass... } >,
< i50, EmpClass, { < i51, changeSal, (... the code of the method changeSal...)>,
< i52, netSal, (... the code of the method netSal ...)>,
< i53, ExportList, (changeSal, netSal, works_in) >,
... other invariants of the EmpClass... } >
R - Start identifiers
i1, i5, i9
CC - Inheritance among classes
< i50, i40>
SC - Membership of objects within classes
< i1, i40>, < i5, i50>, < i9, i50>
![Page 15: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/15.jpg)
Variables declared within block b
Variables and actual parameters of procedure p2
Variables and actual parameters of procedure p1
........
Global variables
Top of the stack
Bottom of the stack
the order of searching for variable X
![Page 16: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/16.jpg)
i1 Emp
i5 Emp
i9 Emp
i17 Dept
i22 Dept
Persistent (shared) objects
i127 X i128 Y
Volatile (non-shared) objects
Client Server
![Page 17: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/17.jpg)
Emp(i1)
Temporary processing section- properties of an executed procedure
Temporary processing section
Temporary processing section
Temporary processing section- properties of a processed object
Temporary processing section
Global sections
Database section
X(i127) Y(i128) N(5) I("Maria")
.........
name(i10) sal(i11) address(i12) worksIn(i16)
Binders to volatile properties of the current client session
Emp(i1) Emp(i5) Emp(i9) ... Dept(i17) Dept(i22) ...
Binders to global library functions
Binders to properties of the computer environment
.........
Top
![Page 18: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/18.jpg)
Emp(i1)
X(i127) Y(i128) N(5) I("Maria")
.........
name(i10) sal(i11) address(i12) worksIn(i16)
Emp(i1) Emp(i5) Emp(i9) ... Dept(i17) Dept(i22) ...
.........
.........
start of the search
end of the search
![Page 19: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/19.jpg)
sequence{ i1, i6, i11}
i1
i6
i11
bag{ struct{i1, i56}, struct{i6, i72}, struct{i11, i72}}
i1
i6
i11
i56
i72
i72
bag{ struct{ n(„Doe"), s(i9) }, struct{ n(„Poe"), s(i14)}, struct{ n(”Lee" ), s(i18)}}
n
”Doe"”Poe"”Lee"
s
i9
i14
i18
![Page 20: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/20.jpg)
Emp where (name = ”Poe” and sal > 1000)
Emp(i1) Emp(i5) Emp(i9) Dept(i17) Dept(i22)
name(i10) sal(i11) address(i12) worksIn(i16)
Emp(i1) Emp(i5) Emp(i9) Dept(i17) Dept(i22)
Initial ENVS state. bind( Emp ) = {i1, i5, i9}
ENVS during evaluation of the condition for the third object Emp.bind( name ) = i10; bind( sal ) = i11
binding binding
Interior of the third object Emp
condition
![Page 21: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/21.jpg)
i9 Emp
i10 name ”Lee”
i16 worksIn
i11 sal 900
i12 address
i13 city ”Rome”
i14 street ”Boogie”
i15 house# 13
nested( i9 ) = { name( i10 ), sal( i11 ), address( i12 ), worksIn( i16 ) }
![Page 22: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/22.jpg)
query ::= literal The set L
query ::= name The set N
query ::= unaryAlgOperator query Unary algebraic operators
unaryAlgOperator ::= count | sum | max | - | sqrt | not | ...
query ::= query binaryAlgOperator query Binary algebraic operators
binaryAlgOperator ::= =|<| >| +| -| *| /| and| or| intersect|...
query ::= query NonAlgOperator query Non-algebraic operator
NonAlgOperator ::= where | . | join | ∀ | ∃ | order by
query ::= ∀query query | ∃query query Alternative (traditional) syntax for quantifiers
query ::= query as name Name definition
query ::= query group as name Grouping and name definition
query ::= if query then query Conditional query
query ::= if query then query else query Another conditional query
querySeq ::= query | query, querySeq Sequence of queries
query ::= struct( querySeq ) | (querySeq) Structure constructor
query ::= bag( ) | bag( querySeq ) Bag constructor
query ::= sequence( ) | sequence( querySeq ) Sequence constructor
![Page 23: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/23.jpg)
(2 *((5 + 3 ) / 4)) - 1 2 5 3 + 4 / * 1 -
Expression
2 2
5
2
5
3
2
8
4
2
2
4
1
4 32
8+ /
* -
Reverse polish notation
empty
![Page 24: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/24.jpg)
15
i17
struct{ x(i61), y(i93) }
bag{ struct{ n(„Doe"), s(i9)}, struct{ n(„Poe"), s(i14)}, struct{ n(”Lee" ), s(i18)}}bottom
the only visible stack section
invisible stack sections
top
![Page 25: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/25.jpg)
Object store
Environment stack ENVS
Query result stack QRES
Query evaluation
Non-algebraic operators
references to objects
references to objects
Volatile (non-shared) objectsPersistent (shared) objects
![Page 26: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/26.jpg)
Parser ofqueries and programs
Software development environment (editor,
debugger, etc.)
Client
Syntactic tree of a query/program
Volatile (non-shared) objects
ENVS
QRES
Static ENVS
Static QRES
Persistent (shared) objects
Object manager
Processing persistent abstractions (views, stored procedures,
triggers)
Register of indices
Server
Local metabase
Metabase of persistent objects
Optimization by rewriting
Optimization by indices
Interpreter of queries & programs (proc. eval)
Strong type checker
Network
Register of views
Administration module
![Page 27: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/27.jpg)
previous state of QRES
eval( q )
result of query q
previous state of QRES
previous state of QRES
a consumerof the result
![Page 28: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/28.jpg)
Start
Non-algebraic where
Left subquery Right subquery
Name Emp
Algebraic2 =
Left subquery Right subquery
Name name
Algebraic1 deref String value ”Poe”
![Page 29: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/29.jpg)
result( q1 ) = bag{ e1, e2, e3 }
Previous state ofENVS
Previous state ofENVS
nested(e1)
Previous state ofENVS
Previous state ofENVS
nested(e2)
Previous state ofENVS
Previous state ofENVS
nested(e3)
Previous state ofENVS
time
result(q2) result(q2) result(q2)
result(q1 θ q2)
![Page 30: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/30.jpg)
Emp where ( sal > 1000 )
i1
i5
i9
i3
i7
i11
i1
i5
Result returned by query Emp
Results returned by query sal
Iteration over elements of the previous result
Dereference forced by >
2500
2000
900
Results returned by query 1000
1000
1000
1000
true
true
false
Results returned by query sal>1000
Final result of the query
name(i2) sal(i3) worksIn(i4)
Emp(i1) Emp(i5) Emp(i9) Dept(i17) Dept(i22)
name(i6) sal(i7) worksIn(i4)
Emp(i1) Emp(i5) Emp(i9) Dept(i17) Dept(i22)
name(i10) sal(i11) address(i22) worksIn(i16)
Emp(i1) Emp(i5) Emp(i9) Dept(i17) Dept(i22)
Emp(i1) Emp(i5) Emp(i9) Dept(i17) Dept(i22)
ENVS before evaluation
![Page 31: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/31.jpg)
Empe#namejobsalworksIn
Deptd#dnameboss
Locationd#loc
Addresse#citystreethouse#
Relational schema
Dept [0..*]d#dnameloc[1..*]
Object-oriented schema (class diagram)
worksIn employs[1..*]Emp [0..*]e#namejobsal
Address [0..1]citystreethouse#
manages[0..1] boss
![Page 32: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/32.jpg)
( Dept join avg((employs . Emp ) . sal ) )
Emp(..) Emp(..), ... Dept(..) Dept(..) ...
Emp(..) Emp(..), ... Dept(..) Dept(..) ...
d#(..), dname(..) loc(..) loc(..) ...employs(..) employs(..) ...boss(..)
Emp(..) Emp(..), ... Dept(..) Dept(..) ...
Emp(..)
d#(..), dname(..) loc(..) loc(..) ...employs(..) employs(..) ...boss(..)
Emp(..) Emp(..), ... Dept(..) Dept(..) ...
d#(..), dname(..) loc(..) loc(..) ...employs(..) employs(..) ...boss(..)
Emp(..) Emp(..), ... Dept(..) Dept(..) ...
e#(..) name(..) job(..)sal(..) worksIn(..)manages(..)
d#(..), dname(..) loc(..) loc(..) ...employs(..) employs(..) ...boss(..)
Emp(..) Emp(..), ... Dept(..) Dept(..) ...
d#(..), dname(..) loc(..) loc(..) ...employs(..) employs(..) ...boss(..)
Emp(..) Emp(..), ... Dept(..) Dept(..) ...
![Page 33: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/33.jpg)
Binders to internal properties of the currently processed object O
Binders to internal properties of the class C1 that O is a member
Binders to internal properties of the class C2 that is a superclass of C1
Binders to internal properties of the class C3 that is a superclass of C2
............................
Binders with start identifiers of the object store
Top of the ENVS stack
Sections pushed on ENVS during processing of the object O by a non-algebraic operator
Object O
Class C1
Class C2
Class C3
CC
CC
SC
Search order
![Page 34: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/34.jpg)
name(i6) sal (i7) worksIn (i8) ....
changeSal(i51) netSal(i52) ...
age(i41) ...
.........
Person(i1) ... Emp(i5) Emp(i9) ...
nested(i5) - internals of the currently processed Poe’s object
nested (i50) – internals of EmpClass
nested (i40) – internals of PersonClass
... other sections ...
Binders to database objects
Top of the ENVS stack
Sections pushed by the dot operator
![Page 35: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/35.jpg)
Calculation of parameters, binding the name MyMethodand firing the method
result(q0)Previous
QRES state
Operator where
Evaluation of q0 Removing the results of q1, q2
Processing of the MyMethod body
After completing MyMethod
.......
Global sections
time
result(q2)result(q1)result(q0)Previous
QRES state
result(q0)Previous
QRES state
result(q)result(q0)Previous
QRES state
nested(r1)nested(iMC)
.......
Globalsections
p1(result(q1))p2(result(q2))x1(..) x2(..)
nested(r1)nested(iMC)
.......
Globalsections
nested(r1)nested(iMC)
.......
Globalsections
![Page 36: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/36.jpg)
Emp[0..*]e#job[1..*]sal[0..1]changeSal(newSal)netSal( )
Dept[0..*]d#dnameloc[1..*]budget()
employs[1..*]worksIn
Person[0..*] name birthYear
age()
Address [0..1] city street house#
manages[0..1] boss
![Page 37: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/37.jpg)
Binders to volatile objects/variables of the current user session
Person(i1) Person(i4) Person(i7) Emp(i13) Emp(i16) Student(i19) ...
Binders to global library functions
Binders to variables and functions of the computer environment
Global sectionsDatabase section
![Page 38: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/38.jpg)
Properties of the currently processed Emp role
Properties of the EmpClass
Properties of the Person super-role of the Emp role
Properties of the PersonClass
Database section
Search order
sal(i17) worksIn(i18)
changeSal(i51) netSal(i52 ) ...
name(i8) born(i9)
age(i41) ...
.........
Person(i1) Person(i4) Person(i7) Emp(i13) Emp(i16) Student(i19) ...
.........
Bottom of ENVS
![Page 39: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/39.jpg)
iR1C R1Class
iR1 R1
iR2 R2 iR3 R3
iR5 R5 iR4 R4
iR6C R6Class
iR45C R45Class
iR7C R7Class
iR23C R23Class
![Page 40: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/40.jpg)
nested(iR5)
nested(iR45C)
nested(iR3)
nested(iR23C )
nested(iR6C )
nested(iR7C )
nested(iR1 )
nested(iR1C )
nested(iR7C )
.........
Sections of the role R5
Sections of the role R3
Sections of the role R1
![Page 41: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/41.jpg)
Emp[0..1]e#job[1..*]sal[0..1]changeSal(newSal)netSal( )
Dept[0..*]d#dnameloc[1..*]budget()
employs[1..*]
studiesAt
manages
boss
Person[0..*]namebirthYear
age( )
Address [0..1]citystreethouse#
Student[0..*]s#faculty[0..1]scholarship
avgScore( )
Exam[0..*] subject score
School[0..*]namecity
worksIn
teaches[0..*]
Manager[0..1]
![Page 42: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/42.jpg)
Software: strategic decisions, analysis, design, construction, testing, documentation, deployment,
user training, operation, maintenance, modifications,
etc.
The world of the problem domain: complex, interdependent knowledge, business processes, aspects, problems and solutions.
The world of analysis and design: teams of people having limitations of memory, perception, expressing information and communication.
The world of software users: psychological factors, ergonomy, limitations of memory, tendency to errors and abuse, ownership, intellectual properties, privacy, security, etc.
The world of computer technologies: hardware, software, networks, languages, methodologies, tools, facilities, standards, etc.
![Page 43: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/43.jpg)
Human perception of the problem domain
Abstract conceptual model of the problem domain
Programmer’s view of data structures and operations
mappingmapping
... ... ...
... ... ...... ... ...... ... ...... ... ...
... ... ...
![Page 44: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/44.jpg)
Real objects or concepts in the
problem domain
Classes of abstract objects in the conceptual model of
the problem domain
Objects and their classes as data structures within an object-oriented database
seamless mappingseamless mapping
...
...
............
...
...
............
...
...
...
...
...
...
![Page 45: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/45.jpg)
Person CompanyEmployerEmployee
EmploymentDetails
1..* worksFor 0..*
![Page 46: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/46.jpg)
Broker
DealSubject
DatePrice
PersonName
Buyer
Seller
Broker
PersonName
Buyer
Seller
DealSubject
DatePrice
![Page 47: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/47.jpg)
DealHouse
1995.08.1640000
DealCar
1998.05.1520000
PersonKim
Broker
DealCar1998.05.1520000
PersonLee
PersonNoe
Buyer Seller
Broker
DealHouse1995.08.1640000
PersonPoe
PersonDoe
Buyer Seller
PersonKim
Broker
PersonLee
PersonNoe
Buyer Seller
Broker
PersonPoe
PersonDoe
Buyer Seller
![Page 48: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/48.jpg)
Employeeemployee#
jobsalary
company#netSalary()
changeSalary(...)
Studentstudent#
yearOfStudyfaculty
insertScore(...)acceptSemester()
PersonfirstNamelastName
dateOfBirth age()
objectobjectobjectobjectobjectobjectobjectobject
inheritance
![Page 49: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/49.jpg)
StudentEmployee
Club-memberStudent Tax-payer
Dog-owner
Person
Patient
![Page 50: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/50.jpg)
PersonName Doe
BirthYesr 1948
PersonClassName BirthYear
Age()
EmployeeClassSalary
JobNetSalary()
ChangeSalary(..)
StudentClassSemester
StudentNoNewScore(...)AvgScore()
Classes
PersonName Brown
BirthYear 1975
EmployeeSalary 2500Job analyst
PersonName Jones
BirthYear 1940
StudentSemester 4
StudentNo 556677
Objects with roles
CompanyName Bank
works_in works_in
SchoolName NYA
studies_at
SchoolName MLI
studies_at
is_a_customer_of
PersonName Smith
BirthYear 1951
EmployeeSalary 1500
Job clerk
StudentSemester 7
StudentNo 223344is a member of
association link
inherits from
dynamically inherits from
![Page 51: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/51.jpg)
Employees
.....
Employee
Employments
.....
Employment
Employment
Job
Surname
Children
...
Child
Child
Employee
Employments
.....
Employment
Employment
Job
Surname
Children
...
Child
Child
![Page 52: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/52.jpg)
EW[0..*] WE CW[0..*]WC
Person[0..*]lNamefName[1..*]Addres[1..*]
Company[0..*]cNamecLocation[1..*]
Work[0..*]Payment[0..*]Expertise[1..*]
Expert[0..*]Competence[1..*]
![Page 53: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/53.jpg)
Company(C#, cName)
cLocation(Place, C#) Work(W#, C#, E#)
Expert(E#, P#)Expertise(eText, W#)
Payment(pAmount, W#)Person(P#, lName)
Competence(cDescr, E#)
Names(fName, P#) Addresses(Addres, P#)
![Page 54: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/54.jpg)
Communication Bus
Integration view
Existing sources
Contributoryview 1
O-R wrapper
Relationaldatabases
Contributoryview 2
O-RDF wrapper
RDFresources
XMLimporter/ exporter
XMLfiles
Contributoryview 3
O-WSwrapper
Web Serviceapplications
Contributory
view
….wrapper
….application
ODRA database server
Application1
Clientview 1
Clientview 2
Application2
Clientview 3
Application3
Clientview 4
Web Service
application
Applicationsbased on virtual repository
![Page 55: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/55.jpg)
Part [0..*]name
Aggregate [0..*]assemblyCostassemblyMass
Detail [0..*]costmass
Component [1..*] amount leadsTo
![Page 56: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/56.jpg)
*
hasSharesIn
isOwnedBy
*
Companyname
![Page 57: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/57.jpg)
SupplierClass….
Default attribute Sname = ” ”Default attribute Status = -1Default attribute City = ”???”
…..
SupplierSname BlackSno 1234City Rome
SupplierSname GraySno 1256Status 55
![Page 58: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/58.jpg)
Local environment of m
Class C2….
method m….
Class C1….
Default attribute a = …….
Object O…attribute a = …
The rest of the environment
a) The natural scoping rule
Local environment of m
Class C1….
Default attribute a = …
method m….
Object O…attribute a = …
The rest of the environment
b) Binding conflict
![Page 59: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/59.jpg)
name(”Brown”) address(..) job(..) worksIn (..)
name(..) address(..) salary(..) job(..) worksIn (..)
.........
Global stack sections
Section pushed by the third where operator for the Brown’s object
Section pushed by the second where operator for an Emp object
Binding salary
![Page 60: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/60.jpg)
engine
…..carburettor starter
bolt10x30
………..
……
![Page 61: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/61.jpg)
myperson ancestors resultallcousins
![Page 62: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/62.jpg)
Temporary processing section - properties of an executed procedure
Temporary processing section
Temporary processing section
Temporary processing section- properties of a processed object
Temporary processing section
Database section
Emp(i1)
X(i127) Y(i128) N(5) I("Maria")
.........
name(i10) sal(i11) address(i12) worksIn(i16)
Binders to volatile properties of the current client session
Emp(i1) Emp(i5) Emp(i9) ... Dept(i17) Dept(i22) ...
Libraries and computer environment
.........
Emp(i1)
Environment of iloc
.........
Environment of i9
Environment of ises
Environment of idb
Libraries and computer environment
.........
< i9, Emp, { <i10, name, …>, <i11, sal, …> <i12, address, …> <i16, worksIn,…> } >
<iloc, …, local procedure objects and binders>
<ises, …, objects of the current session>
<idb, …, database objects>
ConceptualENVS
OptimizedENVS
![Page 63: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/63.jpg)
Emp[0..*] eno: integer job: string[0..1] sal: realchangeSal(newSal: real)netSal( ): real
Dept[0..*] dno: integer dname: string loc: string[1..*]budget(): real
employs[1..*]worksIn
Person[0..*] name: string birthYear: integer
age(): integer
address [0..1] city: string street: string house: integer
manages[0..1] boss
![Page 64: Dept [0..*] dname: string location: string [1..*]](https://reader035.vdocuments.net/reader035/viewer/2022062809/5681586d550346895dc5cc97/html5/thumbnails/64.jpg)
Activation record of P1
........
Global entities
Activation record of P2Activation record of P1
........
Global entities
Activation record of P3Activation
record of P2Activation
record of P1
........
Global entities
Activation record of P2Activation record of P1
........
Global entities
Activation record of P1
........
Global entities
P1 callsP2
Top of the stack
P1 is running P2 is running P3 is running P2 is running P1 is running
P3 ends
P2 callsP3
P2 ends
time