Базы данных. Концепция баз данных, реляционная модель данных, языки SQL и XML. Токмаков Г.П. - 20 стр.

UptoLike

Составители: 

20
Поскольку мы решили ограничиться одним файлом
СЛУЖАЩИЕ, та же запись
должна содержать имя руководителя отдела (
СЛЖ_ОТД_РУК). Если мы этого поля
не введем, то невозможно будет, например, получить имя руководителя отдела
в котором работает служащий.
Чтобы информационная система могла эффективно выполнять свои базо-
вые функции, необходимо обеспечить многоключевой доступ к файлу
СЛУЖАЩИЕ
по уникальным ключам
СЛЖ_ИМЯ и СЛЖ_НОМЕР. Ключ называется уникальным, ес-
ли его значения гарантированно различны во всех записях файла. Если мы не
сможем обеспечить многоключевой доступ к файлу
СЛУЖАЩИЕ, то для выполне-
ния наиболее часто используемых операций получения данных о конкретном
служащем понадобится последовательный просмотр в среднем половины запи-
сей файла.
Кроме того, система должна обеспечить возможность эффективного выбо-
ра всех записей с общим значением
СЛЖ_ОТД_НОМЕР, т. е. доступ по неуникаль-
ному ключу. Если не поддерживать данный механизм доступа, то для получе-
ния данных об отделе в целом, в общем случае потребуется полный просмотр
файла.
Но даже в этом случае, чтобы получить численность отдела или общий
размер зарплаты, система должна будет выбрать все записи о служащих
ука-
занного отдела и посчитать соответствующие общие значения.
Таким образом, мы видим, что при реализации даже такой простой инфор-
мационной системы на базе файловой системы возникают следующие затруд-
нения:
требуется создание сложной надстройки для многоключевого доступа к
файлам;
возникает существенная избыточность данных (для каждого служащего по-
вторяется номер и имя руководителя его отдела);
требуется выполнение массовой выборки и вычислений для получения
суммарной информации об отделах.
Кроме того, если в ходе эксплуатации системы потребуется, например, обес-
печить операцию выдачи списков служащих, получающих указанную зарплату, то
для этого либо придется полностью просматривать файл, либо нужно будет рест-
руктурировать файл
СЛУЖАЩИЕ, объявляя ключевым и поле СЛЖ_ЗАРП.
Для улучшения ситуации можно было бы поддерживать два многоключевых
файла:
СЛУЖАЩИЕ и ОТДЕЛЫ. Первый файл должен был бы содержать поля СЛЖ_ИМЯ,
Файл СЛУЖАЩИЕ
СЛЖ_ИМЯ СЛЖ_НОМЕР СЛЖ_СТАТ СЛЖ_ЗАРП СЛЖ_ОТД_НОМЕР СЛЖ_ОТД_РУК
. . . . . . . . . . . . . . . . . .
Неуникальный ключУникальные ключи
Рис. 1.6. Структура файла СЛУЖАЩИЕ на уровне приложения