Data Structure Definition V10
Contents
Overview
An SDMX Data Structure Definition (DSD) describes the structure and dimensionality of a dataset in terms of its dimensions, attributes and measures.
Structure Properties
Structure Type | Standard SDMX Structural Metadata Artefact |
---|---|
Maintainable | Yes |
Identifiable | Yes |
Item Scheme | No |
SDMX Information Model Versions | 1.0, 2.0, 2.1 |
Concept ID | DSD |
Context within the SDMX 2.1 Information Model
The schematic illustrates the Data Structure Definition artefact within the SDMX 2.1 Information Model
Usage
Data Structure Definitions (DSDs) are used to describe the structure of datasets by specifying their constituent Components:
and optionally the Representation for each Component.
Each Dataflow references a single DSD which describes the structure of the dataset that the Dataflow represents.
Conventions
DSD IDs
DSD IDs are conventionally written uppercase using underscores '_' as separators if required. Examples:
Agency | DSD ID | Description |
---|---|---|
Eurostat | NA_MAIN | European National Accounts Main Aggregated Statistical Indicators |
IMF | BPO | Balance of Payments and International Investment Position |
World Bank | WDI | World Development Indicators |
Data Structure Components
The Role of Concepts In Defining a DSD's Components
Every Dimension, Attribute and Measure is described by a predefined Concept. Concepts have their own default Representation which can be overridden by defining a Local Representation for the Component in the DSD. That's particularly helpful when using some standard Concepts like the SDMX Cross Domain Concepts where the default Representation is 'String', but the Component needs to be Enumerated or have some use case specific restriction on what values are allowable.
Dimensions
A DSDs Dimensions are the minimal set of statistical concepts capable of uniquely identifying a specific series. For Time Series, the Dimensions in combination with the Time Dimension, uniquely identify an Observation.
In this sense, the Dimensions of a dataset together form its primary key.
Ordering of Dimensions in a DSD
The Dimensions in a DSD have a defined order and together form the dataset's Series Key.
Below is a simple example DSD:
Position | Component Type | Component ID | Description |
---|---|---|---|
1 | Dimension | INDICATOR | Indicator |
2 | Dimension | REF_AREA | Reference Area |
3 | Dimension | FREQUENCY | Data Frequency |
n/a | Time Dimension | TIME_PERIOD | Observation Time |
n/a | Attribute | UNIT_MULT | Unit Multiplier e.g. tens, thousands, millions |
n/a | Attribute | Observation Status | Observation Status e.g. Estimated, Final |
n/a | Primary Measure | Observation Value | The observation value |
The Series Key is the concatenation of the Dimensions in the order specified in the DSD. In this example, the Series Key is:
INDICATOR.REF_AREA.FREQUENCY
Attributes do not form part of the Series Key so have no explicit or implied ordering.
Attributes
Attributes allow extra concepts to be added to the dataset to provide additional information about the variable being measured such as the unit multipler or observation status.
Attributes are unique in that they must be attached to specific levels in the dataset at DSD design time.
Primary Measure
All DSDs must have a Primary Measure Component, which is used for the observation value of the main variable being measured. Like all components, the Primary Measure must reference a Concept. For many series, the measure is numeric, but does not need to be so.
Time Dimension
A Time Dimension is required for DSDs representing Time Series datasets. Again, the Time Dimension must reference a Concept which should have an appropriate time representation - typically Observational Time Period.
Attribute Attachment Levels
In designing a DSD, attributes must be attached to specific levels in the datasets.
Attachment Level | Description |
---|---|
Dataset | A single value for the attribute is set for the complete dataset |
Series | A different value for the attribute can be set for each series |
Observation | A different value for the attribute can be set for each individual observation in a time series |
Groupe | A different value for the attribute can be set for a Group of series |