|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
5. Типы данных и таблицыВстроенные типы данных Microsoft Access и SQL Server, числовые, текстовые, даты/времени, логический, двоичные, счетчик, уникальный идентификатор В реляционной базе данных информация хранится в таблицах. Самое важное при создании базы данных - правильно спроектировать и реализовать систему таблиц, а при работе с имеющейся базой данных - разобраться, какая информация находится в столбцах таблиц. 5.1 Встроенные типы данных в SQL Server и AccessПрежде, чем создавать таблицы, необходимо разобраться с типами данных - то есть какие именно данные можно будет помещать в столбцы таблиц. Информация будет даваться для SQL Server и Access. Вначале - о числовых типах данных. В SQL Server числовые типы данных можно разделить на целочисленные, десятичные дроби и числа с плавающей запятой. В нашем распоряжении следующие числовые типы данных: · целочисленные: tinyint (0 - 255), smallint (от -32 768 до 32 767), int (от -2,147,483,648 до 2,147,483,647) и bigint (от -2^63 до 2^63 -1); · десятичные: decimal и numeric (это - два названия одного и того же); · денежные: money (от -2^63 до 2^63 - 1 с точностью 4 знака после запятой) и smallmoney (от -214,748.3648 до +214,748.3647).; · с плавающей запятой: float (от -1.79E + 308 до 1.79E + 308) и real (от -3.40E + 38 до 3.40E + 38). В MS Access все проще - там есть единственный тип поля - числовое и его подтипы в строке "размер". Обычно, если база данных не относится к числу специальных, большая часть столбцов в ее таблицах отводится под текстовые данные. В SQL Server предусмотрены две дублирующих разновидности полей для представления текстовых данных: поля Unicode и не-Unicode. Unicode - типы данных отличить очень просто: они начинаются на n (от слова national, то есть с поддержкой национальных символов). Если есть возможность, то следует выбирать именно типы Unicode (хоть они и требуют в два раза больше места под хранение каждого символа) - поскольку современные клиенты изначально разрабатываются для удобной работы с кодировками этого типа. Всего в SQL Server предусмотрены следующие типы для текстовых данных: · char/nchar - строковые данные фиксированной длины (максимум 8000/4000 символов); · varchar/nvarchar - строковые данные переменной длины (то же самое); · text/ntext - для очень больших текстовых записей - до двух миллионов/миллиона символов. В Access, как обычно, все проще. Есть тип данных текстовый с максимальной длинной записей в 255 символов (данные автоматически хранятся в Unicode) и тип данных Memo с максимальной длиной 65 536 знаков. В реальных базах данных, конечно, не обойтись без полей для хранения информации дате и времени. В SQL Server это datetime (8 байт, точность то 3,33 миллисекунд) и smalldatetime (4 байта, точность до минуты). В большинстве приложений вполне хватает smalldatetime, но часто разработчики про smalldatetime забывают. В Access у нас предусмотрен единственный 8-байтовый тип данных дата/время. Еще один распространенный тип данных - это логический, который может хранить в себе значения вида true/false (единица/ноль). Обычно он используется как флаг чего-либо. В SQL Server он представлен типом данных bit, а в Access - типом данных, который так и называется "логический". В современных базах данных также часто хранятся большие двоичные данные - BLOB, например, документы, фотографии, архивы и т.п. В SQL Server для них традиционно используется тип данных Image (до 2 Гбайт). Есть еще типы данных binary и varbinary, но максимальный их размер - 8000 байт, а такие маленькие двоичные данные встречаются нечасто. В Access для этой цели используется тип данных поле объекта OLE (до 1 Гбайт) - то есть могут храниться данные только OLE-совместимых программ. Есть также и некоторые специальные типы данных, которые используются нечасто: · UniqueIdentifier в SQL Server, числовой для кодов репликации в Access. Это - большие случайно сгенерированные числа, вероятность совпадения которых практически нулевая. В базах данных они обычно используются для того, чтобы гарантировать уникальность какой-либо записи; · поле счетчика в Access, числовой тип данных со свойством Identity в true в SQL Server. Это - числовое поле с автоприращением, обычно применяется как суррогатный ключ; · sql_variant в SQL Server - позволяет хранить в столбце данные разных типов; · timestamp - метка версии строки в SQL Server; · гиперссылка - специальный вид поля (до 64 000 знаков) в Access. Другие типы данных (cursor, table в SQL Server) в таблицах использоваться не могут и применяются только в запросах и хранимых процедурах.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||