Databases. Part II - Первичные ключи

Базы данных Databases. Part II - Первичные ключи

«Данные не должны противоречить»

Могут ли вообще данные нам что-то сказать?? Они же, просто данные… А уж тем более начать противоречить!! Разбираться в этом вопросе начнем со все тех же первичных ключей.

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

Но, если первичного ключа нет, или он выбран неправильно, складываются противоречия:

Итак, противоречие №1

Представим, что в классе много однофамильцев, и при запросе преподавателя «Иванов, к доске!!», выходят 2 ученика :) :) противоречие №2

(из примера предыдущей темы) На кассе считывают штрих-код колбасы, и из базы данных выбирается сразу три разных сорта, по разной цене…

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

Ограничение первое: Категорная целостность данных

В КАЖДОЙ ТАБЛИЦЕ ДОЛЖЕН БЫТЬ ПЕРВИЧНЫЙ КЛЮЧ

Все просто - создали таблицу, определили первичный ключ.

Практическая часть:

1>> Запускаем MS Access. 2>> Создаем новую базу данных. 3>> На вкладке Создание выбираем Конструктор таблиц. 4>> Вписываем имена полей (характеристики объектов, хранящихся в таблице). 5>> Определяем типы данных. 6>> Определяем первичный ключ. 7>> Сохраняем.

Для примера, создадим таблицу учащихся школы:

1. Каждый ученик – это объект, который будет занимать отдельную строчку

2. У каждого ученика есть характеристики, среди которых для нас важны следующие: фамилия, имя, отчество, пол, дата рождения, адрес и номер телефона.

3. Типы данных скорее всего будут следующие: дата рождения – понятное дело дата/время :) , все остальные – текстовые. Кто хочет поспорить по поводу номера телефона??

4. Первичный ключ…. Проверяем, какое поле может подходить на эту роль: фамилии могут повторяться – не то, имя и отчество – аналогично, как вам вариант определять по полу или по дате рождения = )))))))) Есть вариант по адресу или номеру телефона, но ученики могут быть родственниками и жить в одной квартире, а это явное противоречие данных, и номера телефона может не быть…

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

Вот и все, этого несложного алгоритма достаточно, чтобы на данном этапе грамотно создавать таблицы.

Еще несколько примеров:

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

В таблице «книги», содержащей данные о фонде библиотеки, первичный ключ – код книги.

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

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


Карта сайта


Информационный сайт Webavtocat.ru