42323

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

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

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

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

Русский

2013-10-29

135.5 KB

30 чел.

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


 

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

43186. Порядок учета и контроля выпуска и отгрузки готовой продукции 251 KB
  В настоящее время бухгалтерская служба имеет реальную возможность формировать модель хозяйственной деятельности предприятия, основываясь на базе первичных учетных документов, что вывело ее в разряд подразделений, которые, способны осуществлять прогнозирование финансового результата. Подвергнув обработке журналы хозяйственных операций, составленные в течение нескольких прошедших периодов, бухгалтерия может с определенной степенью точности предугадать величину будущей прибыли и повлиять на нее.
43187. Инфляция и её социально-экономические последствия 341.5 KB
  Проблема инфляции занимает человечество уже более 200 столетий. Целю курсовой работы является : раскрыть смысл процесса инфляции посредством рассмотрения понятия инфляции ее причин и видов. Задачи курсовой работы: раскрыть смысл понятия инфляция; дать классификацию инфляции; изучить экономические и социальные последствия инфляции; рассмотреть историю инфляционных процессов и выявить их влияние на экономику; выявить возможные причины инфляции и проанализировать их; изложить возможности преодоления инфляции и меры борьбы с ней;...
43188. Создание автоматизированной информационной системы (АИС) с учебно-исследовательской базой данных (БД) 3.79 MB
  БАЗА ДАННЫХ СУЩНОСТИ АТРИБУТЫ СВЯЗИ ПЕРВИЧНЫЙ КЛЮЧ НОРМАЛИЗАЦИЯ ЗАПРОСЫ ФОРМЫ ОТЧЕТЫ. Цель работы создание автоматизированной информационной системы АИС с учебноисследовательской базой данных БД. Достигнутые результаты: определены все наиболее значимые сущности предметной области и их атрибуты создана база данных для учета продаж путевок учета отелей и клиентов туристической фирмы.
43189. СВЕТОФОР НА ОСНОВЕ МИКРОКОНТРОЛЕРА 375.5 KB
  Бурный процесс автомобилизации с каждым годом охватывает все большее число стран, постоянно увеличивается автомобильный парк, количество вовлекаемых в сферу дорожного движения людей. Рост автомобильного парка и объема перевозок ведет к увеличению интенсивности движения, что в условиях городов с исторически сложившейся застройкой приводит к возникновению транспортной проблемы. Особенно остро она проявляется в узловых пунктах улично-дорожной сети. Здесь увеличиваются транспортные задержки, образуются очереди и заторы, что вызывает снижение скорости сообщения, неоправданный перерасход топлива и повышенное изнашивание узлов и агрегатов транспортных средств.
43190. Взаимосвязь между состоянием здоровья населения и загрязнением атмосферного воздуха в г.Абакане 376.5 KB
  К раздражителям вызывающим эти болезни относятся SO2 и SO3 азотистые пары HCl HNO3 H2SO4 H2S фосфор и его соединения. В структуре заболеваемости детей по Республике Хакасия наибольшую часть составили болезни органов дыхания 429 второе место занимают болезни органов пищеварения 77 третье болезни кожи и подкожной клетчатки 68. Инфекционные и паразитарные болезни травмы составили 73 и 63 соответственно. В структуре заболеваемости подростков на 1 месте с удельным весом 2315 3 ранг находятся...
43191. Проектирование состава тяжелого цементного бетона на плотных заполнителях 1.7 MB
  Корректировка состава бетонной смеси по удобоукладываемости. Расчет расхода материалов на заданный объем бетоносмесителя. Проектирование состава имеет цель установить такой расход материалов на 1 бетонной смеси при котором наиболее экономично обеспечивается получение удобоукладываемой бетонной смеси и заданной прочности бетона а в ряде случаев необходимой морозостойкости водонепроницаемости и специальных свойств бетона. Состав бетонной смеси выражают в виде соотношения по массе реже по объему между количествами...
43192. Розробка структури і технології управління об’єктом на прикладі ТОВ „Альтаір” 1.2 MB
  Товариство з обмеженою відповідальністю «Альтаір» було створене, не маючи в своєму розпорядженні зовсім ніякої бази, крім початкового капіталу, що склав 897 тисяч гривень. Така ситуація має свої як переваги, так і недоліки. Їх дуже гарно можна виявити, порівнявши нашу фірму з багатьма сучасними підприємствами автомобільного транспорту, які були створені зовсім недавно на базі старих нерентабельних державних АТП.
43193. Проблемы внешней торговли России 538 KB
  Особенности внешней торговли России. Проблемы внешней торговли России. Внешнеторговая политика современной России. Направления развития внешней торговли России. Список использованной литературы Введение Активный рост внешней торговли нашей страны начался в 70е годы когда и разрядка международной напряженности и оживление всей мировой торговли способствовали вовлечению отечественной экономики в расширяющийся международный товарообмен.
43194. Совершенствование социальной политики в России 549.5 KB
  Это прежде всего решение задач занятости и обеспечения реального уровня прожиточного минимума адресности социальной поддержки достижения оптимального соотношения уровней жизни активной занятой части населения и нетрудоспособных граждан. Налоговая политика использует механизм прогрессивного налогообложения в качестве источника формирования финансовых ресурсов для осуществления социальной поддержки малообеспеченных в социальном плане слоев населения. Реализация социальной защиты населения осуществляется в двух формах: активной и...