Математика

Физика

Химия

Биология

Техника и    технологии

Логика, алгебра и базы данных-Грэй П. М.: Машиностроение, 1989. - 368 с.: ил
Грэй П.
91 Логика, алгебра и базы данных / Пер. с англ. X. И. Килова, Г. Е. Минца; Под ред. Г. В. Орловского, А. О. Слисенко. - М.: Машиностроение, 1989. - 368 с.: ил. ISBN 5-217-00178-Х
Изложены основные понятия математической логики и алгебры, которые лежат в основе таких приложений этих дисциплин, как базы данных, экспертные системы. системы логического программирования и др. Эти же понятия становятся методологической основой описания, анализа и моделирования автоматизированных интегрированных производств. Описаны концепция Кодасил, функциональные языки запросов, модели баз данных.
Для программистов, работающих в промышленности, преподавателей и студентов вузов в области вычислительной техники и информатики .
ОГЛАВЛЕНИЕ
Предисловие редакторов перевода.......................... 10
Глава 1. Исчисление высказываний........................... 13
1.1. Введение........................................ 13
1.2. Истинность и ложность предложений - двузначная
логика.......................................... 14
1.3. Составные предложения.................•......... . 15
1.4. Таблицы истинности для основных операций........ 15
1.5. Теоремы из булевой алгебры...................... 17
1.6. Законы де Моргана............................... 19
1.7. Дистрибутивный закон - предложения в нормальной
форме........................................... 20
1.8. Оператор ВЛЕЧЕТ.................................21
1.9. Правила вывода: цепное заключение и модус поненс 23
1. 10. Выводы.......................................... 24
1.11. Тавтологии и подстановка........................ 26
1. 12. Логическая эквивалентность и подстановка........ 27
1.13. Доказательство с введением допущения............ 28
1.14. Приведение к противоречию....................... 29
1.15. Доказательство методом резолюции................ 30
1.16. Преимущества метода резолюции................... 34
Глава 2. Исчисление предикатов............................. 35
2.1. Введение. Параметризованные предложения......... 35
2.2. Квантор общности V.............................. 36
2.3. Квантор существования 3......................... 37
2.4. Запись утверждения в языке исчисления предикатов 38
2.5. Комбинации кванторов............................ 39
2.6. Формальный синтаксис............................ 42
2.7. Семантические ограничения исчисления предикатов. 43
2.8. Теоретике-множественная модель.................. 43
2.9. Отрицание кванторов............................. 45
2. 10. Примеры кванторных утверждений.................. 46
2.11. Кванторные утверждения о данных................. 47
2. 12. Эквивалентность различных формул................ 48
2. 13. Приведение к системе дизъюнктов................. 49
2.14. Принцип резолюции............................... 51
2.15. Применение метода резолюций для ответов на вопросы ............................................ 52
2. 16. Эвристики для поиска доказательства............. 55
5
2.17. Подстановка и унификация........................ 56
2.18. Выводы.......................................... 57
Глава 3. Ламбда-выраження и обработка списков.............58
3.1. Введение....................................... 58
3.2. Функции как отображения множеств................ 59
3.3. Композиция функций: составной оператор.......... 65
3.4. Ограничение и объединение функций: условный опе-
ратор if........................................ 67
3.5. Формы аппликатнвного синтаксиса: ламбда-обозначения ............................................. 69
3.6. Запись рекурсивных определений в ламбда-обозначениях............................................ 71
3.7. Рекурсивная обработка списков................... 73
3.8. Типы рекурсивных функций........................ 77
3.9. Запись некоторых функций обработки множеств и
списков в ламбда-обозначениях................... 81
3. 10. Выводы.......................................... 84
Глава 4. Представление программ дизъюнктами: язык Пролог.. .85
4.1. История логического программирования............ 85
4.2. Элементы Пролога................................ 86
4.3. Вычисление как поиск от цели в глубину.......... 89
4.4. Примеры запросов к базе данных на Прологе....... 92
4.5. Аксиоматизация операций обработки списков....... 94
4.6. Механизм порождения новых ответов............... 95
4.7. Функции как конструкторы записей................ 98
4.8. Соотношение метода резолюции и поиска в глубину 102
4.9. Специальные предикаты в Прологе............>. . . 104
4. 10. Перевод ламбда-обозначений на Пролог........... 107
4.11. Некоторые основные процедуры обработки множеств
и списков...................................... 109
4. 12. Операции над базами данных и множествами в Прологе........................................... 1Ю
4.13. Выводы......................................... ИЗ
Глава 5. Представление программ в функциональных обозначениях............................................115
5.1. Функциональное программирование................ 115
5.2. Функциональный синтаксис языка KRC............. 116
5.3. Функции, управляющие итерацией: maplist, lit... 118
5.4. Функции, порождающие функции................... 120
5.5. Комбинаторы Карри н Тернера.................... 122
5.6. Функции, порождающие множества................. 124
5.7. Отложенные вычисления.......................... 126
5.8. Функции, оперирующие на потоках: примеры из языка
FQL............................................ 128
5.9. Выводы: основные операции FQL.................. 130
5.10. Обобщенные типы функций: примеры из языка НОРЕ. 132
5.11. Выводы......................................... 135
Глава 6. Реляционная модель............................... 137
6. 1. Введение....................................... 137
6.2. Общие свойства отношений в реляционной базе данных............................................ 138
6.3. Бинарная реляционная модель.................... 143
6.4. Объектно-связная модель........................ 145
6.5. Нормализация................................... 148
6.6. Обобщенные теоретике-множественные операции над
двумя отношениями.............................. 150
6.7. Различия между отношениями и файлами в Паскале н Коболе.......................................... 154
6.8. Подтипы и иерархии типов........................ 160
6.9. Выводы.......................................... 163
Глава 7. Языки, основанные на реляционном исчислении......165
7.1. Введение........................................ 165
7.2. Язык QUEL системы INGRES как исчисление, ориентированное на кортежи......................... 165
7.3. Синтаксис языка QUEL............................ 167
7.4. SQL н другие языки.............................. 171
7.5. Язык QBE: Query-by-Example...................... 177
7.6. Примеры из QBE и их сравнение с примерами из SQL 179
7.7. Использование выходных отношений, 'снимков" и представлений................................... 181
7.8. Операция GROUP.BY на SQL н QBE.................. 183
7.9. Выводы.......................................... 187
Глава 8. Реляционная алгебра: аппликативный язык...........188
8.1. Введение........................................ 188
8.2. Четыре основные алгебраические операции......... 189
8.3. Соответствие операциям обработки данных на последовательных файлах......................... 193
8.4. Композиция основных операций.................... 196
8.5. Сравнение алгебры и исчисления.................. 197
8.6. Язык Астрнд. Синтаксис обобщенной алгебры....... 198
8.7. Использование соединения с переименованием...... 200
8.8. Примеры запросов на Астриде в сравнении с запросами
на QBE..........................................203
8.9. Оператор расширения и вычисляемые поля.......... 205
8. 10. Операция группировки как расширенная проекция. . . 207
8.11. Операция обобщенной разности и квантор общности. 211
8.12. Формулирование сложных многострочных запросов... 212
8.13. Выводы.......................................... 213
Глава 9. Преобразование запросов в реляционной алгебре и
реляционном исчислении...........................2Н
9.1. Введение....................................... 214
9.2. Преобразование из реляционной алгебры в исчисление........................................... 216
9.3. Оптимизация алгебраических выражений - переупорядочение операций................................ 219
9.4. Оптимизация объединения и разности.............. 224
9.5. Преобразование выражений, содержащих группировку 226
9.6. Оператор деления и эквивалентные ему операторы. . 229
9.7. Другие полезные эквивалентности из теории множеств........................................... 232
9.И. Алгоритм оптимизации, применяемый в системе PRTY 232
9.9. Трансляция из QBE в реляционную алгебру......... 233
9.10. Алгоритм Кодда для преобразования реляционного исчисления в реляционную алгебру........... 238
9.11. Улучшенный вариант алгоритма Кодда, использующий группировку................................. 240
9.12.
Глава
Глава
10. Функциональная модель данных ............. , . . . 243 ...245
10.1 . Основные понятия : объекты и функции .......... . . . 246
10.2 . Композиция функций в функциональной модели ...... 254
10.3 . Сравнение разновидностей синтаксиса манипулиро-
вания данными ................................... 255
10.4 . Представление функциональной схемы с помощью от-
ношений ........................................ . 258
10.5 . Представление отношений схемой на Даплексе ...... 260
10.6 . Связь с абстрактными типами данных .............. 261
10.7 . Выводы: основные положения ...................... 262
11. База данных Кодасил DBTG ................... . . . 265
11.1 . Введение ....................................... . 265
11.2. Представление наборов с помощью цепочек и указа -
телей........................................... 267
11.3. Кодасиловская схема и ее диаграмма Бахмана...... 271
11.4. Дополнительные подробности описания набора...... 276
11.5. Предложения ANSI/SPARC: внешние представления
и структуры хранения............................ 280
11.6. Кодасиловские операции языка манипулирования
данными......................................... 282
11.7. Форматы команды FIND............................ 285
11.8. Другие команды языка манипулирования данными.... 289
11.9. Выводы.......................................... 291
Глава 12. Функциональные языки запросов для баз данных типа Кодасил.................................... 292
12.1. Реализация языка FQL для базы данных типа Кода-
сил............................................ 293
12.2. Реализация Даплекс-функций над Кодасилом....... 296
12.3. Представление Даплекс-схемы кодасиловскими наборами ......................................... 298
12.4. Формирование реляционного представления основ -
ной схемы Кодасил ............................. 300
12.5. Реализация операций реляционной алгебры над
Кодасилом...................................... 308
12.6. Модификация программ в системе Астрнд.......... 310
12.7. Проблемы модификаций и их отображение в базах
данных......................................... 316
12.8. Ограничения целостности........................ 320
12.9. Дальнейшее развитие............................ 324
12.10. Заключение..................................... 326
Приложение 1. Отношения базы данных "Кубок мира"..........328
Приложение 2. Синтаксис реляционной алгебры Астрид........ 334
Приложение 3. Диаграмма Бахмана и схема описания данных в
IDS-П для базы данных "Кубок мира".........337
Приложение 4. Синтаксис языка SQL........................ 341
Приложение 5. Синтаксис языка Даплекс..................... 343
Список литературы ......................................... 348
Список дополнительной литературы........................... 359
Предисловие редакторов перевода
Одним из важнейших путей резкого повышения технико-экономического уровня и качества машин, оборудования, приборов является электронизация и комплексная автоматизация производства, слияние островков" автоматизации в целостные интегрированные производственные комплексы - АСУ/АСНИ/САПР/АСТПП/ГПС/АСКИОГ Этим вопросам уделяется большое внимание и у нас в стране и за рубежом. В результате становится все более ясным, что сквозная автоматизация проектирования и производства упирается в необходимость создания единой стратегии управления данными -создание баз данных отдельных автоматизированных систем (САПР АСГПП и др.) и налаживание потоков данных между ними без потери информации. Это фундаментальная проблема, требующая активной работы не только специалистов-теоретиков, но и специалистов в области автоматизации производства.
АСУ - автоматизированная система управления; АСНИ - автоматизированная система научных исследований: САПР - система автоматизированного проектирования; АСТПП - автоматизированная система технологическое подготовки производства; ГПС - гибкая производственная система; АСКИО - автоматизированная система контроля и испытания объектов.
10
Каждая автоматизированная система (АС) требует описания входных данных. Чем больше таких систем, тем больше работа по подготовке данных. Без научного подхода к этой проблеме, без хорошей теории может создаться такое положение, когда АС будут простаивать (а порой уже и сейчас простаивают) из-за информационного голода. Необходима научная политика в создании баз данных в стране, обеспечивающая широкую кооперацию усилий отдельных предприятий, необходимо информационное обеспечение комплексной автоматизации промышленных предприятий, включающее разработку и стандартизацию СУБД, языков описания данных и т.д.
Хорошим введением в это новое направление может служить предлагаемая читателю книга П. Грэя. В отличие от ряда работ, появившихся за последние годы в отечественной и переводной литературе, в ней доступно и наглядно изложен материал. При сравнительно небольшом объеме в ней рассмотрены не только все популярные модели баз данных (реляционная, кодасиловская, функциональная), но и связи между ними, что составляет большое достоинство книги.
В книге изучаются приложения логического и аппликативного программирования к базам данных, рассматриваются современные языки запросов, в частности, такой популярный, как QBE: Query-by-Example (запрос по примеру). В нем широко используется распространенный язык логического программирования Пролог, мировую известность которому принесла идея его применения в компьютерах пятого поколения. Демонстрируются также возможности реляционной алгебры Астрид (ASTRID), являющейся расширением известной системы Кодда.
Основой книги послужил рассчитанный на широкую аудиторию курс лекций П. Грэя,читавшийся в Абердинском университете (Шотландия).
От читателя не требуется почти никаких предварительных знаний. Автор начинает с рассмотрения основ логического и аппликативного программирования и развития последнего по направлению к функциональному программированию. Эти подходы сопоставляются с методами, используемыми в таких классических языках баз данных, как Кобол. Описываются две классические модели баз данных -реляционная и кодасиловская, а также современная функциональная. Рассматриваются хорошо известные реляционные и более новые функциональные языки запросов. Показывается, как запросы можно переводить из логической в функциональную форму, и наоборот.
Подробное рассмотрение взаимосвязи между логическим и аппли-кативным программированием применительно к теории баз данных, проведенное в весьма популярной форме, как это сделано в книге
11

Цена: 150руб.

Назад

Заказ

На главную страницу

Hosted by uCoz