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

§ 17. Создание однотабличной базы данных

"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.

Объяснение темы В оглавлении: § 17. Создание однотабличной базы данных

Кратко о теме

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

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

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

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

Поле — столбец таблицы, в котором хранятся значения одного свойства объектов. У каждого поля есть имя и тип данных, например «Автор» и «текст». Имя помогает понять содержание столбца, а тип — определить допустимые значения. Благодаря отдельным полям можно искать и сравнивать объекты по их свойствам.

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

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

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

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

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

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

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

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

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

Элементы структуры однотабличной базы данных

ЭлементГде расположенЧто содержит или обеспечиваетПример
ПолеСтолбец таблицыЗначения одного свойства объектовАвтор книги
ЗаписьСтрока таблицыСведения об одном объектеДанные об одной книге
Тип данных поляЗадаётся для поляОграничивает значения и определяет допустимую обработкуЧисловой тип для года
Первичный ключОдно поле или сочетание полейОднозначно различает записиУникальный номер экземпляра

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

Разбор задач

Поля и типы для учёта книг

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

  1. Выделим свойства экземпляра: его номер, название книги, автора, год издания и наличие в библиотеке.
  2. Создадим поля «Инвентарный номер», «Название», «Автор», «Год издания» и «В наличии».
  3. Для названия и автора выберем текстовый тип, для года — числовой, для наличия — логический. Инвентарный номер можно задать как текст, если он может содержать буквы или ведущие нули.
  4. Назначим «Инвентарный номер» первичным ключом, если каждому экземпляру выдают неповторяющийся номер.

Ответ. Подходящие поля: «Инвентарный номер» (текстовый или специальный тип идентификатора), «Название» (текстовый), «Автор» (текстовый), «Год издания» (числовой), «В наличии» (логический). Уникальный инвентарный номер различает экземпляры, даже если их названия совпадают.

Почему название не всегда является ключом

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

  1. Сравним возможные записи и проверим, может ли у них повторяться название.
  2. Учтём, что даже сочетание названия, автора и года не во всех случаях гарантирует уникальность: могут существовать несколько экземпляров одного издания.
  3. Добавим поле «ID книги» или «Инвентарный номер» и обеспечим каждому объекту отдельное значение.
  4. Проверим, что поле заполнено во всех строках и ни одно значение не повторяется.

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

Таблица учёта выдачи книг

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

  1. Определим поля: «ID выдачи», «Читатель», «Книга», «Дата выдачи» и «Дата возврата».
  2. Для «ID выдачи» выберем числовой или специальный тип идентификатора, для «Читатель» и «Книга» — текстовый, если хранятся имена и названия, а для обеих дат — тип даты.
  3. Назначим «ID выдачи» первичным ключом: отдельный номер для каждой выдачи не зависит от того, совпадают ли остальные сведения.
  4. Проверим, что каждая строка описывает одну выдачу, ключи не пропущены и не повторяются, а даты введены как даты.

Ответ. Таблица содержит поля «ID выдачи», «Читатель», «Книга», «Дата выдачи» и «Дата возврата». Первичный ключ — «ID выдачи»; типы для дат должны поддерживать хранение и сравнение календарных значений.

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

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

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

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

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

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

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

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

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

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

Чем поле отличается от записи?

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

Можно ли хранить числа в поле текстового типа?

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

Зачем таблице нужен первичный ключ?

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

Может ли первичный ключ состоять из нескольких полей?

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

Почему структуру базы данных лучше определить до ввода записей?

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

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

§ 17. Создание однотабличной базы данных

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Класс
11 класс
Учебник
"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.