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

§ 7. Проектирование базы данных

"Информатика (в 2-х частях)", Горячев А.В., Островский С.Л., Паволоцкий А.В., Семёнов А.А., Чернышёва Т.Л., Широков Д.В.

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

Кратко о теме

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ЭлементГде расположенЧто содержит или для чего нуженПример для базы данных книг
ТаблицаВ базе данных; состоит из строк и столбцовОбъединяет сведения об однотипных объектахТаблица «Книги»
ПолеСтолбец таблицыХранит значения одного свойства объектов«Название», «Автор», «Год издания»
ЗаписьСтрока таблицыСодержит значения полей для одного объектаДанные об одной книге
Первичный ключОдно из полей или сочетание полейОднозначно определяет записьУникальный номер книги

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

Разбор задач

Задача 1. База данных «Школьная библиотека»

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

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

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

Задача 2. База данных «Кружки»

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

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

Ответ: таблица «Кружки» содержит поля «Название кружка» (текст), «Кабинет» (текст) и «Преподаватель» (текст). Если база должна различать кружки с одинаковым названием, нужно добавить подходящее поле-ключ. Тип данных выбирают не только по внешнему виду значения, но и по тому, как его предполагается использовать.

Задача 3. Ключ для таблицы «Книги»

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

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

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

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

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

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

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

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

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

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

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

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

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

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

С чего начать проектирование базы данных?

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

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

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

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

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

Можно ли использовать название объекта как ключ?

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

Как понять, какие поля нужно включить в таблицу?

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

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

§ 7. Проектирование базы данных

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

Учебник

Оглавление →
Предмет
Информатика
Класс
9 класс
Учебник
"Информатика (в 2-х частях)", Горячев А.В., Островский С.Л., Паволоцкий А.В., Семёнов А.А., Чернышёва Т.Л., Широков Д.В.