- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - Хелен Борри
Шрифт:
Интервал:
Закладка:
Пример 13.3. Трехфазный переключатель, представляющий UNKNOWN как значение:
CREATE DOMAIN D_GENDER AS CHAR(4)
DEFAULT 'N/K' NOT NULL
CHECK (VALUE IN ('FEM', 'MASC', 'N/K'));
! ! !
ВНИМАНИЕ! He используйте BOOLEAN, UNKNOWN, TRUE или FALSE В качестве имен для булевых доменов. В Firebird это зарезервированные слова. Истинно логические типы планируются в Firebird 2 и могут появиться в промежуточных релизах между 1.5 и 2.
. ! .
Изменение определения домена
Оператор языка определения данных ALTER DOMAIN может быть использован для изменения любого аспекта существующего домена за исключением установки NOT NULL. Изменения, сделанные вами в определении домена, воздействуют на все определения столбцов, основанных на этом домене, если только соответствующие атрибуты не были переопределены на уровне таблицы.
Домен может быть изменен его создателем, пользователем SYSDBA или (в Linux/UNIX) любым пользователем с привилегией root операционной системы.
Используя ALTER DOMAIN, вы можете:
* переименовать домен;
* изменить тип данных;
* удалить существующее значение по умолчанию;
* установить новое значение по умолчанию;
* удалить существующее ограничение CHECK;
* добавить новое ограничение CHECK.
! ! !
ПРИМЕЧАНИЕ. Существует только один путь "изменить" установку NOT NULL для домена - это удалить домен и заново создать его с желаемой комбинацией характеристик.
. ! .
Вот синтаксис оператора:
ALTER DOMAIN { имя | старое-имя ТО новое-имя } {
[SET DEFAULT {литерал | NULL | USER | etc.}]
| [DROP DEFAULT]
| [ADD [CONSTRAINT] CHECK (<условия-соответствия>)]
| [DROP CONSTRAINT]
| TYPE тип-данных
};
Примеры
Этот оператор устанавливает новое значение по умолчанию для домена BOOK_GROUP:
ALTER DOMAIN BOOK_GROUP SET DEFAULT -1;
В следующем операторе имя домена BOOK_GROUP заменяется на PUBL_GROUP:
ALTER DOMAIN BOOK_GROUP TO PUBL_GROUP;
Ограничения на изменение типов данных
Предложение TYPE в ALTER DOMAIN позволяет заменить тип данных на другой разрешенный тип данных. Разрешенные типы преобразований см. на рис. 8.1.
Недопустим никакой тип преобразования, который может привести к потере данных. Например, количество символов в домене не может быть сделано меньше размера наибольшего значения в любом столбце, использующим этот домен[31].
Преобразование числового типа данных в символьный тип требует минимальной длины для символьного типа, как указано в табл. 8.3.
Следующий оператор меняет тип данных домена BOOK_TITLE С CHAR(80) на VARCHAR(100) :
ALTER DOMAIN BOOK_TITLE TYPE VARCHAR(100);
Удаление домена
Оператор DROP DOMAIN удаляет из базы данных существующее описание домена при условии, что домен не используется в каком-либо описании столбца базы данных.
Чтобы не получить исключений, применяйте ALTER TABLE для удаления всех столбцов, использующих домен, а затем выполняйте DROP DOMAIN. Лучший способ сделать это за одно задание - использовать скрипт DDL. См. разд. "Скрипты схемы" в следующей главе.
Домен может быть удален его создателем, пользователем SYSDBA или (в Linux/UNIX) любым пользователем с привилегией root операционной системы.
Вот синтаксис оператора:
DROP DOMAIN name;
Следующий оператор удаляет ненужный домен:
DROP DOMAIN rather_silly;
Пора дальшеОзнакомившись с определением данных, теперь пора приступить к более интересной теме - определению и разработке баз данных. Следующая группа глав проведет вас через концепцию баз данных, ее объектов и подмножество языка SQL, называемого Data Definition Language (DDL), который используется для управления объектами и задает правила их поведения.
Глава 14 начнется с изложения базовых правил разработки моделей в реляционных базах данных. Глава закончится разделом о работе со скриптами БД.
ЧАСТЬ IV. База данных и ее объекты.
ГЛАВА 14. Чертежная доска для базы данных.
Конечно же, база данных хранит данные. Однако данные сами по себе не могут использоваться, если они не были сохранены в соответствии с некоторыми правилами, которые, во-первых, определяют их смысл и значение и, во-вторых, позволяют их отыскивать соответствующим образом. База данных, существующая в контексте системы управления базами данных (СУБД), такой как Firebird, включает в себя множество "вещей" помимо данных.
Firebird является реляционной системой управления базами данных. По существу она разработана для создания и поддержания абстрактных структур данных не только для хранения данных, но также для поддержки отношений, оптимизации скорости и обеспечения целостности, в соответствии с которой запрашиваемые данные могут быть возвращены клиентским приложениям.
Пользователь SYSDBA и пароль
Во всех версиях Firebird, включая 1.5, пользователь SYSDBA имеет полные права ко всем базам данных на сервере. Инсталляционные скрипты устанавливают базу данных безопасности с паролем по умолчанию masterkey.
Некоторые релизы 1.5 для Linux запускают скрипт, который генерирует новый пароль для пользователя SYSDBA. Вы можете посмотреть сгенерированный пароль в файле SYSDBA.password в корневом каталоге Firebird.
! ! !
ВНИМАНИЕ! Пароль masterkey широко известен. Убедитесь, что вы изменили его на малопонятную восьмисимвольную строку. См. инструкции в главе 34.
. ! .
Метаданные
Все вместе объекты, определенные в базе данных, называются метаданными или, более традиционно, ее схемой. Процесс создания и модификации метаданных называется определением данных. Термин "определение данных" также часто применяется к описанию одного объекта и его атрибутов.
В этом разделе в деталях рассматриваются концепции, терминология и язык определения данных.
Язык определения данных
Основные структуры базы данных - ее таблицы, просмотры и индексы - создаются с использованием подмножества языка SQL Firebird, известного как язык определения данных (Data Definition Language, DDL). Оператор DDL начинается с одного из ключевых слов CREATE, ALTER, RECREATE или DROP, которые означают создание, изменение, пересоздание или удаление одного объекта, соответственно. База данных, ее объекты, правила и отношения объединяются для формирования структуры реляционной базы данных.
Системные таблицы
Firebird хранит метаданные в множестве таблиц, которые он создает прямо в базе данных, - в системных таблицах. Идентификаторы всех системных таблиц начинаются с символов "RDB$". Например, таблица, которая хранит определения и другую информацию о структурах всех таблиц в вашей базе данных, называется RDB$RELATIONS. Связанная с ней таблица RDB$RELATION_FIELDS хранит информацию и описания всех столбцов в каждой таблице.
Такая "база данных в базе данных" является высоко нормализованной. Операторы DDL разработаны для выполнения безопасных операций с таблицами метаданных и в полном соответствии с каскадными эффектами.
Возможно изменение данных в системных таблицах посредством обычных операций SQL. Некоторые инструменты администратора, такие как isql и gfix, выполняют внутренние изменения данных в системных таблицах. При этом, будучи сложной системой управления базами данных, Firebird не была разработана в предположении, что конечный пользователь будет манипулировать строками системных таблиц.
! ! !
ВНИМАНИЕ! Не рекомендуется пренебрегать операторами DDL и самостоятельно изменять системные таблицы с помощью кода приложений или через интерактивные инструменты. Системные таблицы являются "мета-метаданными" любой базы данных. Любое вмешательство человека, скорее всего, приведет к непредсказуемым повреждениям.
. ! .
Запросы SELECT к системным таблицам являются замечательным средством и могут быть очень полезными для отображения таких вещей, как наборы символов, зависимости и т.д. Полное описание системных таблиц см. в приложении 9.
Проектирование базы данных
Хотя реляционные базы данных являются очень гибкими, существует только один способ обеспечения целостности данных и удовлетворительной производительности базы данных - основательное проектирование базы данных. Не существует никакой встроенной защиты от скверных проектных решений.
Хорошее проектирование базы данных имеет несколько преимуществ.
* Удовлетворяет требованиям пользователей к содержимому базы данных. Прежде чем вы сможете начать проектирование базы данных, вы должны провести обширные исследования требований пользователей к базе данных, а также выяснить, как база данных будет использоваться. Наиболее гибкие проекты баз данных на сегодняшний день создаются во время хорошо управляемого процесса анализа, создания прототипа и тестирования; в этот процесс вовлекаются все люди, которые будут использовать базу данных.
* Обеспечивает полноту и целостность данных. При проектировании таблицы вы определяете некоторые атрибуты и ограничения, фильтрующие данные, которые пользователь или приложение могут вводить в таблицу и ее столбцы. Выполняя проверку данных до их помещения в таблицу, база данных реализует правила модели данных и обеспечивает целостность данных.

