Data model and schema

This section describes the entities that YDB uses within DBs. The YDB core lets you flexibly implement various storage primitives, so new entities may appear in the future.

YDB is a relational database where the data is stored in tables with each table consisting of rows and columns. Database objects in YDB can be organized into a hierarchy of folders.

Scheme objects in YDB all follow the same naming rules described in the section below. However, requirements for column names are slightly different.

Database object naming rules

Every scheme object in YDB has a name. In YQL statements, object names are specified by identifiers that can be enclosed in backticks or not. For more information on identifiers, refer to Keywords and identifiers.

Scheme object names in YDB must meet the following requirements:

  • Object names can include the following characters:
    • uppercase latin characters
    • lowercase latin characters
    • digits
    • special characters: ., -, and _.
  • Object name length must not exceed 255 characters.
  • Objects cannot be created in folders, which names start with a dot, such as .sys, .medatata, .sys_health.

Column naming rules

Column names in YDB must meet the following requirements:

  • Column names can include the following characters:
    • uppercase latin characters
    • lowercase latin characters
    • digits
    • special characters: - and _.
  • Column names must not start with the system prefix __ydb_.