
- •1.2. Обзор реляционной алгебры
- •Глава 1 Введение в базы и банки данных
- •1.1. Понятие базы и банка данных
- •1.2. Компоненты банка данных
- •1.2.1. Информационная база
- •1.2.2. Лингвистические средства
- •1.2.3. Программные средства
- •1.2.4. Технические средства
- •1.2.5. Организационно-административные подсистемы
- •1.3. Пользователи баз данных
- •1.4. Типология баз данных
- •1.4.1. Типология баз данных с точки зрения информационных процессов
- •1.5. Семантика баз данных
- •1.6. Типология моделей
- •Глава 2. Базовые технологии и основные этапы развития машинной обработки данных
- •2.1. Введение в технологии машинной обработки данных и основные определения
- •2.2. Примерная схема организации файлового ввода-вывода
- •2.3. Эволюция концепций обработки данных
- •2.3.1. Простые (линейные) файлы данных (начало 60-х гг.)
- •2.3.2. Методы доступа к записям (конец 60-х гг.)
- •2.3.3. Первые системы управления базами данных (начало 70-х гг.)
- •2.3.4. Системы управления базами данных
- •2.4. Схема управления данными в субд
- •2.5. Данные и управление их обработкой
- •2.5.1. Типы, форматы, структуры данных
- •2.5.2. Описание и обработка файлов
- •2.6. Особенности и компромиссы реализаций баз данных
- •Глава 3. Модели и структуры данных
- •3.1. Многоуровневые модели предметной области
- •3.2. Идентификация объектов и записей
- •3.3. Поиск записей
- •3.4. Представление предметной области и модели данных
- •3.5. Структуры данных
- •3.5.1. Линейные структуры
- •3.5.2. Нелинейные структуры
- •3.5.3. Сетевые структуры
- •3.6. Реляционная модель данных
- •3.6.1. Основные понятия реляционной модели данных
- •3.6.2. Основы реляционной алгебры
- •Глава 4. Физические модели баз данных
- •4.1. Организация данных на машинных носителях
- •4.1.1. Типы записей
- •4.1.2. Организация файлов — способ размещения записей
- •4.1.3. Способы адресации и методы доступа к записям
- •4 1.4. Схемы организации данных на внешних носителях
- •4.2. Физическое представление иерархических структур
- •4.2.1. Физически последовательное размещение
- •4.2.2. Левосписковые структуры с переполнениями
- •4.2.3. Использование указателей на «подобные» и «порожденные»
- •4.3. Физическое представление сетевых структур
- •4.3.1. Физически последовательное размещение
- •4.3.2. Использование указателей
2.5.2. Описание и обработка файлов
По мере развития средств вычислительной техники и расширения спектра задач, связанных с обработкой на ЭВМ, разработчики и пользователи стали уделять больше внимания информационной (нежели алгоритмической) стороне вопроса.
По-видимому достаточно подробное описание структур данных и установление их связи с файлами было впервые сделано в языке программирования Cobol (Common Business Oriented Language). Эта проблема была решена следующим образом — файл (набор данных на внешнем носителе) рассматривается как совокупность записей одинаковой структуры, каждая из которых представляет собой набор (агрегат) разнородных данных (в более поздних языках программирования — РL/1, Pascal, С, за подобными объектами так и закрепилось название «структура — structure»).
Проблема локализации описания данных. Приемы распознавания программой элементов данных или записей относятся к такому типу взаимодействия программ и данных, когда описание данных размещено в программе, а файл данных организован в соответствии с этим описанием (рис. 2.7, а). Однако этот способ может привести к нарушению функционирования или разрушению данных, если из-за ошибок программиста или оператора к программе будет подсоединен «неправильный файл».
Для установления независимости программ от данных в некоторых системах описание данных размещают совместно с файлом данных (рис. 2.7, б). По такому принципу организован весьма распространенный формат файла данных (с1Ы-формат), происходящий от систем dBase — Clipper — Foxbase — FoxPro, а затем принятый и рядом
других систем. В этом случае в начале файла создается заголовок, содержащий описание полей записи файла (имя, тип, длина данного, код информации и пр.), и таким образом, описание данных файла в программе не нужно.
Недостатком такого подхода является, например, необходимость использования программистами тех же имен данных, что содержатся в описании файла.
Следующим шагом явилось полное отделение описаний от данных и программ и сосредоточение их в специальных файлах (таблицах) —словарях данных (рис. 2.7, в), которые относятся к базам данных и системам управления базами данных.
2.6. Особенности и компромиссы реализаций баз данных
В заключение приведем основные отличительные особенности обработки данных, характерные для файловых систем и систем управления базами данных.
Файлы обладают следующими свойствами:
• файл, как правило, представляет собой совокупность записей одного типа, доступ к которым определяется типом организации файла и осуществляется только средствами операционной системы;
• файл описывают и используют в прикладной программе, работающей с данными.
Базы данных имеют следующие особенности:
• база данных представляет собой совокупность данных разного типа, причем часто по одним данным получают другие;
• база данных существует независимо от конкретной прикладной программы — база создается с целью интеграции данных, объединяющей данные многих приложений (но определенного назначения). База данных предназначена для совместного, многофункционального использования многими пользователями один раз введенных данных.
Надо отметить, что с точки зрения управления данными СУБД оперируют данными на содержательном уровне, хотя физические структуры, используемые для этих целей, могут и совпадать с аналогичными структурами, создаваемые ОС.
Коренное же отличие СУБД от файловых систем ОС состоит в том, что СУБД устанавливает связь между содержанием и адресом, а ОС — между именем и адресом данных.
В то же время эта граница постоянно подвергается «атакам» с обеих сторон. Например, ОС-360 с «индексным доступом к данным», IN-PICK, включающая язык поиска записей файлов по содержанию, UNIX, включающая команды сортировки, коррекции или объединения содержимого текстовых файлов, наподобие того, как это осуществляется с таблицами данных в СУБД. Тем не менее, следует признать это скорее исключением, чем правилом и в компетенцию ОС надо относить только связь «имя — адрес», оставляя другие зависимости на ответственность прикладных программ и оболочек СУБД и ГИПС (автоматизированные информационно-поисковые системы).
В общем случае можно сказать, что основные задачи обработки данных, решаемые на основе концепций баз данных, сводятся к следующим вопросам.
1. Каким образом сложные нелинейные структуры данных представить в виде линейных — наиболее соответствующих принципу последовательного представления (хранения) в машинной памяти?
2. Каким образом организовать данные, чтобы была возможность эффективного внесения, удаления и редактирования данных?
3. Как организовать данные, чтобы использование пространства памяти (плотность данных) было достаточно рациональным, а скорость доступа к записям данных высокой?
4. Каким образом организовать данные, чтобы поиск был эффективным и позволял отыскивать записи по нескольким ключам?
При этом, с точки зрения прагматики, создание базы данных это, по существу, попытка найти компромисс сразу по нескольким направлениям и сочетаниям нескольких взаимообратных факторов (с точки зрения их влияния на показатель общей эффективности системы), в том числе следующих:
1) эффективность — простота;
2) скорость выборки — стоимость (сложность) аппаратных средств;
3) скорость выборки — сложность процедур доступа;
4) плотность данных — время доступа и сложность процедур;
5) независимость данных — производительность;
6) гибкость средств поиска — избыточность данных;
7) гибкость поиска — скорость поиска;
8) сложность процедур доступа — простота обслуживания.