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

Теория реляционных БД. Часть 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. Зачем нужна первоначальная загрузка справочных данных, если компания только запускает новую систему?
Вернуться к учебному плану