Роль и значение домена в реляционной модели СУБД
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'.
Заключение
В реляционной модели базы данных домен представляет собой способ определения и ограничения типов данных, которые могут быть сохранены в таблицах. Они помогают обеспечить целостность данных, задавая правила и ограничения для значений атрибутов. Домены также позволяют проводить валидацию данных, гарантируя, что только правильные значения могут быть вставлены, обновлены или удалены из таблицы.