Проектирование схемы приложения. Эффективное использование синонимов в схеме приложения, страница 5

Другой причиной использования представлений является исключение из кода приложения сложных команд SQL. Это позволяет повысить эффективность его разработки. Например, приложение может применять сложные команды SQL для объединения данных нескольких таблиц или для использования простых запросов с представлениями, выполняющими те же операции объединения. В последнем случае вы можете кодировать и тестировать сложный запрос объединения только один раз — при создании представления. В первом же случае вам придется рабо­тать со сложными запросами каждый раз, когда приложению необходимо будет объединить данные таблиц. Это преимущество применения представлений иллю­стрируется рис. 15.6.

Защита

Другой причиной использования в схеме приложения представлений является защита. Например, если система клиент/сервер поддерживает для конечных поль­зователей специальные инструментальные средства запросов, иногда желательно, чтобы эти пользователи запрашивали табличную информацию косвенно, через представления. Это позволяет сделать часть информации скрытой. Например, следующее представление позволяет пользователю, обращаясь к информации о сотрудниках, запросить данные о себе, но не о других пользователях.

CREATE VIEW myinformation AS

SELECT * FROM emp WHERE ename = USER

Подробнее о создании представлений и управлении ими рассказывается ниже в разделе "Управление представлениями".


Эффективное использование синонимов в схеме приложения

В предыдущем разделе вы узнали о том, как для отделения логики приложения от тех таблиц, от которых она непосредственно зависит, можно с успехом исполь­зовать логику приложения: если приложение ссылается на представление, то при изменении имени таблицы оно сможет продолжать работать без модификации — потребуется лишь переопределить представление, задав в нем адресацию к новой таблице. Аналогичным образом вы можете применять другое средство Oracle7 —синонимы, которые позволяют достичь тех же целей, но в более широком мас­штабе. Синоним — это просто псевдоним (альтернативное имя) таблицы Oracle7. представления, последовательности, хранимой процедуры, функции, пакета пли другого синонима. Синонимы вы можете использовать, когда хотите устранить прямую зависимость приложения от объектов подобного типа. Например, следую­щие операторы показывают, как синонимы функции INVENTORY скрывают от кода приложения реальное имя таблицы STOCK:

CREATE SYNONYM inventory FOR stock

 INSERT FROM inventory VALUES (...)

 DELETE FROM inventory WHERE id = 5

Примечание

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

Подробнее о создании синонимов и управлении ими в схеме приложения рас­сказывается ниже в разделе "Управление синонимами".

Управление таблицами и ограничения ссылочной целостности

Если для создания схемы приложения вы не можете воспользоваться средством CASE или инструментом проектирования базы данных, то нужно вручную спла­нировать и изобразить эту схему на бумаге, а затем создать таблицы и представле­ния приложения с помощью команд SQL. Даже если для проектирования и создания схемы применяется средство CASE, полезно знать, как для создания, изменения и удаления таблиц и представлений (если вы с ними работаете) исполь­зуются DDL-команды SQL. В следующих разделах описывается, как с помощью отдельных DDL-команд SQL создаются и обслуживаются таблицы, а также огра­ничения ссылочной целостности. (Ниже в данной главе описываются те же опера­ции для представлений. См. также главу 16, в которой обсуждаются другие объекты схемы приложения, позволяющие улучшить его производительность, такие как индексы и последовательности.)

Создание таблиц

Если вы хотите создать для приложения новые таблицы, используйте команду SQL CREATE TABLE. Ниже приведен оператор, создающий новую таблицу и сохраняющий в ней информацию о заказах: