Типы данных и полей: общее и в разных СУБД
Характеристики полей БД и типы данных
Одна СУБД отличается от другой в первую очередь набором поддерживаемых типов данных и их свойствами. Но понимание общих подходов позволяет достаточно легко решить значительную часть возникающих нестыковок.
Первым делом введем тип данных, для которого не существует поля, но он чрезвычайно важен, так как означает отсутствие данных. Он обозначается как NULL и его необходимо присваивать отдельно. Сделать это можно только для тех полей, для которых указано в структуре таблицы соответствующее разрешение. В этом случае, например, задав его значением по умолчанию, мы можем получить 3 варианта логического поля: null, true, false. При этом данные будут пустыми (null) при создании записи и актуализируются только после ввода конкретной информации.
Поле — минимальная единица структурированной информации в БД, характеризующая один показатель для одного явления. Каждое поле имеет тип и размер. Все поля для данного явления составляют запись. Поле — структурная единица записи. Обратите внимание, что, уже с точки зрения всей БД, поле является совокупностью какого-либо значения во всех записях.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Характеристики полей БД (на основе xBase)
Тип поля | Обозначение | Ограничения (размер) | Содержание (виды информации) |
Символьный | (Character) | 254/255 символов | Любые символы кодовой таблицы |
Числовой | (Numeric) | 20 разрядов | Числовые значения. Размер поля состоит из суммы числа разрядов до десятичной точки, после нее +1 знак на точку |
(Float) | 20 разрядов | Числа с плавающей точкой | |
(Integer) | (4 байта) | Целые числа, размер поля фиксирован! | |
Дата | (Date) | 8 байтов | Дата |
Время | (Time) | 6 байтов | Время, часто объединено с датой (DateTime) |
Логический | (Logical) | (1 байт) | Логические данные — истина (.T. или .Y.) или ложь (.F. или .N.), то есть 1 или 0 |
Примечаний | (Memo) | нет* | Любые данные, в том числе в двоичном виде |
Общего назначения | (General) | нет* | Как правило графические или мультимедийные (звук, видео) данные |
* В отличие от всех полей хранится в отдельном файле, не имеет фиксированного размера и ограничивается только свободным дисковым пространством, либо размером файла операционной системы.
Характеристики основных полей MySQL
Тип поля | Обозначение | Ограничения (размер) | Содержание (виды информации) |
Символьный | (CHAR) | 255 символов* | Любые символы кодовой таблицы |
(TEXT) | 65535 символов | Любые символы кодовой таблицы | |
(VARCHAR(Size)) | 65532 символа | Любые символы кодовой таблицы | |
(MEDIUMTEXT) | 16777215 символов | Любые символы кодовой таблицы | |
(LONGTEXT) | 4294967295 символов | Любые символы кодовой таблицы | |
Числовой | (FLOAT(M,D)) | 4 байта | Числовые значения. Размер поля состоит из суммы числа разрядов до и после десятичной точки. Из них выделяются десятичные разряды |
(DOUBLE(M,D)) | 8 байт | То же, что и FLOAT, но со значительным расширением диапазона значений | |
(DECIMAL(M,D)) | число знаков | Тоже что и DOUBLE, но хранится в виде строки | |
(TINYINT(Size)) | 1 байт | Целое число от -128 до 127 или 0-255 без знака | |
(SMALLINT(Size)) | 2 байта | Целое число от -32768 до 32767 | |
(INT(Size)) | 4 байта | Целое число от -2147483648 до 2 147 483 647 | |
Дата | (DATE) | 3 байта | Дата |
Время | (DATETIME) | 8 байт | Время с датой от 1000 до 9999 года |
Время | (TIMESTAMP) | 4 байта | Время с датой (момент создания записи) |
Время | (TIME) | 3 байта | Время суток с точностью до секунд |
Двоичная информация | (LONGBLOB) | 0–4 294 967 295 байт | LONG Binary Large OBjects. Самый большой тип поля для хранения бинарных данных |
* Размер для символьных (строковых) полей зависит от используемой кодировки.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Неверный выбор типа и размера полей
Поскольку размер поля в «правильной» реляционной БД имеет фиксированное значение, он должен быть достаточным (иначе данные могут не поместиться) но не избыточным (лишнее место на диске и в памяти). Если подумать, то данный параметр должен быть, например, для символьного типа точно равен самой длинной строке генеральной совокупности.
Тип поля должен соответствовать вводимым данным с учетом возможного развития. В том числе числу записей для идентификаторов.
Ошибка типа — достаточно грубая и примитивная. Если недостаточный размер поля еще может быть оправдан просто отсутствием достаточного (исчерпывающего) объема информации, то ошибка в выборе типа — следствие слишком поверхностных рассуждений.
Еще один, совсем неочевидный пример. Так как размер поля всегда измеряется в целых байтах, логический тип, теоретически требующий всего одного бита, следует рассматривать как нерациональный. Да, он будет всегда обрабатываться быстрее, так как может иметь всего от двух до трех вариантов значения (T, F, null). Но даже банальный интерфейсный флажок, чаще всего используемый для управления полем, может иметь до четырех состояний.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Прошу обратить особо пристальное внимание на неопределенную информацию, традиционно вносимую для xBase в Memo-поле. Новые концепции не предусматривают такого типа и придется пользоваться текстовыми полями, дополнительно обдумывая их структуру. Важно создать среду, когда не будет вывода пользователю, что он превысил объем сохраняемых данных.
Источник
Типы и свойства полей таблиц
Определение полей таблицы
Для определения поля в окне Таблица задаются Имя поля, Тип данных, Описание — краткий комментарий, а также свойства поля в разделе Свойства поля. На вкладке Общие представлены строки свойств поля, в том числе максимальный размер, подпись (выводится в заголовке столбца), значение по умолчанию и др.
На вкладке Подстановка в раскрывающемся списке свойства Тип элемента управления выбирается одно из значений Поле, Список или Поле со списком.
Имена полей и тип данных
- Имя поля. Каждое поле в таблице должно иметь уникальное имя, удовлетворяющее соглашениям об именах объектов в Access. Оно является комбинацией из букв, цифр, пробелов и специальных символов, за исключением точки (.), восклицательного знака (‘), надстрочного знака (‘) и квадратных скобок ([ ]). Имя не может начинаться с пробела и содержать управляющие символы с кодами ASCII от 00 до 31. Максимальная длина имени — 64 символа.
- Тип данных. Тип данных определяется значениями, которые предполагается вводить в поле, и операциями, которые будут выполняться с этими значениями. В Access допускается использование девяти типов данных Раскрывающийся список возможных типов данных вызывается нажатием кнопки списка при выборе типа данных каждого поля :
- Текстовый — тип данных по умолчанию. Текст или цифры, не участвующие в расчетах. Число символов в поле не должно превышать 255. Максимальное число символов, которое можно ввести в поле, задается в свойстве Размер поля. Пустые символы в неиспользуемой части поля не сохраняются.
- Поле MEMO Длительный текст, например, некоторое описание или примечание. Максимальная длина — 65 535 символов.
- Числовой. Числовые данные, используемые в математических вычислениях. Конкретные варианты числового типа и их длина задаются в свойстве Размер поля. Поле может иметь размер 1, 2, 4 или 8 байт (16 байт— только если для свойства Размер поля задано значение Код репликации). Для проведения денежных расчетов определен другой тип данных — Денежный
- Денежный. Денежные значения и числовые данные, используемые в расчетах, проводящихся с точностью до 15 знаков в целой и до 4 знаков — в дробной части. Длина поля 8 байт. При обработке числовых значений из денежных полей выполняются вычисления с фиксированной точкой (более быстрые, чем вычисления для полей с плавающей точкой). Кроме того, при вычислениях предотвращается округление. Учитывая эти обстоятельства, применительно к полям, в которых планируется хранить числовые значения с указанной точностью, рекомендуется использовать денежный тип данных.
- Дата/время. Значения даты или времени, относящиеся к годам с 100 по 9999 включительно Длина поля 8 байт
- Счетчик. Тип данных поля, в которое для каждой новой записи автоматически вводятся уникальные последовательно возрастающие (на 1) целые числа или случайные числа. Значения этого поля нельзя изменить или удалить. Длина поля: 4 байта для длинного целого, для кода репликации — 16 байт. По умолчанию в поле вводятся последовательные значения. В таблице не может быть более одного поля этого типа. Используется для определения уникального ключа таблицы
- Логический. Логические данные, которые могут иметь одно из двух возможных значений: Да/Нет, Истина/Ложь, Вкл./Выкл. Длина поля 1 бит.
- Поле объекта OLE. Объект (например, электронная таблица Microsoft Excel, документ Microsoft Word, рисунок, звукозаписи или другие данные и двоичном формате), связанный или внедренный и таблицу Access. Длина поля — не более 1 Гбайт (ограничивается объемом диска).
- Гиперссылка. Адрес гиперссылки, включающий путь к файлу на жестком диске в локальной сети (в формате UNC) или адрес страницы в Internet или intranet (URL). Кроме того, адрес может включать текст, выводимый в поле или в элементе управления, дополнительный адрес — расположение внутри файла или страницы,подсказку — текст, отображаемый в виде всплывающей подсказки. Если щелкнуть мышью на поле гиперссылки, Access выполнит переход на соответствующий объект, документ, Web-страницу или другое место назначения. Длина каждой из частей гиперссылки — не более 2048 знаков. Для полей типа OLE, MEMO и Гиперссылка не допускается сортировка и индексирование.
- Мастер подстановок. Выбор этого типа данных запускает мастера подстановок. Мастер строит для поля список значений на основе полей из другой таблицы. Значения в такое поле будут вводиться из списка. Соответственно, фактически тип данных поля определяется типом данных поля списка. Возможно также определение поля со списком постоянных значений.
Общие свойства полей
Общие свойства задаются для каждого поля на вкладке Общие и зависят от выбранного типа данных.
1. Размер поля задает максимальный размер сохраняемых в поле данных.
Для поля с типом данных Текстовый задается размер от 1 до 255 знаком (по умолчанию — 50 знаков).
Для поля с типом данных Счетчик можно задать:
а) Длинное целое— 4 байта:
б) Код репликации— 16 байт.
Для поля с типом данных Числовой можно задать:
в) Байт (для целых чисел от 0 до 255, длина поля 1 байт);
г) Целое (для целых чисел от -32 768 до +32 767, занимает 2 байта);
д) Длинное целое (для целых чисел от -2 147 483 648 до +2 147 483 647, занимает 4 байта);
е) Дробные с плавающей точкой 4 байта (для чисел от —3,4хЮ38 до +3,4х1038 с точностью до 7 знаков);
ж) Дробные с плавающей точкой 8 байт (для чисел от -1,797хЮ308 до +1,797хЮ308 с точностью до 15 знаков);
з) Действительное (для целых чисел от -1038-1 до 1038-1 при работе с проектами, которые хранятся в файлах типа1 ADP, и от -1028-1 до 1028-1 — для файлов типа MDB, с точностью до 28 знаков, занимает 12 байт);
и) Код репликации. Глобальный уникальный идентификатор, занимает 16 байт. Поля такого типа используются Access для создания системных уникальных идентификаторов реплик, наборов реплик, таблиц, записей и других объектов при репликации баз данных.
Рекомендуется задавать минимально допустимый размер поля, который понадобится для сохраняемых значений, т. к. сохранение таких полей требует меньше памяти, и обработка данных меньшего размера выполняется быстрее.
2. Формат поля является форматом отображения заданного типа данных и задает правила представления данных при выводе их на экран или печать.
В Access определены встроенные стандартные форматы отображения для полей с типами данных Числовой, Дата/время, Логический и Денежный. Ряд этих форматов совпадает с настройкой национальных форматов, определяемых в окне Язык и стандарты панели управления Microsoft Windows. Пользователь может создать собственный формат для всех типов данных, кроме OLE, с помощью символов форматирования.
Для указания конкретного формата отображения необходимо выбрать и раскрывающемся списке одно из значений свойства Формат поля. Формат поля используется для отображения данных в режиме таблицы, а также применяется в форме или отчете при отображении этих нолей.
3. Число десятичных знаков задает для числового и денежного типов данных число знаков после запятой. Можно задать число от 0 до 15. По умолчанию (значение Авто) это число определяется установкой в свойстве Формат поля. Следует иметь в виду, что установка этого свойства не действует, если свойство Формат поля не задано или если выбрано значение Основной. Свойство Число десятичных знаков влияет только на количество отображаемых на экране десятичных знаков и не влияет на количество сохраняемых знаков. Для изменения числа сохраняемых знаков необходимо изменить свойство Размер поля.
4. Подпись поля задает текст, который выводится в таблицах, формах, отчетах.
5. Значение по умолчанию определяет текст или выражение, которое автоматически вводится в поле при создании новой записи. Например, если задано значение =now (), то в поле будет введена текущая дата и время. При добавлении записи в таблицу можно оставить значение, введенное по умолчанию, или ввести другое. Свойство Значение по умолчанию используется только при создании новой записи. Изменение значения свойства не влияет на существующие записи. Максимальная длина значения свойства составляет 255 знаков. Данное свойство не определено для полей с типом данных Счетчик или Поле объекта OLE.
6. Условие на значение позволяет осуществлять контроль ввода, задает ограничения на вводимые значения, запрещает ввод при нарушении условий и выводит текст, заданный свойством Сообщение об ошибке.
7. Сообщение об ошибке задает текст сообщения, выводимый на экран при нарушении ограничений, заданных свойством Условие на значение.
Тип элемента управления
На вкладке Подстановка в окне конструктора таблиц задается свойство Тип элемента управления. Это свойство определяет, будет ли отображаться поле в таблице и в форме в виде:
- Поля;
- Списка;
- Поля со списком.
Таким образом, определяется вид элемента управления, используемого по умолчанию для отображения поля.
Если для поля выбран тип элемента управления Список или Поле со списком, на вкладке Подстановка появляются дополнительные свойства, которые определяют источник данных для строк списка и ряд других характеристик списка. В качестве источника данных для списка выбирается таблица, с которой осуществляется постоянная связь, что, обеспечивает актуальное состояние списка.
Источник