ВУЗ: Томский государственный университет систем управления и радиоэлектроники
Категория: Учебное пособие
Дисциплина: Базы данных
Добавлен: 28.11.2018
Просмотров: 10862
Скачиваний: 43
1.2 Файл и области применения файлов
11
Кроме того, каждой прикладной программе приходилось решать проблемы
именования частей данных и структуризации данных во внешней памяти [1].
1.2 Файл и области применения файлов
Историческим шагом в развитии информационных систем явился переход к ис-
пользованию файлов.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
С точки зрения прикладной программы файл — это именованная
область внешней памяти, в которую можно записывать и из ко-
торой можно считывать данные.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Работа с файлами невозможна без наличия операционной системы.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Операционная система — это базовый комплекс компьютерных
программ, обеспечивающий управление аппаратными средствами
компьютера, работу с файлами, ввод и вывод информации, а так-
же выполнение прикладных программ и утилит.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Специфические правила именования файлов, способ доступа к данным, хра-
нящимся в файле, и структура этих данных зависят от конкретной системы управ-
ления файлами — прикладной программы, обеспечивающей возможность форми-
рования файла, записи его на носитель информации и открытия для дальнейших
действий.
Область применения файлов достаточно обширна. Прежде всего, файлы при-
меняются для хранения различной текстовой информации: документов, текстов
программ, электронных таблиц и т. д. Такие файлы обычно образуются и модифи-
цируются с помощью различных текстовых редакторов или текстовых процессо-
ров. Структура текстовых файлов представляется в виде либо последовательности
записей, содержащих строки текста, либо последовательности байтов, среди кото-
рых встречаются специальные служебные символы.
Файлы, содержащие тексты программ, используются как входные тексты ком-
пиляторов и интерпретаторов языков программирования, которые, в свою очередь,
формируют файлы, содержащие объектные модули и подпрограммы. С точки зре-
ния системы управления файлами объектные файлы и библиотеки дополнительных
функций файловой системы обладают очень простой структурой, представляющей
собой последовательность записей или байтов [1]. Система программирования на-
кладывает на эту структуру более сложную и специфичную для данной системы
структуру объектного модуля. Логическая структура объектного модуля неизвестна
файловой системе и поддерживается средствами конкретного языка программиро-
вания.
Системы управления файлами в большинстве своем обычно обеспечивают
формирование и обработку слабоструктурированной информации, оставляя даль-
нейшую структуризацию непосредственно прикладным программам. Первые ин-
12
Глава 1. Обоснование концепции баз данных
формационные системы создавались на основе и при помощи простейших систем
управления файлами.
1.3 Основные понятия СУБД
При разработке информационной системы определенной предметной области
основным фактором является обеспечение надежного хранения и обработки посто-
янно существующей информации, при этом необходимо обеспечить выполнение
дополнительных функций, не всегда свойственных простым файловым системам.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Под предметной областью будем понимать любой тип органи-
зационной структуры, например банк, университет, завод, боль-
ницу.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Структура информации в информационных системах может быть очень сложна
для интерпретации, и хотя структуры данных различны в разных информационных
системах, между ними часто бывает много общего. На первом этапе использования
вычислительной техники для обработки информации проблемы структуризации
данных решались индивидуально в каждой информационной системе.
Таким образом, в начале 60-х годов преобладал так называемый позадачный
подход в использовании исходной информации, который характеризуется тем, что
для каждой программы обработки используются собственные («свои») файлы ис-
ходных данных.
Основным недостатком позадачного подхода являлось дублирование исходных
данных в различных файлах, что приводило к избыточности хранимой информа-
ции, а также к возникновению различных коллизий, проявляющихся в процессе
обновления данных.
Можно предположить, что при работе нескольких программ, оперирующих
с файлами, относящимися к одной предметной области, возникают проблемы с под-
держкой актуализации хранимых данных в приемлемое для конечных пользовате-
лей время.
С течением времени создавались необходимые надстройки над файловыми
системами (библиотеки программ), подобно тому, как это делается в компиля-
торах, редакторах и т. д. Но поскольку информационные системы требуют под-
держки сложных структур данных, эти индивидуальные дополнительные средства
управления данными, являющиеся существенной частью информационной систе-
мы (ИС), в основном дублировались в различных системах.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Стремление выделить и обобщить составную часть информаци-
онных систем, ответственную за управление сложно структуриро-
ванными данными, явилось первой побудительной причиной со-
здания систем управления базами данных (СУБД).
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Основные понятия СУБД
13
Однако изначально невозможно было обойтись только общей библиотекой про-
грамм, реализующей над стандартной базовой файловой системой более сложные
методы хранения и способы доступа к данным. Покажем это на примере.
Пусть необходимо разработать информационную систему, в которой ведутся
сведения о студентах вуза. Такая система должна обеспечивать выполнение следу-
ющих функций:
• выдачу по запросу пользователя списка студентов по группам;
• поддержку возможности перевода студента из одной группы в другую;
• прием абитуриентов;
• отчисление студентов.
При этом для каждой группы должна поддерживаться возможность получения
информации о кураторе группы, численности студентов, среднем размере стипен-
дии студентов группы за определенный временной интервал и т. д.
Разработать такую информационную систему можно с применением практи-
чески любого языка программирования, используя при этом для хранения данных
один потоковый текстовый файл. Расширять базовые возможности системы можно
за счет специальной библиотеки функций.
Поскольку в качестве минимальной информационной единицы в данной пред-
метной области можно выбрать студента, в этом файле содержится одна струк-
турная единица (запись) для каждого студента, которая может быть представ-
лена в следующей последовательности, отражающей основные сведения о сту-
дентах: ФИО студента (ФИО); номер студенческого билета (№_СТУД_БИЛЕТА);
дата рождения (ДАТА_РОЖД); номер группы (№_ГРУППЫ); размер стипендии
(СТИП); балл ЕГЭ (ЕГЭ). Используя один файл для хранения информации, необхо-
димо учитывать, что эта же запись должна содержать сведения и по группе, в кото-
рой обучается студент, — ФИО куратора (КУРАТОР); средний балл ЕГЭ (СР_ЕГЭ);
количество студентов (КОЛ_СТУД).
Поскольку в исходном файле хранится информация по разным студентам, то
для решения поставленных функциональных задач в такой системе необходимо
обеспечить доступ к конкретной записи по заранее заданным указателям (клю-
чам) — уникальным в разных записях. В нашем случае в качестве такого ключа
может выступать №_СТУД_БИЛЕТА. Кроме того, должна обеспечиваться возмож-
ность выбора всех записей с общим значением №_ГРУППЫ, то есть доступ по
неуникальному ключу. Для того чтобы получить общее число студентов группы
или средний размер стипендии, каждый раз при выполнении такой функции си-
стема должна будет выбрать все записи о студентах группы и посчитать соответ-
ствующие общие значения.
Реализация такой информационной системы требует создания достаточно слож-
ной функциональной надстройки для организации доступа к файлу. Кроме это-
го, прослеживается явная избыточность хранения данных — для каждого студента
группы повторяется ФИО куратора, средний балл ЕГЭ, количество студентов.
Одним из способов реструктуризации хранения информации в такой систе-
ме является возможность поддерживать два информационных файла: СТУДЕН-
ТЫ и ГРУППЫ. Первый файл должен содержать сведения, касающиеся непо-
средственно студентов: ФИО, №_СТУД_БИЛЕТА, СТИП, №_ГРУППЫ, а второй —
НОМЕР_ГРУППЫ, КУРАТОР, СР_ЕГЭ, КОЛ_СТУД. В этом случае мы ликвиди-
14
Глава 1. Обоснование концепции баз данных
руем избыточность данных — каждый из файлов будет содержать только уникаль-
ную информацию. Однако даже при такой модификации информационная система
должна обладать некоторыми дополнительными особенностями, сближающими ее
с СУБД.
Прежде всего, в системе должно быть указано, что она работает с двумя ин-
формационно связанными файлами, и описаны структура и смысл каждого поля
(например, что №_ГРУППЫ в файле СТУДЕНТЫ и №_ГРУППЫ в файле ГРУП-
ПЫ означают одно и то же). Кроме того, необходимо учитывать, что в ряде случаев
изменение информации в одном файле должно автоматически вызывать модифи-
кацию во втором файле, чтобы содержимое этих файлов было согласованным.
Например, в случае изменения номера группы в файле ГРУППЫ все соответству-
ющие номера групп в файле СТУДЕНТЫ должны быть изменены на новое значение.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Понятие согласованности данных является ключевым понятием
баз данных.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Фактически, если информационная система поддерживает согласованное хра-
нение информации в нескольких файлах, можно говорить о том, что она под-
держивает базу данных. Если же некоторая вспомогательная система управления
данными позволяет работать с несколькими файлами, обеспечивая их согласован-
ность, можно назвать ее системой управления базами данных. Это необходимый,
но недостаточный признак СУБД. Требование поддержания согласованности дан-
ных в нескольких файлах не позволяет обойтись библиотекой функций: такая си-
стема должна иметь некоторые собственные данные (метаданные) и даже знания,
определяющие целостность данных.
Кроме этого, в нашем примере средствами информационной системы трудо-
емко реализовывать запросы на выдачу информации, например «выдать ФИО ку-
ратора группы, в которой обучается Раевский Александр Иванович». Было бы го-
раздо проще, если бы система позволяла сформулировать этот запрос на близком
пользователям языке. Такие языки называются языками запросов к базам данных.
Например, на языке SQL (Structured Query Language) такой запрос можно было бы
реализовать средствами СУБД и выразить в форме:
SELECT Группы.Куратор
FROM Студенты, Группы
WHERE ФИО = "Раевский Александр Иванович"
AND Студенты. №_Группы = Группы.№_Группы;
При наличии возможности обработки подобных запросов СУБД позволит не
задумываться о том, как будет выполняться этот запрос, а автоматически выполнит
просмотр файлов СТУДЕНТЫ и ГРУППЫ и выдаст соответствующий результат.
Поддержка корректности состояния базы данных во время сбоев в момент
вставки или удаления данных не является обязательной функцией информацион-
ных систем. Данная функция также может быть реализована средствами СУБД.
Также следует предусмотреть одновременную работу с информационной си-
стемой нескольких пользователей. Для обеспечения корректности на все время
1.3 Основные понятия СУБД
15
модификации любого из двух файлов доступ других пользователей к этому фай-
лу необходимо каким-то образом ограничить или полностью блокировать. Таким
образом, занесение в файл сведений о новом студенте Данилове Олеге Владимиро-
виче существенно замедлит процесс получения информации о студенте Карасеве
Алексее Александровиче, даже если они будут числиться в разных группах. СУБД
при этом способна обеспечить гораздо более тонкую синхронизацию параллель-
ного доступа к данным.
Кроме того, существует возможность значительно упростить структуру фай-
ла ГРУППЫ, для чего можно удалить средний балл ЕГЭ (СР_ЕГЭ), количество
студентов (КОЛ_СТУД) из данного файла. При этом СУБД необходимо дополнить
возможностью обработки простых статистических функций, таких как AVG — вы-
числение среднего значения из набора предложенных и SUM — вычисление суммы.
Таким образом, система управления базами данных способна решить множе-
ство задач, которые затруднительно или вообще невозможно решить собственными
силами информационных систем и прикладных программ.
Подводя итог, можно сформулировать основные принципы (положения), опре-
деляющие концепцию баз данных:
1) автономное безызбыточное хранение данных сложной структуры и значи-
тельного объема;
2) комплексное использование хранимой информации;
3) независимость программ обработки от физической структуры исходных
данных.
Дополнительные положения концепции баз данных могут быть сформулирова-
ны следующим образом:
• база данных есть отображение информационной модели предметной области;
• однократный ввод первичной информации;
• обеспечение различных уровней защиты данных (защита от катастрофиче-
ского разрушения, защита от несанкционированного доступа, ограничение
целостности);
• реорганизация (развитие) БД по мере необходимости с минимальным вли-
янием на действующие программы [2].
Эти положения легли в основу большинства существующих определений БД
и СУБД. Дж. Мартин в 1980 году сформулировал понятия БД и СУБД.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
База данных есть совокупность взаимосвязанных, хранящихся
вместе данных при наличии такой организации и минимальной из-
быточности, которая допускает их использование оптимальным
образом для одного или нескольких приложений; данные запомина-
ются и используются так, чтобы они были независимы от про-
грамм, использующих эти данные, а программы были независимы
от способа и структуры хранения данных.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Для добавления новых или модификации существующих данных, а также для
поиска данных в БД применяется общий управляющий способ [3].