Роль и значение домена в реляционной модели СУБД

Домен в реляционной модели СУБД - это множество значений, которые могут быть присвоены атрибутам в таблице. Например, если у нас есть атрибут "возраст" в таблице "студенты", и мы хотим, чтобы значения этого атрибута были только положительными числами, то мы можем определить домен для этого атрибута как "числа больше нуля". Вот пример создания таблицы с определенными доменами в SQL:

CREATE DOMAIN positive_integer AS INTEGER CHECK (VALUE > 0);

CREATE TABLE students (
    id INT,
    age positive_integer,
    name VARCHAR(50)
);
В приведенном примере мы определили домен "positive_integer" с помощью ключевого слова "DOMAIN". Затем мы использовали этот домен для определения атрибута "age" в таблице "students". Таким образом, использование доменов позволяет нам задавать ограничения на значения атрибутов и обеспечивает более строгую проверку данных.

Детальный ответ

Что такое домен в реляционной модели СУБД?

В реляционной модели базы данных используется понятие "домен" для определения различных типов данных, которые могут быть сохранены в таблицах базы данных. Домен представляет собой набор валидных значений определенного типа данных, таких как целые числа, строки, даты и другие.

Домены в реляционной модели помогают обеспечить целостность данных, ограничивая допустимые значения для конкретного атрибута таблицы. Они определяют диапазон значений, которые могут быть сохранены в определенном атрибуте, и проверяют, что вводимые данные соответствуют определенным правилам.

Примеры доменов

Для более ясного понимания, давайте рассмотрим несколько примеров доменов в реляционной модели:


CREATE TABLE Students (
    StudentID INT,
    Name VARCHAR(50),
    Age INT CHECK (Age >= 18 AND Age <= 25),
    Gender CHAR(1) CHECK (Gender IN ('M', 'F'))
);
    

В приведенном примере создается таблица "Students" с несколькими столбцами, каждый из которых имеет свой домен:

  • StudentID: Домен типа INT, который ограничен целыми числами.
  • Name: Домен типа VARCHAR(50), который ограничен строками длиной до 50 символов.
  • Age: Домен типа INT, который ограничен целыми числами в диапазоне от 18 до 25.
  • Gender: Домен типа CHAR(1), который ограничен символами 'M' или 'F'.

Все эти домены определяют форматы данных, которые могут быть сохранены в соответствующих столбцах таблицы.

Валидация данных с помощью домена

Одним из основных преимуществ использования доменов является возможность валидации данных. Домены могут содержать правила или ограничения, которые должны выполняться при вставке, обновлении или удалении данных в таблице.

Возвращаясь к примеру таблицы "Students", давайте рассмотрим два ограничения на домен "Age". Первое ограничение требует, чтобы значение "Age" было больше или равно 18 и меньше или равно 25. Второе ограничение требует, чтобы значение "Gender" было или 'M' (мужской) или 'F' (женский).


INSERT INTO Students (StudentID, Name, Age, Gender)
VALUES (1, 'John Doe', 20, 'M'); -- Эта запись будет успешно добавлена
INSERT INTO Students (StudentID, Name, Age, Gender)
VALUES (2, 'Jane Smith', 17, 'F'); -- Эта запись вызовет ошибку, так как возраст не валидный
INSERT INTO Students (StudentID, Name, Age, Gender)
VALUES (3, 'Robert Johnson', 23, 'X'); -- Эта запись вызовет ошибку, так как пол не валидный
    

Код выше показывает несколько примеров вставки строк в таблицу "Students". Первая запись проходит валидацию, так как значения "Age" и "Gender" находятся в пределах допустимых значений, определенных доменами.

Однако, вторая и третья записи вызывают ошибку, так как не соответствуют ограничениям доменов. Вторая запись имеет значение "Age", которое меньше минимального значения 18, а третья запись имеет значение "Gender", которое не соответствует допустимым значениям 'M' или 'F'.

Заключение

В реляционной модели базы данных домен представляет собой способ определения и ограничения типов данных, которые могут быть сохранены в таблицах. Они помогают обеспечить целостность данных, задавая правила и ограничения для значений атрибутов. Домены также позволяют проводить валидацию данных, гарантируя, что только правильные значения могут быть вставлены, обновлены или удалены из таблицы.

Видео по теме

Что такое реляционная модель данных - простыми словами

Что такое реляционная модель данных - термины простыми словами

Лекция 22: Реляционная база и модель данных

Похожие статьи:

Что такое хранилище DWH: основы и важность

Роль и значение домена в реляционной модели СУБД