База данных как модель предметной области - Урок информатики для 11 класса
📊 Информатика 11 класс

§ 12. База данных как модель предметной области

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

Цифровая вселенная данных: от хаоса к порядку

Цифровая вселенная данных: от хаоса к порядку

12.1. Информационные системы: инфраструктура цифрового мира

Почему способность накапливать и находить информацию — это суперсила?

Задумайся: что отличает человечество от других видов? Не только интеллект, но и способность передавать знания между поколениями, накапливать опыт, мгновенно находить нужную информацию.

📈 Масштаб цифровой вселенной

В 2011 году объём данных составил 1,8 зеттабайта. Это как 200 миллионов фильмов в HD, которые можно смотреть без остановки 47 миллионов лет! И каждые два года этот объём удваивается.

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

💡 База данных (БД)

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

БД хранится во внешней памяти компьютера и постоянно используется.

🔧 Информационная система

Это БД плюс все технологии и инструменты для работы с ней.

Аналогия: Представь БД как огромную библиотеку книг, а информационную систему — как библиотеку с каталогами, поисковыми системами, библиотекарями и удобными залами для чтения.

Где ты уже встречал информационные системы?

Каждый день ты взаимодействуешь с десятками информационных систем, даже не задумываясь об этом:

Транспорт

🚂 Транспортные системы

Покупка билетов на поезд или самолёт, отслеживание рейсов в реальном времени, проверка расписания электричек

Медицина

⚕️ Медицинские системы

Поиск лекарств в аптеках города, онлайн-запись к врачу, электронные медицинские карты

Карты

🗺️ Картографические сервисы

Яндекс.Карты, 2ГИС — они не только показывают маршруты, но и знают о пробках, работе кафе, отзывах о местах

Право

⚖️ Правовые порталы

Сайты с законами, нормативными актами, судебной практикой

Информационные системы — невидимая инфраструктура твоей повседневной жизни

Информационные системы — невидимая инфраструктура твоей повседневной жизни

12.2. Предметная область и её моделирование

Как описать кусочек реального мира на языке данных?

🌐 Определения

Предметная область — это та часть реального мира, которую мы рассматриваем в рамках какой-то задачи. Школа, библиотека, поликлиника, интернет-магазин — всё это примеры предметных областей.

Объект предметной области — это факт, лицо, событие, предмет, о котором могут быть собраны данные.

Сущность — это описание целого класса однотипных реальных объектов через набор их свойств (атрибутов).

В любой предметной области есть объекты (или классы объектов) и их свойства (атрибуты). Например, в предметной области "Школа":

📦 Объекты

Ученик, учитель, класс, кабинет, урок

🏷️ Свойства ученика

Фамилия, имя, год рождения, класс, номер личного дела

💻 Пример записи сущности

Сущность УЧЕНИК можно представить так:

УЧЕНИК (НОМЕР_ЛИЧНОГО_ДЕЛА, ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, ГОД_РОЖДЕНИЯ)

Связи между объектами: как всё это соединяется?

Объекты не существуют изолированно — между ними есть связи. Выделяют четыре типа связей:

1:1

Один к одному

Одному объекту А соответствует ровно один объект Б, и наоборот.

Пример: ВЫПУСКНИК_ШКОЛЫ ↔ АТТЕСТАТ. Каждый выпускник получает один аттестат, и каждый аттестат принадлежит одному выпускнику.

1:М

Один ко многим

Одному объекту А могут соответствовать несколько объектов Б, но каждому объекту Б соответствует только один объект А.

Пример: КЛАСС ↔ УЧЕНИКИ. В одном классе учится много учеников, но каждый ученик учится только в одном классе.

М:1

Многие к одному

Нескольким объектам А соответствует один объект Б. Это обратная связь к "один ко многим".

Пример: УЧЕНИКИ ↔ КЛАСС. Много учеников учатся в одном классе.

М:М

Многие ко многим

Нескольким объектам А могут соответствовать несколько объектов Б, и наоборот.

Примеры:

  • УЧЕНИКИ ↔ УЧИТЕЛЯ
  • АВТОРЫ ↔ КНИГИ

ER-модель: графический язык для описания данных

🎨 Модель "сущность–связь" (ER-модель)

ER-модель (от Entity-Relationship) — это способ наглядно изобразить, какие объекты есть в предметной области и как они связаны между собой.

Модель предметной области, включающая сущности, их атрибуты и связи между сущностями называют моделью «сущность–связь».

Используются условные обозначения:

▭ Прямоугольники

Сущности

◯ Эллипсы

Атрибуты (свойства)

◇ Ромбы

Связи между сущностями

ER-модель: архитектурный чертёж для мира данных

ER-модель: архитектурный чертёж для мира данных

✈️ Пример: предметная область "Авиаперелёты"

Рассмотрим две сущности: ПАССАЖИР и БИЛЕТ.

  • ПАССАЖИР имеет атрибуты: ИМЯ, ФАМИЛИЯ, ДОКУМЕНТ
  • БИЛЕТ имеет атрибуты: НОМЕР, РЕЙС, ДАТА, ВРЕМЯ, РЯД, МЕСТО

Связь между ними — Имеет (тип 1:1). Каждый пассажир имеет билет, каждый билет принадлежит пассажиру. Эта связь обязательная для пассажира (без билета не полетишь) и необязательная для билета (не все билеты могут быть проданы).

12.3. Модели данных: три подхода к организации информации

📐 Определение

Модель данных — это совокупность структур данных и операций их обработки.

С помощью модели данных могут быть представлены сущности и взаимосвязи между ними.

Существуют три основных типа моделей данных: иерархическая, сетевая и реляционная. Каждая имеет свои особенности, преимущества и ограничения.

Иерархическая модель: дерево с одним корнем

🌳 Принцип

Данные организованы в виде дерева. У каждого объекта (кроме корневого) есть только один родительский объект, но может быть много потомков.

📚 Пример: структура школы

ПОДРАЗДЕЛЕНИЕ (Старшая школа)
    ├── КЛАСС (10А)
    │   ├── УЧЕНИК (Князев И.С.)
    │   ├── УЧЕНИК (Кулик М.)
    │   └── УЧЕНИК (Курбатова В.)
    ├── КЛАСС (11А)
    │   ├── УЧЕНИК (Коровкин С.С.)
    │   └── УЧЕНИК (Куницына А.)
    └── КЛАСС (11Б)
        └── ...

✅ Преимущества

  • Простая и понятная структура
  • Эффективна для строго иерархических данных (файловые системы, организационные структуры)

❌ Недостатки

  • При большом количестве данных поиск может быть медленным
  • Сложно представить связи, которые не укладываются в иерархию

🔒 Основное правило целостности

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

⚙️ Команды для работы

  • Найти указанное дерево
  • Перейти от одного дерева к другому
  • Перейти от родительского объекта к объекту-потомку
  • Перейти от одного объекта к другому в иерархическом порядке
  • Вставить новый объект в указанном месте
  • Удалить текущий объект
Иерархическая модель: всё начинается с корня, и у каждого своё место

Иерархическая модель: всё начинается с корня, и у каждого своё место

Сетевая модель: паутина связей

🕸️ Принцип

У каждого объекта может быть несколько родителей и несколько потомков. Это более гибкая структура, чем дерево.

🏀 Пример: школьные секции

Ученики могут посещать несколько секций, и в каждой секции занимается много учеников:

  • Ученик Курбатова А. → Секции: Баскетбол, Бег
  • Ученик Ляпин П. → Секции: Баскетбол, Бег, Волейбол

✅ Преимущества

  • Гибкость в представлении сложных связей
  • Эффективный доступ к связанным данным

❌ Недостатки

  • При большом количестве объектов структура становится очень сложной
  • Трудно поддерживать и модифицировать

⚙️ Команды для работы

  • Найти указанный объект среди однотипных объектов
  • Перейти от родительского объекта к первому потомку
  • Перейти от объекта-потомка к родительскому объекту
  • Вставить новый объект
  • Удалить текущий объект
  • Изменить объект
  • Включить объект в определённую связь
  • Разорвать связь
Сетевая модель: сложная паутина связей без строгой иерархии

Сетевая модель: сложная паутина связей без строгой иерархии

Реляционная модель: мощь таблиц

📊 Принцип

Данные организованы в виде таблиц (отношений). Это самая распространённая модель, на которой основаны большинство современных БД.

Почему таблицы? Таблица — это универсальная структура, понятная человеку и удобная для обработки. Более того, таблицы можно рассматривать как математические множества, что позволяет использовать мощный аппарат теории множеств для работы с данными.

👨‍🔬 Эдгар Франк Кодд (1923–2003)

Британский учёный, создавший реляционную модель данных в 1970 году. Он применил математический подход к БД, основанный на теории множеств. Это была революция: вместо сложных иерархических структур — простые и понятные таблицы!

🔒 Целостность в реляционной модели

Обеспечивается двумя принципами:

  1. Уникальность идентификации: каждый объект должен однозначно определяться
  2. Корректность связей: связи между таблицами должны быть правильными
Реляционная модель: элегантность таблиц и мощь математики

Реляционная модель: элегантность таблиц и мощь математики

12.4. Реляционные базы данных: архитектура и связи

Структура реляционной таблицы

Основным объектом реляционной БД является таблица. Каждая такая таблица, называемая реляционной таблицей или отношением, обладает следующими свойствами:

Свойство 1

📋 Однородность столбцов

Все столбцы в таблице однородные, т. е. все элементы в одном столбце имеют одинаковый тип и максимально допустимый размер

Свойство 2

🏷️ Уникальные имена

Каждый столбец имеет уникальное имя

Свойство 3

✨ Уникальные строки

Одинаковые строки в таблице отсутствуют

Свойство 4

🔄 Порядок не важен

Порядок следования строк и столбцов в таблице не имеет значения

📝 Основные элементы реляционной таблицы

  • Поле (столбец) — элементарная единица данных, соответствует одному атрибуту сущности
  • Запись (строка) — набор логически связанных полей, описывающий один конкретный объект

🌊 Пример: таблица "КРУПНЕЙШИЕ ОЗЕРА"

Структура этой таблицы:

КРУПНЕЙШИЕ ОЗЕРА
    НАЗВАНИЕ
    МАТЕРИК
    МАКСИМАЛЬНАЯ ГЛУБИНА
    ПЛОЩАДЬ

Первичный ключ: как отличить одно от другого?

🔑 Определение

Первичный ключ (идентификатор) — это поле или набор полей, которые однозначно определяют каждую запись в таблице.

✅ Свойства первичного ключа

  1. Однозначная идентификация: по значению ключа можно найти ровно одну запись
  2. Отсутствие избыточности: удаление любого поля из составного ключа нарушит уникальность

📌 Типы ключей

  • Простой ключ — состоит из одного поля
  • Составной ключ — включает несколько полей

💡 Пример

В таблице "КРУПНЕЙШИЕ ОЗЕРА" первичным ключом может быть поле НАЗВАНИЕ (названия крупных озёр уникальны).

Связи между таблицами: соединяем данные

Для хранения сложной информации часто используют несколько связанных таблиц. Связь устанавливается через ключевые поля.

🔗 Внешний ключ

Внешний ключ — это поле в одной таблице, которое ссылается на первичный ключ другой таблицы.

Связь "один к одному" (1:1)

⚙️ Условие

Связь установлена по совпадающим первичным ключам.

Пример:

УЧЕНИК                          УЧЕБНЫЙ_ГОД
- Номер личного дела (ключ) ←→ - Номер личного дела (ключ)
- Фамилия                       - Предмет 1
- Имя                           - Предмет 2
- Отчество                      - Предмет 3
- Дата рождения                 - ...
- Класс                         - Результат

Связь "один ко многим" (1:М)

⚙️ Условие

Ключевое поле главной таблицы введено как внешний ключ в подчинённую таблицу.

Пример:

УЧЕБНЫЙ_ГОД (главная)          ПООЩРЕНИЕ (подчинённая)
- Номер личного дела (ключ) ←  - Результат (ключ)
- Предмет 1                 ←  - Средний балл
- Предмет 2                    
- ...
- Результат (внешний ключ) ──┘

Один ученик (одна запись в УЧЕБНЫЙ_ГОД) может получить несколько поощрений (несколько записей в ПООЩРЕНИЕ).

Связь "многие ко многим" (М:М)

⚙️ Условие

Реализуется через третью связующую таблицу. Связь М:М — это комбинация двух связей 1:М.

Пример: библиотека

ЧИТАТЕЛЬ (главная)             АБОНЕМЕНТ (связующая)          КНИГА (главная)
- Код читателя (ключ) ←─────── - Код выдачи (ключ)    ───────→ - Код книги (ключ)
- Фамилия                       - Код читателя (внеш.)          - Автор
- Имя                           - Код книги (внеш.)             - Название
- Отчество                      - Дата выдачи                   - Год издания
- Адрес                         - Дата возврата                 - Залоговая цена

Один читатель может взять много книг, и одна книга может быть взята многими читателями (в разное время).

Связи между таблицами: от простых отношений к сложным зависимостям

Связи между таблицами: от простых отношений к сложным зависимостям

✅ Ключевые выводы

Информационные системы — основа цифрового мира. Они позволяют мгновенно находить нужное в океане данных. База данных — это ядро любой информационной системы, организованное по определённым правилам хранилище информации о предметной области.
ER-модель — это архитектурный чертёж данных. Перед созданием БД нужно понять, какие объекты (сущности) существуют в предметной области, какие у них свойства (атрибуты) и как они связаны между собой. Это позволяет избежать хаоса и противоречий.
Три модели данных — три подхода к организации. Иерархическая (дерево) проста, но ограничена. Сетевая гибка, но сложна. Реляционная (таблицы) сочетает простоту и мощь, поэтому доминирует в современном мире.
Связи между таблицами отражают связи реального мира. Типы связей (1:1, 1:М, М:М) — это не абстракция, а способ точно описать, как объекты взаимодействуют в реальности. Первичные и внешние ключи — механизм, обеспечивающий целостность данных при любых операциях.

🤔 Проверь себя

Эти задачи помогут глубже понять материал и применить знания на практике

1. Кейс-задача: Стриминговый сервис

Ты разрабатываешь БД для стримингового сервиса (аналог Twitch). Какие сущности тебе понадобятся? Какие связи между ними? Попробуй построить ER-модель для этой предметной области.

Подсказка: Подумай о стримерах, зрителях, трансляциях, донатах, чате...

2. Мысленный эксперимент: Скорость поиска

Почему поиск в Интернете работает за секунды, а поиск файла на компьютере может занять минуты, хотя объём данных в Интернете в миллионы раз больше? Как индексация данных решает эту проблему?

Подумай: Что происходит, когда файловая система компьютера индексирует файлы? Как работают поисковые роботы?

3. Аналогия для младших

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

4. Анализ социальной сети

В социальной сети есть сущности ПОЛЬЗОВАТЕЛЬ и ПОСТ. Какой тип связи между ними? А если добавить сущность КОММЕНТАРИЙ? А ЛАЙК? Построй схему связей.

Дополнительно: Какие атрибуты должны быть у каждой сущности? Что будет первичным ключом?

5. Проблемная ситуация: Выбор ключа

В таблице "УЧЕНИКИ" есть поля: ИМЯ, ФАМИЛИЯ, КЛАСС, ДАТА_РОЖДЕНИЯ. Можно ли использовать поле ФАМИЛИЯ как первичный ключ? Почему да или почему нет? Что можно использовать вместо этого?

Подумай: Бывают ли однофамильцы? Что делает запись уникальной?

6. Практическое применение

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

7. Критическое мышление: Сравнение моделей

В чём главное преимущество реляционной модели перед иерархической и сетевой? В каких случаях иерархическая модель может быть эффективнее?

Подумай: Файловая система компьютера — это какая модель?

8. Анализ фрагмента БД: Выставка

Таблица 1 (Страна - Участник):

  • Великобритания - Стив
  • Германия - Мейер
  • США - Кинкейд
  • Россия - Сафронов

Таблица 2 (Участник - Жанр):

  • Глазунов - Натюрморт
  • Селби - Пейзаж
  • Сафронов - Портрет
  • Мейер - Пейзаж

Вопросы:

  1. Охарактеризуйте связь между представленными таблицами БД
  2. Художники из скольких стран представили на выставке пейзажи?
  3. Представьте всю информацию в одной таблице
  4. Представьте всю информацию в форме графа
9. Анализ родственных связей

Дан фрагмент БД о родственных отношениях с двумя таблицами:

Таблица 1: ID, Фамилия И.О., Пол

Таблица 2: ID Родителя, ID Ребёнка

Задания:

  1. Представьте информацию в форме графа
  2. Определите количество внуков у конкретного человека
  3. Найдите информацию о скольких супружеских парах представлена
  4. Определите родственные связи (дяди, тёти и т.д.)
10. Проектирование БД: Концертный зал

Построй модель «сущность–связь» для предметной области «Концертный зал».

Подумай:

  • Какие сущности нужны? (Артист, Концерт, Зал, Билет, Посетитель...)
  • Какие атрибуты у каждой сущности?
  • Какие связи между сущностями и какого типа?

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

1. Для чего нужно упорядоченное хранение данных?

Подумай о скорости поиска, удобстве работы, исключении дублирования и противоречий...

2. Что такое информационная система? Каково основное назначение информационных систем?

Вспомни определение и примеры из реальной жизни.

3. Имеете ли вы опыт использования каких-либо информационных систем?

Приведи конкретные примеры систем, которыми ты пользовался сегодня.

4. Что такое база данных? Как связаны информационная система и база данных?

Подумай об аналогии: БД — это книги, а ИС — это вся библиотека с системой поиска.

5. Что такое предметная область? Как представляются объекты предметной области?

Вспомни примеры: школа, больница, магазин...

6. Что такое сущность? Что такое экземпляр сущности? Приведите примеры.

Например: УЧЕНИК — это сущность, а Иванов Иван — это экземпляр.

7. Что называют моделью «сущность–связь»?

Вспомни графические обозначения: прямоугольники, эллипсы, ромбы.

8. Назовите типы связей между сущностями предметной области

1:1, 1:М, М:1, М:М — приведи примеры для каждого типа.

9. Что такое модель данных? Для чего она создаётся?

Модель данных — это способ организации данных и операций над ними.

10. Опишите иерархическую модель данных

Вспомни структуру дерева, правило целостности, команды для работы.

11. Опишите сетевую модель данных

Чем она отличается от иерархической? В чём её преимущества и недостатки?

12. Опишите реляционную модель данных

Почему таблицы? Какова роль Эдгара Кодда?

13. Опишите таблицу реляционной БД

Вспомни четыре основных свойства реляционной таблицы.

14. Что такое ключевое поле? Каковы требования к ключевому полю?

Первичный ключ должен однозначно идентифицировать запись и не содержать избыточности.

15. Какого типа связи могут быть установлены между таблицами реляционной БД?

1:1, 1:М, М:М — охарактеризуй каждый тип с примерами.

🚀 Отличная работа! Теперь ты понимаешь, как устроена цифровая вселенная данных. В следующих темах мы узнаем, как проектировать собственные базы данных и работать с языком запросов SQL!

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

Информатика — твой билет в цифровое будущее