Тема_1 (1122328), страница 4
Текст из файла (страница 4)
Кузнецов. Базы данных.39 Технология БД. ФунФайловые системы (26)Области разумного применения файлов (4)Одним словом, файловые системы обычнообеспечивают хранение слабо структурированнойинформации, оставляя дальнейшую структуризациюприкладным программам.В перечисленных выше случаях использованияфайлов это даже хорошо, потому что при разработке любой новой прикладной системы, опираясь на простые, стандартные и сравнительнодешевые средства файловой системы, можно реализовать те структуры хранения, которыенаиболее точно соответствуют специфике даннойприкладной области.03.09.2009С.Д. Кузнецов. Базы данных.40 Технология БД.
ФунПотребности информационных систем (1)Удовлетворяют ли рассмотренные вышебазовые возможности файловых системпотребности информационных систем?Типовая информационная система, главнымобразом, ориентирована на хранение, выбор имодификацию данных соответствующейприкладной области.Структура таких данных зачастую очень сложна,и, хотя структуры данных различны в разныхинформационных системах, между ними частобывает много общего.03.09.2009С.Д.
Кузнецов. Базы данных.41 Технология БД. ФунПотребности информационных систем (2)На начальном этапеиспользованиявычислительной техникидля построения ИС проблемы структуризацииданных решались индивидуально в каждой ИС.Производились необходимые надстройки надфайловыми системами (библиотеки программ),подобно тому, как это делается в компиляторах,редакторах и т. д.03.09.2009С.Д. Кузнецов.
Базы данных.42 Технология БД. ФунПотребности информационных систем (3)Но поскольку для функционирования информационныхсистем требуются сложные структуры данных, этидополнительные индивидуальные средства управленияданными являлись существенной частью информационныхсистем и практически повторялись от одной системы кдругой.Стремление выделить общую часть информационныхсистем, ответственную за управление сложноструктурированными данными, явилось первойпобудительной причиной создания СУБД.Очень скоро стало понятно, чтоневозможно обойтись общейбиблиотекой программ,реализующей над стандартнойбазовой ФС более сложные методыхранения данных.03.09.2009С.Д. Кузнецов. Базы данных.43 Технология БД.
ФунПотребности информационных систем (4)Поясним это на примере.Пусть требуется реализовать ИС, поддерживающую учет служащих некоторойорганизации.Система должна выполнять следующие действия:Кроме того, для каждого отдела должна поддерживаться возможностьполучения:выдавать списки служащих по отделам;поддерживать возможность перевода служащего из одного отдела в другой;обеспечивать средства поддержки приема на работу новых служащих и увольненияработающих служащих.имени руководителя отдела;общей численности отдела;общей суммы заработной платы служащих отдела, среднего размера заработнойплаты и т. д.Для каждого служащего должна поддерживаться возможность получения:номера удостоверения по полному имени служащего (для простоты допустим, чтоимена всех служащих различны);полного имени по номеру удостоверения;информации о соответствии служащего занимаемой должности и о размере егозаработной платы.03.09.2009С.Д.
Кузнецов. Базы данных.44 Технология БД. ФунПотребности информационных систем (5)Структуры данных (1)Предположим, что мы решили основывать эту ИС на файловойсистеме и пользоваться одним файлом СЛУЖАЩИЕ, расширивбазовые возможности файловой системы за счет специальнойбиблиотеки функций.Поскольку минимальной информационной единицей являетсяслужащий, в этом файле должна содержаться одна запись длякаждого служащего.Чтобы можно было удовлетворить указанные выше требования,запись о служащем должна иметь следующие поля:полное имя служащего (СЛУ_ИМЯ);номер его удостоверения (СЛУ_НОМЕР);данные о соответствии служащего занимаемой должности (СЛУ_СТАТ;для простоты «да» или «нет», соответствует или не соответствуетдолжности);размер заработной платы (СЛУ_ЗАРП);номер отдела (СЛУ_ОТД_НОМЕР).03.09.2009С.Д.
Кузнецов. Базы данных.45 Технология БД. ФунПотребности информационных систем (6)Структуры данных (2)Поскольку мы решили ограничиться одним файломСЛУЖАЩИЕ, та же запись должна содержать имяруководителя отдела (СЛУ_ОТД_РУК).Иначе было бы невозможно, например, получить имяруководителя отдела с известным номером.Чтобы ИС могла эффективно выполнять свои базовыефункции, необходимо обеспечить многоключевой доступ кфайлу СЛУЖАЩИЕ по уникальным ключам СЛУ_ИМЯ иСЛУ_НОМЕР.В противном случае для выполнения наиболее частоиспользуемых операций получения данных о конкретномслужащем понадобится последовательный просмотр всреднем половины записей файла.03.09.2009С.Д.
Кузнецов. Базы данных.46 Технология БД. ФунПотребности информационных систем (7)Структуры данных (3)Кроме того, должна обеспечиваться возможностьэффективного выбора всех записей с общим значениемСЛУ_ОТД_НОМЕР, т. е. доступ по неуникальному ключу.Если не поддерживать специальный механизм доступа, тодля получения данных об отделе в целом в общем случаепотребуется полный просмотр файла.Но даже в этом случае, чтобы получить численность отделаили общий размер зарплаты, система должна будет выбратьвсе записи о служащих указанного отдела и посчитатьсоответствующие общие значения.03.09.2009С.Д. Кузнецов. Базы данных.47 Технология БД. ФунПотребности информационных систем (8)Структуры данных (4)Таким образом, мы видим, что при реализации даже такойпростой ИС на базе ФС возникают следующие затруднения: требуется создание достаточно сложной надстройки длямногоключевого доступа к файлам; возникает существенная избыточность данных (для каждогослужащего повторяется имя руководителя его отдела); требуется выполнение массовой выборки и вычислений дляполучения суммарной информации об отделах.Кроме того, если в ходе эксплуатации системы потребуется,например, обеспечить операцию выдачи списков служащих,получающих указанную зарплату, то либо придется привыполнении каждой такой операции полностьюпросматривать файл, либо нужно будет реструктурироватьфайл СЛУЖАЩИЕ, объявляя ключевым и поле СЛУ_ЗАРП.03.09.2009С.Д.
Кузнецов. Базы данных.48 Технология БД. ФунПотребности информационных систем (9)Структуры данных (5)Для улучшения ситуации можно было бы поддерживать двамногоключевых файла: СЛУЖАЩИЕ и ОТДЕЛЫ.Первый файл должен был бы содержать поля СЛУ_ИМЯ,СЛУ_НОМЕР, СЛУ_СТАТ, СЛУ_ЗАРП и СЛУ_ОТД_НОМЕРВторой – ОТД_НОМЕР, ОТД_РУК (номер удостоверенияслужащего, являющегося руководителем отдела),ОТД_СЛУ_ЗАРП (общий размер зарплаты служащих данногоотдела) и ОТД_РАЗМЕР (общее число служащих в отделе)03.09.2009С.Д.
Кузнецов. Базы данных.49 Технология БД. ФунПотребности информационных систем (10)Структуры данных (6)Введение этих двух файлов позволило быпреодолеть большинство неудобств,перечисленных ранее.Каждый из файлов содержал бы только недублируемую информацию, не возникала бынеобходимость в динамических вычисленияхсуммарной информации по отделам.Но заметим, что при таком переходе наша ИСдолжна обладать некоторыми новымиособенностями, сближающими ее с СУБД.03.09.2009С.Д. Кузнецов.
Базы данных.50 Технология БД. ФунПотребности информационных систем (11)Целостность данных (1)Теперь система должна «знать», что она работает с двумяинформационно связанными файлами (это шаг в сторонусхемы базы данных), должна иметь информацию о структуреи смысле каждого поля.Например, системе должно быть известно, что у полейСЛУ_ОТД_НОМЕР в файле СЛУЖАЩИЕ и ОТД_НОМЕР вфайле ОТДЕЛЫ один и тот же смысл – номер отдела.Кроме того, система должна учитывать, что в ряде случаевизменение данных в одном файле должно автоматическивызывать модификацию второго файла, чтобы общеесодержимое файлов было согласованным.Например, если на работу принимается новый служащий, тонужно добавить запись в файл СЛУЖАЩИЕ, а такжедолжным образом изменить поля ОТД_СЛУ_ЗАРП иОТД_РАЗМЕР в записи файла ОТДЕЛЫ, соответствующейотделу этого служащего.03.09.2009С.Д. Кузнецов.
Базы данных.51 Технология БД. ФунПотребности информационных систем (12)Целостность данных (2)Более точно, система должнаруководствоваться следующими правилами:если в файле СЛУЖАЩИЕ содержится запись со значениемполя СЛУ_ОТД_НОМЕР, равным n, то и в файле ОТДЕЛЫдолжна содержаться запись со значением поляОТД_НОМЕР, также равным n;если в файле ОТДЕЛЫ содержится запись со значениемполя ОТД_РУК, равным m, то и в файле СЛУЖАЩИЕдолжна содержаться запись со значением поляСЛУ_НОМЕР, также равным m;далее мы увидим, что эти правила являются частнымислучаями общего правила ссылочной целостности: полеСЛУ_ОТД_НОМЕР содержит «ссылки» на записи таблицыОТДЕЛЫ, и поле ОТД_РУК содержит «ссылки» на записитаблицы СЛУЖАЩИЕ;03.09.2009С.Д. Кузнецов. Базы данных.52 Технология БД. ФунПотребности информационных систем (13)Целостность данных (3)при любом корректном состоянии ИС значение поляОТД_СЛУ_ЗАРП любой записи отд_k файла ОТДЕЛЫдолжно быть равно сумме значений поля СЛУ_ЗАРП всехтех записей файла СЛУЖАЩИЕ, в которых значение поляСЛУ_ОТД_НОМЕР совпадает со значением поляОТД_НОМЕР записи отд_k;при любом корректном состоянии ИС значение поляОТД_РАЗМЕР любой записи отд_k файла ОТДЕЛЫдолжно быть равно числу всех тех записей файлаСЛУЖАЩИЕ, в которых значение поля СЛУ_ОТД_НОМЕРсовпадает со значением поля ОТД_НОМЕР записи отд_k;далее мы увидим, что эти правила представляют собойпримеры общих ограничений целостности базы данных.03.09.2009С.Д.