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

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

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

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

В результате изучения лекции слушатель будет способен:
1. Объяснять, каким образом централизованное хранение данных сокращает их избыточность и устраняет противоречивость.
2. Анализировать преимущества и недостатки многопользовательского доступа к базе данных с точки зрения безопасности и владения информацией.
3. Формулировать ключевые требования к современным системам управления базами данных.
4. Классифицировать базы данных по характеру использования и технологии обработки.
5. Сравнивать архитектурные подходы «файл-сервер» и «клиент-сервер», оценивая их применимость в различных сценариях.
6. Обосновывать выбор между централизованными и распределёнными системами с учётом факторов масштабирования, безопасности и отказоустойчивости.
7. Идентифицировать потенциальные угрозы защите данных при переходе от локального хранения к серверному и предлагать способы их минимизации.
Показывать лекцию целиком
Краткое изложение
Преимущества использования базы данных

Переход к централизованной базе данных даёт ряд важных преимуществ.

Сокращение избыточности данных. Вся информация хранится в одном месте. Если одни и те же сведения нужны нескольким сотрудникам, они обращаются к одному экземпляру данных, а не к дублирующимся документам.
Устранение противоречивости. Благодаря связям между таблицами и согласованности данных исключаются расхождения в информации.
Общий доступ. Обеспечивается многопользовательская работа с соблюдением стандартов, в том числе стандартов безопасности. Можно назначать роли (roles) и управлять правами на уровне отдельных пользователей. Дополнительное разграничение даёт деление базы данных на схемы (schemas).
Обеспечение целостности. При внесении изменений хранимые процедуры (stored procedures) могут автоматически обновлять связанные таблицы. Например, при появлении новой продажи можно найти сотрудника-консультанта и увеличить накопленную им сумму продаж, мгновенно поддерживая целостность данных.

Недостатки централизованного подхода

Централизация данных порождает и определённые проблемы.

Потеря единоличного владения данными. Документ больше не находится на локальной машине пользователя. Данные хранятся на удалённом сервере, и пользователь не распоряжается правами доступа к ним.
Повышение вероятности нарушения защиты. Раньше документ находился на одном компьютере, и утечка была возможна только через компрометацию учётных данных этого компьютера. Теперь сервер имеет множество каналов связи с клиентскими машинами, что увеличивает количество потенциальных точек несанкционированного доступа.
Угроза секретности хранимой информации. Возникает риск некорректной настройки прав: пользователь может получить доступ к данным, не предназначенным для него. Например, перед выгрузкой могла не сработать или сработать с ошибкой процедура деперсонализации (depersonalization), и человек увидит реальные фамилии, номера паспортов и другие конфиденциальные сведения.

Требования к современной СУБД

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

1. Эффективное выполнение функций предметной области. Все необходимые манипуляции должны производиться максимально быстро.
2. Минимизация и контроль избыточности данных. Следует избегать дублирования информации в рамках одного промышленного контура. Исключение составляет реплицирование (replication) — создание копий для отказоустойчивости, позволяющих получить снимок (snapshot) данных на определённый момент для возможного отката.
3. Предоставление непротиворечивой информации для принятия решений. Необходимо отслеживать согласованность внешних ключей (foreign keys), не допуская наложения противоречивых значений.
4. Обеспечение многопользовательского режима. Система должна поддерживать одновременную работу множества аналитиков с данными.
5. Управление безопасностью. Инструмент должен позволять разграничивать права, назначать их, отслеживать сессии подключений, фиксировать, какие данные были извлечены, изменены или удалены.
6. Простая физическая реорганизация данных. Необходимо гибко изменять структуру базы (добавлять поля, например ИНН в карточку клиента) быстро и без колоссальных затрат. Бизнес эволюционирует, и СУБД должна синхронно подстраиваться под изменения бизнес-процессов.
7. Централизованное управление. Все аспекты администрирования базы данных должны решаться через единый инструмент — одно приложение, фреймворк (framework) или контейнер, а не через разрозненные утилиты.

Классификация баз данных

Базы данных можно классифицировать по нескольким основаниям.

По характеру использования:
o Однопользовательские: поддерживают работу только одного пользователя. Часто применяются из соображений безопасности, когда ответственность за данные лежит на одном лице.
o Многопользовательские: поддерживают параллельный доступ нескольких пользователей. Изначально все системы были однопользовательскими, но с развитием технологий стали доминировать многопользовательские.
По технологии обработки данных:
o Централизованные: база данных физически хранится в памяти одного компьютера. Обеспечивают более высокий уровень безопасности и отказоустойчивости за счёт аппаратного контроля, но дороги в обслуживании, сложны в масштабировании и требуют закупки физического оборудования при росте мощностей.
o Распределённые: данные размещены на нескольких машинах, возможно, находящихся на разных континентах, но образующих единый информационный кластер (cluster). Такие системы проще масштабировать, однако они уступают централизованным в отказоустойчивости и безопасности. Вопросы безопасности в распределённых системах зачастую решаются на программном уровне, что позволяет со временем приблизиться к надёжности, гарантированной аппаратно в централизованных решениях.

Архитектуры построения систем

Существует два глобальных подхода к обработке информации.

Файл-сервер (file-server). Файлы базы данных физически передаются на рабочие станции клиентов, где и происходит вся обработка. Такой подход сегодня встречается редко из-за колоссальных объёмов современных данных (терабайты на небольшом предприятии). Клиентские машины не рассчитаны на интенсивные вычисления: у них нет производительных видеокарт и многоядерных процессоров, они оптимизированы под офисные приложения и браузеры.
Клиент-сервер (client-server). Вся предобработка выполняется на стороне сервера базы данных. Клиент получает только готовый результат. Это доминирующая модель в современных решениях, позволяющая разгрузить слабые клиентские машины и централизованно управлять вычислительными ресурсами.

Архитектура распределённых систем

Распределённое клиент-серверное решение опирается на корпоративную сеть. Оно может объединять множество географически разделённых представительств компании: отделения в разных городах работают с единой системой, где серверная часть распределена по узлам, а клиенты подключаются к ближайшим или центральным узлам обработки.

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

Принятие решения в пользу централизованной базы данных означает фундаментальный сдвиг в управлении информацией: от изолированных локальных файлов — к единому источнику достоверных данных. Это превращает противоречивые разрозненные сведения в согласованный массив, доступный одновременной работе множества пользователей. Целостность автоматически поддерживается через серверные механизмы, такие как хранимые процедуры, реагирующие на любое изменение. Однако переход в общее информационное пространство порождает новое качество рисков: данные перестают быть «вещью в себе» у конечного владельца и оказываются в среде с расширенной поверхностью атак. Каждый канал клиентского подключения — потенциальный вектор несанкционированного проникновения. Угроза усугубляется человеческим фактором при конфигурировании прав доступа и сбоями процедур маскирования чувствительной информации.

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

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

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

При переходе к централизованной базе данных достигается сокращение избыточности: все работают с одним экземпляром информации. Связи между таблицами и согласованность устраняют противоречивость. Многопользовательский общий доступ реализуется с назначением ролей (roles), делением на схемы (schemas). Хранимые процедуры (stored procedures) автоматически обновляют связанные таблицы, гарантируя целостность; например, новая продажа увеличивает накопленную сумму консультанта.

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

Требования к современной СУБД

СУБД должна:
Эффективно выполнять функции предметной области.
Минимизировать и контролировать избыточность, допуская лишь реплицирование (replication) для создания снимков (snapshots) и отказоустойчивости.
• Предоставлять непротиворечивую согласованную информацию, отслеживая внешние ключи (foreign keys).
• Поддерживать многопользовательский режим.
Управлять безопасностью: разграничивать права, аудировать сессии, фиксировать изменения.
• Обеспечивать простую физическую реорганизацию — быстрое добавление полей (например, ИНН) без колоссальных затрат, синхронно с развитием бизнеса.
• Иметь централизованное управление через единый инструмент (приложение, фреймворк (framework)), а не разрозненные утилиты.

Классификация баз данных

По характеру использования:
Однопользовательские — только один пользователь, часто ради безопасности.
Многопользовательские — параллельный доступ многих сотрудников.

По технологии обработки:
Централизованные — вся база на одной машине. Дают аппаратную надёжность и защищённость, но дороги, сложны в масштабировании.
Распределённые — данные на нескольких машинах, объединённых в кластер (cluster). Легко масштабируются, однако требуют усиленной программной защиты, так как аппаратные гарантии ниже.

Архитектуры: файл-сервер и клиент-сервер

Файл-сервер (file-server): файлы базы физически передаются клиентам, обработка идёт на их машинах. Неприменим при терабайтных объёмах из-за слабости клиентского оборудования.
Клиент-сервер (client-server): вся обработка происходит на сервере, клиент получает только готовый результат. Это основной подход сегодня.

Распределённые системы строятся как клиент-серверные решения в рамках корпоративной сети, объединяя географически удалённые представительства.

Выводы

1. Централизованная база данных устраняет избыточность, поскольку все пользователи обращаются к одному экземпляру информации.
2. Связи и хранимые процедуры автоматически поддерживают целостность и непротиворечивость сведений при любых изменениях.
3. Переход на единый сервер лишает пользователя права единоличного владения информацией и контроля над доступом.
4. Множество каналов связи с клиентами увеличивает поверхность атаки и вероятность несанкционированного проникновения.
5. Риск утечки конфиденциальных данных возрастает при ошибках в настройке ролей и процедурах деперсонализации.
6. СУБД должна минимизировать дублирование, но допускать реплицирование для создания отказоустойчивых снимков.
7. Система обязана обеспечивать одновременную работу многих аналитиков без конфликтов и нарушения согласованности.
8. Инструменты управления безопасностью должны давать гранулярный аудит: кто, когда и какие данные изменил или извлек.
9. Гибкая физическая реорганизация позволяет быстро добавлять поля и таблицы, синхронизируя БД с эволюцией бизнеса.
10. Все аспекты администрирования требуется объединить в едином централизованном решении, а не наборе разрозненных утилит.
11. Распределённые кластеры выигрывают в масштабируемости, но уступают централизованным системам в аппаратной надёжности и безопасности.
12. Модель «клиент-сервер», где сервер выполняет всю обработку, стала стандартом для работы с большими объёмами данных на слабых клиентских машинах.

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

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