Понятие данных,
принципы построения информационных систем.
Банк данных (БнД) в общем
случае состоит из следующих компонентов:
базы (нескольких баз) данных, системы
управления базами данных, словаря данных,
администратора, вычислительной системы
и обслуживающего персонала. Вкратце рассмотрим
названные компоненты и некоторые связанные
с ними важные понятия.
База данных (БД) представляет
собой совокупность специальным образом
организованных данных, хранимых в памяти
вычислительной системы и отображающих
состояние объектов и их взаимосвязей
в рассматриваемой предметной области.
Система управления базами
данных (СУБД) - это комплекс языковых
и программных средств, предназначенный
для создания, ведения и совместного использования
БД многими пользователями. Обычно СУБД
различают по используемой модели данных.
Так, СУБД, основанные на использовании
реляционной модели данных, называют реляционными
СУБД.
Обобщим материал предыдущих разделов,
выделив основные принципы построения информационных
систем (ИС). Все принципы очень тесно взаимосвязаны
и вытекают одно из другого, поэтому приведенное
ниже разделение будем считать условным.
1. Принцип интегрированности
Принцип состоит в том, что существует
одна единая интегрированная БД для всей предметной области, которая
совместно используется персоналом, при
этом одновременно может быть запущено
множество приложений с различной функциональностью.
•В интегрированной системе
может быть достигнута минимальная
избыточность (отсутствие дублирования)
данных.
•В интегрированной системе
легче добиться непротиворечивости
(целостности) данных, т.к. ввиду отсутствия
дублирования данных нет и их нестыковок.
•В интегрированной системе
удобнее выполнять поиск и
обработку данных, можно выполнять
любые виды обработки и анализа
данных.
•Для интегрированной ИС проще решается проблема резервного
копирования данных и восстановления
поврежденных данных.
2.Принцип независимости прикладного программного
обеспечения от способа организации данных.
Между данными и прикладным программным
обеспечением ИС находятся, как минимум,
два слоя базового программного обеспечения
- операционная система и СУБД, которые
берут на себя все низкоуровневые
функции управления данными. Поэтому
база данных может функционировать
и вообще без ПрПО, а одно и
то же ПрПО может взаимодействовать
с базами данных, имеющими различную
физическую организацию.
Различают следующие уровни независимости:
а)логическая независимость - можно
вносить некоторые изменения
в структуру уже заполненной
базы данных без коренной переделки
прикладного программного обеспечения,
например, можно добавить новые столбцы
в уже заполненную таблицу
базы данных, при этом все приложения
не потеряют работоспособности, однако
при удалении столбцов, а тем более
таблиц некоторые приложения работать
не смогут;
б)физическая независимость - может
быть изменен физический формат хранения
данных, т.е. переход на новую СУБД
или новую версию СУБД, без коренной
переделки прикладного программного
обеспечения (ПрПО о физическом формате
хранения данных вообще ничего «не
знает», поскольку работает с данными
на логическом уровне).
3.Принципы масштабируемости и
переносимости
Данные принципы вытекают из принципа
независимости данных и ПрПО. Принцип масштабируемости следует
рассматривать в трех аспектах:
а)возможность неограниченного
наращивания размеров БД;
б)неограниченное увеличение количества
пользователей;
в)неограниченное увеличение количества
приложений.
Архитектура
баз данных (файл-сервер, клиент-сервер)
Архитектура - это совокупность существенных решений
об организации ИС. Обычно в понятие архитектуры входят
решения об основных аппаратных и программных
составляющих системы, их функциональном
назначении и организации связей между
ними.
Выбор архитектуры ИС влияет на следующие
характеристики:
1.Производительность ИС - количество
работ, выполняемых в ИС за
единицу времени.
2.Время реакции системы на
запросы пользователя (время отклика
системы).
3.Надёжность - способность к безотказному
функционированию в течение определенного
периода времени.
Сервером
определенного ресурса в компьютерной
сети называется компьютер (программа),
управляющий этим ресурсом, клиентом - компьютер (программа),
использующий этот ресурс. В качестве
ресурса компьютерной сети могут выступать,
к примеру, базы данных, файловые системы,
службы печати, почтовые службы. Тип сервера
определяется видом ресурса, которым он
управляет.
Достоинством организации информационной
системы по архитектуре клиент-сервер
является удачное сочетание централизованного хранения, обслуживания
и коллективного доступа к общей корпоративной
информации с индивидуальной работой
пользователей над персональной информацией.
Архитектура клиент-сервер допускает
различные варианты реализации.
Исторически первыми появились распределенные
ИС с применением файл-сервера (рис. 1.1). В таких ИС по
запросам пользователей файлы базы данных
передаются на персональные компьютеры
(ПК), где и производится их обработка. Недостатком
такого варианта архитектуры является
высокая интенсивность передачи обрабатываемых
данных. Причем, зачастую передаются избыточные
данные: вне зависимости от того, сколько
записей из базы данных требуется пользователю,
файлы базы данных передаются целиком.
Структура распределенной ИС, построенной
по архитектуре клиент-сервер с использованием
сервера баз данных, показана на рис. 1.2.
При такой архитектуре сервер базы данных
обеспечивает выполнение основного объема
обработки данных. Формируемые пользователем
или приложением запросы поступают к серверу
БД в виде инструкций языка SQL. Сервер базы
данных выполняет поиск и извлечение нужных
данных, которые затем передаются на компьютер
пользователя. Достоинством такого подхода в сравнении
предыдущим является заметно меньший
объем передаваемых данных.
Использование архитектуры клиент-сервер
дает возможность постепенного наращивания
информационной системы предприятия,
во-первых, по мере развития предприятия;
во-вторых, по мере развития самой информационной
системы.
|
|
Модели данных. Реляционная модель
(структура, атрибуты, первичный ключ,
внешние ключи)
модели данных:
иерархическая,
сетевая,
реляционная.
постреляционная,
многомерная,
объектно-ориентированная.
|
2.1. Иерархическая
модель
В иерархической модели связи
между данными можно описать
с помощью упорядоченного графа
(или дерева).
Для описания структуры (схемы) иерархической
БД на некотором языке программирования
используется тип данных "дерево".
Тип "дерево" является составным.
Он включает в себя подтипы ("поддеревья"),
каждый из которых, в свою очередь, является
типом "дерево". Каждый из типов "дерево"
состоит из одного "корневого" типа
и упорядоченного набора (возможно пустого)
|
|
|
|
Корневым
называется тип, который имеет подчиненные
типы и сам не является подтипом. Подчиненный тип (подтип) является потомком
по отношению к типу, который выступает
для него в роли предка (родителя). Потомки
одного и того же типа являются близнецами по отношению друг к другу.
Обход всех элементов иерархической БД
обычно производится сверху вниз и слева
направо.
К достоинствам иерархической модели
данных относятся эффективное использование
памяти ЭВМ и неплохие показатели времени
выполнения основных операций над данными.
Иерархическая модель данных удобна для
работы с иерархически упорядоченной
информацией.
Недостатком иерархической модели
является ее громоздкость для обработки
информации с достаточно сложными логическими
связями, а также сложность понимания
для обычного пользователя. |
|
2.2. Сетевая
модель
Сетевая модель данных позволяет отображать
разнообразные взаимосвязи элементов
данных в виде произвольного графа,
обобщая тем самым иерархическую
модель данных |
|
|
|
Для описания схемы сетевой
БД используется две группы типов: "запись"
и "связь". Тип "связь" определяется
для двух типов "запись": предка
и потомка. Переменные типа "связь"
являются экземплярами связей.
Сетевая БД состоит из набора записей
и набора соответствующих связей. На формирование
связи особых ограничений не накладывается.
Если в иерархических структурах запись-потомок
могла иметь только одну запись-предка,
то в сетевой модели данных запись-потомок
может иметь произвольное число записей-предков
(сводных родителей). |
|
|
|
Достоинством сетевой модели данных является
возможность эффективной реализации по
показателям затрат памяти и оперативности.
В сравнении с иерархической моделью сетевая
модель предоставляет большие возможности
в смысле допустимости образования произвольных
связей.
Недостатком сетевой модели данных
является высокая сложность и жесткость
схемы БД, построенной на ее основе, а также
сложность для понимания и выполнения
обработки информации в БД обычным пользователем.
Кроме того, в сетевой модели данных ослаблен
контроль целостности связей вследствие
допустимости установления произвольных
связей между записями.
|
|
2.3. Реляционная
модель
Отношение
представляет собой множество элементов,
называемых кортежами. Подробно теоретическая
основа реляционной модели данных рассматривается
в следующем разделе. Наглядной формой
представления отношения является привычная
для человеческого восприятия двумерная
таблица.
Таблица имеет строки (записи) и столбцы
(колонки). Каждая строка таблицы имеет
одинаковую структуру и состоит из полей.
Строкам таблицы соответствуют кортежи,
а столбцам - атрибуты отношения.
С помощью одной таблицы удобно описывать
простейший вид связей между данными,
а именно: деление одного объекта (явления,
сущности, системы и проч.), информация
о котором хранится в таблице, на множество
подобъектов, каждому из которых соответствует
строка или запись таблицы. При этом каждый
из подобъектов имеет одинаковую структуру
или свойства, описываемые соответствующими
значениями полей записей. Например, таблица
может содержать сведения о группе обучаемых,
о каждом из которых известны следующие
характеристики: фамилия, имя и отчество,
пол, возраст и образование.
Поскольку в рамках одной таблицы не удается
описать более сложные логические структуры
данных из предметной области, применяют связывание
таблиц.
Физическое размещение данных в реляционных
базах на внешних носителях легко осуществляется
с помощью обычных файлов.
Достоинство реляционной модели
данных заключается в простоте, понятности
и удобстве физической реализации на ЭВМ.
Именно простота и понятность для пользователя
явились основной причиной их широкого
использования. Проблемы же эффективности
обработки данных этого типа оказались
технически вполне разрешимыми.
Основными недостатками реляционной модели
являются следующие: отсутствие стандартных
средств идентификации отдельных записей
и сложность описания иерархических и
сетевых связей.
|
|
2.4. Постреляционная
модель
Постреляционная
модель данных представляет собой
расширенную реляционную модель, снимающую
ограничение неделимости данных, хранящихся
в записях таблиц. Постреляционная модель
данных допускает многозначные поля -
поля, значения которых состоят из подзначений.
Набор значений многозначных полей считается
самостоятельной таблицей, встроенной
в основную таблицу.
|
|
по сравнению с реляционной
моделью в постреляционной модели
данные хранятся более эффективно,
а при обработке не требуется
выполнять операцию соединения данных
из двух таблиц.
Помимо обеспечения вложенности полей
постреляционная модель поддерживает
ассоциированные многозначные поля (множественные
группы). Совокупность ассоциированных
полей называется ассоциацией. При этом в строке первое
значение одного столбца ассоциации соответствует
первым значениям всех других столбцов
ассоциации. Аналогичным образом связаны
все вторые значения столбцов и т. д.
|
|
|
|
На длину полей и
количество полей в записях таблицы
не накладывается требование постоянства.
Это означает, что структура данных
и таблиц имеют большую гибкость.
Поскольку постреляционная модель допускает
хранение в таблицах ненормализованных
данных, возникает проблема обеспечения
целостности и непротиворечивости данных.
Эта проблема решается включением в СУБД
механизмов, подобных хранимым процедурам
в клиент-серверных системах.
Для описания функций контроля значений
в полях имеется возможность создавать
процедуры (коды конверсии и коды корреляции),
автоматически вызываемые до или после
обращения к данным. Коды корреляции выполняются
сразу после чтения данных, перед их обработкой.
Коды конверсии, наоборот, выполняются
после обработки данных.
Достоинством постреляционной модели
является возможность представления совокупности
связанных реляционных таблиц одной постреляционной
таблицей. Это обеспечивает высокую наглядность
представления информации и повышение
эффективности ее обработки.
Недостатком постреляционной модели
является сложность решения проблемы
обеспечения целостности и непротиворечивости
хранимых данных.
|
|
2.5. Многомерная
модель
Многомерные СУБД являются узкоспециализированными
СУБД, предназначенными для интерактивной
аналитической обработки информации.
Раскроем основные понятия, используемые
в этих СУБД: агрегируемость, историчность
и прогнозируемость данных.
Агрегируемостъ данных означает
рассмотрение информации на различных
уровнях ее обобщения. В информационных
системах степень детальности представления
информации для пользователя зависит
от его уровня: аналитик, пользователь-оператор,
управляющий, руководитель.
Историчность данных предполагает
обеспечение высокого уровня статичности
(неизменности) собственно данных и их
взаимосвязей, а также обязательность
привязки данных ко времени.
Статичность данных позволяет использовать
при их обработке специализированные
методы загрузки, хранения, индексации
и выборки.
Временная привязка данных необходима
для частого выполнения запросов, имеющих
значения времени и даты в составе выборки.
Необходимость упорядочения данных по
времени в процессе обработки и представления
данных пользователю накладывает требования
на механизмы хранения и доступа к информации.
Прогнозируемость данных подразумевает
задание функций прогнозирования и применение
их к различным временным интервалам.
По сравнению с реляционной моделью многомерная
организация данных обладает более высокой наглядностью
и информативностью.
|
|
|
|
В существующих МСУБД используются
два основных варианта (схемы) организации
данных: гиперкубическая и поликубическая.
В поликубической схеме предполагается,
что в БД может быть определено несколько
гиперкубов с различной размерностью
и с различными измерениями в качестве
граней. Примером системы, поддерживающей
поликубический вариант БД, является сервер
Oracle Express Server.
В случае гиперкубической схемы предполагается,
что все показатели определяются одним
и тем же набором измерений. Это означает,
что при наличии нескольких гиперкубов
БД все они имеют одинаковую размерность
и совпадающие измерения. Очевидно, в некоторых
случаях информация в БД может быть избыточной
(если требовать обязательное заполнение
ячеек).
Основным достоинством многомерной модели
данных является удобство и эффективность
аналитической обработки больших объемов
данных, связанных со временем. При организации
обработки аналогичных данных на основе
реляционной модели происходит нелинейный
рост трудоемкости операций в зависимости
от размерности БД и существенное увеличение
затрат оперативной памяти на индексацию.
Недостатком многомерной модели
данных является ее громоздкость для простейших
задач обычной оперативной обработки
информации.
|
|
2.6. Объектно-ориентированная
модель
В объектно-ориентированной
модели при представлении данных
имеется возможность идентифицировать
отдельные записи базы. Между записями
базы данных и функциями их обработки
устанавливаются взаимосвязи с
помощью механизмов, подобных соответствующим
средствам в объектно-ориентированных
языках программирования.
Структура объектно-ориентированной БД
графически представима в виде дерева,
узлами которого являются объекты. Свойства
объектов описываются некоторым стандартным
типом (например, строковым - string) или типом,
конструируемым пользователем (определяется
как class).
Значением свойства типа string является
строка символов. Значение свойства типа
class есть объект, являющийся экземпляром
соответствующего класса. Каждый объект-экземпляр
класса считается потомком объекта, в
котором он определен как свойство. Объект-экземпляр
класса принадлежит своему классу и имеет
одного родителя. Родовые отношения в
БД образуют связную иерархию объектов.
Инкапсуляция
ограничивает область видимости имени
свойства пределами того объекта, в котором
оно определено. Так, если в объект типа
КАТАЛОГ добавить свойство, задающее телефон
автора книги и имеющее название телефон, то мы получим 2 Зак.925. одноименные
свойства у объектов АБОНЕНТ и КАТАЛОГ.
Смысл такого свойства будет определяться
тем объектом, в который оно инкапсулировано.
Наследование,
наоборот, распространяет область видимости
свойства на всех потомков объекта. Так,
всем объектам типа КНИГА, являющимся
потомками объекта типа КАТАЛОГ, можно
приписать свойства объекта-родителя: isbn, удк, название
и автор. Если необходимо расширить
действие механизма наследования на объекты,
не являющиеся непосредственными родственниками
(например, между двумя потомками одного
родителя), то в их общем предке определяется
абстрактное свойство типа abs. Так, определение
абстрактных свойств билет и номер в объекте БИБЛИОТЕКА приводит
к наследованию этих свойств всеми дочерними
объектами АБОНЕНТ, КНИГА и ВЫДАЧА. Не
случайно поэтому значения свойства билет
классов АБОНЕНТ и ВЫДАЧА, показанных
на рисунке, будут одинаковыми - 00015.
Полиморфизм
в объектно-ориентированных языках программирования
означает способность одного и того же
программного кода работать с разнотипными
данными. Другими словами, он означает
допустимость в объектах разных типов
иметь методы (процедуры или функции) с
одинаковыми именами, Во время выполнения
объектной программы одни и те же методы
оперируют с разными объектами в зависимости
от типа аргумента. Применительно к нашей
объектно-ориентированной БД полиморфизм
означает, что объекты класса КНИГА, имеющие
разных родителей из класса КАТАЛОГ, могут
иметь разный набор свойств. Следовательно,
программы работы с объектами класса КНИГА
могут содержать полиморфный код.
Основным достоинством объектно-ориентированной
модели данных в сравнении с реляционной
является возможность отображения информации
о сложныхсвязях объектов. Объектно-ориентированная
модель данных позволяет идентифицировать
отдельную запись базы данных и определять
функции их обработки.
Недостатками объектно-ориентированной
модели являются высокая понятийная сложность,
неудобство обработки данных и низкая
скорость выполнения запросов.
Реляционная модель данных (РМД) некоторой предметной
области представляет собой набор отношений,
изменяющихся во времени. При создании
информационной системы совокупность
отношений позволяет хранить данные об
объектах предметной области и моделировать
связи между ними. Элементы РМД и формы
их представления приведены в табл. 3.1.
|
Элемент реляционной модели |
Форма представления |
Отношение |
Таблица |
Схема отношения |
Строка заголовков столбцов
таблицы
(заголовок таблицы) |
Кортеж |
Строка таблицы |
Сущность |
Описание свойств объекта |
Атрибут |
Заголовок столбца таблицы |
Домен |
Множество допустимых значений
атрибута |
Значение атрибута |
Значение поля в записи |
Первичный ключ |
Один или несколько
атрибутов |
Тип данных |
Тип значений элементов таблицы |
|
|
Таблица 3.1 Элементы реляционной
модели |
Отношение является важнейшим понятием
и представляет собой двумерную таблицу,
содержащую некоторые данные.
Сущность
есть объект любой природы, данные о котором
хранятся в базе данных. Данные о сущности
хранятся в отношении.
Атрибуты
представляют собой свойства, характеризующие
сущность. В структуре таблицы каждый
атрибут именуется и ему соответствует
заголовок некоторого столбца таблицы.
Домен
представляет собой множество всех возможных
значений определенного атрибута отношения.
Отношение СОТРУДНИК включает 4 домена. Домен
1 содержит фамилии всех сотрудников, домен
2 - номера всех отделов фирмы, домен 3 - названия всех должностей, домен
4 - даты рождения всех сотрудников.
Каждый домен образует значения одного
типа данных, например, числовые или символьные.
Схема
отношения (заголовок отношения) представляет
собой список имен атрибутов. Например,
для приведенного примера схема отношения
имеет вид СОТРУДНИК (ФИО, Отдел, Должность,
Д_Рождения). Множество собственно кортежей
отношения часто называют содержимым (телом) отношения.
Первичным
ключом (ключом отношения, ключевым атрибутом)
называется атрибут отношения, однозначно
идентифицирующий каждый из его кортежей.
Например, в отношении СОТРУДНИК (ФИО,
Отдел, Должность, Д_Рождения) ключевым
является атрибут "ФИО". Ключ может быть составным (сложным), т. е. состоять
из нескольких атрибутов.
Ключи обычно используют для достижения
следующих целей:
1) исключения дублирования значений в
ключевых атрибутах (остальные атрибуты
в расчет не принимаются);
2) упорядочения кортежей. Возможно упорядочение
по, возрастанию или убыванию значений
всех ключевых атрибутов, а также смешанное
упорядочение (по одним - возрастание,
а по другим - убывание);
3) ускорения работы к кортежами отношения
(подраздел 3.2);
4) организации связывания таблиц (подраздел 3.3).
Реляционная модель накладывает на внешние
ключи ограничение для обеспечения целостности
данных, называемое ссылочной целостностью. Это означает,
что каждому значению внешнего ключа должны
соответствовать строки в связываемых
отношениях.
Поскольку не всякой таблице можно поставить
в соответствие отношение, приведем условия,
выполнение которых позволяет таблицу
считать отношением.
1. Все строки таблицы должны быть уникальны,
т. е. не может быть строк с одинаковыми
первичными ключами.
2. Имена столбцов таблицы должны быть
различны, а значения их простыми, т. е.
недопустима группа значений в одном столбце
одной строки.
3. Все строки одной таблицы должны иметь
одну структуру, соответствующую именам
и типам столбцов.
4. Порядок размещения строк в таблице
может быть произвольным.
Наиболее часто таблица с отношением размещается
в отдельном файле. В некоторых СУБД одна
отдельная таблица (отношение) считается
базой данных. В других СУБД база данных
может содержать несколько таблиц.
Если задаваемое таблицей отношение имеет
ключ, то считается, что таблица тоже имеет
ключ, и ее называют ключевой или таблицей с ключевыми полями.
У большинства СУБД файл таблицы включает
управляющую часть (описание типов полей,
имена полей и другая информация) и область
размещения записей.
К отношениям можно применять систему
операций, позволяющую получать одни отношения
из других. Например, результатом запроса
к реляционной БД может быть новое отношение,
вычисленное на основе имеющихся отношений.
Поэтому можно разделить обрабатываемые
данные на хранимую и вычисляемую части.
Основной единицей обработки данных в
реляционных БД является отношение, а
не отдельные его кортежи (записи).
|
|
|
Проектирование баз данных, хранилище
баз данных, физическая структура
баз данных в SQL.
Способы реализации языка SQL.
Основные типы данных языка SQL, преобразование
типов, псевдонимы.
Символьные типы данных представлены
типами CHAR и VARCHAR.
Тип CHAR определяет строки фиксированной
длины. Если при вводе строка символов
меньше объявленного значения длины n,
то недостающие символы заполняются
пробелами, а в случае превышения
- усекаются.
Тип VARCHAR представляет строки переменной
длины. В отличие от типа CHAR при
сохранении в БД недостающие символы
не заполняются пробелами. При чтении
считываются только введенные символы,
а затем дополняются пробелами.
Числовые типы данных представлены
типами SMALLINT, INTEGER и BIGINT, NUMERIC и DECIMAL, DOUBLE
PRECISION и FLOAT.
Целые числовые типы (согласно стандарту
SQL 99) - это типы SMALLINT, INTEGER, BIGINT. Они
представляют собой 16-битный, 32-битный
и 64-битный типы со знаком соответственно.
Если величина SMALLINT (5 значащих цифр) должна
быть меньше или равна величине INTEGER
(10 значащих цифр), то величина BIGINT (19 значащих
цифр) должна быть больше или равна
величине INTEGER.
Тип данных
|
Размер |
Диапазон/Точность |
Описание |
CHAR(n) |
n символов |
От 1 до 32767 байт |
Строки символов постоянной
длины
0 < n <= 32767 |
VARCHAR(n) |
n символов |
От 1 до 32765 байт |
Строки символов переменной
длины
0 < n <= 32765 |
SMALLINT |
16 бит |
От –32768 до 32767 |
Знаковые целые числа
(короткие) |
INTEGER |
32 бита |
От –2147483648 до
2147483647 |
Знаковые целые числа |
BIGINT |
64 бита |
От
–9223372036854775808 до
9223372036854775807
(от -2^63 до 2^63-1) |
Знаковые целые числа
(большие) |
NUMERIC(p,s) |
Переменный |
P=1 до 15; s=1 до 15 |
Масштабируемые десятичные
числа; p-точность; s-число знаков
после запятой (масштаб); p>=s |
DECIMAL(p,s) |
|
|
То же, что и NUMERIC(p,s) |
DOUBLE
PRECISION |
64 бита |
От 1.7*10^-308 до
1.7*10^308 |
Числа с плавающей запятой
высокой точности; 15 разрядов
после запятой |
FLOAT |
32 бита |
От 3.4*10^-38 до 3.4*10^38 |
Числа с плавающей запятой;
7
разрядов после запятой |
DATE |
32 бита |
От 1 января 100 года до
27 февраля 32768 года |
Календарная дата |
TIME |
32 бита |
От 00:00 до 23:59:59 |
Время дня |
TIMESTAMP |
2*32 бита |
Дата от 1 января 100 года
до 27 февраля 32768 года и
время от 00:00 до 23:59:59 |
Календарная дата и время |
BLOB |
Переменный |
Нет |
Динамически изменяемый; для
хранения больших объемов
данных |
Десятичными числовыми типами
с фиксированной точкой являются
типы NUMERIC и DECIMAL .
При определении типа NUMERIC
или DECIMAL Firebird производит преобразование
типов тремя способами:
• определенные без p и s - всегда
сохраняются как INTEGER;
• определенные с p , но без s
- в зависимости от спецификации p, сохраняются
как SMALLINT, INTEGER или BIGINT;
• определенные с p и s - в
зависимости от спецификации p, сохраняются
как SMALLINT, INTEGER или BIGINT.
В табл. 2.6 содержатся сведения
о том, как Firebird сохраняет десятичные
типы данных NUMERIC (или DECIMAL).
Таблица 2.6. Преобразование типов данных
Определяемый
тип |
Тип, сохраняемый
Firebird |
NUMERIC |
INTEGER |
NUMERIC(4) |
SMALLINT |
NUMERIC(9) |
INTEGER |
NUMERIC(10) |
BIGINT |
NUMERIC(4,2) |
SMALLINT |
NUMERIC(9,3) |
INTEGER |
NUMERIC(10,4) |
BIGINT |
DECIMAL |
INTEGER |
DECIMAL(4) |
INTEGER |
DECIMAL(9) |
INTEGER |
DECIMAL(10) |
BIGINT |
DECIMAL(4,2) |
INTEGER |
DECIMAL(9,3) |
INTEGER |
DECIMAL(10,4) |
BIGINT |
Приведенные в табл. 2.6 данные
по преобразованию десятичных типов
следует понимать следующим образом.
Если, например, определить десятичный
тип с p<9 и s<3, то тип NUMERIC (9,3) будет
преобразован в INTEGER, но, приняв определение
для p>10 и s>4, будет получен тип
BIGINT.
Числовыми типами с плавающей
точкой являются типы DOUBLE PRECISION и FLOAT . В
этих типах положение десятичной
точки не зафиксировано. Столбцы
с типом DOUBLE PRECISION или FLOAT следует
определять, когда нужно хранить
числа с изменяющимся масштабом.
Типы данных даты и времени
представлены типами DATE, TIME и TIMESTAMP.
Формат типа DATE задается
в виде 'ДД.MM.ГГГГ', 'MM/ДД/ГГГГ', 'ГГГГ-ММ-ДД',
'MM:ДД:ГГГГ' или 'ДД-МММ-ГГГГ'. При этом
ММ – две цифры месяца (МММ
– первые три буквы в английском
названии месяца), ДД – две цифры
дня, ГГГГ – четыре цифры года.
Для формата 'ДД-МММ-ГГГГ' в
качестве МММ употребляются первые
три буквы латинского названия месяца
(табл. 2.7).
Например, дату 17 декабря 2001
года можно записать как один из
следующих вариантов: '17.12.2001', '12/17/2001',
'2001-12-17', '12:17:2001' или '17- DEC -2001'.
Тип данных TIME включает время.
Чтобы задать время, необходимо использовать
описание 'ЧЧ/МН/СК' или 'ЧЧ:МН:СК'. При
этом ЧЧ - две цифры часов, МН - две
цифры минут, СК - две цифры секунд.
Чтобы задать дату и время
вместе, необходимо использовать тип TIMESTAMP
с описанием 'MM /ДД/ГГГГ/ЧЧ/МН/СК' или
'ДД.ММ.ГГГГ ЧЧ:МН:СК'.