Часть полного текста документа:Математическая логика. Язык SQL Выполнил Романов А.Н. Российский государственный гуманитарный университет Москва 2007 Язык запросов SQL Первыми попытками уйти от построения баз данных (БД) на основе физической структуры их размещения на носителях являлись индексные файлы. Они обеспечивали доступ к записанной в них информации посредством индексных ключей, то есть для поиска неких конкретных записей в файле использовалась совокупность указателей. К недостаткам такого подхода можно отнести, в частности, неоптимальное хранение информации (дублирование, недостаточное структурирование) и значительное время поиска в больших файлах, не говоря уже о существенных требованиях, предъявляемых к аппаратному обеспечению. Одним из решений упомянутых проблем стали иерархические БД. В таких базах элементы строго упорядочены, причем так, что данные одного уровня подчиняются (является подмножеством) данным другого, вышестоящего уровня. В такой модели связи могут быть отражены в виде дерева, причем допускаются только односторонние - от старших уровней к младшим. Подобная структура все еще напоминает древовидную файловую систему, где директории являются верхними уровнями, а файлы - нижними. Несмотря на то что по сравнению с индексными файлами это был существенный шаг вперед, иерархические БД наследовали многочисленные недостатки предыдущих систем, заключавшиеся в сложности алгоритмов доступа к данным нижних уровней и повышенных аппаратных требованиях. Иерархические БД не получили широкого распространения, уступив место новой концепции хранения данных (реляционные БД). Она заключалась в использовании табличного метода хранения и доступа к конкретным записям, который используются и в настоящее время. Прогресс в области сетевых технологий поспособствовал возникновению проблем организации доступа к данным, расположенным на серверах, с удаленных компьютеров - участников сети. Для оптимизации этого процесса и снижения сетевого трафика Международной организацией по стандартизации (ISO) был разработан и внедрен структурированный язык запросов SQL. С развитием Глобальной сети и ростом объемов обращающейся в ней информации задачи предоставления доступа к последней практически повсеместно стали решаться с помощью технологий БД в общем и SQL в частности. В настоящее время рядовой пользователь, сам того не зная, активно работает с базами данных, даже просто просматривая веб-странички и форумы, или пользуясь сервисами электронной почты и ICQ. Несмотря на то что иерархические БД еще не канули в лету окончательно, они, как упоминалось выше, используются крайне редко - в основном при решении неких специализированных задач, вследствие чего не имеет смысла подробно останавливаться на их устройстве. Гораздо интереснее рассмотреть реляционные БД. Итак, данные в таких базах размещены во взаимосвязанных таблицах, строки которых называются записями, а столбцы - полями. При этом данные в ячейках одного поля должны быть одинакового типа. В каждой таблице, как правило, имеются специальные поля, которые позволяют однозначно идентифицировать ту или иную запись - они называются первичными ключами или первичными индексами. Такие поля помогают отличать одну запись от другой, даже если все остальные поля нескольких таких записей абсолютно идентичны. ............ |