Найти тему

Разбор теории для 3-го задания ЕГЭ по информатике: поиск информации в реляционных базах данных

Оглавление

Задание 3 требует использования MS Excel (либо же могут использоваться аналогичные редакторы электронных таблиц от OpenOffice или LibreOffice) и согласно спецификации выполняется за 3 минуты.

Для успешного решения третьего задания ЕГЭ нужно не только знать теорию, но и уметь пользоваться редакторами электронных таблиц.

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

Для чего используются базы данных

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

Информация в общем смысле - это какие-либо сведения без определённой формы представления.

Компьютер же устроен так, что он способен работать только с информацией, которую можно закодировать с помощью последовательности единиц и нулей. Для этого информация должна быть представлена в приемлемом для кодирования виде - такая информация называется "данными".

Данные - это информация, представленная в определённом виде. По-другому, данные - это структурированная информация.

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

Реляционные базы данных

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

В реляционных базах данных все данные хранятся в таблицах.

Таблица - это структура, которую действительно можно представлять как самую обычную таблицу со строками и столбцами.

Однако в реляционных базах данных строки называются записями.

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

Вместо столбцов в реляционных БД существуют "поля".

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

  • "Имя" - тип данных "строка".
  • "Возраст" - тип данных "целое число".
  • "Подтвердил почту" - тип данных "логический".

Проиллюстрирую описанное выше:

Строки называют "записями", а столбца "полями"
Строки называют "записями", а столбца "полями"

Почему база данных является реляционной

Проблема таблиц с большим количеством полей

Чем больше данных нам требуется хранить, тем больше полей появляется в наших таблицах. Часто такой рост таблиц "вширь" приводит к большим проблемам.

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

  • Город - строка, хранящая название города жительства человека.
  • Разница по времени - число, описывающее разницу во времени между наших часовым поясом и часовым поясом человека.
  • Страна - строка, хранящая страну, в которой живёт наш коллега.

Получится примерно такая таблица:

-3

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

Всё будет нормально до тех пор, пока мы не допустим случайную опечатку.

Была допущена опечатка в слове "Москва"
Была допущена опечатка в слове "Москва"

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

Опечатка может стать причиной серьёзных ошибок
Опечатка может стать причиной серьёзных ошибок

Как нам уменьшить шанс появления подобных ошибок? Всё просто - нам нужно просто выносить повторяющиеся данные в отдельные таблицы.

Но для начала нам стоит понять, что такое ключи в реляционных базах данных.

Ключи в таблицах

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

Что может быть первичным ключом в рассмотренном нами примере?

-6

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

Для этого придумали очень простое решение - в качестве первичного ключа используют числовой идентификатор (ID). Посмотрите на таблицу выше и скажите, как зовут человека под номером "2"? Правильно: Пётр.

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

Ещё раз на примерах:

  • Порядковый номер в качестве первичного ключа - это суррогатный ключ.
  • Уникальный идентификатор в виде строки - это естественный ключ.

Теперь, когда мы знаем, что такое первичный ключ, мы сможем понять, что такое вторичный ключ.

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

Например, предположим, что у нас есть 2 таблицы:

  1. Таблица с городами. У каждого города есть уникальный номер.
  2. Таблица с людьми. У каждого человека есть уникальный номер.

Что означает фраза "Человек с ID 3 живёт в городе с ID 5"? Чтобы понять, мы просто найдём запись с первичным ключом "3" в таблице людей и запись с первичным ключом "5" в таблице городов". Вот и связь.

Эта связь называется отношением. А что такое "реляционный"? Это тот, который имеет "отношения". Вот и причина, почему база данных называется реляционной: таблицы связаны друг с другом отношениями.

Строим отношения между таблицами

Вернёмся к рассматриваемому нами примеру. Что мы делаем? Просто превращаем одну таблицу в две: выносим города в отдельную таблицу и связываем её с таблицей учеников с помощью внешнего ключа "номер города".

-7

Теперь скажите, в каком городе живёт ученик с первичным ключом "5"?

Ещё раз, в примере выше:

  • Первичные ключи: поле "№" в таблице "Ученики", поле "№" в таблице "Города".
  • Внешний ключ: поле "Номер города" в таблице "Ученики".

Схема базы данных

Теперь, когда мы знаем все основы организации реляционных баз данных, мы сможем понять, что такое схема базы данных.

Схема базы данных - это описание таблиц базы данных и связей между ними.

Если посмотреть формулировку 3-го задания в ЕГЭ, мы увидим, что там эта схема тоже есть в упрощённом виде. Вот она:

Схема, описывающая БД
Схема, описывающая БД

Теперь, смотря на эту схему, мы можем очень лёгко понять, из чего состоит база данных.

Есть 3 таблицы: "Движение товаров", "Магазин", "Товар". В каждой из таблиц есть свои поля.

В таблицах "Движение товаров" и "Магазин" используются первичные суррогатные ключи. В таблице "Товар" первичный ключ является естественным.

Связи между таблицами тоже ясны. Главной таблицой является "Движение товаров", каждая запись которой ссылается на конкретный магазин и товар.

Эпилог

Реляционные базы данных - это очень мощная технология, которую необходимо изучать подробнее.

Однако в рамках ЕГЭ эта тема затрагивается вскользь. Теории, рассмотренной в данной статье, будет достаточно.

Для лучшего понимания темы рекомендую попытаться разработать собственную схему базы данных с помощью программы MS Access - эта программа не понадобится для подготовки к третьему заданию ЕГЭ по информатике, но позволяет очень просто на практике освоить принципы работы с таблицами и их отношениями.

В одной из следующих статей я рассмотрю решение 3-ей задачи. После прочтения этого материала, проблем не возникнет :3