42323

Домены. SQL-операторы для работы с доменами

Лабораторная работа

Информатика, кибернетика и программирование

Домены Цель работы Изучить типы данных Firebird. Исходные данные Вариант исходных данных с кратким описанием предметной области получен студентом при выполнении первой лабораторной работы. Эта модель стала революционным событием в развитии баз данных . Элементы реляционной модели данных и формы их представления приведены в таблице 1.

Русский

2013-10-29

135.5 KB

26 чел.

12     

  1.  Лабораторная работа №2. Домены
    1.  Цель работы

Изучить типы данных Firebird. Получить навыки использования приложения "IBExpert" для выполнения операций с доменами. Изучить SQL-операторы для работы с доменами.

Время выполнения: 2 часа.

  1.  Исходные данные

Вариант исходных данных с кратким описанием предметной области получен студентом при выполнении первой лабораторной работы. Каждая очередная лабораторная работа является продолжением выполненной ранее и поэтому все работы должны обязательно выполняться последовательно.

  1.  Используемые программы

Все операции с доменами выполняются с помощью приложения "IBExpert". Отчет создается в редакторе "OpenOffice.pro".

  1.  Теоретические сведения
    1.  Реляционные модели.

В 1970 г. Е. Ф. Кодд предложил модель, в которой данные можно связывать друг с другом в соответствии с их внутренними логическими взаимоотношениями. Эта модель стала революционным событием в развитии баз данных .

Элементы реляционной модели данных и формы их представления приведены в таблице 1.

Таблица : Элементы реляционной модели

Элемент реляционной модели

Форма представления

Отношение

Таблица

Схема отношения

Заголовок таблицы

Кортеж

Строка таблицы

Сущность

Объект предметной области

Атрибут

Заголовок столбца таблицы

Домен

Множество допустимых значений атрибута

Значение атрибута

Значение поля в записи

Первичный ключ

Один или несколько атрибутов

Тип данных

Тип значений элементов таблицы


Итак, каждая таблица состоит из строк и столбцов, каждая строка описывает экземпляр объекта, каждый столбец характеризует определенное свойство объекта.

  1.  Типы данных Firebird

Типы данных – это базовые элементы любого сервера СУБД. Когда мы говорим, что в БД хранится какая-то информация, то должны осознавать, что эта информация не может быть свалена в одну большую кучу;  наоборот, данные должны быть рассортированы по полям таблицы в БД. Типы данных определяют, что можно хранить в данном поле, что нельзя.

Понятие типов данных в реляционной модели данных соответствует понятию типа данных в языках программирования. В современных реляционных БД допускается хранение символьных, числовых данных, специальных числовых данных таких как "деньги", а также дат и времени.

В табл. 2 приведены основные типы данных, используемые в Firebird для полей таблиц, при описании доменов, для переменных внутри хранимых процедур и триггеров, а также для параметров в процедурах и функциях пользователя.

Таблица : Типы данных Firebird

Название

Размер

Диапазон

Описание

SQL  диалект 1

INTEGER

32 бита

от –2 147 483 648 до 2 147 483 647

Длинное целое.

SMALLINT

16 бит

от –32 768 до 32 767

Короткое целое

FLOAT

32 бита

от 3,4х10-38

до 3,4х10+38 

Вещественные числа с плавающей точкой (точность 7 значащих цифр)

DOUBLE PRECISION

64 бита

от 1,7x10 -308

до 1,7x10 +308

Вещественные числа с плавающей точкой (точность 15 значащих цифр)

DATE

64 бита

от 1 января 100 года н.э. до 29 февраля 32768 года

Дата. Включает информацию о времени.

CHAR(n)

n символов

n = 1.32767 

Строка символов фиксированной длины.

VARCHAR(n)

n символов

n = 1.32767

Строка символов переменной длины.

BLOB (Binary Large OBject)

переменный

нет

Двоичные объекты, такие как графика, текст, цифровой звук. Содержание определяется подтипом.

SQL диалект 3

BIGINT

64 бита

От -2 63 до 2 63 - 1

Большое целое

DATE

32 бита

от 1 января 100 года н.э. до 29 февраля 32768 года

Только дата без информации о времени. 


TIME

32 бита

от 00:00 до 23:59:9999

Данные о времени с точностью до десятитысячной доли секунды.

TIMESTAMP

64 бита

Комбинация типов DATE и TIME.

  1.  Домены (Domains) 

Домен – это описание множества допустимых значений поля таблицы. Описание домена определяет тип данных (например, число или строка), длину данных и другие ограничения (например, требование, чтобы первый символ был буквой или чтобы значение не превышало заданного числа). В Firebird домены используются только в операторах создания и изменения структуры таблиц.

Для создания доменов используется команда CREATE DOMAIN, для изменения – ALTER DOMAIN, а для удаления – DROP DOMAIN.

Ниже приведен синтаксис оператора создания домена.

CREATE DOMAIN Имя_Домена [AS] <тип данных>

[DEFAULT {Literal | NULL | USER}]

[NOT NULL] [CHECK (Проверяемое_Условие)] [COLLATE collation]; 

При описании синтаксиса операторов квадратные скобки обозначают необязательный элемент, фигурные скобки объединяют группу элементов оператора в один, символ | означает выбор одной из нескольких альтернатив. Элемент, расположенный в угловых скобках должен поясняться отдельно.

Максимальная длина имени домена 31 символ.

В приведенном примере необязательный элемент

[DEFAULT {Literal | NULL | USER}]

позволяет задать значение столбца по умолчанию с использованием одной из трех возможностей. Первая возможность, обозначенная как Literal, позволяет задавать значения по умолчанию в виде текстовых констант, чисел и дат. Вторая возможность – указать в определении столбца DEFAULT NULL, что приведет к тому, что во вновь создаваемых записях значение этого столбца будет NULL. Третий способ – указать при определении столбца DEFAULT USER. Если в этом случае в таблицу будет вставлена строка без указания значения этого поля, то в него будет занесено имя текущего пользователя

Если необходимо, чтобы поле имело какое-то непустое значение, в описание домена вносят NOT NULL.

Последний необязательный элемент в описании домена позволяет заставить сервер проверять заносимые в базу данных значения на выполнение заданного условия.

Вместо элемента <тип данных> должно быть использовано название одного из возможных типов данных Firebird (Таблица 2).


  1.  Наборы символов

Чтобы указать Firebird, как хранить и интерпретировать символьную информацию, помещаемую в базу данных, необходимо указать набор символов (Character Set). Если известно, какой набор символов будет использоваться в базе данных, то можно установить единый набор символов по умолчанию для всей базы данных. Для этого в команде создания базы данных следует указать набор символов по умолчанию с помощью опции DEFAULT CHARACTER SET. Для того, чтобы работать с русскими буквами, следует указывать набор символов WIN1251.

Указание набора символов по умолчанию не означает, что все таблицы и поля в базе данных должны иметь тот же самый тип. Они будут использовать этот набор символов, если явно не указать для таблицы или поля какой-нибудь другой.

При этом надо иметь в виду, что по умолчанию русские буквы сортируются в двоичном порядке т. е. в соответствии с порядком расположения кодов букв в используемой кодовой таблице. При этом строчные буквы располагаются после прописных, а буква "Ы" вообще располагается отдельно. Русские буквы будут располагаться в следующем порядке: АБВ...ЮЯЫабв...юяы. Чтобы заставить их сортироваться правильно, надо указать способ упорядочения, т. е. COLLATION ORDER (опция COLLATE).

Как же изменить сортировку символов по умолчанию внутри набора символов? Для этого применяются порядки сортировки наборов символов — так называемые  COLLATION ORDERS, которые задаются с помощью опции COLLATE. Например, для русского набора символов WIN1251 существует два способа сортировки: WIN1251, который задается по умолчанию, и сортировка PWX_CYRL. В порядке сортировки PWX_CYRL одни и те же прописные и строчные буквы имеют одинаковый вес, т. е. этот порядок сортировки не зависит от регистра символа. В порядке сортировки  PWX_CYRL русские буквы будут располагаться в порядке: аАбБвВ...яЯ.

Фрагмент сценария создания доменов:

/********************************************************************       

Домены

********************************************************************/

CREATE DOMAIN ID INTEGER NOT NULL; -- идентификатор

CREATE DOMAIN Name VARCHAR(30) NOT NULL COLLATE PWX_CYRL;        --имя

CREATE DOMAIN CurrentDate DATE DEFAULT 'TODAY' NOT NULL;

CREATE DOMAIN Percent INTEGER -- процент

         CHECK (VALUE >= 0 AND VALUE <= 100);  

CREATE DOMAIN MEMO BLOB SUB_TYPE TEXT SEGMENT SIZE 128; 

Синтаксис оператора изменения домена:

ALTER DOMAIN Имя_Домена {

[SET DEFAULT {Literal | NULL | USER}] |


[DROP DEFAULT] |

[ADD [CONSTRAINT] CHECK (Проверяемое_Условие)] |

[DROP CONSTRAINT]}; 

Выполнить замену ограничения или значения по-умолчанию одной командой нельзя! По синтаксису команды ограничение или значения по-умолчанию можно либо удалить либо добавить, прямая замена невозможна. Так что замену следует делать в два этапа.

Синтаксис оператора удаления домена:

DROP DOMAIN Имя_Домена; 

Оператор изменения домена ALTER DOMAIN позволяет изменить тип данных, имя домена, а также добавить или удалить условие контроля данных. Чтобы изменить домен можно также внести изменения в системные таблицы.

  1.  Порядок выполнения работы

Лабораторную работу следует выполнять в следующем порядке:

  1.  Создать на компьютере sqledu02 (или на локальном компьютере) рабочую папку для хранения файлов, получаемых при выполнении лабораторной работы №2. Эта папка должна располагаться в той же папке, что и папка для лабораторной работы №1, и называться "ЛР2" . Пример правильного названия рабочей папки при выполнении лабораторной работы №2: "sqledu02:\D:\Data\ЛР2".
  2.  Открыть окно "Редактор скриптов" в приложении "IBExpert".
  3.  Используя кнопку   [Загрузить из файла] на панели инструментов, открыть диалоговое окно "Open SQL File" и с его помощью открыть файл сценария,  созданный при выполнении лабораторной работы №1.
  4.  Используя кнопку [Save as] на панели инструментов, сохранить загруженный сценарий в папке "sqledu02:\D:\Data\ЛР2".  
  5.  Изменить в сценарии путь до файла с базой данных, чтобы база данных создавалась в папке "ЛР2".
  6.  Добавить в сценарий команды создания доменов с использованием типов полей, приведенных в табл.2. Необходимо обязательно следовать правилам оформления текста сценария.
  7.  Выполнить сценарий, создав в базе данных заданные домены.
  8.  Сохранить файл сценария.
  9.  Зарегистрировать созданную базу данных в приложении "IBExpert" и подключиться к созданной базе данных.
  10.  Проверить наличие в базе данных созданных доменов, используя в окне "Database Explorer" список доменов в узле "Домены".
  11.  Создать в папке "ЛР2" резервную копию базы данных.


  1.  Создать и сохранить в этой же папке файл с отчетом о выполнении лабораторной работы №2, который должен называться "Отчет2-xx.odt", где xx — это номер варианта задания.
    1.  Варианты заданий

В данной лабораторной работе всеми студентами создаются домены, перечисленные в таблице 3.

Таблица : Перечень создаваемых доменов

Имя домена

Тип данных

Описание

MONEY

DOUBLE PRECISION

Для указания данных денежного типа

PERSON

VARCHAR(20)

Для указания фамилий, имен и отчеств

PERCENT

INTEGER

Для указания процентов (от 0 до 100)

BIRTHDAY

DATE

Для указания даты рождения

TELEPHONE

VARCHAR(12)

Для указания номеров телефонов

GENDER

CHAR(1)

Для указания пола личности

DATES

DATE

Для указания различных дат

ADDRESSES

VARCHAR(30)

Для указания различных адресов

При создании конкретных доменов, предусмотреть задание значений столбцов по умолчанию, проверку заносимых в базу данных значений на выполнение заданного условия,  создание непустого значения, тип сортировки символов.

Вариант задания предметной области (Таблица 4) выбирается по формуле (N mod 24)+1, где N – последние две цифры зачетной книжки студента.

Таблица : Варианты заданий к лабораторной работе №2

№ варианта

Имя пользователя

Имя файла БД

1

TEAM001

SALARY.FDB

2

TEAM002

STUFF.FDB

3

TEAM003

STUFFPLUS.FDB

4

TEAM004

TELEPHONE.FDB

5

TEAM005

TOOLS.FDB

6

TEAM006

EXAMIN.FDB

7

TEAM007

LIBRARY.FDB

8

TEAM008

AVIA.FDB

9

TEAM009

SHOP.FDB

10

TEAM010

HCOMMAND.FDB

11

TEAM011

STUDENT.FDB

12

TEAM012

SERVIS.FDB

13

TEAM013

REGION.FDB

14

TEAM014

OPTSHOP.FDB


15

TEAM015

OPTLEKI.FDB

16

TEAM016

SPORTSMEN.FDB

17

TEAM017

DANCING.FDB

18

TEAM018

BIRTHDOM.FDB

19

TEAM019

TENNIS.FDB

20

TEAM020

CURSES.FDB

21

TEAM021

TEACHER.FDB

22

TEAM022

HOSPITAL.FDB

23

TEAM023

SOLDAT.FDB

24

TEAM024

YUSHOP.FDB

  1.   Ход работы 

Подключившись к базе данных, можно выполнять операции по созданию, удалению и изменению доменов. В окне "Database Explorer" появляются вложенные узлы, которые можно использовать для выполнения операций с доменами.

Чтобы добавить новый домен, необходимо воспользоваться командой "Новый домен" контекстного меню узла "Домены". В результате откроется окно со сведениями о доменах (Рис. 1).

Чтобы назначить тип сортировки следует воспользоваться выпадающим списком "Коллате".

Для изменения имени домена достаточно отредактировать его в столбце "Имя домена". Для изменения типа данных следует воспользоваться выпадающим списком в столбце "Тип" (Рис. 2). Длину текстового поля можно изменить, если отредактировать значение в столбце "Длина".

Чтобы сделанные изменения были выполнены, необходимо нажать кнопку [Компиляция] (Ctrl+F9). В результате этого откроется диалоговое окно "Компиляция доменов…" (Рис. 3), в котором надо подтвердить (кнопка [Commit]) или отменить (кнопка [Откатить]) выполнение операции.



  1.  Отчет о выполнении работы

Отчет о выполнении лабораторной работы №2 необходимо оформить на листах формата A4. Для создания отчета следует использовать шаблон отчета для соответствующей лабораторной работы, который необходимо открыть с помощью приложения OpenOffice.

Отчет состоит из титульного листа, указания цели работы, описания процесса выполнения работы и выводов. Отчет должен содержать результаты работы, представляемые в следующей последовательности:

  1.  Цель работы.
  2.  Краткое описание предметной области в соответствии с вариантом.
  3.  Данные о версии СУБД, использованной в лабораторной работе.
  4.  Перечисление всех использованных при выполнении лабораторной работы команд главного меню приложения "IBExpert" с краткими пояснениями выполняемых действий.
  5.  Перечень файлов, полученных при выполнении лабораторной работы с указанием их имен, места расположения, даты изменения и размеров (сценарий, база данных, резервная копия базы данных, файл с отчетом).
  6.  Письменные ответы на контрольные вопросы.
  7.  Выводы.
  8.  Распечатку сценария создания базы данных с комментариями, которые должны содержать сведения об авторе, дате создания, всех выполняемых действиях и пояснения к доменам.
    1.  Контрольные вопросы
  9.  Дать определение термина "Домен".
  10.  Где в Firebird используются домены?
  11.  Какова максимальная длина имени домена?
  12.  Какие из имеющихся типов данных для СУБД Firebird 2.5 не приведены в табл. 2?
  13.  Перечислить числовые типы данных Firebird.
  14.  Перечислить целые типы данных в порядке возрастания их размера.
  15.  Перечислить строковые типы данных.
  16.  Сколько различных типов данных можно использовать при создании доменов в диалоговом режиме?
  17.  Чем отличается тип данных DATE в диалектах 1 и 3?
  18.  Какие дополнительные новые типы добавились в диалекте 3?
  19.  В чем отличие типа данных VARCHAR от CHAR?
  20.  Чему равно наибольшее целое число, которое можно сохранить в типе BIGINT?
  21.  Что означает аббревиатура BLOB?
  22.  Какие существуют способы изменения домена?
  23.  В какой системной таблице хранятся метаданные о доменах?

    13


 

А также другие работы, которые могут Вас заинтересовать

30791. Мембранные кровли 16.44 KB
  Наносится с использованием клеевой технологии. ТПО – смесь каучука и полимеров повышающих механическую прочность менее эластичны ПВХ – мембраны Способы соединения полотнищ: сварка горячим воздухом клеевой способ 2хсторонние склеивающие ленты Способы закрепления мембранных кровель: Баластный способ – свободное положение закрепляют по периметру в местах примыкания к вертикальным поверхностям. Наносят клеевой состав и раскатывают катком.
30792. Устройство металлических кровель 13.66 KB
  Основание для покрытия кровельной сталью выполняют в виде обрешетки из деревянных брусков 50 х 50 мм и досок от 50 х 120 до 50 х 110 мм. Конек устраивают из соединяемых под углом досок. Расстояние между осями досок принимают равным 1390 мм чтобы стыки листов попадали на них.
30793. Устройство кровель из асбесто-цементных волокнистых листов (шифер) 13.2 KB
  Устройство кровель из асбестоцементных волокнистых листов шифер Волнистые асбестоцементные листы обыкновенного профиля и средневолнистые размером 678 х 1200 мм укладывают на деревянной обрешетке из брусьев сечением 60 х 60 мм. Для плотного прилегания листов к обрешетке и друг к другу карнизный брусок поднимают с помощью прокладок на 6 мм а последующие четные бруски на 3 мм. Плотное прилегание листов в рядах вдоль и поперек ската обеспечивают уменьшением количества слоев в нахлестке. Для этого при укладке обрезают углы двух листов или...
30794. Виды и назначение отделочных покрытий 14.22 KB
  Их назначение придать зданию или сооружению законченный вид отвечающий заданным утилитарным и эстетическим требованиям. Назначение отделочных работ защита строительных конструкций от вредных воздействий окружающей среды увеличение срока их службы и придание поверхностям красивого внешнего вида.
30795. Классификация штукатурок 12.86 KB
  По сложности выполнения: простая улучшеннаявысококачественная.
30796. Материалы и компоненты штукатурных растворов. Свойства 15.56 KB
  Остальные пески для получения качественного штукатурного раствора необходимо предварительно промывать. Например для обычного раствора среднезернистый песок для отделочных слоев – мелкозернистый для декоративной штукатурки крупнозернистые пески. Добавки – это такие вещества которые повышают качество раствора усиливают вяжущие свойства и дают штукатурке определенные свойства. При длительном хранении такого раствора вода выступает на его поверхности.
30797. Штукатурный намёт и его состав для различных видов штукатурки 14.39 KB
  Состав обычной штукатурки: Однослойная – для подсобных помещений Многослойная – в 3 слоя :стена обрызг грунт накрывка Обрызг – для сцепления штукатурного намёта с поверхностью не разравнивается. Простая штукатурка – 2 слоя обрызгнаркывка 12 мм Улучшенная – 3 слоя обрызггрунтнакрывка1520мм Высококачественная – 4 слоя обрызггрунтгрунтнакрывка2025 мм Удобоукладываемость: обрызг ОК 1012 грунт ОК 910.
30798. Подготовка к оштукатуриванию. Провешивание. Инструмент 14.9 KB
  Провешивание: Первый маякгвоздь вбивают слева сверху стены оставляя шляпку на толщину штукатурки Отвес. 3 и 4 маяки с другой стороны стены аналогично. Натягиваем нить – не должна касаться стены. Если касается стены – вынимаем маяки и провешиваем заново.
30799. Технологическая последовательность устройства монолитной штукатурки механизированным способом и вручную 14.28 KB
  Нанесение растворов при механизированном оштукатуривании выполняют форсунками с пневматическим или механическим раздроблением раствора. При пневматическом распылении раствора к форсунке дополнительно подводится по шлангу и сжатый воздух от компрессора. Это делают для лучшего сцепления раствора с поверхностью. Во время нанесения раствора форсунку держат правой рукой у места присоединения к шлангу одновременно поддерживая ее снизу левой рукой.