42323

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

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

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

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

Русский

2013-10-29

135.5 KB

23 чел.

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


 

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

65890. Основы физиологии труда 32.49 KB
  Прежде всего это социальная неэффективность физического труда связанная с низкой его производительностью необходимостью высокого напряжения физических сил и потребностью в длительном до 50 рабочего времени отдыхе. Для данного вида труда характерна гипокинезия...
65893. Классификация недвижимости по функциональному признаку 62.5 KB
  Эти объекты недвижимости называют еще и недвижимостью по природе. Искусственные объекты постройки: а жилая недвижимость малоэтажный дом до трех этажей многоэтажный дом от 4 до 9 этажей дом повышенной этажности от 10 до 20 этажей высотный дом свыше 20 этажей.
65894. ЛИТУРГИЧЕСКИЕ ЖАНРЫ В ПОЭЗИИ СЕРЕБРЯНОГО ВЕКА 52.5 KB
  Серебряный век понятие многомерное. Оно включает в себя важнейшие категории и признаки периода конца ХIX начала ХХ века. Философско-эстетический Ренесанс синтез искусств религиозное творчество усиленный психологизм все эти понятия включены в контекст Серебряного века.
65895. ВЗАИМОДЕЙСТВИЕ ОБЩЕСТВЕННОСТИ И СИСТЕМЫ ИСПОЛНЕНИЯ НАКАЗАНИЙ: ИСТОРИЯ И СОВРЕМЕННОСТЬ 68.5 KB
  Сотрудничество системы исполнения наказаний и общественности восходит своими корнями к началу XIX века когда в 1810 году по инициативе Вальтера Венинга и Джона Венинга членов Лондонского тюремного общества приехавших в Россию и министра духовных дел...
65896. УБИЙСТВО В ЦЕЛЯХ ИСПОЛЬЗОВАНИЯ ОРГАНОВ И ТКАНЕЙ ПОТЕРПЕВШЕГО 46 KB
  Необходимость его включения была вызвана теми качественными изменениями в медицине которые произошли в ней за последние 40 лет а именно расширением возможностей успешного осуществления пересадки ряда жизненно важных органов и тканей человеческого организма сердце почки печень...
65897. К ВОПРОСУ О РАЗРАБОТКЕ ОСНОВ КРИМИНАЛИСТИЧЕСКОЙ ХАРАКТЕРИСТИКИ ПРЕСТУПЛЕНИЙ, НАРУШАЮЩИХ ИЗБИРАТЕЛЬНЫЕ ПРАВА ГРАЖДАН 46 KB
  В части 3 статьи 3 Конституции РФ говорится что высшим непосредственным выражением власти народа являются референдум и свободные выборы. Причем дело не в том что в ходе предвыборных кампаний и самих выборов уголовный закон не нарушается дело в другом: в высоком уровне...