Файл: Базы данных - уч. пособие.pdf

Добавлен: 28.11.2018

Просмотров: 10862

Скачиваний: 43

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

1.2 Файл и области применения файлов

11

Кроме того, каждой прикладной программе приходилось решать проблемы

именования частей данных и структуризации данных во внешней памяти [1].

1.2 Файл и области применения файлов

Историческим шагом в развитии информационных систем явился переход к ис-

пользованию файлов.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

С точки зрения прикладной программы файл — это именованная
область внешней памяти, в которую можно записывать и из ко-
торой можно считывать данные.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Работа с файлами невозможна без наличия операционной системы.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Операционная система — это базовый комплекс компьютерных
программ, обеспечивающий управление аппаратными средствами
компьютера, работу с файлами, ввод и вывод информации, а так-
же выполнение прикладных программ и утилит
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Специфические правила именования файлов, способ доступа к данным, хра-

нящимся в файле, и структура этих данных зависят от конкретной системы управ-
ления файлами — прикладной программы, обеспечивающей возможность форми-
рования файла, записи его на носитель информации и открытия для дальнейших
действий.

Область применения файлов достаточно обширна. Прежде всего, файлы при-

меняются для хранения различной текстовой информации: документов, текстов
программ, электронных таблиц и т. д. Такие файлы обычно образуются и модифи-
цируются с помощью различных текстовых редакторов или текстовых процессо-
ров. Структура текстовых файлов представляется в виде либо последовательности
записей, содержащих строки текста, либо последовательности байтов, среди кото-
рых встречаются специальные служебные символы.

Файлы, содержащие тексты программ, используются как входные тексты ком-

пиляторов и интерпретаторов языков программирования, которые, в свою очередь,
формируют файлы, содержащие объектные модули и подпрограммы. С точки зре-
ния системы управления файлами объектные файлы и библиотеки дополнительных
функций файловой системы обладают очень простой структурой, представляющей
собой последовательность записей или байтов [1]. Система программирования на-
кладывает на эту структуру более сложную и специфичную для данной системы
структуру объектного модуля. Логическая структура объектного модуля неизвестна
файловой системе и поддерживается средствами конкретного языка программиро-
вания.

Системы управления файлами в большинстве своем обычно обеспечивают

формирование и обработку слабоструктурированной информации, оставляя даль-
нейшую структуризацию непосредственно прикладным программам. Первые ин-


background image

12

Глава 1. Обоснование концепции баз данных

формационные системы создавались на основе и при помощи простейших систем
управления файлами.

1.3 Основные понятия СУБД

При разработке информационной системы определенной предметной области

основным фактором является обеспечение надежного хранения и обработки посто-
янно существующей информации, при этом необходимо обеспечить выполнение
дополнительных функций, не всегда свойственных простым файловым системам.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Под предметной областью будем понимать любой тип органи-
зационной структуры, например банк, университет, завод, боль-
ницу.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Структура информации в информационных системах может быть очень сложна

для интерпретации, и хотя структуры данных различны в разных информационных
системах, между ними часто бывает много общего. На первом этапе использования
вычислительной техники для обработки информации проблемы структуризации
данных решались индивидуально в каждой информационной системе.

Таким образом, в начале 60-х годов преобладал так называемый позадачный

подход в использовании исходной информации, который характеризуется тем, что
для каждой программы обработки используются собственные («свои») файлы ис-
ходных данных.

Основным недостатком позадачного подхода являлось дублирование исходных

данных в различных файлах, что приводило к избыточности хранимой информа-
ции, а также к возникновению различных коллизий, проявляющихся в процессе
обновления данных.

Можно предположить, что при работе нескольких программ, оперирующих

с файлами, относящимися к одной предметной области, возникают проблемы с под-
держкой актуализации хранимых данных в приемлемое для конечных пользовате-
лей время.

С течением времени создавались необходимые надстройки над файловыми

системами (библиотеки программ), подобно тому, как это делается в компиля-
торах, редакторах и т. д. Но поскольку информационные системы требуют под-
держки сложных структур данных, эти индивидуальные дополнительные средства
управления данными, являющиеся существенной частью информационной систе-
мы (ИС), в основном дублировались в различных системах.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Стремление выделить и обобщить составную часть информаци-
онных систем, ответственную за управление сложно структуриро-
ванными данными, явилось первой побудительной причиной со-
здания систем управления базами данных (СУБД).
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


background image

1.3 Основные понятия СУБД

13

Однако изначально невозможно было обойтись только общей библиотекой про-

грамм, реализующей над стандартной базовой файловой системой более сложные
методы хранения и способы доступа к данным. Покажем это на примере.

Пусть необходимо разработать информационную систему, в которой ведутся

сведения о студентах вуза. Такая система должна обеспечивать выполнение следу-
ющих функций:

• выдачу по запросу пользователя списка студентов по группам;

• поддержку возможности перевода студента из одной группы в другую;

• прием абитуриентов;

• отчисление студентов.

При этом для каждой группы должна поддерживаться возможность получения

информации о кураторе группы, численности студентов, среднем размере стипен-
дии студентов группы за определенный временной интервал и т. д.

Разработать такую информационную систему можно с применением практи-

чески любого языка программирования, используя при этом для хранения данных
один потоковый текстовый файл. Расширять базовые возможности системы можно
за счет специальной библиотеки функций.

Поскольку в качестве минимальной информационной единицы в данной пред-

метной области можно выбрать студента, в этом файле содержится одна струк-
турная единица (запись) для каждого студента, которая может быть представ-
лена в следующей последовательности, отражающей основные сведения о сту-
дентах: ФИО студента (ФИО); номер студенческого билета (№_СТУД_БИЛЕТА);
дата рождения (ДАТА_РОЖД); номер группы (№_ГРУППЫ); размер стипендии
(СТИП); балл ЕГЭ (ЕГЭ). Используя один файл для хранения информации, необхо-
димо учитывать, что эта же запись должна содержать сведения и по группе, в кото-
рой обучается студент, — ФИО куратора (КУРАТОР); средний балл ЕГЭ (СР_ЕГЭ);
количество студентов (КОЛ_СТУД).

Поскольку в исходном файле хранится информация по разным студентам, то

для решения поставленных функциональных задач в такой системе необходимо
обеспечить доступ к конкретной записи по заранее заданным указателям (клю-
чам) — уникальным в разных записях. В нашем случае в качестве такого ключа
может выступать №_СТУД_БИЛЕТА. Кроме того, должна обеспечиваться возмож-
ность выбора всех записей с общим значением №_ГРУППЫ, то есть доступ по
неуникальному ключу. Для того чтобы получить общее число студентов группы
или средний размер стипендии, каждый раз при выполнении такой функции си-
стема должна будет выбрать все записи о студентах группы и посчитать соответ-
ствующие общие значения.

Реализация такой информационной системы требует создания достаточно слож-

ной функциональной надстройки для организации доступа к файлу. Кроме это-
го, прослеживается явная избыточность хранения данных — для каждого студента
группы повторяется ФИО куратора, средний балл ЕГЭ, количество студентов.

Одним из способов реструктуризации хранения информации в такой систе-

ме является возможность поддерживать два информационных файла: СТУДЕН-
ТЫ и ГРУППЫ. Первый файл должен содержать сведения, касающиеся непо-
средственно студентов: ФИО, №_СТУД_БИЛЕТА, СТИП, №_ГРУППЫ, а второй —
НОМЕР_ГРУППЫ, КУРАТОР, СР_ЕГЭ, КОЛ_СТУД. В этом случае мы ликвиди-


background image

14

Глава 1. Обоснование концепции баз данных

руем избыточность данных — каждый из файлов будет содержать только уникаль-
ную информацию. Однако даже при такой модификации информационная система
должна обладать некоторыми дополнительными особенностями, сближающими ее
с СУБД.

Прежде всего, в системе должно быть указано, что она работает с двумя ин-

формационно связанными файлами, и описаны структура и смысл каждого поля
(например, что №_ГРУППЫ в файле СТУДЕНТЫ и №_ГРУППЫ в файле ГРУП-
ПЫ означают одно и то же). Кроме того, необходимо учитывать, что в ряде случаев
изменение информации в одном файле должно автоматически вызывать модифи-
кацию во втором файле, чтобы содержимое этих файлов было согласованным.
Например, в случае изменения номера группы в файле ГРУППЫ все соответству-
ющие номера групп в файле СТУДЕНТЫ должны быть изменены на новое значение.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Понятие согласованности данных является ключевым понятием
баз данных.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Фактически, если информационная система поддерживает согласованное хра-

нение информации в нескольких файлах, можно говорить о том, что она под-
держивает базу данных. Если же некоторая вспомогательная система управления
данными позволяет работать с несколькими файлами, обеспечивая их согласован-
ность, можно назвать ее системой управления базами данных. Это необходимый,
но недостаточный признак СУБД. Требование поддержания согласованности дан-
ных в нескольких файлах не позволяет обойтись библиотекой функций: такая си-
стема должна иметь некоторые собственные данные (метаданные) и даже знания,
определяющие целостность данных.

Кроме этого, в нашем примере средствами информационной системы трудо-

емко реализовывать запросы на выдачу информации, например «выдать ФИО ку-
ратора группы, в которой обучается Раевский Александр Иванович». Было бы го-
раздо проще, если бы система позволяла сформулировать этот запрос на близком
пользователям языке. Такие языки называются языками запросов к базам данных.
Например, на языке SQL (Structured Query Language) такой запрос можно было бы
реализовать средствами СУБД и выразить в форме:

SELECT Группы.Куратор
FROM Студенты, Группы
WHERE ФИО = "Раевский Александр Иванович"
AND Студенты. №_Группы = Группы.№_Группы;

При наличии возможности обработки подобных запросов СУБД позволит не

задумываться о том, как будет выполняться этот запрос, а автоматически выполнит
просмотр файлов СТУДЕНТЫ и ГРУППЫ и выдаст соответствующий результат.

Поддержка корректности состояния базы данных во время сбоев в момент

вставки или удаления данных не является обязательной функцией информацион-
ных систем. Данная функция также может быть реализована средствами СУБД.

Также следует предусмотреть одновременную работу с информационной си-

стемой нескольких пользователей. Для обеспечения корректности на все время


background image

1.3 Основные понятия СУБД

15

модификации любого из двух файлов доступ других пользователей к этому фай-
лу необходимо каким-то образом ограничить или полностью блокировать. Таким
образом, занесение в файл сведений о новом студенте Данилове Олеге Владимиро-
виче существенно замедлит процесс получения информации о студенте Карасеве
Алексее Александровиче, даже если они будут числиться в разных группах. СУБД
при этом способна обеспечить гораздо более тонкую синхронизацию параллель-
ного доступа к данным.

Кроме того, существует возможность значительно упростить структуру фай-

ла ГРУППЫ, для чего можно удалить средний балл ЕГЭ (СР_ЕГЭ), количество
студентов (КОЛ_СТУД) из данного файла. При этом СУБД необходимо дополнить
возможностью обработки простых статистических функций, таких как AVG — вы-
числение среднего значения из набора предложенных и SUM — вычисление суммы.

Таким образом, система управления базами данных способна решить множе-

ство задач, которые затруднительно или вообще невозможно решить собственными
силами информационных систем и прикладных программ.

Подводя итог, можно сформулировать основные принципы (положения), опре-

деляющие концепцию баз данных:

1) автономное безызбыточное хранение данных сложной структуры и значи-

тельного объема;

2) комплексное использование хранимой информации;

3) независимость программ обработки от физической структуры исходных

данных.

Дополнительные положения концепции баз данных могут быть сформулирова-

ны следующим образом:

• база данных есть отображение информационной модели предметной области;

• однократный ввод первичной информации;

• обеспечение различных уровней защиты данных (защита от катастрофиче-

ского разрушения, защита от несанкционированного доступа, ограничение
целостности);

• реорганизация (развитие) БД по мере необходимости с минимальным вли-

янием на действующие программы [2].

Эти положения легли в основу большинства существующих определений БД

и СУБД. Дж. Мартин в 1980 году сформулировал понятия БД и СУБД.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

База данных есть совокупность взаимосвязанных, хранящихся
вместе данных при наличии такой организации и минимальной из-
быточности, которая допускает их использование оптимальным
образом для одного или нескольких приложений; данные запомина-
ются и используются так, чтобы они были независимы от про-
грамм, использующих эти данные, а программы были независимы
от способа и структуры хранения данных.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Для добавления новых или модификации существующих данных, а также для

поиска данных в БД применяется общий управляющий способ [3].