Share via


SQL Server Modeling CTP Terminology

[This content is no longer valid. For the latest information on "M", "Quadrant", SQL Server Modeling Services, and the Repository, see the Model Citizen blog.]

This topic describes how some important terminology is used in the SQL Server Modeling CTP documentation.

Terminology in “M”, SQL Server Modeling Services, and “Quadrant”

The following table describes terms that are important in the Microsoft code name “M” modeling language, SQL Server Modeling Services, and Microsoft code name “Quadrant”.

Term Definition

data-driven programming

A software design approach in which an application’s behavior is determined by variable data values rather than the structure of the application code itself. This allows for greater flexibility at run time because the application can be dynamically configured and reconfigured without the need to recompile or redeploy its code. Also see model-driven programming.

declarative programming

In contrast to imperative programming, declarative programming is a development methodology in which the behavior of an application—the “what” of its operation—is declared without specifying the processes that perform that operation (the “how”). The “how” is left to a runtime engine that processes those declarations to produce the running application.

domain

A domain is a problem space, or a field of specialized knowledge. In “M”, this would be code that represents items in some field of expertise, typically including one or more modules and included extents that together project into SQL schemas and tables.

Dd819894.note(en-us,VS.85).gifNote:
In the current version of “Quadrant”, in the Catalog view in the "Quadrant" Explorer, this is the same collection of SQL schemas and the tables associated with them.

domain-specific language (DSL)

A textual language that has been designed to express concepts and expressions within a given domain; also called a DSL. Application-specific configuration files are an example of where DSLs have been routinely used, as are application-specific macro languages. DSLs, however, are generally broader than application-specific languages because they can be used across many applications within the same domain.

entity

A concept in the domain that is generally represented as an object class or data type. In “M”, an entity refers to one or more name-value pairs called fields. When projected into Transact-SQL, this is expressed as table row data, and is also called instance data or, in the case of one name-value pair, an instance.

extent

An “M” extent defines storage for a single value, a collection of integers, or a collection of entities. Extents can be declared using anonymous or separately declared types. All module-scoped extents cause SQL tables to be created when compiled.

Dd819894.note(en-us,VS.85).gifNote:
In the current version of “Quadrant”, an extent is visible only if the item under discussion was an extent in “M” and the extent has an identifier value. In SQL terms, an extent is visible in “Quadrant” if the SQL table has an ID.

imperative programming

In contrast to declarative programming, a development methodology that describes computation as statements that change a program state. In much the same way as the imperative mood in natural languages expresses commands to take action, imperative programs are a sequence of commands for the computer to perform. Procedural programming is a common method of executing imperative programming, and the terms are often used as synonyms.

instance, instance data

A particular set of values that conforms to some schema. In “M”, this is an entity; in database terminology, an instance is like a table row.

“M” Languages

The part of the “M” modeling language for defining the syntactical and lexical rules of a language, that is, the language’s grammar. This is the language definition feature of “M”. (In earlier stages of design, this was referred to as simply “G” or “MGrammar”, terms that are now obsolete.)

“M” values

The part of the “M” modeling language for defining instances of structured data. (In earlier stages of design, this was referred to as “MGraph”, a term that is now obsolete.)

model

A model is an abstract representation of an item or a concept—a car, a plane, or a building—or a part of something, such as a tire, a wing, or a room. A model is created in “M” by using an extent. Models can also be created directly in SQL Server 2008.

model-driven programming

A software design approach that offers the same benefits of data-driven programming, but is generally a richer approach because it works not just from data values, but from model instances. Just as the term model implies more deliberate design than arbitrary data structures do, model-driven programming implies a more conscious use of models over mere data. In this usage, there is a strong implication that models are designed to be shared data structures, and do not result simply to provide an implementation.

module

A module defines a top-level namespace for any type names that are defined in an “M” file. A module also defines a scope for defining extents that store actual values, as well as computed values. Modules are projected as SQL Server 2008 schema objects with associated tables, views, and other database elements.

“M” Types

The part of the “M” modeling language for defining constraints over data—the type definition component of “M”. (In earlier stages of design, this was referred to as simply “D” or “MSchema”, terms that are now obsolete.)

Open Specification Promise

Microsoft’s assurance that third parties can make, use, sell, import, and distribute any implementation of covered specifications without fear of legal action. For more information, see Microsoft Open Specification Process.

runtime

An executable engine that directly uses model instances to configure, execute, and manage a model-driven application. A runtime is typically implemented around a class of applications such that a specific application is created by providing the runtime with a specific set of configuration metadata.

schema

A definition of a data type, that is, the metadata that describes a type’s mandatory and optional attributes; in database terminology, a schema is like the table definition.

type

The type keyword in “M” is an expression that describes a set of values. “M” distinguishes how values are described (types) from the actual storage of the values (stored value groups are called extents).

Dd819894.note(en-us,VS.85).gifNote:
In the current version of “Quadrant”, an “M” type can be viewed if it is used to define the data in a table column constructed by an extent.

See Also

Other Resources

What is a Model?