5a8562d3d389356e2f60b522b46ebcac.ppt
- Количество слайдов: 64
i 10 Emp works. In [1. . 1] i 30 Emp i 11 name ”Doe” Emp [0. . *] name: string age: integer sal: integer [0. . 1] i 20 Emp i 21 name ”Poe” i 31 name ”Lee” i 12 age 29 i 22 age 41 i 32 age 20 i 13 sal 1900 i 23 sal 2500 i 14 works. In i 50 i 24 works. In i 60 i 33 works. In i 60 i 50 Dept employs [1. . *] Dept [0. . *] dname: string location: string [1. . *] i 60 Dept i 51 dname ”Trade” i 61 dname ”Ads” i 52 location ”Paris” i 62 location ”Berlin” i 53 location „Rome” i 63 employs i 54 employs i 10 i 64 employs i 30 i 20
Emp [0. . *] name sal address[0. . 1] city street house# works. In employs [1. . *] Dept [0. . *] dname location[1. . *] S – Objects < i 1, Emp, {< i 2, name, ”Doe”>, < i 3, sal, 2500>, < i 4, works. In, i 17> } >, < i 5, Emp, {< i 6, name, ”Poe”>, < i 7, sal, 2000>, < i 8, works. In, i 22> } >, < i 9, Emp, {< i 10, name, ”Lee”>, < i 11, sal, 900>, < i 12, address, { < i 13, city, “Rome” >, < i 14, street, “Boogie” >, < i 15, house#, 13 > } >, < i 16, works. In, i 22> } >, < i 17, Dept, {< i 18, dname, ”Trade”>, < i 19, location, “Paris”>, < i 20, location, “London”> < i 21, employs, i 1> } >, < i 22, Dept, {< i 23, dname, ”Ads”>, < i 24, location, “Rome”>, < i 25, employs, i 5>, < i 26, employs, i 9> } > R - Start identifiers i 1, i 5, i 9, i 17, i 22
i 1 Emp i 5 Emp i 9 Emp i 2 name ”Doe” i 6 name ”Poe” i 10 name ”Lee” i 3 sal 2500 i 7 sal 2000 i 11 sal 900 i 4 works. In i 8 works. In i 12 address i 13 city ”Rome” i 14 street ”Boogie” i 15 house# 13 i 16 works. In i 17 Dept i 22 Dept i 18 dname ”Trade” i 23 dname ”Ads” i 19 location ”Paris” i 24 location ”Rome” i 20 location ”Rome” i 25 employs i 21 employs i 26 employs
Employee Name Doe Salary 1500 works. In Employee Name Poe Salary 2500 works. In Boss C# 102030 Employee Name Lee Salary 2000 works. In employs CName Syntex employs Company
Relational schema: Emp( name, sal, works. In ) Relation: Emp name Doe Poe Lee sal 2500 2000 works. In Production Sales Model AS 0: S - Objects: < i 1 , Emp, { < i 2, name, ” Doe” >, < i 3, sal, 2500 >, < i 4, works. In, ” Production” > } >, < i 5 , Emp, { < i 6, name, ” Poe” >, < i 7, sal, 2000 >, < i 8, works. In, ” Sales” > } >, < i 9 , Emp, { < i 10, name, ” Lee” >, < i 11, sal, 2000 >, < i 12, works. In, ” Sales” > } > R - Start identifiers i 1 , i 5 , i 9
S – Objects < i 1, Person, {< i 2, name, ”Doe”>, . . . } >, < i 5, Emp, {< i 6, name, ”Poe”>, < i 7, sal, 2000>, < i 8, works. In, i 22>, . . . } >, < i 9, Emp, {< i 10, name, ”Lee”>, < i 11, sal, 900>, < i 16, works. In, i 33>, . . . } > C - Classes < i 40, Person. Class, {< i 41, age, (. . . the code of the method age)>, . . . other invariants of the Person. Class. . . } >, < i 50, Emp. Class, { < i 51, change. Sal, (. . . the code of the method change. Sal. . . )>, < i 52, net. Sal, (. . . the code of the method net. Sal. . . )>, . . . other invariants of the Emp. Class. . . } > R - Start identifiers i 1, i 5, i 9 CC - Inheritance among classes < i 50, i 40> SC - Membership of objects within classes < i 1, i 40>, < i 5, i 50>, < i 9, i 50>
i 40 Person. Class i 41 age (. . . code. . . ). . . CC i 50 Emp. Class i 51 change. Sal (. . . code. . . ) i 52 net. Sal (. . . code. . . ) SC . . . SC SC i 1 Person i 5 Emp i 9 Emp i 6 name ”Poe” i 10 name ”Lee” i 7 sal 2000 i 11 sal 900 i 8 works. In i 16 works. In . . . i 2 name ”Doe”. . . i 22 i 33
Person Employee Student Club-member Patien t Tax-payer Dog-owner
S – Objects (and roles) , } >, , } >, , } >, , } >, , } >, , } >. . . C - Classes , . . . other properties of Person. Class. . . }>, , , . . . other properties of Emp. Class. . . }>, , . . . other properties of Student. Class. . . }>, . . . R – Root identifiers i 1, i 4, i 7, i 13, i 16, i 19, . . . CC - Inheritance between classes Empty. SC - Membership of objects and roles in classes < i 1, i 40>, < i 4, i 40>, < i 7, i 40>, < i 13, i 50>, < i 16, i 50>, < i 19, i 60> , . . . SS – Inheritance between roles and objects < i 13, i 4>, < i 16, i 7>, < i 19, i 7> , . . .
i 40 Person. Class i 41 age (. . . code. . . ). . . i 50 Emp. Class i 60 Student. Class i 51 change. Sal (. . . code. . . ) i 61 avg. Score (. . . code. . . ) i 52 net. Sal (. . . code. . . ) . . . i 1 Person i 4 Person i 7 Person i 2 name ”Doe” i 5 name ”Poe” i 8 name ”Lee” i 3 born 1948 i 6 born 1975 i 9 born 1951 i 13 Emp i 16 Emp i 14 sal 2500 i 17 sal 1500 i 20 student. No 223344 i 15 works. In i 18 works. In i 21 faculty ”Physics” i 127 i 19 i 128 Student
the order of searching for variable X Top of the stack Variables declared within block b Variables and actual parameters of procedure p 2 Variables and actual parameters of procedure p 1. . . . Global variables Bottom of the stack
Client Server Persistent (shared) objects Volatile (non-shared) objects i 127 X i 128 Y i 1 Emp i 17 Dept i 5 Emp i 9 Emp i 22 Dept
Top Temporary processing section - properties of an executed procedure Temporary processing section - properties of a processed object Temporary processing section Emp(i 1) X(i 127) Y(i 128) N(5) I("Maria"). . name(i 10) sal(i 11) address(i 12) works. In(i 16). . Binders to volatile properties of the current client session Database section Global sections Emp(i 1) Emp(i 5) Emp(i 9). . . Dept(i 17) Dept(i 22). . . Binders to global library functions Binders to properties of the computer environment
start of the search Emp(i 1) X(i 127) Y(i 128) N(5) I("Maria"). . name(i 10) sal(i 11) address(i 12) works. In(i 16). . Emp(i 1) Emp(i 5) Emp(i 9). . . Dept(i 17) Dept(i 22). . . end of the search
bag{ struct{i 1, i 56}, struct{i 6, i 72}, sequence{ i 1, i 6, i 11} struct{i 11, i 72}} i 1 i 6 i 11 i 56 i 72 bag{ struct{ n(„Doe"), s(i 9) }, struct{ n(„Poe"), s(i 14)}, struct{ n(”Lee" ), s(i 18)}} n s ”Doe" ”Poe" ”Lee" i 9 i 14 i 18
condition Emp where binding (name = ”Poe” and sal > 1000) binding name(i 10) sal(i 11) address(i 12) works. In(i 16) Emp(i 1) Emp(i 5) Emp(i 9) Dept(i 17) Dept(i 22) Initial ENVS state. bind( Emp ) = {i 1, i 5, i 9} Interior of the third object Emp(i 1) Emp(i 5) Emp(i 9) Dept(i 17) Dept(i 22) ENVS during evaluation of the condition for the third object Emp. bind( name ) = i 10; bind( sal ) = i 11
i 9 Emp i 10 name ”Lee” i 11 sal 900 i 12 address i 13 city ”Rome” i 14 street ”Boogie” i 15 house# 13 i 16 works. In nested( i 9 ) = { name( i 10 ), sal( i 11 ), address( i 12 ), works. In( i 16 ) }
query : : = literal The set L query : : = name The set N query : : = unary. Alg. Operator query Unary algebraic operators unary. Alg. Operator : : = count | sum | max | - | sqrt | not |. . . query : : = query binary. Alg. Operator query Binary algebraic operators binary. Alg. Operator : : = =|<| >| +| -| *| /| and| or| intersect|. . . query : : = query Non. Alg. Operator query Non-algebraic operator Non. Alg. Operator : : = where |. | join | ∀ | ∃ | order by 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 : : = if query then query else query Another conditional query. Seq : : = query | query, query. Sequence of queries query : : = struct( query. Seq ) | (query. Seq) Structure constructor query : : = bag( ) | bag( query. Seq ) Bag constructor query : : = sequence( ) | sequence( query. Seq ) Sequence constructor
Expression (2 *((5 + 3 ) / 4)) - 1 Reverse polish notation 253+4/*1 - 3 5 empty 2 5 2 2 4 + 8 8 2 2 / 2 2 1 * 4 4 - 3
top the only visible stack section 15 i 17 struct{ x(i 61), y(i 93) } bag{ bottom struct{ n(„Doe"), s(i 9)}, struct{ n(„Poe"), s(i 14)}, struct{ n(”Lee" ), s(i 18)}} invisible stack sections
Non-algebraic operators Environment stack ENVS Query result stack QRES Query evaluation references to objects Object store Volatile (non-shared) objects Persistent (shared) objects
Software development environment (editor, debugger, etc. ) Client Parser of queries and programs Syntactic tree of a query/program Strong type checker Optimization by rewriting Optimization by indices Interpreter of queries & programs (proc. eval) Static ENVS Static QRES Local metabase Volatile (non-shared) objects Network Server Metabase of persistent objects Administration module Register of indices Object manager Persistent (shared) objects Register of views Processing persistent abstractions (views, stored procedures, triggers)
result of query q previous state of QRES eval( q ) previous state of QRES a consumer of the result previous state of QRES
Start Non-algebraic Left subquery Name where Right subquery Algebraic 2 Emp Left subquery Algebraic 1 deref Name name = Right subquery String value ”Poe”
result( q 1 ) = bag{ e 1, e 2, e 3 } nested(e 1) Previous state of ENVS nested(e 2) Previous state of ENVS nested(e 3) Previous state of ENVS time result(q 2) result(q 1 θ q 2)
Result returned by query Emp Iteration over elements of the previous result Results returned by query sal Results returned by query 1000 Dereference forced by > Results returned by query sal>1000 Final result of the query name(i 2) sal(i 3) works. In(i 4) i 1 Emp(i 1) Emp(i 5) Emp(i 9) Dept(i 17) Dept(i 22) i 3 2500 1000 true i 1 i 7 2000 1000 true i 5 i 11 900 1000 false name(i 6) sal(i 7) works. In(i 4) i 5 ENVS before evaluation i 9 Emp(i 1) Emp(i 5) Emp(i 9) Dept(i 17) Dept(i 22) name(i 10) sal(i 11) address(i 22) works. In(i 16) Emp(i 1) Emp(i 5) Emp(i 9) Dept(i 17) Dept(i 22) Emp where ( sal > 1000 )
Relational schema Address e# city street house# Emp e# name job sal works. In Dept d# dname boss Location d# loc Object-oriented schema (class diagram) Emp [0. . *] e# name job sal Address [0. . 1] city street house# works. In manages[0. . 1] employs[1. . *] boss Dept [0. . *] d# dname loc[1. . *]
( Dept join avg((employs . Emp ) . sal ) ) e#(. . ) name(. . ) job(. . ) sal(. . ) works. In(. . ) manages(. . ) Emp(. . ) d#(. . ), dname(. . ) loc(. . ). . . employs(. . ). . . boss(. . ) Emp(. . ), . . . Dept(. . ). . . d#(. . ), dname(. . ) loc(. . ). . . employs(. . ) employs(. . ). . . boss(. . ) Emp(. . ), . . . Dept(. . ). . . Emp(. . ), . . . Dept(. . ). . .
Search order Top of the ENVS stack Class C 3 Binders to internal properties of the currently processed object O CC Binders to internal properties of the class C 1 that O is a member Class C 2 CC Class C 1 SC Object O Binders to internal properties of the class C 2 that is a superclass of C 1 Binders to internal properties of the class C 3 that is a superclass of C 2. . . . Binders with start identifiers of the object store Sections pushed on ENVS during processing of the object O by a non-algebraic operator
Top of the ENVS stack nested(i 5) - internals of the currently processed Poe’s object nested (i 50) – internals of Emp. Class nested (i 40) – internals of Person. Class. . . other sections. . . Binders to database objects name(i 6) sal (i 7) works. In (i 8). . change. Sal(i 51) net. Sal(i 52). . . age(i 41). . . Person(i 1). . . Emp(i 5) Emp(i 9). . . Sections pushed by the dot operator
Operator where Calculation of parameters, binding the name My. Method and firing the method Processing of the My. Method body p 1(result(q 1)) p 2(result(q 2)) x 1(. . ) x 2(. . ) After completing My. Method nested(r 1) nested(i. MC) . . . . Global sections time Evaluation of q 0 result(q 0) Previous QRES state result(q 2) result(q 1) result(q 0) Previous QRES state Removing the results of q 1, q 2 result(q 0) Previous QRES state result(q) result(q 0) Previous QRES state
Person[0. . *] name birth. Year Address [0. . 1] city street house# age() Emp[0. . *] e# job[1. . *] sal[0. . 1] change. Sal(new. Sal) net. Sal( ) works. In manages[0. . 1] employs[1. . *] boss Dept[0. . *] d# dname loc[1. . *] budget()
Binders to volatile objects/variables of the current user session Database section Person(i 1) Person(i 4) Person(i 7) Emp(i 13) Emp(i 16) Student(i 19). . . Binders to global library functions Binders to variables and functions of the computer environment Global sections
Search order sal(i 17) works. In(i 18) change. Sal(i 51) net. Sal(i 52 ). . . name(i 8) born(i 9) Properties of the currently processed Emp role Properties of the Emp. Class Properties of the Person superrole of the Emp role Properties of the Person. Class age(i 41). . . Person(i 1) Person(i 4) Person(i 7) Emp(i 13) Emp(i 16) Student(i 19). . . Bottom of ENVS . . Database section
i. R 7 Class i. R 6 Class i. R 1 Class i. R 23 Class i. R 45 Class i. R 1 i. R 2 i. R 4 R 2 R 1 i. R 3 i. R 5
nested(i. R 5) nested(i. R 45 C) Sections of the role R 5 nested(i. R 3) nested(i. R 23 C ) nested(i. R 6 C ) Sections of the role R 3 nested(i. R 7 C ) nested(i. R 1 C ) nested(i. R 7 C ). . Sections of the role R 1
Person[0. . *] name birth. Year Address [0. . 1] city street house# age( ) Emp[0. . 1] e# job[1. . *] sal[0. . 1] change. Sal(new. Sal) net. Sal( ) Student[0. . *] s# faculty[0. . 1] scholarship Exam[0. . *] subject score avg. Score( ) School[0. . *] name city studies. At teaches[0. . *] Dept[0. . *] works. In employs[1. . *] d# dname boss loc[1. . *] Manager[0. . 1] budget() manages
The world of analysis and design: teams of people having limitations of memory, perception, expressing information and communication. The world of the problem domain: complex, interdependent knowledge, business processes, aspects, problems and solutions. Software: strategic decisions, analysis, design, construction, testing, documentation, deployment, user training, operation, maintenance, modifications, etc. The world of computer technologies: hardware, software, networks, languages, methodologies, tools, facilities, standards, etc. The world of software users: psychological factors, ergonomy, limitations of memory, tendency to errors and abuse, ownership, intellectual properties, privacy, security, etc.
mapping . . Human perception of the problem domain Abstract conceptual model of the problem domain . . . . Programmer’s view of data structures and operations
seamless mapping . . . . 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
Person 1. . * works. For Employee 0. . * Employer Employment Details Company
Person Name Buyer Seller Broker Deal Subject Date Price
Person Doe Person Poe Person Doe Buyer Seller Buyer Broker Person Kim Broker Deal Car 1998. 05. 15 20000 Person Noe Seller Deal House 1995. 08. 16 40000 Buyer Person Poe Seller Person Lee Deal Car 1998. 05. 15 20000 Buyer Person Noe Seller Person Lee
Person first. Name last. Name date. Of. Birth age() inheritance Student student# year. Of. Study faculty insert. Score(. . . ) accept. Semester() Employee employee# job salary company# net. Salary() change. Salary(. . . ) object object
Person Patient Student Employee Tax-payer Student Club-member Dog-owner
Person. Class Name Birth. Year Age() morf stirehni yllacimanyd morf stirehni knil noitaicossa Employee. Class Salary Job Net. Salary() Change. Salary(. . ) fo rebmem a si Classes Person Name Doe Birth. Yesr 1948 Objects with roles Person Name Brown Birth. Year 1975 Employee Salary 2500 Job analyst Student. Class Semester Student. No New. Score(. . . ) Avg. Score() Person Name Smith Birth. Year 1951 Employee Salary 1500 Job clerk Student Semester 7 Student. No 223344 is_a_customer_of works_in Company Name Bank Person Name Jones Birth. Year 1940 works_in studies_at School Name NYA Student Semester 4 Student. No 556677 studies_at School Name MLI
Employees Employee Surname Employments Children Employment Child. . . . Job . . .
Person[0. . *] l. Name f. Name[1. . *] Addres[1. . *] Expert[0. . *] EW[0. . *] Competence[1. . *] Work[0. . *] WE Payment[0. . *] WC Expertise[1. . *] Company[0. . *] CW[0. . *] c. Name c. Location[1. . *]
Company(C#, c. Name) c. Location(Place, C#) Work(W#, C#, E#) Expert(E#, P#) Expertise(e. Text, W#) Payment(p. Amount, W#) Person(P#, l. Name) Competence(c. Descr, E#) Names(f. Name, P#) Addresses(Addres, P#)
Applications based on virtual repository Application 1 Application 2 Application 3 Client view 1 Client view 2 Client view 3 Web Service application Client view 4 ODRA database server Integration view Communication Bus Contributory view 1 Existing sources Contributory view 2 O-R wrapper O-RDF wrapper Relational databases RDF resources XML importer/ exporter Contributory Contributor view 3 y view O-WS wrapper XML files …. wrapper Web Service applications …. application
Part [0. . *] name Detail [0. . *] cost mass Aggregate [0. . *] assembly. Cost assembly. Mass Component [1. . *] amount leads. To
Company name has. Shares. In * is. Owned. By *
Supplier. Class …. Default attribute Sname = ” ” Default attribute Status = -1 Default attribute City = ”? ? ? ” …. . Supplier Sname Black Sno 1234 City Rome Supplier Sname Gray Sno 1256 Status 55
a) The natural scoping rule b) Binding conflict Local environment of m Class C 2 …. method m …. Class C 1 …. Default attribute a = … …. Object O Class C 1 …. Default attribute a = … method m …. Object O … attribute a = … The rest of the environment
Binding salary name(”Brown”) address(. . ) job(. . ) works. In (. . ) Section pushed by the third where operator for the Brown’s object name(. . ) address(. . ) salary(. . ) job(. . ) works. In (. . ) Section pushed by the second where operator for an Emp object . . Global stack sections
carburettor bolt 10 x 30 starter …… …. . engine …. . ……
myperson ancestors allcousins result
Emp(i 1) Temporary processing section X(i 127) Y(i 128) N(5) I("Maria") Temporary processing section properties of an executed procedure . . Conceptual ENVS name(i 10) sal(i 11) address(i 12) works. In(i 16). . Temporary processing section - properties of a processed object Temporary processing section Binders to volatile properties of the current client session Emp(i 1) Emp(i 5) Emp(i 9). . . Dept(i 17) Dept(i 22). . . Database section Libraries and computer environment Emp(i 1) Environment of iloc. . Optimized ENVS Environment of i 9. . Environment of ises Environment of idb Libraries and computer environment
Person[0. . *] name: string birth. Year: integer address [0. . 1] city: string street: string house: integer age(): integer Emp[0. . *] eno: integer works. In job: string[0. . 1] sal: real manages[0. . 1] change. Sal(new. Sal: real) net. Sal( ): real employs[1. . *] boss Dept[0. . *] dno: integer dname: string loc: string[1. . *] budget(): real
P 1 calls P 2 Top of the stack Activation record of P 1. . . . Global entities P 1 is running P 2 calls P 3 Activation record of P 2 Activation record of P 1. . . . Global entities P 2 is running P 3 ends Activation record of P 3 Activation record of P 2 Activation record of P 1. . . . Global entities P 3 is running P 2 ends Activation record of P 2 Activation record of P 1. . . . Global entities P 2 is running Activation record of P 1. . . . Global entities P 1 is running time


