На Горох
Информатика, 11 класс

§ 7. Хранение данных в информационных системах

"Информатика (углублённый уровень)", Калинин И.А., Самылкина Н.Н.

Объяснение темы В оглавлении: § 7. Хранение данных в информационных системах

Кратко о теме

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

Объяснение темы

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

Определения и обозначения

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

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

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

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

Как это устроено

Информационной системе нужно организованное хранилище, потому что сведения обычно приходится сохранять надолго, искать по разным признакам и изменять. Если каждый сотрудник хранит собственные копии файлов, они могут разойтись: в одной версии данные уже обновлены, а в другой — нет. Общая база и работа через СУБД помогают обращаться к согласованным сведениям и предоставлять к ним доступ нескольким пользователям. Порядок хранения также позволяет быстрее находить нужные записи, чем при просмотре множества несвязанных файлов.

В реляционной базе данные распределяют по таблицам, каждая из которых описывает объекты одного типа. Например, таблица «Ученики» содержит сведения об учениках, а не одновременно о книгах, кабинетах и школьных мероприятиях. Каждая строка относится к одному объекту, а каждый столбец — к одному его свойству. Такое разделение облегчает поиск и обработку: можно выбрать учеников конкретного класса, не смешивая их сведения с данными других типов.

Сначала задают структуру таблицы: выбирают поля, определяют их назначение и тип значений. Например, поле «Дата рождения» предназначено для дат, а поле «Класс» может хранить номер или буквенно-цифровое обозначение класса. Тип ограничивает допустимые значения и помогает системе проверять ввод, сортировать и обрабатывать данные. Затем в строки помещают значения полей для отдельных объектов; если структура продумана заранее, сведения проще вводить и находить.

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

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

Элементы таблицы реляционной базы данных

ЭлементЧто представляетПример для таблицы «Ученики»
ТаблицаСведения об объектах одного типаУченики
Поле (столбец)Свойство объекта и тип хранимого значенияДата рождения
Запись (строка)Данные об одном объектеЗначения полей одного ученика
Первичный ключУникальный идентификатор записиКод ученика

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

Разбор задач

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

  1. Определяем объект: одна строка будет соответствовать одному участнику кружка.
  2. Выделяем свойства из условия: «Фамилия», «Класс» и «Контактный телефон». Каждое свойство записываем в отдельный столбец, а не объединяем, например, фамилию и класс в одно поле.
  3. Добавляем поле «Код участника» и выбираем его первичным ключом. Это позволит различать записи, даже если фамилии участников совпадут.

Ответ: таблица «Участники» с полями «Код участника», «Фамилия», «Класс», «Контактный телефон»; каждой строке соответствует один участник. Номер телефона следует хранить как контактное значение, а не использовать для идентификации: он может измениться или быть общим для нескольких людей. Отдельный код остаётся однозначным идентификатором записи.

Задача 2. В таблице «Книги» есть поля «Название», «Автор» и «Год издания». Названия книг могут повторяться. Выберите подходящий первичный ключ и объясните выбор. Здесь нельзя считать названием уникальный признак: разные издания или книги разных авторов могут иметь одинаковое название. Нужно проверить остальные поля и, если среди них нет гарантированно уникального, добавить код.

  1. Проверяем поле «Название»: условие прямо допускает повторения, поэтому оно не подходит.
  2. Проверяем поля «Автор» и «Год издания»: один автор может написать несколько книг за один год, поэтому и их сочетание не гарантирует уникальность каждой записи.
  3. Добавляем поле «Код книги», присваиваем каждой строке отдельное значение и объявляем это поле первичным ключом.

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

Задача 3. В базе библиотеки хранятся сведения о книгах и читателях. Нужно связать записи о выдачах с книгами и читателями, не повторяя их названия и фамилии в каждой записи. Чтобы не дублировать описания, достаточно хранить подробности о каждом типе объектов отдельно, а в таблице выдач указывать идентификаторы связанных записей. Тогда изменение фамилии или названия не потребует исправлять множество строк выдач.

  1. Создаём таблицы «Книги» и «Читатели», задаём в каждой первичный ключ: например, «Код книги» и «Код читателя».
  2. Создаём таблицу «Выдачи», где каждая запись описывает один факт выдачи. Добавляем в неё поля «Код книги» и «Код читателя», а также при необходимости дату выдачи и возврата.
  3. Используем коды из таблиц «Книги» и «Читатели» как ссылки на соответствующие записи. По ним СУБД может связать выдачу с описанием книги и данными читателя.

Ответ: хранить сведения в трёх таблицах и связывать «Выдачи» с таблицами «Книги» и «Читатели» по кодам. Названия книг и фамилии читателей в каждой записи о выдаче не повторяются. Это уменьшает дублирование и снижает вероятность того, что одинаковые сведения будут записаны по-разному.

Типичные ошибки

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

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

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

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

Связь с другими темами

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

Что запомнить

  • База данных хранит организованные сведения, а СУБД управляет ими.
  • Реляционная база данных состоит из таблиц.
  • Столбец таблицы соответствует полю, строка — записи.
  • Поле задаёт свойство объекта и тип хранимого значения.
  • Первичный ключ однозначно определяет запись.
  • Связанные таблицы позволяют не дублировать одни и те же сведения.

Частые вопросы по теме

Чем база данных отличается от обычного файла?

В обычном файле сведения могут быть записаны без общей структуры, поэтому поиск, обновление и совместная работа с ними часто затруднены. База данных организует сведения и связи между ними, а СУБД предоставляет средства управления ими.

Может ли база данных состоять из одной таблицы?

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

Почему первичный ключ должен быть уникальным?

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

Можно ли сделать первичным ключом фамилию человека?

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

Зачем хранить связанные сведения в разных таблицах?

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

Спросить по теме параграфа

§ 7. Хранение данных в информационных системах

Учебник

Оглавление →
Предмет
Информатика
Класс
11 класс
Учебник
"Информатика (углублённый уровень)", Калинин И.А., Самылкина Н.Н.