Свойства полей. Типы полей
Поля — это основные элементы структуры базы данных. Они обладают свойствами. От свойств полей зависит, какие типы данных можно вносить в поле, а какие нет, а также то, что можно делать с данными, содержащимися в поле.
Например, данные, содержащиеся в поле Цена, можно просуммировать, чтобы определить итоговый результат. Суммировать данные, содержащиеся в поле Номер телефона, совершенно бессмысленно, даже если номера телефонов записаны цифрами. Очевидно, что эти поля обладают разными свойствами и относятся к разным типам.
Основным свойством любого поля является его длина. Длина поля выражается в символах или, что то же самое, в знаках. От длины поля зависит, сколько информации в нем может поместиться. Мы знаем, что символы кодируются одним или двумя байтами, поэтому можно условно считать, что длина поля измеряется в байтах.
Очевидным уникальным свойством любого поля является его Имя. Разумеется, одна база данных не может иметь двух полей с одинаковым именем, поскольку компьютер запутается в их содержимом. Но кроме имени у поля есть еще свойство Подпись. Подпись — это та информация, которая отображается в заголовке столбца. Ее не надо путать с именем поля, хотя если подпись не задана, то в заголовке отображается имя поля. Разным полям, например, можно задать одинаковые подписи. Это не помешает работе компьютера, поскольку поля при этом по-прежнему сохраняют разные имена. Разные типы полей имеют разное назначение и разные свойства.
1. Основное свойство текстового поля — размер.
2. Числовое поле служит для ввода числовых данных. Оно тоже имеет размер, но числовые поля бывают разными, например, для ввода целых чисел и для ввода действительных чисел. В последнем случае кроме размера поля задается также размер десятичной части числа.
3. Поля для ввода дат или времени имеют тип Дата/время. Для ввода логических данных, имеющих только два значения (Да или Нет; 0 или 1; Истина или Ложь и т. п.), служит специальный тип — Логическое поле. Нетрудно догадаться, что длина такого поля всегда равна 1 байту, поскольку этого более чем достаточно, чтобы выразить логическое значение.
4. Особый тип поля — Денежный. Из названия ясно, какие данные в нем хранят. Денежные суммы можно хранить и в числовом иоле, но в денежном формате с ними удобнее работать. В этом случае компьютер изображает числа вместе с денежными единицами, различает рубли и копейки, фунты и пенсы, доллары и центы, в общем, обращается с ними элегантнее.
5. В современных базах данных можно хранить не только числа и буквы, но и картинки, музыкальные клипы и видеозаписи. Поле для таких объектов называется полем объекта OLE.
6. У текстового поля есть недостаток, связанный с тем, что оно имеет ограниченный размер (не более 256 символов). Если нужно вставить в поле длинный текст, для этого служит поле типа MEMO. В нем можно хранить до 65 535 символов. Особенность поля MEMO состоит в том, что реально эти данные хранятся не в поле, а в другом месте, а в поле хранится только указатель на то, где расположен текст.
7. Очень интересно поле Счетчик. На первый взгляд это обычное числовое поле, но оно имеет свойство автоматического наращивания. Если в базе есть такое поле, то при вводе новой записи в него автоматически вводится число, на единицу большее, чем значение того же поля в предыдущей записи. Это поле удобно для нумерации записей.
Лекция 2
Связанные таблицы
Примеры, которые мы привели выше, можно считать простейшими базами данных, но на самом деле это не совсем базы, а только таблицы. Если бы информация хранилась в таких простых структурах, то для работы с ней можно было бы обойтись без специальных систем управления базами данных. На практике приходится иметь дело с более сложными структурами, которые образованы из многих связанных таблиц.
Базы данных, имеющие связанные таблицы, называют также реляционными базами данных.
Рассмотрим пример работы малого предприятия, занимающегося прокатом компакт-дисков с компьютерными играми. Для того чтобы знать, кто какой диск взял, когда должен возвратить и сколько дисков каждого наименования осталось на складе, предприятию необходима база данных. Но если все сведения о покупателях и о дисках хранить в одной таблице, то таблица станет очень неудобной для работы. В ней начнутся повторы данных. Всякий раз, когда гражданин Новиков В. П. будет брать очередной диск, придется вписывать его домашний адрес, телефон и паспортные данные. Так никто не работает. Это долго, трудно и чревато многочисленными ошибками.
Гораздо удобнее сделать несколько таблиц. В одной хранить сведения о клиентах со всеми их паспортными данными, в другой — сведения о выданных дисках, чтобы в любой момент узнать, что выдано клиенту и когда наступает срок возврата, а в третьей таблице — остаток дисков на складе, чтобы вовремя пополнять запасы. После этого отдельные поля таблиц связывают. Если из таблицы Прокат известно, что клиент НВП взял диск D001, то система управления базой данных мгновенно найдет в таблице Клиенты все паспортные данные этого человека, а в таблице Склад все данные об этом диске.
Разделение базы на связанные таблицы не только удобно, но иногда и необходимо. Например, для увеличения числа заказов менеджер фирмы, занимающейся прокатом компакт-дисков, решил поставить в общем зале компьютер, на котором каждый клиент может просмотреть список имеющихся дисков с иллюстрациями из игр. Если база состоит только из одной таблицы, то вместе с информацией о дисках случайный посетитель получит доступ к информации о других клиентах фирмы. Вряд ли это понравится заказчикам. Такой менеджер не только не приобретет новых клиентов, но и растеряет тех, которых имел.
Если данные в разных записях начинают повторяться, это может говорить о том, что база имеет плохую структуру. Надо подумать о том, нельзя ли разбить таблицу на группу связанных таблиц
Если заданы связи между таблицами, то работать с разными таблицами можно, как с одной цельной базой данных