Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Entity–attribute–value model wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Team Foundation Server wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Functional Database Model wikipedia , lookup
Clusterpoint wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
SQL Modeling Services M Robert Hogg FBCS, CEng Senior Architect Black Marble LTD THE “OSLO” BACK STORY Multi-year, Multi-product vision A LAP AROUND MODELING What is a Model? A DESCRIPTION OF A GIVEN DOMAIN DRAWINGS Models used to communicate with others Examples: Dataflow, Use Case, … MODEL-ASSISTED Models used to understand or manipulate code Examples: Static Structure, Sequence, … MODEL-DRIVEN Models executed by runtimes directly Examples: HTML, CSS, XAML, BPEL, … Model-driven Platform DECLARATIVE CONTENT wpf:ContentControl wf:StateMachine .NET 3.0 xsd:schema wsdl:definitions Web Services app.config [YourAttributeHere] .NET 1.0 [Transaction] midl.exe COM (+) TIME Model-driven Applications Textual domain specific language (CAML) Visual designer (SharePoint Designer) Application definition stored in database Textual domain specific language (X++) Visual designer (MorphX) Application definition stored in database Why is this happening? TRANSPARENCY Better understanding of your application FLEXIBLITY Faster changes to your application PRODUCTIVITY “More essence, less ceremony” Data and Modeling Visual Studio Entity Framework ADO.NET SQL Azure SQL Server “Quadrant” Data Services “M”/EDM SQL Server Modeling Services … What is "SMS"? THE PLATFORM FOR MODEL-DRIVEN APPLICATIONS “M” Modelling language “Quadrant” Modelling tool SQL Server Modeling Services Model store Key "SMS" Concepts TEXTUAL DSLs RUNTIMES VISUAL DSLs MODELS "SMS" Architecture “QUADRANT” [Your Visual DSL] EDITOR FRAMEWORK [Your Textual DSL] LANGUAGE FRAMEWORK Composition MSchema Generic Viewers MGrammar Dataflow MGraph RUNTIMES XML, Custom Formats, … [Your Runtime] “Dublin” ASP.NET WF ADO .NET WCF SQL/EDM REPOSITORY REPOSITORY SQL SERVER REPOSITORY SQL SERVER OTHER TOOLS (VSTS, EXCEL, …) [YourSQL Models] SERVER [Your Models] Base [Your Models Models] Base Models “M” Runtime .Net Models “M” Runtime Repository Models Windows Other ISV Runtimes XML, Custom Formats, … ONE TRUTH SQL SERVER MODELING SERVICES Repository Capabilities • Repository features are built on SQL Server – Repository install also turns on useful features, e.g. replication and mirroring Repository Features Repository catalog, secure views, auditing, versioning, claims-based security, glob/loc, etc. SQL Server Features system catalog, Change Data Capture, replication, SSIS, mirroring, security, etc. QUADRANT What is "Quadrant"? • Graphical tool used for managing instance models – Targeted at architects and business analysts • Loads model definitions from repository database – Allows management of instances – Changes are saved to database immediately Quadrant Modelling Tool "Quadrant" Architecture SERVICES SHELL AND SURFACE COMPOSITION ENGINE Core Services Undo/Redo Commands Drag/Drop Selection Activation Error Handling Nesting Sizing Layout Snapping General Services Search Validation Annotations Relationship Highlighting DATAFLOW ENGINE Caching, Virtualization, Change tracking, and Notification REPOSITORY Target Data Configuration View State THE MODELLING LANGUAGE Why “M”? • Interacting with Oslo content needs to be simple and natural • Textural based modelling language What Is “M”? • “M” is a language for defining domain models and textual domain-specific languages (DSLs) • M domain models define schema and query over structured data – Values, Constraints, and Views – Natural projection to SQL • M DSLs define projections from Unicode text to structured data – Rule-based transformation – Grammar-driven text editor integration codename “m”: a language for data “M” T-SQL Specification Grammar Specification EDMX Specification The "M" Language DSL "M" Point.m Domain Model DSLX DomainX.m Domain Model PointLanguage.mg Domain Grammar DomainX.mg Domain Grammar Domain-specific data models type Point { X : Integer; Y : Integer; } MSchema Domain-specific grammars MGrammar Abstract data model MGraph DSLY DomainY.m Domain Model DomainY.mg Domain Grammar language PointLanguage { syntax Main = h:Integer "," v:Integer => Point { X { h }, Y { v }}; } Point { X { 100 }, Y { 200 } } “M” Language Example // Module: Used to scope model definitions module Test.TimeReport { // Type: Defines employee data structure type Employee { Id : Integer32 FirstName : Text where value.Count <= 100; LastName : Text where value.Count <= 100; } // Extent: Contains zero or more employees Employees : Employee*; } MSchema is used to model data structures, storage, views and constraints Using “M” to Model a Database // Module: Used to scope model definitions module Test.TimeReport { // Type: Defines employee data structure type Employee { FirstName : Text where value.Count <= 100; LastName : Text where value.Count <= 100; } // Extent: Contains zero or more employees Employees : Employee*; } create table [Test.TimeReport].[Employees ] ( [FirstName] nvarchar(100) Compile not null, [LastName] nvarchar(100) not null, ); go • Once they’re in the database, it’s just SQL • “TSQL can be used to create repository structure or standard database structure – Repository TSQL is more complex “M” Code “M” Command-Line Tools What “M” Is Not • An object-oriented language – No polymorphism, virtual dispatch – “Is-a” determined based on structural subtyping, not stipulation • A data access technology – M domain models compile down to T-SQL – Tool chain supports course-grained loading/unloading of schemas and values – not an OLTP solution • A replacement for T-SQL – Far less expansive feature set – Tool chain supports linking/invoking T-SQL INTELLIPAD IntelliPad Editing Tool • Simple text based code editor • Supports “M” languages • Provides instant feedback of code compilation – Great for learning “M” languages • Visual Studio can also be used for “M” – Most likely scenario in real projects IntelliPad Editing Tool Modelling data in IntelliPad TSQL code is created instantly M: Visual Studio DEMO SUMMARY Bits http://msdn.com/data SDK Download SDK Contains Repository database “M” modelling language (MSchema, MGrammer) IntelliPad editor N Community BoggersGuides.net Use “Oslo” today Use “M” to model a database! MGrammar Language for creating textual DSLs Specification will be released under OSP Coming up… P/X001 How to Get Full Access to a Database Backup in 3 Minutes or Less Idera P/L001 End-to-end database development has arrived Red Gate P/L002 Weird, Deformed, and Grotesque –Horrors Stories from the World of IT Quest P/L005 Expert Query Analysis with SQL Sentry SQLSentry P/T007 Attunity Change Data Capture for SSIS Attunity #SQLBITS