James F. Terwilliger Microsoft Research, Post-Doctoral Researcher Database Group, with Phil Bernstein Portland State University Ph.D., as soon as I deposit my dissertation Lois Delcambre, Dave Maier, Len Shapiro, Andrew Black
Entity Framework Key Microsoft technology Released as part of.Net framework 3.5 SP1 Many Microsoft properties migrating to use it Key Research technology Originated with database research group SIGMOD and ER papers
Entity Framework Select/Project queries Issue queries and updates in programming language against conceptual model Bi-directional mapping Entity T(a,b,c,d) = Table S(e,f,g,h)
Entity Framework Query Views Update Views Merge Views Resulting views are expressive enough to handle joins, unions, inheritance schemes (TPT, TPC, TPH, others)
Where is EF going in research? Alternative data models XML (VLDB 2008 demo) Extended expressive power Beyond SP mapping fragments, but with equal simplicity Both open, ongoing
6 Table P_1588: Data Dictionary: P_1588: Patients from WebRn Application, entered through form “Endoscopy Patient” Domain(Detail/Smkh_1670) = {0, 1, 2, 3, 4, X} 0: Non-Smoker1: Light smoker, 1-4 cigs/day 2: Moderate smoker, 5-8 cigs/day3: Heavy smoker, 9-12 cigs/day 4: Chimney, 13+ cigs/dayX: Data not available 1 DetailP_1588_ID … … … 578a-b440-cdf2-8e21Smkh_1670 Attr …
Application-Specific Query Interface 7
Dissertation Work RDBMS Business Software: Database-backed User interface for domain experts User Interface Business logic, data access, and transformation UI is an updatable view, and RDBMS likely has vastly different schema Query Interface
Unpivot Example: Update IDAttResult 1SYS122 1WKG80 1SMK1 2SYS115 2DIA81 2SMK4 ……… IDSYSDIAWKGSMK …………… 9 Frequent pattern Not covered by ORM systems Not covered by updatable views Not covered by mapping systems Result: lots of hard-coding But: Known invertible, updatable
Channel 10 T1 T2 T3 T4 T5 HMerge VPartition Unpivot Apply Unpivot HMerge Bi-Directional Extract-Transform-Load, workflow Built from components known to be updatable Queries, inserts, updates, deletes, schema evolution Conceptual schema generated from UI, or can be an arbitrary relational schema
Unpivot Example: Update IDAttResult 1SYS122 1WKG80 1SMK1 2SYS115 2DIA81 2SMK4 ……… IDSYSDIAWKGSMK …………… 11
Unpivot Example: Update IDAttResult 1SYS122 1WKG80 1SMK1 2SYS115 2DIA75 2SMK4 ……… IDSYSDIAWKGSMK …………… 12 Updated field becomes an update in the output
Unpivot Example: Update IDAttResult 1SYS122 1WKG80 1SMK1 2SYS115 2DIA75 2SMK4 ……… IDSYSDIAWKGSMK …………… 13 Thank you for not smoking Update statement turns into a delete statement! (If update is from a null value, need an insert)
Why? Fully-realized data independence 14 Physical Schema Conceptual Schema Queries (QI generated from UI) Insert, Update, Delete (UI) Schema Modifications (Design) Horizontal or Vertical Merging/Partitioning Pivoting or unpivoting Encoding or translation of values Business logic decisions “Fast” “Expressive” Physical Design, Business Logic Information preservation Yes we can! Referential Integrity
Agenda and Ideas Present my dissertation research (variable length) Re-live my dissertation defense Short EDM demo (variable length, informal) Discuss recent work in Entity Framework research (free talk, or whiteboard discussion, ~10 minutes) Gather co-conspirators coordinators for a database conference tutorial (discussion about topics, outline, participants)