Основы моделирования и базы данных

Теория реляционных БД. Часть 2

В лекции рассматривается эволюция подходов к работе с данными: от традиционной файловой организации с её избыточностью, противоречивостью и слабой защищённостью к централизованному управлению на основе баз данных. Изложение строится последовательно: сначала перечисляются недостатки старого подхода, затем вводятся базовые понятия — данные, база данных, СУБД, банк данных — и демонстрируется, как новая архитектура с единым источником устраняет прежние проблемы. Далее раскрывается трёхуровневая модель ANSI (внешний, концептуальный, внутренний уровни), языковые средства DDL и DML, роли пользователей и детальный перечень функций администратора баз данных.

Основные мысли

В результате изучения лекции слушатель будет способен:
1. Назвать и объяснить не менее пяти недостатков традиционного файлового подхода к хранению данных.
2. Дать определения ключевым понятиям: данные, база данных, предметная область, СУБД, банк данных.
3. Сравнить архитектуры файлового и централизованного (на основе БД) подходов, указав принципиальное отличие.
4. Описать трёхуровневую модель ANSI/SPARC, объяснив назначение каждого из уровней.
5. Различать языковые средства DDL и DML и приводить примеры их использования.
6. Классифицировать категории пользователей баз данных и формулировать их основные задачи.
7. Перечислить и интерпретировать функции администратора базы данных, связывая их с обеспечением целостности, доступности и производительности.
Показывать лекцию целиком
Краткое изложение
Традиционный подход к хранению данных и его недостатки

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

У такой организации множество недостатков:
• Избыточность данных. Информация дублируется, чтобы обеспечить одновременный доступ многим сотрудникам к одним и тем же документам.
• Противоречивость данных. Приложения слабо связаны. Изменения, внесённые одним сотрудником в файл через одно приложение, могут конфликтовать с правками другого сотрудника, работающего через другое приложение. Автоматической связи между файлами нет, поэтому, например, корректировка сметы не запускает пересчёт связанных финансовых показателей. Проверять согласованность приходится вручную.
• Ограниченная доступность данных.
• Сложность организации и управления. Архитектура запутанная и не оптимизированная.
• Недостаточные средства защиты. Данные хранятся как простые файлы, и уровень защиты ограничен возможностями файловой системы, что значительно слабее специализированной защиты базы данных.
• Низкая производительность в многопользовательской среде. Архитектура плохо масштабируется.
• Отсутствие процедур восстановления. Нет механизмов репликации или отказоустойчивости.
• Отсутствие средств манипулирования данными. Данные предоставляются «как есть», без встроенных инструментов обработки.
• Высокая стоимость разработки и сопровождения. Несмотря на неэффективность, создание и поддержка такой системы обходятся дороже.
• Негибкость к изменениям.

Ключевые понятия

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

Новая архитектура: единый источник данных

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

Трёхуровневая модель представления данных (ANSI/SPARC)

Американский национальный институт стандартов (ANSI) предложил архитектуру, разделяющую представление данных на три уровня:
1. Внешний уровень (External Level). Это представление данных с точки зрения конкретного пользователя или приложения. Например, сотрудник отдела кадров видит не сложную схему из связанных таблиц с кодами, а готовую сводную таблицу, где все коды заменены на текстовые значения, выполнены группировки и фильтрации, необходимые для его операционной деятельности.
2. Концептуальный уровень (Conceptual Level). Это обобщённое, интегральное представление данных, описывающее, как данные должны видеться всем пользователям в принципе, без привязки к их специализации. Здесь определяются общие правила, например, что все справочные коды должны быть декодированы и подставлены связанные сущности.
3. Внутренний уровень (Internal Level). Это физическое представление данных — то, как они реально хранятся в БД: в виде таблиц, с первичными и внешними ключами, индексами, наследуемыми атрибутами. Это та самая схема данных, которую проектирует и с которой работает администратор.

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

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

Для взаимодействия с БД служат два типа языковых средств:
• DDL (Data Definition Language) — язык определения данных. С его помощью описывается структура: что это за данные, их тип, домены, задаются ограничения целостности.
• DML (Data Manipulation Language) — язык манипулирования данными. Наиболее известный пример — SQL (Structured Query Language), язык структурированных запросов. Он позволяет выбирать, вставлять, обновлять и удалять данные.

Категории пользователей

• Конечные пользователи — сотрудники, которые взаимодействуют с базой через клиентские приложения.
• Прикладные программисты — разрабатывают эти приложения, реализуя корректное выполнение бизнес-процессов и запись информации в нужные таблицы.
• Администраторы данных и администраторы баз данных (АБД) — обеспечивают отказоустойчивость, непротиворечивость, постоянный многопользовательский доступ, безопасность и производительность.

Функции администратора баз данных

Работа администратора БД критически важна и включает следующие задачи:
1. Анализ предметной области. Понимание бизнес-процессов, чтобы верно определить необходимость связей между сущностями и избежать будущих противоречий.
2. Проектирование структуры БД. Создание схемы данных на основе технического задания и анализа предметной области.
3. Задание ограничений целостности. Описание логики проверок, которые БД должна выполнять автоматически при манипулировании данными. Пример: процедура, не позволяющая назначить 3D-фильм в зал, который поддерживает только 2D.
4. Первоначальная загрузка и ведение БД. Заполнение справочной информации (списки городов, стран, сотрудников) при запуске системы.
5. Защита данных и обеспечение восстановления. Организация контуров защиты, резервное копирование и восстановление после сбоев.
6. Анализ обращений пользователей. Отслеживание подозрительной активности (например, DDoS-атак), поиск источника противоречий через логирование сессий, оценка активности сотрудников.
7. Анализ эффективности функционирования. Изучение характера запросов для их оптимизации: введение дополнительных индексов, переписывание запросов на основе рекомендаций встроенных анализаторов СУБД.
8. Работа с конечными пользователями. Выяснение их реальных потребностей для создания нужных аналитических выгрузок, графиков и отчётов.
9. Подготовка и поддержание системных средств. Мониторинг аппаратных ресурсов сервера (память, перегрев), обеспечение корректной работы клиентских приложений, предотвращение «зависания» транзакций, способного привести к частичной записи данных.

Краткие итоги

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

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

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

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

Основные понятия

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

Централизованная архитектура

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

Трёхуровневая модель ANSI/SPARC

Архитектура, предложенная ANSI, описывает три уровня представления данных:
• Внешний уровень — то, как данные видят отдельные пользователи (готовая сводная таблица с фильтрами, без кодов).
• Концептуальный уровень — обобщённое представление, описывающее правила отображения данных для всех (например, декодирование справочников).
• Внутренний уровень — физическое хранение: таблицы, первичные и внешние ключи, индексы.

Языковые средства и компоненты

Для работы с данными служат:
• DDL (Data Definition Language) — язык определения данных, задаёт структуру таблиц, типы и ограничения.
• DML (Data Manipulation Language) — язык манипулирования данными; основной представитель — SQL (Structured Query Language). Позволяет извлекать, вставлять, обновлять и удалять записи.

Пользователи и администратор БД

Выделяют конечных пользователей, прикладных программистов и администраторов БД. Функции администратора являются ключевыми для стабильности и полезности системы:
• Анализ предметной области для верного проектирования связей.
• Проектирование структуры БД.
• Задание ограничений целостности — автоматических проверок (например, запрет показа 3D-фильма в 2D-зале).
• Первоначальная загрузка справочников (города, страны) и начальных данных.
• Защита данных и восстановление — резервное копирование, ролевой доступ.
• Анализ обращений — логирование для поиска аномалий и причин противоречий.
• Анализ эффективности — оптимизация запросов через индексы и рефакторинг на основе встроенных анализаторов.
• Работа с конечными пользователями — выяснение их аналитических потребностей для создания отчётов и дашбордов.
• Поддержание системных средств — мониторинг серверного оборудования, предотвращение сбоев клиентских приложений.

Выводы

1. Традиционный файловый подход страдает от избыточности, противоречивости и отсутствия централизованных механизмов защиты и восстановления.
2. СУБД объединяет всех пользователей и приложения вокруг единого логически непротиворечивого источника данных.
3. Данные — это формализованная информация любого типа (текст, числа, мультимедиа), пригодная для автоматизированной обработки.
4. Банк данных включает не только БД, но и весь комплекс программных, технических и организационных средств.
5. Трёхуровневая модель ANSI разделяет физическое хранение, общие правила и индивидуальные пользовательские представления.
6. Внешний уровень даёт пользователю готовую сводную таблицу, скрывая сложность внутренней схемы и кодов.
7. Концептуальный уровень задаёт глобальные правила отображения данных для всех категорий пользователей.
8. DDL определяет структуру данных, а DML управляет содержимым; SQL является основным представителем DML.
9. Задание ограничений целостности — это автоматические проверки, предотвращающие противоречия (например, недопустимый формат показа).
10. Анализ эффективности запросов позволяет администратору оптимизировать БД, добавляя индексы или изменяя запросы.
11. Без первичной инициализации справочников (города, страны) бизнес-логика приложений не сможет корректно работать.
12. Работа администратора с конечными пользователями напрямую влияет на превращение данных в аналитику для бизнес-решений.

Вопросы для самопроверки

1. Почему в файловом подходе возникала проблема противоречивости данных и как её решает БД?
2. Объясните разницу между понятиями «СУБД» и «банк данных».
3. Какие три уровня выделяются в архитектуре ANSI/SPARC? Приведите пример информации на каждом уровне.
4. Какие две основные категории языковых средств используются в СУБД и для чего они предназначены?
5. Приведите практический пример работы языка манипулирования данными.
6. Кто такой администратор базы данных и как его роль связана с многопользовательским доступом?
7. Почему анализ предметной области является частью обязанностей администратора БД?
8. Опишите, как задание ограничений целостности помогает предотвратить ошибочные операции.
9. Какие задачи решает администратор БД в рамках анализа эффективности функционирования?
10. Перечислите не менее трёх действий, которые администратор выполняет для подготовки системных средств.
11. Как взаимодействие с конечными пользователями влияет на качество работы базы данных?
12. Зачем нужна первоначальная загрузка справочных данных, если компания только запускает новую систему?
Вернуться к учебному плану