3.4.2. Базы данных и файловые системы
Рассмотрим подробнее отличия баз данных и файловых систем на конкретном примере. Предположим, в АИС необходимо реализовать учет сотрудников. Система должна выполнять следующие действия: выдавать списки сотрудников по отделам, поддерживать возможность перевода сотрудника из одного отдела в другой, приема на работу новых сотрудников и увольнения работающих. Для каждого отдела должна поддерживаться возможность получения имени руководителя этого отдела, общей численности отдела, общей суммы выплаченной в последний раз зарплаты и т.д.
67
Для каждого сотрудника должна быть предусмотрена возможность выдачи номера удостоверения по полному имени сотрудника, выдачи полного имени по номеру удостоверения, получения информации о текущем соответствии занимаемой должности сотрудника и о размере его зарплаты.
Каким образом поставленная задача может быть решена в файловой системе? Рассмотрим вариант ее решения путем расширения базовых возможностей файловой
системы за счет специальной библиотеки функций. Вся информация о сотрудниках будет храниться в одном файле. Поскольку минимальной информационной единицей в данном случае является сотрудник, естественно потребовать, чтобы в этом файл содержалась одна запись для каждого сотрудника. Какие поля должна содержать такая запись? Полное имя сотрудника (СОТР_ИМЯ), номер его удостоверения (СОТР_НОМЕР), информацию о его соответствии занимаемой должности (для простоты: «да» или «нет») (СОТР_СТАТ), размер зарплаты (СОТР_ЗАРП), номер отдела (СОТР_ОТД_НОМЕР). Поскольку используется только один файл, запись должна содержать также имя руководителя отдела (СОТР_ОТД_РУК).
Функции информационной системы требуют, чтобы обеспечивалась возможность доступа к этому файлу по уникальным ключам (т.е. недублируемым разных записях признакам) СОТР_ИМЯ и СОТР НОМЕР. Кроме того, должна обеспечиваться возможность выбора всех записей с общем значением СОТР_ОТД_НОМЕР, то есть доступ по неуникальному ключу. Дня того, чтобы получить численность отдела или общий размер зарплаты, каждый раз при выполнении такой функции информационная система должна будет выбрать все записи о сотрудниках отдела и посчитать соответствующие общие значения.
Таким образом, даже для такой простой системы ее реализация на базе файловой системы, во-первых, требует создания специальной надстройки (прикладной программы) для многоключевого доступа к файлам, во-вторых, вызывает требование избыточности хранения (для каждого сотрудника одного отдела повторяется имя руководителя), а также выполнения массовой выборки и вычислений для получения суммарной информации об отделах. Кроме того, если в ходе эксплуатации системы возникнет необходимость выдавать списки сотрудников, получающих заданную зарплату, то придется либо полностью просматривать файл, либо реструктуризовать его, объявив ключевым поле СОТР_ЗАРП.
68
Эту задачу можно решить, если поддерживать два многоключевых файла: СОТРУДНИКИ и ОТДЕЛЫ. Первый файл содержит поля СОТР_ИМЯ, СОТР_НОМЕР, СОТР_СТАТ, СОТР_ЗАРП и СОТР_ОТД_НОМЕР, а второй - ОТД_НОМЕР, ОТД_РУК, ОТД_СОТР_ЗАРП (общий размер зарплаты) и ОТД_РАЗМЕР (общее число сотрудников в отделе). Большинство неудобств, перечисленных в предыдущем абзаце, будут преодолены. Каждый из файлов будет содержать только недублируемую информацию, необходимости в динамических вычислениях суммарной информации не возникает. Но заметим, что при таком переходе информационная система должна обладать некоторыми новыми особенностями, сближающими ее с СУБД.
Прежде всего, система должна теперь знать, что она работает с двумя информационно связанными файлами (это шаг в сторону схемы базы данных), должна знать структуру и смысл каждого поля (например, что СОТР_ОТД_НОМЕР в файле СОТРУДНИКИ и ОТД_НОМЕР в файле ОТДЕЛЫ означают одно и то же), а также понимать, что в ряде случаев изменение информации в одном файле должно автоматически вызывать модификацию во втором файле, чтобы их общее содержимое было согласованным. Например, если на работу принимается новый сотрудник, то необходимо добавить запись в файл СОТРУДНИКИ, а также соответствующим образом изменить поля ОТД_ЗАРП и ОТД_РАЗМЕР в записи файла ОТДЕЛЫ, описывающей отдел этого сотрудника.
Понятие согласованности данных является важнейшим понятием баз данных. Фактически, если информационная система (даже такая простая, как в нашем примере) поддерживает согласованное хранение информации в нескольких файлах, можно говорить о том, что она поддерживает базу данных. Если же некоторая вспомогательная система управления данными позволяет работать с несколькими файлами, обеспечивая их согласованность, можно назвать ее системой управления базами данных. Уже только требование поддержания согласованности данных в нескольких файлах не позволяет обойтись библиотекой функций: такая система должна иметь некоторые собственные данные (метаданные) и даже знания, определяющие целостность данных.
Но это еще не все, что обычно требуется от СУБД. Во-первых, даже в рассмотренном примере неудобно реализовывать такие запросы как «выдать общую численность отдела, в котором работает Петр Иванович Сидоров». Было бы гораздо проще, если бы СУБД позволяла сформулировать такой запрос на близком пользователям языке. Такие языки называются языками запросов к базам данных.
Например, на специальном языке SQL (Structured Query Language - язык структурированных запросов) этот запрос можно было бы выразить в форме:
SELЕСТ ОТД_РАЗМЕР
FRОМ СОТРУДНИКИ, ОТДЕЛЫ
WHERE COTP_ИМЯ = «ПЕТР ИВАНОВИЧ СИДОРОВ»
АND СОТР_ОТД_НОМЕР = ОТД_НОМЕР
Таким образом, при формулировании запроса СУБД позволит не задумываться о том, как будет выполняться этот запрос. Среди ее метаданных будет содержаться информация о том, что поле СОТР_ИМЯ является ключевым для файла СОТРУДНИКИ, а ОТД_НОМЕР - для файла ОТДЕЛЫ, и система сама воспользуется этим. Если же возникнет потребность в получении списка сотрудников, не соответствующих занимаемой должности, то достаточно предъявить системе запрос
SELЕСТ СОТР _ИМЯ, СОТР_НОМЕР
FRОМ СОТРУДНИКИ
WHERE СОТР_СТАТ = «НЕТ»,
и система сама выполнит необходимый полный просмотр файла СОТРУДНИКИ, поскольку поле СОТР_СТАТ не является ключевым.
Допустим, в файловой системе обрабатывается операция регистрации нового сотрудника. Следуя требованиям согласованного изменения файлов, специальная программа вставила новую запись в файл СОТРУДНИКИ и собиралась модифицировать запись файла ОТДЕЛЫ, но именно в этот момент произошло аварийное выключение питания. Очевидно, что после перезапуска системы ее база данных будет находиться в рассогласованном состоянии. Потребуется выяснить это (а для этого нужно явно проверить соответствие информации в файлах СОТРУДНИКИ и ОТДЕЛЫ) и привести информацию в согласованное состояние. Настоящие СУБД берут такую работу на себя. Прикладная система не обязана заботиться о корректности состояния базы данных.
Наконец, желательно обеспечить параллельную (например, многотерминальную) работу с базой данных сотрудников. Если опираться только на использование файлов, то для обеспечения корректности на все время модификации любого из двух файлов доступ других пользователей к этому файлу будет блокирован (вспомните возможности файловых систем для синхронизации параллельного
70
доступа). Таким образом, зачисление на работу Петра Ивановича Сидорова существенно затормозит получение информации о сотруднике Иване Сидоровиче Петрове, даже если они будут работать в разных отделах. Настоящие СУБД обеспечивают гораздо более тонкую синхронизацию параллельного доступа к данным.
Таким образом, СУБД решают множество проблем, которые затруднительно или вообще невозможно решить при использовании файловых систем.
- Глава 1, Основные сведения об информационных технологиях обработки экономической информации 7
- Глава 2 Основные сведения об автоматизированных информационных системах………….38
- Глава 3. Информационное обеспечение автоматизированных систем ...59
- Глава 4. Программное обеспечение автоматизированных систем 76
- Основные понятия 76
- Глава 5. Проектирование автоматизированных информационных систем 93
- Глава 6. Основные сведения о компьютерных сетях
- Основные понятия 116
- Глава 7. Основы защиты информации в автоматизированных системах 137
- Основные понятия 137
- Введение
- Глава 1
- Основные сведения
- Об информационных технологиях
- Обработки экономической информации
- 1.1. Экономическая информация как часть информационного ресурса общества
- 1.2. Информация и информационные процессы в организационно-экономической сфере
- 1.3. Информационные технологии обработки экономической информации
- 1.3.1. Информационная технология обработки данных
- 1.3.2. Информационные технологии автоматизированного офиса
- 1.3.3. Информационные технологии управления
- 1.3.4. Информационные технологии поддержки принятия решений
- 1.3.5. Информационные технологии экспертных систем
- 1.3.6. Нейросетевые технологии
- 1.4. Государственная политика в области информатизации
- Глава 2
- 2.1. Понятие автоматизированной информационной системы
- 2.2. Классификация экономических автоматизированных информационных систем
- 2.3. Структура автоматизированной информационной системы
- 2.3.1 Функциональная часть автоматизированной информационной системы
- 2.3.2. Обеспечивающая часть аис
- 2.4. Свойства и характеристики аис
- Вопросы для самоконтроля
- Глава 3 информационное обеспечение автоматизированных систем
- 3.1. Основные понятия
- 3.2. Документы в автоматизированной системе
- 3.3. Классификация и кодирование
- 3.4. Внутримашинное информационное обеспечение
- 3.4.1. Понятие базы данных
- 3.4.2. Базы данных и файловые системы
- 3.5. Проектирование и эксплуатация баз данных
- Вопросы для самоконтроля
- Глава 4 программное обеспечение автоматизированных систем
- 4.1. Основные понятия
- 4.2. Виды программного обеспечения автоматизированной системы
- 4.2.1. Системное общее программное обеспечение
- 4.2.2. Сервисное общее программное обеспечение
- 4.2.3. Прикладное общее программное обеспечение
- Пакеты прикладных программ
- Прикладные программы офисного применения
- 4.2.4. Инструментальное общее программное обеспечение
- 4.2.5. Специальное программное обеспечение автоматизированных систем
- Вопросы для самоконтроля
- Глава 5
- 5.1. Современные подходы к автоматизации управления в организационно-экономических системах
- 5.1.1. Кусочная автоматизация
- 5.1.2. Автоматизация по участкам
- 5,1.3. Автоматизация по направлениям
- 5.1.4. Полная автоматизация управления организацией
- 5.1.5. Подходы к проектированию автоматизированных информационных систем
- 5.2. Стандартизация деятельности, связанной с разработкой автоматизированных информационных систем
- 5.3. Жизненный цикл автоматизированной информационной системы
- 5.3.1. Понятие и модели жизненного цикла аис
- 5.3.2. Представление процесса разработки в екс ас
- 5.4. Некоторые вопросы проведения автоматизации в организации
- 5.4.1. Управление процессом автоматизации
- 5.4.2. Стратегия автоматизации
- 5.4.3. Реорганизация деятельности организационной системы
- 5.5. Роль пользователей в процессе разработки автоматизированной информационной системы
- Вопросы для самоконтроля
- 6.5. Эталонная модель взаимодействия открытых систем
- Основные функции уровней модели osi
- Глава 7 основы защиты информации в автоматизированных системах
- 7.1. Основные понятия
- 7.2. Угрозы безопасности информации в эис
- 7.2.1. Случайные угрозы
- 7.2.2. Преднамеренные угрозы
- 7.2.3. Последствия реализации угроз, специфические для эис
- 7.3. Методы и средства защиты информации в информационных системах
- 7.4. Комплексный подход к защите информации в автоматизированных системах
- Вопросы для самоконтроля
- Примеры современных программных средств в экономической сфере Система «1с: Предприятие»
- Система «Галактика»
- Литература