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

Устаревший подход

В лекции рассматривается, почему Excel как инструмент централизованного хранения данных приводит к критическим проблемам, и обосновывается необходимость использования баз данных. Изложение строится от практического примера: создаётся таблица для учёта автомобилей в Excel, после чего последовательно вскрываются недостатки такого подхода — комбинированные поля, несогласованность ввода, избыточность, противоречивость, аномалии обновления и удаления. Логика материала движется от демонстрации внешне удобной таблицы к выявлению её внутренних ограничений, подводя слушателя к выводу о потребности в ином, более надёжном способе организации информации.

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

В результате изучения лекции слушатель будет способен:
1. Выявлять структурные недостатки таблиц, ведущихся в Excel.
2. Объяснять причины возникновения избыточности и противоречивости данных при плоском табличном хранении.
3. Анализировать риски, связанные с коллизиями вставки, обновления и удаления информации.
4. Сравнивать возможности электронных таблиц и баз данных в контексте централизованного хранения.
5. Обосновывать необходимость перехода к системе управления базами данных для критичных бизнес-данных.
Показывать лекцию целиком
Краткое изложение
Начало: пример на основе Excel
Представьте, что нам нужно хранить информацию об автомобилях. Не зная о существовании баз данных, первым решением будет Excel. Создадим таблицу со столбцами: «Название», «Привод», «Цвет», «Коробка передач», «Цена», «Комплектация». Для наглядности добавим столбец «Год» и несколько записей. Например, Audi Q5 (2013, полный привод, белый, автомат, цена 300, климат-контроль и люк), BMW X3 (2015, полный привод, чёрный, автомат, цена 500, кожаные кресла) и ещё один BMW X3 (2015, полный привод, «мокрый асфальт», автомат, цена 500, базовая комплектация). Таблица выглядит заполненной и кажется удобной. Однако уже на этом простом примере проявляются серьёзные проблемы.

Проблема комбинированных полей
Столбец «Название» фактически включает и марку, и модель автомобиля. Если потребуется найти все автомобили марки Audi или только модель X3, поиск (даже с помощью функции ВПР (VLOOKUP) или сочетания Ctrl+F) окажется неэффективным. Частичное совпадение может затронуть другие столбцы. Первый шаг к решению — разбить это поле на два: «Марка» и «Модель». Именно такое разделение становится первым шагом к нормализации, позволяя в будущем выполнять более гибкие запросы.

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

Избыточность данных
После разнесения марки и модели становится видно, что при повторении модели X3 мы каждый раз дублируем и марку BMW. С одной стороны, таблица остаётся полностью заполненной, с другой — каждая лишняя ячейка увеличивает объём файла. В масштабе тысяч строк подобное дублирование ведёт к неоправданному росту хранимой информации.

Противоречивость информации
Прямое следствие избыточности. Если в одной строке написать «BMW», а в другой ошибочно «BMV», система посчитает их разными марками. Одна и та же модель окажется связанной с противоречивыми данными. Целостность разрушается, а доверие к отчётам падает.

Проблема временной зависимости и аномалия вставки
Цена автомобиля со временем меняется. Чтобы отразить изменение, мы вынуждены создать новую строку, продублировав все остальные атрибуты (марку, модель, цвет и т.д.) только ради обновления цены и даты. При таблице из восьми столбцов это означает копирование шести неизменных значений. Если бы столбцов было тридцать, избыточность стала бы колоссальной. Такая практика получила название аномалия вставки: добавление одного факта требует размножения всей записи.

Коллизии удаления и обновления
После продажи Audi Q5 по цене 250 строку с исторической информацией удалять нельзя — иначе исчезнет связь с финансовой отчётностью. Но Excel не имеет механизмов, защищающих от случайного удаления. Всё зависит от человеческого фактора. Если таблиц несколько и между ними есть неявные связи, каскадное удаление может сделать невозможным восстановление цепочки событий. Аналогичная ситуация — аномалия обновления: если в строке, описывающей несколько одинаковых автомобилей, изменить цену, будет потеряна информация о прошлых сделках. Данные о факте продажи по старой цене бесследно затираются.

Вывод: необходимость баз данных
Таким образом, Excel прекрасно подходит для операционной работы, анализа и построения отчётов на основе выгруженных данных. Но как место централизованного исходного хранения он порождает аномалии вставки, удаления и обновления, избыточность и противоречивость информации. Возникает потребность в ином подходе — системе управления базами данных, которая через нормализацию, типизацию и ограничения целостности способна разрешить все перечисленные проблемы. Именно этот переход и станет предметом дальнейшего изучения.

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

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

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

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

Однако почти сразу проявляются проблемы. Первая — комбинированные поля. Столбец «Название» фактически объединяет марку и модель. Поиск всех автомобилей Audi или конкретной модели затруднён: приходится применять функции поиска, которые могут затронуть и другие столбцы. Решение — разделить поле на два: «Марка» и «Модель». Это первый шаг к нормализации, делающий структуру более гибкой для запросов.

Вторая проблема — некорректность заполнения. Свободный текстовый ввод в полях «Привод» или «Цвет» приводит к тому, что один и тот же параметр могут записать по-разному: «4x4» или «полный привод», с пробелом в начале, разным регистром. При фильтрации часть записей теряется. Необходимо единое правило ввода, но в Excel его трудно гарантировать.

Третья проблема — избыточность данных. После разделения марки и модели мы видим, что при нескольких записях BMW X3 значение «BMW» дублируется в каждой строке. Это увеличивает объём файла. Гораздо серьёзнее, что избыточность ведёт к противоречивости: если в одной строке написать «BMW», а в другой ошибочно «BMV», система будет считать их разными марками, разрушая целостность данных.

Четвёртая проблема связана с динамикой атрибутов. Цена автомобиля меняется во времени. Чтобы сохранить историю, приходится создавать новую строку с обновлённой ценой и новой датой, копируя при этом все остальные неизменные поля (марку, модель, цвет и т.д.). Это аномалия вставки: изменение одного атрибута вынуждает полностью дублировать запись. При десятках столбцов избыточность растёт катастрофически.

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

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

Выводы

1. Excel, удобный для операционной работы, непригоден для централизованного достоверного хранения исходных данных.
2. Комбинированные поля (например, «Марка и модель») затрудняют поиск и фильтрацию, нарушая атомарность данных.
3. Свободный текстовый ввод без справочников ведёт к синонимам, опечаткам и потере записей при выборках.
4. Разделение комбинированных полей — первый шаг к нормализации, улучшающий структурную чёткость.
5. Избыточное дублирование одной и той же информации увеличивает объём хранения и снижает эффективность.
6. Дублирование неизбежно порождает противоречивость, когда одна сущность описывается разными значениями.
7. Фиксация изменяющихся во времени атрибутов требует вставки полной новой строки, вызывая аномалию вставки.
8. Аномалия вставки приводит к экспоненциальному росту объёма при частых обновлениях отдельных полей.
9. Отсутствие транзакционных механизмов делает критичным случайное удаление строк — разрушаются целостные связи.
10. Прямое изменение значения в разделяемой записи ведёт к безвозвратной потере исторических фактов (аномалия обновления).
11. Человеческий фактор, умноженный на многотабличные зависимости, создаёт риск полной потери прослеживаемости данных.
12. Для обеспечения непротиворечивости, целостности и надёжности необходимо переходить к системам управления базами данных.

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

1. Почему столбец «Название автомобиля» в примере считается комбинированным полем и какие трудности это создаёт?
2. Каким образом разделение столбца «Название» на «Марку» и «Модель» можно назвать шагом к нормализации?
3. Приведите примеры проблем, возникающих при неконтролируемом текстовом вводе в полях «Привод» или «Цвет».
4. Что такое избыточность данных и как она проявляется при дублировании марки BMW для разных записей модели X3?
5. Объясните, как избыточность способствует возникновению противоречивой информации.
6. Опишите аномалию вставки на примере изменения цены автомобиля с течением времени.
7. Почему подход с созданием новой строки для каждого изменения цены приводит к чрезмерному дублированию?
8. В чём заключается коллизия удаления и почему Excel не гарантирует сохранение целостности связей?
9. Как неконтролируемое обновление ячейки может уничтожить историю коммерческих операций?
10. Какой основной недостаток Excel делает его неприемлемым для роли централизованного хранилища бизнес-данных?
11. Какие четыре типа проблем (включая аномалии операций) были выявлены при анализе табличного хранения?
12. Какую роль играет человеческий фактор в обеспечении достоверности данных при использовании только электронных таблиц?
Вернуться к учебному плану