powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Есть ли практическая польза от доменов?
5 сообщений из 5, страница 1 из 1
Есть ли практическая польза от доменов?
    #40102575
delphinotes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для себя увидел лишь единственное удобство: на уровне UML-схемы БД удобнее абстрагироваться от физических типов данных.
В БД же, которые умеют работать с доменами (щупал Firebird и Postgres), особых плюсов не увидел. Так и так при написании кода надо смотреть, какие типы в столбцах, так и так глобальная смена типа данных внутри домена приводит к перекомпиляции/пересоздании зависимых вьюх/процедур/триггеров..

Поделитесь плиз опытом.
...
Рейтинг: 0 / 0
Есть ли практическая польза от доменов?
    #40102633
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То же самое, что и подпрограммы в ЯП: объявил однажды - используешь везде.

Да, в "Hello World" подпрограммы не нужны от слова "совсем".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Есть ли практическая польза от доменов?
    #40103000
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да.
Домены - это классический подход к проектированию баз данных.

Атрибуты определяются не типами данных СУБД, а именами доменов, к которым они относятся.

К сожалению Oracle Database не использует домены,
хотя приобрела в 1994 году у фирмы Digital Equipment Corporation (DEC)
продукт DEC Rdb вместе с командой разработчиков (200+ человек).

В Oracle Rdb домены есть и очень хорошо реализованы:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
-- The following domain ensures that any dates inserted into the database
-- are later than January 1, 1900:
CREATE DOMAIN TEST_DOM DATE
   DEFAULT NULL
   CHECK (VALUE > DATE’1900-01-01’ OR VALUE IS NULL)
   NOT DEFERRABLE;

-- The following example creates a table with
-- one column based on the domain TEST_DOM:
CREATE TABLE DOMAIN_TEST(DATE_COL TEST_DOM);

-- SQL returns an error if you attempt to-- insert data that does not conform 
-- to the domain constraint:
INSERT INTO DOMAIN_TESTVALUES (DATE’1899-01-01’);
%RDB-E-NOT_VALID, validation on field DATE_COL caused operation to fail



Команда ALTER DOMAIN позволяет изменить тип данных, значение по умолчанию, ограничение CHECK и др.
Изменения домена отразятся на всех таблицах и view, использующих данный домен
(Any table or view definitions that refer to that domain reflect the changes)

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
SQL> SHOW DOMAIN POSTAL_CODE_DOM
POSTAL_CODE_DOM CHAR(5)

SQL> ALTER DOMAIN POSTAL_CODE_DOM IS CHAR(10);

SQL> SHOW TABLE COLLEGES
Information for table COLLEGES
Columns for table COLLEGES:
Column Name Data Type Domain
----------- --------- ------
.
POSTAL_CODE CHAR(10)  POSTAL_CODE_DOM

SQL> ALTER DOMAIN D1 INTEGER ADD CHECK (VALUE > 10)
cont> NOT DEFERRABLE;

SQL> SHOW DOMAIN D1;
D1 INTEGER
Valid If: (VALUE > 10)
SQL> ROLLBACK;
SQL> --

SQL> ALTER DOMAIN D1 INTEGER ADD CHECK (D1 > 10)
cont> NOT DEFERRABLE;

SQL> SHOW DOMAIN D1;
D1 INTEGER
Valid If: (D1 > 10)


Как видно для DDL также действуют команды ROLLBACK и COMMIT.

* * *

Сейчас уже практически завершено портирование OpenVMS на платформу Intel.
https://vmssoftware.com/

Было бы здорово, если бы Oracle портировала под OpenVMS и Oracle Rdb.
...
Рейтинг: 0 / 0
Есть ли практическая польза от доменов?
    #40103261
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
delphinotes
В БД же, которые умеют работать с доменами (щупал Firebird и Postgres), особых плюсов не увидел.

Лично мне их не хватает. Особенно когда пришлось делать проект на MSSQL, где на каждое первое строковое поле надо вешать constraint.
...
Рейтинг: 0 / 0
Есть ли практическая польза от доменов?
    #40104658
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Особенно когда пришлось делать проект на MSSQL, где на каждое первое строковое поле надо вешать constraint.
Вроде подходит user-defined type .
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Есть ли практическая польза от доменов?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]