Определение полей в таблицах

Для чего нужны

Вот основ­ные зада­чи БД на при­ме­ре гар­де­роб­ной:

  • Сохра­нить наши дан­ные по запро­су — что­бы вы мог­ли открыть дверь, пове­сить курт­ку, закрыть дверь и боль­ше не думать ни о курт­ке, ни о гар­де­роб­ной.
  • Изме­нить наши дан­ные по запро­су — что­бы мож­но было лег­ко извлечь из гар­де­роб­ной все дыря­вые нос­ки и поло­жить на их место целые.
  • Най­ти эти дан­ные по запро­су — что­бы быст­ро най­ти при­лич­ный пиджак или пар­ный носок.
  • Не дать про­чи­тать эти дан­ные тем, кому не сле­ду­ет, а кому надо — дать. Напри­мер, млад­ший брат может смот­реть на ваши крос­сов­ки, но не может их брать. А девуш­ка (или парень) может поло­жить свои вещи, но толь­ко на опре­де­лён­ную пол­ку.
  • Под­дер­жи­вать поря­док и не дать захла­мить­ся — если вам было лень и вы про­сто кину­ли тол­стов­ку куда попа­ло, что­бы гар­де­роб­ная либо сама нашла, куда эту тол­стов­ку пра­виль­но поло­жить, либо ска­за­ла: «Э БРАТ ЗАЧЕМ ЗАХЛАМЛЯЕШЬ ПОЛОЖИ НОРМАЛЬНО ДАВАЙ»
  • Мас­шта­би­ро­вать­ся — что­бы вы мог­ли про­сто вешать в гар­де­роб­ную вещи и не думать об объ­ё­ме полок.
  • Не поте­рять дан­ные — если квар­ти­ра будет гореть, при­лич­ная гар­де­роб­ная не долж­на даже нагреть­ся. Или, если она всё-таки горит, что­бы где-то в защи­щён­ном под­зем­ном гара­же была точ­ная копия этой гар­де­роб­ной со все­ми акту­аль­ны­ми веща­ми.

Использование доменов для контролирования значений в полях

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

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

  • Черный
  • Карий
  • Синий
  • Зеленый
  • Светло-коричневый
  • Серый
  • Фиолетовый

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

  • Лазурный
  • Цвет морской волны
  • Небесно-голубой
  • Кобальтовый
  • Аквамарин

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

Типы данных в базах

В Access можно определить следующие типы полей:

  • Текстовый – текстовая строка; максимальная длина задаётся параметром «размер», но не может быть больше 255
  • Поле МЕМО – текст длиной до 65535 символов
  • Числовой – в параметре «Размер поля» можно задать поле: байт, целое, дейсвительное и т.п.
  • Дата/время – поле, хранящее данные о времени.
  • Денежный – специальный формат для финансовых нужд, по сути являющийся числовым
  • Счётчик – автоинкрементное поле. При добавлении новой записи внутренний счётчик таблицы увеличивается на единицу и записывается в данное поле новой записи. Таким образом, значения этого поля гарантированно различны для разных записей. Тип предназначен для ключевого поля
  • Логический – да или нет, правда или ложь, включен или выключен
  • Объект OLE– в этом поле могут храниться документы, картинки, звуки и т.п. Поле является частным случаем BLOB– полей ( Binary Large Object ), встречающихся в различных базах данных
  • Гиперссылка – используется для хранения ссылок на ресурсы Интернета. Встречается не во всех форматах баз данных. К примеру, такого типа нет в dBaseи Paradox
  • Подстановка

Типы данных в таблицах Access 

  • Текстовый
  • Поле МЕМО
  • Числовой
  • Дата\время
  • Денежный
  • Счётчик
  • Логический
  • Объект OLE
  • Гиперссылка

Не надо забывать про индексы. Связывать таблицы. Связь с обеспечением целостности контролирует каскадное удаление и модификацию данных.

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

В чём преимущества

Базы дан­ных и их систе­мы управ­ле­ния зато­че­ны на рабо­ту с боль­шим объ­ё­мом дан­ных и от лица боль­шо­го чис­ла поль­зо­ва­те­лей. Сей­час вы пой­мё­те.

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

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

Слож­ность. Базы дан­ных нуж­ны в чис­ле про­че­го для хра­не­ния слож­но струк­ту­ри­ро­ван­ных дан­ных. Мы при­вык­ли думать, что база дан­ных — это такая таб­ли­ца, где есть стро­ки и столб­цы. Но база дан­ных при пра­виль­ной орга­ни­за­ции может намно­го боль­ше:

  • Свя­зы­вать одну еди­ни­цу дан­ных с мно­же­ством дру­гих. Напри­мер, если один чело­век совер­шил мно­го зака­зов со мно­же­ством това­ров внут­ри каж­до­го, база дан­ных спо­соб­на хра­нить и обра­ба­ты­вать такие свя­зи.
  • База может хра­нить дере­во дан­ных — вро­де того, о кото­ром мы писа­ли недав­но. Попро­буй в реаль­ной жиз­ни похра­нить дере­во!
  • В базах могут жить ссыл­ки на дру­гие фраг­мен­ты и отде­лы базы.

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

Целостность данных

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

  • Совпадающие поля из основной таблицы являются первичным ключом или имеет уникальный индекс.
  • Связанные поля имеют один и тот же тип данных. Из этого правила есть два исключения: Поле AutoNumber может быть связано с полем Number, которое имеет настройку свойства Long Integer, а поле AutoNumber, которое имеет   настройку свойства Replication ID, может быть связано с полем Number, которое имеет   настройку свойства Replication ID.
  • Обе таблицы относятся к одной и той же базе данных Access. Если таблицы являются связанными таблицами, они должны быть таблицами в формате Access, и необходимо открыть базу данных, в которой они хранятся, чтобы установить целостность данных. Референтная целостность не может быть применена для связанных таблиц из баз данных в других форматах.

При использовании целостности данных применяются следующие правила:

  • Невозможно ввести значение во внешнем ключевом поле связанной таблицы, которое не существует в первичном ключе первичной таблицы. Тем не менее, можно ввести значение Null во внешнем ключе. Это указывает на то, что записи не связаны между собой. Например, невозможно иметь заказ, который назначается клиенту, который не существует. Тем не менее, можно иметь заказ, который не назначается никому, введя значение Null в поле CustomerID.
  • Вы не можете удалить запись из основной таблицы, если в соответствующей таблице существуют соответствующие записи. Например, вы не можете удалить запись сотрудника из таблицы «Сотрудники», если в таблице «Заказы» есть заказы, назначенные сотруднику.
  • Невозможно изменить основное ключевое значение в основной таблице, если эта запись имеет соответствующие записи. Например, вы не можете изменить идентификатор сотрудника в таблице «Сотрудники», если в таблице «Заказы» есть заказы, назначенные этому сотруднику.

Как это работает

Возь­мём про­стой при­мер реля­ци­он­ной базы дан­ных (мож­но упро­щён­но ска­зать, что это база дан­ных в виде таб­ли­цы).

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

Определение полей в таблицах

В нашем при­ме­ре у базы есть поля — Имя, Фами­лия, Теле­фон и Фото, в кото­рых могут хра­нить­ся дан­ные. Одна строч­ка — одна запись с дан­ны­ми.

Если поль­зо­ва­те­лю нуж­но будет най­ти теле­фон Миха­и­ла Мак­си­мо­ва по фами­лии, про­ис­хо­дит сле­ду­ю­щее:

Запрос от поль­зо­ва­те­ля: Выдай мне из базы «Контакты» все записи, где поле «Фамилия» равно «Максимов»Ответ от базы дан­ных: ЛОЛ КЕК Ты кто такойЗапрос поль­зо­ва­те­ля: Я хозяин этой базы Админ Админыч, пароль •••••. Выдай мне из базы «Контакты» все записи, где поле «Фамилия» равно «Максимов»Ответ от базы дан­ных: Найдена одна запись:

Описание Microsoft Access 2007

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

Типы баз данных

По способу сохраненных данных: фактографическая и документальная.​По способу хранения данных: усредненная, распространенная.​По способу организации данных: реляционная (табличная), иерархическая и сетевая (схема 1).

Схема 1. Типы баз данных 

Теория управления базами данных начала развиваться как самостоятельный предмет в начале 50-х годов XX века. За это время была сформирована система понятий баз данных. Например:​Объектом называется элемент информационной системы, хранящийся в базе данных.​Атрибут (латинский – attributio) – запись об определенных параметрах каждого объекта БД.​Атрибут является основным элементом  БД.

Виды баз данных

  1. Фактографическая – содержит краткую информацию об объектах некоторой системы в строго фиксированном формате;
  2. Документальная – содержит документы самого разного типа: текстовые, графические, звуковые, мультимедийные;
  3. Распределённая – база данных, разные части которой хранятся на различных компьютерах, объединённых в сеть;
  4. Централизованная – база данных, хранящихся на одном компьютере;
  5. Реляционная – база данных с табличной организацией данных;
  6. Неструктурированная (NoSQL) — база данных, в которой делается попытка решить проблемы масштабируемости и доступности за счёт атомарности (англ. atomicity) и согласованности данных, но не имеющих четкой (реляционной) структуры.

Одно из основных свойств БД – независимость данных от программы, использующих эти данные. Работа с базой данных требует решения различных задач, основные из них следующие:

  • создание базы;
  • запись данных в базу;
  • корректировка данных;
  • выборка данных из базы по запросам пользователя.

Задачи этого списка называются стандартными.

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

База данных в разных системах имеет различную структуру.

В ПВЭМ обычно используются реляционные БД – в таких базах файл является по структуре таблицей. В ней столбцы называются полями, строки – записями.

В БД содержатся банные некоторого множества объктов. Каждая запись содержит данные одного объекта. Каждая такая БД определяется именем файла, списком полей, шириной полей. Например, БД Школа (Ученик, Класс, Адрес).

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

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

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

Объекты для работы с базами данных

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

  • набор данных
  • источник данных
  • визуальные элементы управления

В нашем случае эта триада реализуется в виде:

  • Table
  • DataSource
  • DBGrid

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

Однако, поскольку Table является невизуальным компонентом, хотя связь с базой и установлена, пользователь не в состоянии увидеть какие – либо данные. Поэтому необходимо добавить визуальные компоненты, отображающие эти данные. В нашем случае это сетка DBGrid. Сетка сама по себе «не знает», какие данные ей нужно отображать, её нужно подключить к Table, что и делается через компонент – посредник .

А зачем нужен компонент – посредник? Почему бы сразу не подключаться к Table?

Допустим, несколько визуальных компонентов – таблица, поля ввода и т.п. подключены к таблице. А нам нужно быстро переключить их все на другую подобную таблицу. С DataSource это сделать несложно — достаточно просто поменять свойство t, а вот без пришлось бы менять указатели у каждого компонента.

Приложения баз данных – нить, связывающая БД и пользователя:

БД => набор данных –=> источник данных => визуальные компоненты => пользователь

Набор данных:

  • Table(таблица, навигационный доступ)
  • Query(запрос, реляционный доступ)

Визуальные компоненты:

  • Сетки DBGrid, DBCtrlGrid
  • Навигатор DBNavigator
  • Всяческие аналоги Lable, Editи т.д.
  • Компоненты подстановки

Технология работы с СУБД Access

Разработка СУБД в Access выполняется при помощи следующих пунктов:

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

  • Определить примерное количество таблиц в базе данных — информацию необходимо систематизировать и “разложить все по полочкам”. Не следует добавлять слишком много полей в одну таблицу: лучше распределить данные на две и связать их. Каждая таблица должна содержать только одну тему.

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

  • Определить соотношения таблицы-поля.

  • Обозначить первичные и (при необходимости) вторичные ключи в таблицах.

  • Построить схему данных для БД, отражающую связи между таблицами. Максимизировать взаимодействие между данными при помощи этих связей.

  • Усовершенствовать структуру, наглядно посмотрев на всю имеющуюся информацию и ее возможную систематизацию.

  • Воспользоваться анализом самого Access для очередной проверки.

Создание СУБД в Access возможно двумя способами:

  • использовать мастера БД для создания необходимых объектов;

  • создать пустую БД, дополняя ее новыми объектами самостоятельно.

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

Продуманную схему данных можно реализовать при помощи соответствующей вкладки в СУБД. Каждый из видов связи наглядно показывается в Access. Связи можно видоизменять или даже удалять.

Создание и заполнение баз данных

Типы и форматы полей базы данных

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

Типы и форматы полей базы данных

Типы полей. Выше уже говорилось о четырех типах полей: символьном, числовом, логическом и «дата». В некоторых СУБД используются и другие типы полей, например, «Время», «День недели», «Адрес» и пр. Кроме того, многие СУБД позволяют создавать поля типа «Примечание». Дело в том, что размер символьного поля обычно ограничен величиной 255 символов. Текст большего размера в него уже не поместится. Примечание позволяет хранить практически неограниченный текст. Он будет храниться в отдельном файле и при необходимости может быть извлечен для чтения.

Форматы полей. Формат символьного поля определяет число символьных позиций, которые будет занимать поле в записи. Например, если символьное поле имеет формат 10, то его значения в различных записях могут содержать от 0 до 10 символов.

Формат числового поля обычно состоит из двух частей: длины и точности. Длина — это полное количество символьных позиций, выделяемых под запись числа; точность — это количество позиций, выделенных под дробную часть. Следует иметь в виду, что десятичная запятая тоже занимает позицию. Например, формат записи числа 123,45 такой: длина — 6, точность — 2. Целое число, т. е. число без дробной части, имеет точность 0.

Формат логической величины стандартный — один символ. Чаще всего используются однобуквенные обозначения: Т — true (истина), F — false (ложь). В нашем учебнике для этих величин используются обозначения русскими буквами: И — истина, Л — ложь.

Формат даты обычно имеет длину 8 символов. Правда, бывают разные стандарты. Мы будем здесь использовать стандарт ДД/ММ/ГГГГ (или ДД.ММ.ГГГГ, или ДД-ММ-ГГГГ). Здесь ДД — обозначение числа, ММ — месяца, ГГГГ — года. Иногда используется стандарт ММ/ДД/ГГГГ. Бывают и другие обозначения.

Для примера в табл. 3.3 описаны типы и форматы полей из базы данных «Погода».

Создание новой базы данных

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

. создать <имя файла>
пользователю предлагается заполнить таблицу типа таблицы 3.3. Затем необходимо указать первичный ключ таблицы. В данном примере первичным ключом является поле ДЕНЬ. Имя файла, в котором будет храниться база данных, пользователь задает сам.

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

В результате создания базы данных появляется файл с указанным именем, определяется структура данных, которые будут в ней храниться. Но база пустая, информации в ней пока нет.

Создание новой таблицы в режиме таблицы

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

Создание новой таблицы в режиме таблицы осуществляется выбором строки Создание таблицы путем ввода данных в рабочем поле окна базы данных или строки Режим таблицы в окне Новая таблица.

После выбора этого режима сразу открывается пустая таблица, в которую можно ввести данные. При сохранении этой таблицы Access проанализирует Данные и автоматически присвоит соответствующий тип данных каждому полю, т. е. автоматически создаст структуру таблицы. Таблица имеет 10 столбцов и 21 строку. Полям таблицы по умолчанию присваиваются имена Поле1, Поле2 и т. д.

Любое поле этой таблицы можно переименовать в соответствии с требованиями пользователя, непосредственно редактируя имена в заголовке столбцов. Для этого дважды щелкните кнопкой мыши на области выделения столбца, содержащей его имя, или выполните команду Формат | Переименовать столбец. В результате курсор будет установлен на наименовании поля и откроется возможность его переименования. Для сохранения нового имени щелкните кнопкой мыши в любом месте таблицы.

Если требуется создать таблицу, содержащую более 20 полей, то можно вставить новые столбцы. Для этого установите указатель мыши в области столбца, слева от которого требуется вставить новый столбец, и выполните команду Вставка | Столбец.

Кроме переименования и вставки столбцов, допускается удаление столбцов или изменение их положения в таблице. Для удаления столбца его необходимо пометить, щелкнув кнопкой мыши на его заголовке, и выполнить команду Правка | Удалить столбец. Для перемещения столбца его следует пометить, оставив курсор на заголовке, нажать кнопку мыши и, удерживая ее, перетащить столбец в нужное место.

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

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

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

Вне зависимости от способа создания таблицы режим конструктора позволяет в любой момент изменить ее структуру.

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

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

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

§13. Таблицы

Ключ

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

Ключ — это поле или комбинация полей, однозначно определяющая запись.

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

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

В этом случае один из них выбирается в качестве основного и называется первичным ключом.

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

Простой ключ часто называют идентификатором от слова «идентифицировать» — отличить один объект от другого.

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

Определение полей в таблицах

Рис. 3.5

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

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

Теперь посмотрим на приведённую на рис. 3.4 таблицу «список контактов». Ни фамилия, ни имя не могут быть ключом, потому что есть много однофамильцев и людей с одинаковыми именами. Составить ключ из полей Фамилия и Имя тоже не получится (могут быть однофамильцы и тёзки одновременно). Адрес и домашний телефон также не могут быть ключом, потому что в одной квартире могут жить несколько человек, с которыми вы общаетесь. В принципе может получиться так, что ключом будет комбинация всех полей записи.

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

Определение полей в таблицах

Рис. 3.6

Следующая страница Индексы

Cкачать материалы урока