"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.
Таблица базы данных хранит сведения об однотипных объектах в строках и столбцах. Каждая строка описывает один объект, а каждый столбец — его отдельный признак, например название или год издания. Чтобы находить записи без путаницы, таблице задают первичный ключ — поле или набор полей с уникальными значениями. Несколько связанных таблиц помогают хранить данные без лишних повторов и поддерживать их согласованность.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Таблица базы данных — способ представить сведения об однотипных объектах в виде строк и столбцов. Например, таблица «Книги» может содержать информацию о книгах, но не смешивать её с данными о покупателях. Такое представление помогает упорядочить сведения и находить нужные объекты.
Запись — строка таблицы, содержащая сведения об одном объекте. В таблице «Книги» одна запись объединяет название, автора и год издания конкретной книги. По строкам можно сравнивать разные объекты по одним и тем же признакам.
Поле — столбец таблицы, задающий отдельный признак объектов. Например, поле «Автор» содержит сведения об авторах всех книг в таблице. Поля нужны, чтобы группировать однотипную информацию и обрабатывать её отдельно.
Первичный ключ — поле или набор полей, по которому можно однозначно определить запись. Например, это может быть специальный код книги, не повторяющийся в таблице. Ключ помогает отличать записи, даже если названия или другие признаки совпадают.
Все записи одной таблицы описывают однотипные объекты, потому что для них используется одна и та же схема признаков. Если в таблице собраны книги, каждая строка содержит сведения именно о книге, а не о читателе или заказе. Благодаря общему набору полей записи можно сопоставлять: значение в столбце «Год издания» относится к одному и тому же признаку во всех строках.
Поле задаёт признак объекта, а его имя и тип показывают, что именно и в каком виде в нём хранится. Имя «Год издания» помогает понять смысл столбца, а тип, например целое число, задаёт допустимый формат значений. Если поле назвать понятно и выбрать подходящий тип, с данными проще работать и меньше риск неверного ввода.
Значение поля в каждой записи должно соответствовать установленному типу, иначе программа не сможет надёжно сравнивать и обрабатывать данные. Например, если в поле с числовым типом случайно записать слово, вычисление среднего года или сортировка могут работать некорректно. Проверка типа помогает обнаруживать ошибки при вводе и поддерживать единый формат значений.
Первичный ключ нужен, потому что обычные признаки могут повторяться. У двух книг могут совпасть название и год издания, а у двух людей — имя и фамилия. Значения первичного ключа должны однозначно различать строки, поэтому по нему можно точно найти нужную запись, изменить её или связать с другой таблицей.
Несколько связанных таблиц позволяют не повторять одни и те же подробные сведения в каждой строке. Например, информацию о товаре можно хранить в таблице товаров, а в таблице заказов указывать код товара и количество. Если название или цена изменятся, достаточно обновить сведения о товаре в одном месте, а ссылки на его код останутся прежними.
| Элемент | Расположение в таблице | Что описывает | Пример |
|---|---|---|---|
| Таблица | Вся структура: строки и столбцы | Набор однотипных объектов | Таблица «Книги» |
| Запись | Строка | Один объект | Сведения об одной книге |
| Поле | Столбец | Один признак объектов | «Автор» |
| Значение поля | Ячейка на пересечении строки и столбца | Признак конкретного объекта | «А. Пушкин» |
| Первичный ключ | Поле или набор полей | Однозначное различение записей | Код книги |
Чтобы прочитать таблицу, сначала найдите нужную строку — запись об объекте, затем посмотрите значения под названиями столбцов. Имя поля сообщает, какой признак указан, а значение в ячейке относится к конкретной записи. Первичный ключ позволяет точно обратиться к нужной строке.
Условие. Для таблицы «Книги» с полями «Название», «Автор», «Год издания» нужно указать запись и поле. Различие определяется не тем, сколько текста содержится в элементе, а его расположением и ролью. Сначала представим таблицу как сетку: признаки расположены по столбцам, а отдельные книги — по строкам.
Ответ. «Название», «Автор» и «Год издания» — поля таблицы. Строка со значениями этих полей для одной книги — запись, а отдельная ячейка, например год издания, — значение поля.
Условие. В таблице учеников указаны фамилия, имя и класс. Нужно предложить первичный ключ и объяснить, почему фамилия для этого не подходит. Проверим, может ли выбранное значение повториться у разных учеников: если может, оно не определяет запись однозначно.
Ответ. Подходящий первичный ключ — уникальный номер ученика. Фамилия не подходит, потому что одинаковые фамилии встречаются у разных людей, и по ней нельзя точно выбрать нужную запись.
Условие. В каждом заказе бывает несколько товаров, а один товар может встречаться в разных заказах. Если записывать все сведения в одну таблицу, названия товаров и данные заказов будут повторяться, поэтому выделим отдельные сущности и связь между ними.
Ответ. Нужны три связанные таблицы: «Заказы», «Товары» и «Строки заказа». Коды в последней таблице указывают, какой товар и в каком количестве включён в заказ, а подробные сведения о заказе и товаре хранятся по одному разу.
Ошибка — считать запись полем или наоборот. Это происходит, когда путают элементы таблицы, не обращая внимания на их расположение. Проверьте себя: строка с набором сведений об одном объекте — запись, а столбец с одним признаком — поле.
Ошибка — выбрать первичным ключом фамилию или название. Такие значения могут повторяться, но их часто принимают за уникальные, потому что в небольшом примере совпадений не видно. Проверьте ключ на всех записях: если возможны две строки с одинаковым значением, он не идентифицирует их однозначно.
Ошибка — хранить в одном поле данные разных типов или сразу несколько значений. Так бывает, когда ради удобства в одной ячейке записывают, например, несколько авторов через запятую или число вместе с поясняющим текстом. Проверьте, соответствует ли каждое значение типу поля и можно ли обрабатывать его отдельно; при необходимости разделите данные на отдельные поля или записи.
Ошибка — многократно дублировать сведения об одном объекте в разных строках. Повторы кажутся простым решением, но после изменения одной копии остальные могут устареть. Проверьте, не описывает ли один и тот же объект несколько строк, и вынесите его сведения в отдельную таблицу, связав записи ключом.
Для работы с таблицами полезно понимать, как информация представляется в компьютере и чем отличаются типы данных: тип ограничивает допустимые значения поля. Таблица также связана с моделированием объектов и их свойств, поскольку строки представляют объекты, а столбцы — их признаки. На основе таблиц изучают реляционные базы данных, связи между данными и запросы, с помощью которых выбирают и обрабатывают нужные записи.
Чем запись отличается от поля?
Запись — это строка, в которой собраны сведения об одном объекте. Поле — столбец, который содержит однотипные сведения об объектах, например их фамилии или даты рождения.
Может ли таблица иметь несколько полей?
Да, обычно таблица содержит несколько полей, потому что объект характеризуется разными признаками. Например, в таблице книг можно хранить название, автора и год издания.
Зачем таблице нужен первичный ключ?
Он позволяет однозначно определить каждую запись, даже если другие сведения повторяются. По ключу удобно находить запись и связывать её с данными из других таблиц.
Почему фамилия обычно не подходит на роль первичного ключа?
У разных людей могут быть одинаковые фамилии, поэтому по фамилии нельзя всегда понять, о ком именно идёт речь. Лучше выбрать уникальный номер ученика или сочетание полей, которое гарантированно различает записи.
Зачем данные хранят в нескольких связанных таблицах?
Так одни и те же сведения не приходится многократно копировать. Например, данные о товаре можно хранить один раз, а в заказах указывать его код и количество.
§ 13. Таблицы