Использование доменов, наборов символов, сопоставлений и трансляций — КиберПедия 

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Использование доменов, наборов символов, сопоставлений и трансляций

2020-06-02 113
Использование доменов, наборов символов, сопоставлений и трансляций 0.00 из 5.00 0 оценок
Заказать работу

На безопасность также влияют домены, наборы символов, сопоставления и трансляции. В частности, создавая домены, внимательно следите, чтобы из-за них не пострадала ваша система безопасности.

Можно определить домен, который охватывает какой-либо набор столбцов. Таким образом, у всех этих столбцов был один и тот же тип, а также одни и те же ограничения. Теперь столбцы, создаваемые оператором CREATE TABLE, смогут унаследовать тип и ограничения домена. Конечно, если нужно, то для отдельных столбцов эти характеристики можно перезаписать. Однако домены – это удобное средство, которое дает возможность с помощью одного объявления задавать многочисленные характеристики сразу для целого набора столбцов.

Домены удобны тогда, когда есть множество таблиц, имеющих столбцы с похожими характеристиками. Например, база данных вашей фирмы может состоять из нескольких таблиц. Представим, что в каждой из них находится столбец PRICE (цена), у которого должен быть тип данных DECIMAL(10.2), а значения в этом столбце должны быть не отрицательными и не больше 10000. Тогда, прежде чем создавать таблицы с такими столбцами, нужно создать домен, указывающий характеристики этих столбцов. Создание домена PriceTypeDomain (домен типа цены) показано в следующем примере:

CREATE DOMAIN PriceTypeDomain DECIMAL (10.2)CHECK (Price > = 0 AND Price <= 10000);

Возможно, в каком-либо наборе таблиц ваши товары будут определяться с помощью столбца ProductCode (код товара), у которого в каждой таблице тип данных составляет CHAR(5), первый символ должен быть X, С или Н, а последний – или 9, или 0. Для таких столбцов также можно создать домен, например ProductCodeDomain (домен кода товара), что и делается в следующем примере:

CREATE DOMAIN ProductCodeDomain CHAR (5)CHECK (SUBSTR (VALUE, 1.1) IN ("X", "С", "Н")AND SUBSTR (VALUE, 5.1) IN ("9", "0"));

Определив домены, можно приняться за создание таблиц, например таблицы PRODUCT (товар):

CREATE TABLE PRODUCT(ProductCode ProductCodeDomain,ProductName CHAR (30),Price PriceTypeDomain);

Как только в определении таблицы для поля ProductCode или Price нужно задавать тип данных, указывается соответствующий домен. Таким образом, эти столбцы получают нужные типы данных и, кроме того, для них устанавливаются ограничения, определенные в операторах CREATE DOMAIN.

При использовании доменов возникают вопросы, связанные с безопасностью. Если кто-то другой вдруг захочет использовать созданные вами домены, то может ли такое использование привести к осложнениям? Может. Что если кто-то создаст таблицу со столбцом, в котором используется домен PriceTypeDomain? Пользователь может в этом столбце постепенно увеличивать значения и делать это до тех пор, пока столбец не перестанет их принимать. Таким образом можно будет определить верхнюю границу значений PriceType (тип цены), которую вы указали в предложении CHECK (проверка) оператора CREATE DOMAIN. И если значение этой верхней границы является закрытой информацией, необходимо запретить использовать домен PriceType неуполномоченным пользователям. Чтобы защитить вас в подобных ситуациях, SQL позволяет использовать чужие домены только тем, кому владельцы доменов явно предоставят соответствующее разрешение. Такое разрешение может предоставлять только владелец домена (и, конечно же, администратор). А само предоставление разрешения выглядит так:

GRANT USAGE ON DOMAIN PRICE_TYPE TO SALES_MGR;

Внимание:
Если к доменам применять оператор DROP, то могут возникнуть проблемы, связанные с безопасностью. И когда вы попытаетесь с помощью DROP отправить домен "в небытие", а в каких-либо таблицах есть столбцы, определенные с помощью этого домена, то такие таблицы станут источником неприятностей. Не исключено, что перед тем как применить оператор DROP к самому домену, этот оператор вначале придется применить к каждой из использующих его таблиц. Возможно, вы обнаружите, что к доменам этот оператор вообще не применим. Действие оператора DROP зависит от конкретной реализации. SQL Server может сильно отличаться в этом смысле от Oracle. Но, видимо, в любом случае придется ограничить круг лиц с разрешением применять оператор DROP к доменам. То же самое относится к наборам символов, сопоставлениям и трансляциям
.


Поделиться с друзьями:

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

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.