Download SQL Modeling ServicesM

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Entity–attribute–value model wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Team Foundation Server wikipedia , lookup

Database wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Functional Database Model wikipedia , lookup

SQL wikipedia , lookup

Clusterpoint wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

PL/SQL wikipedia , lookup

Relational model wikipedia , lookup

Database model wikipedia , lookup

Transcript
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