Астрид - Большая Энциклопедия Нефти и Газа, статья, страница 2
Жизненно важные бумаги всегда демонстрируют свою жизненную важность путем спонтанного перемещения с места, куда вы их положили на место, где вы их не сможете найти. Законы Мерфи (еще...)

Астрид

Cтраница 2


Недавние разработки улучшают положение в этой области. Бунеман разработал очень простой и эффективный доступ к базе данных SEED CODASYL посредством функционального языка FQL. Сие-1 тема Астрид [46] позволяет получать ответы на сложные запросы в расширенной реляционной алгебре, эффективно пользуясь кодасиловскими связями между записями. В [117] показано, как представить схему Кодасил в виде набора виртуальных записей, соответствующих отношениям, и как применить методы обработки реляционных запросов в языках типа SQL. Наконец, функциональная модель данных ( ФМД) дает теоретическое обоснование кодасиловской модели. Поскольку ФМД можно отобразить и на QUEL, эта модель может стать основой для общего языка запросов в распределенной базе данных, объединяющей локальные кодасиловские и реляционные базы.  [16]

Серьезным недостатком регистров текущего является то обстоятельство, что они обновляются в результате побочных эффектов операции ЯМД, не видных программисту. Это наихудшее в программировании присваивание, и ошибки при такой работе весьма вероятны. Когда мы будем рассматривать интерфейс с функциональным языком ( FQL) и системой Астрид, мы увидим, что использование регистров необходимо обойти. Проблема возникает тогда, когда в программе работает цикл по записям из набора, из этого цикла происходит доступ к другим записям этого же типа, в результате чего регистры текущей для этого набора изменяются случайным образом. Эта проблема не возникает при спуске по обычной или обобщенной иерархии наборов и обращении к владельцам других типов по сетевым связям, потому что указатели владелец-член не проходят по циклу более чем через один экземпляр любого из типов записей.  [17]

Вначале мы рассмотрим, как транслировать выражения из алгебраической записи в реляционное исчисление или на Пролог, что сравнительно просто. В заключение детально изучим алгоритм Кодда, преобразующий произвольный запрос из записи в реляционном исчислении с кванторами в алгебраическую форму, в частности, в язык реляционной алгебры Астрид.  [18]

Другим важным доводом в пользу преобразования запросов является все более широкое использование распределенных без данных. Пользователь в некотором регионе страны, знакомый с одним языком запросов, например QUEL, желает получить доступ к удаленной базе данных, которая использует другой язык запросов, например Астрид. Вместо того чтобы заставлять такого пользователя изучать новый для него язык запросов, было бы желательно, чтобы система автоматически перетранслировала его запрос на нужный язык, и мы рассмотрим алгоритмы таких преобразований.  [19]

В следующем разделе мы будем рассматривать другой метод ( системы Астрид), где вместо выполнения операций над потоками значении данных пытаются модифицировать текст порождающей подпрограммы так, чтобы она получилась более эффективной за счет использования указателей кодасиловских наборов. Оказывается, что модификация программы для эффективного выполнения операции соединения обычно работает хорошо, потому что кодасиловские наборы были спроектированы для быстрого получения ответов на часто задаваемые вопросы; это выглядит так, как будто информация о соответствии кортежей при некоторых часто выполняемых операциях соединения заранее вычислена и сохранена в цепочках кодасиловских указателей. Когда это не удается, система отступает и порождает сопрограмму ( см. ниже), которая работает с потоками кортежей обычными методами. Другое преимущество метода модификации программ состоит в том, что он дает возможность использовать описанное ранее очень общее отображение системы Астрид, которое представляет отношения кусками программ, их порождающими.  [20]

Мы познакомились с тем, как писать запросы в обозначениях, основанных на реляционном исчислении и ориентированных на кортежи и домены. Теперь займемся изучением обозначений реляционной алгебры, которые эквивалентны реляционному исчислению по своей выразительной силе. В отличие от исчисления реляционная алгебра основана на применении ( аппликации) функций и на вычислении алгебраических выражений. Определим ряд операций над вещественными числами ( сложение, умножение и т.п.), с помощью которых записываются алгебраические выражения ( например, 2 х у), а также определим правила упрощения таких выражений. Мы можем определить также операции над отношениями ( теоретико-множественное объединение, соединение, селекция и другие) и использовать эти операции для записи выражений реляционной алгебры ( например, HTPU MECTOJB TPynnE), применяя правила упрощения таких выражений. Будут введены обозначения для полной реляционной алгебры, включающей также набор обычных алгебраических операций над числами. Будет показано, как записываются запросы на языке Астрид, для чего достаточно рассуждать в терминах обычных операций над таблицами, дающих новые таблицу, до тех пор, пока не получится таблица, содержащая требуемый результат.  [21]



Страницы:      1    2