Cтраница 4
Для полного инкапсулирования в системе бизнес-требований нужно проверить возможность сохранения в модели сложной бизнес-транзакции. Способна ли модель сохранить всю информацию, связанную с наиболее сложной транзакцией. Поддерживает ли структура данных сложные запросы. Такие вопросы могут легко разрушить уже созданную модель. [46]
Результат выполнения запроса на выборку. [47] |
Возможно, в будущем запрос придется повторять неоднократно, чтобы оценить изменение объемов заказов на данную модель автомобиля на рынке сбыта в Москве. Чтобы не готовить проект запроса всякий раз заново, его следует сохранить. Прежде всего это рекомендуется делать для сложных запросов, в которых содержится много полей, критериев и вычислений. Обратите внимание на то, что сохраняется не результат выполнения запроса, а только спецификация запроса. [48]
Недавние разработки улучшают положение в этой области. Бунеман разработал очень простой и эффективный доступ к базе данных SEED CODASYL посредством функционального языка FQL. Сие-1 тема Астрид [46] позволяет получать ответы на сложные запросы в расширенной реляционной алгебре, эффективно пользуясь кодасиловскими связями между записями. В [117] показано, как представить схему Кодасил в виде набора виртуальных записей, соответствующих отношениям, и как применить методы обработки реляционных запросов в языках типа SQL. Наконец, функциональная модель данных ( ФМД) дает теоретическое обоснование кодасиловской модели. Поскольку ФМД можно отобразить и на QUEL, эта модель может стать основой для общего языка запросов в распределенной базе данных, объединяющей локальные кодасиловские и реляционные базы. [49]
Язык структурированных запросов SQL ( Structured Query Language) был разработан корпорацией IBM в 70 - х гг. XX в. Синтаксис SQL похож на синтаксис английского языка и позволяет конструировать достаточно сложные запросы. SQL является непроцедурным языком, в нем отсутствуют многие стандартные для процедурных языков конструкции - функции, циклы, условные операторы. Он состоит из инструкций, которые передаются СУБД, обеспечивая выполнение определенных действий. [50]
В еще более сложных случаях в запросе могут быть сформулированы некоторые логические условия относительно интересующих пользователя специалистов. Примером такого запроса может служить: Найти всех специалистов, которые либо являются токарями и моложе 25 лет, либо являются фрезеровщиками мужчинами. Запросы такого типа потребуют от системы наличия специальных процедур обработки сложных запросов, которые необходимо реализовать в модели мира. Усложнение систем подобного типа приводит к появлению реляционных баз информации и реляционных языков представления для них. [51]
Основным преимуществом алгебры является то, что она замкнута по отношению к реляционным операциям. Никакая из алгебраических операций не может создать объект, выходящий за рамки алгебры. В противоположность этому в языках, основанных на исчислении, для формулирования некоторых сложных запросов приходится формулировать вспомогательные подзапросы и запоминать их результаты как представления или снимки ( см. гл. Язык для создания такого рода представлений находится в некотором смысле вне языка исчисления. В то же время при использовании алгебры мы не нуждаемся ни в каких дополнительных конструкциях, когда нам нужно описать получение представлений, поскольку возможность работы с промежуточными отношениями уже предусмотрена, и поэтому можно создавать запросы любой сложности: некоторые из них занимают двадцать пять строк. Существенно здесь то, что пользователь может присвоить имя каждому промежуточному результату, если он захочет запомнить этот результат под таким именем. [52]