50476

Создание удаленной базы данных InterBase

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

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

Создайте домены таблицы БД используя ограничения целостности домена. Создайте таблицы со ссылочной целостностью и ограничением сущности. Заполнить таблицы данными не менее 5 записей. Создать триггер для изменения значений таблицы.

Русский

2014-01-24

1.35 MB

20 чел.

                                                             Выполнила: студентка НИУ «БелГУ»

                                                                 Переверзева О. С. Гр.141104

                                                             Проверили: преподаватели Сунцова А. И. и

                                                                  Петрова М. А.                   

Дата: «     »   __________ 20___

     Оценка: ____________

Отчет

по лабораторной работе №2

«Создание удаленной базы данных InterBase»

Модели данных «Магазин сувениров»

Задание:

  1.  Создайте базу данных согласно курсовой работе.
  2.  Создайте домены таблицы БД, используя ограничения целостности домена.
  3.  Создайте таблицы со ссылочной целостностью и ограничением сущности.
  4.  Заполнить таблицы данными (не менее 5 записей).
  5.  Создать представления (не менее 3).
  6.  Создать генераторы.
  7.  Создать триггеры для реализации ограничений ссылочной целостности и для занесения в ключевые столбцы уникальных значений.
  8.  Создать триггер для изменения значений таблицы.
  9.  Создать хранимые процедуры на добавление, изменение и удаление данных.

Контрольные вопросы:

1. Конструкция INNER JOIN

2. Конструкция OUTER JOIN

3. Конструкция FULL JOIN

4. Конструкция CROSS JOIN

5. Оператор CREATE TABLE

6. Оператор ALTER

7. Оператор DROP

8. Ограничения сущностей

9. Ограничения домена

10. Ограничения ссылочной целостности

11. Ограничения столбца

12. Создание представления

13. Удаление представления

14. Хранимые процедуры

15. Генераторы

16. Триггеры

   

NEW.PRT_ID_VIBITOGO_CHEKA=gen_id ("GEN_PRODAZA", 1);

Ответы на контрольные вопросы:

1. Конструкция INNER JOIN

Объединяет две таблицы, где каждая строка обоих таблиц в точности соответствует условию. Если для строки одной таблицы не найдено соответствие в другой таблице, то она не включается в набор. Формат:

SELECT column FROM table1 INNER JOIN table2 ON condition(условие)

2. Конструкция OUTER JOIN

Это внешнее объединение. Делится на LEFT JOIN и на RIGHT  JOIN.

LEFT – это левое внешнее объединение. Выбираются вне записи первой таблицы, даже если они не соответствуют записям во второй таблице. RIGHT – правое внешнее объединение. Выбираются все записи второй правой таблицы, даже если они не соответствуют записям левой первой таблицы.

3. Конструкция FULL JOIN

Это комбинация правого и левого объединения. Показывает строки из обеих таблиц: при наличии соответствия – это бъединенные данные, в противном случае – это null значения.

4. Конструкция CROSS JOIN

Перекрестное объединение, выводятся все комбинации строк (декартово произведение множеств). Каждой строке первой таблице соответствует каждая строка второй таблице.

5. Оператор CREATE TABLE

Создание таблицы заключается в задании имени и структуры таблицы и выполняется с помощью оператора create table. Формат:

CREATE TABLE table_name

(Column_name TYPE [ограничения],

[описание ключа],

[описание индекса] );

Обязательно должны быть заданы имя таблицы и как минимум один столбец.

Часть элементов структуры БД можно специфицировать на уровне столбца или на уровне таблицы.

Описание столбца имеет формат:

<описание столбца>={<имя>|<домен>|COMPUTED [BY]}

6. Оператор ALTER

Изменение таблицы выполняется оператором ALTER TABLE, который позволяет добавлять и удалять отдельные столбцы, а так же ограничения.

Удаляя и добавляя столбцы можно требуемым образом изменить состав таблицы. Если необходимо только немного изменить описание столбца, то рекомендуется поступать так:

  1.  Создать новый столбец с требуемым описанием;
  2.  Скопировать данные из старого столбца, описание которого изменяется, в новый столбец;
  3.  Удалить старый столбец.

7. Оператор DROP

Этот оператор позволяет удалить таблицу и имеет следующий формат:

DROP TABLE <имя таблицы>;

8. Ограничения сущностей

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

Изменение/создание примарного/уникального ключа после создания таблицы: ALTER TABLE List ADD CONSTRAINT PR_idList PRIMARY KEY(idList)

9. Ограничения домена

Домен представляет собой именованное описание столбца. После определение домена его имя можно использовать при описании других столбцов. Перед использованием домена его нужно создать при помощи оператора CREATE DOMAIN. Он имеет формат: CREATE DOMAIN <domain_name> [AS] <описание домена>

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

10. Ограничения ссылочной целостности

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

[CONSTRAINT <имя ограничения>]

FOREIGN KEY (список столбцов)

REFERENCES <имя главной таблицы> [<список ключа главной таблицы>]

При задании ограничений ссылочной целостности ключу (примарному или уникальному) главной таблицы ставится в соответствие внешний ключ подчиненной таблицы. Для описания внешнего ключа используются операнд FOREIGN KEY. Список этого операнда задает столбцы, по которым строится внешний ключ. В операнде REFERENCES указывается главная таблица. Описания столбцов ключа главной и подчиненной таблицы должны полностью совпадать. Ограничение ссылочной целостности, как и другие ограничения, именуется. Имя должно быть задана при определении ограничения в операнде CONSTRAINT.

11. Ограничения столбца

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

[DEFAULT { <значение>| NULL | USER}]

[NOT NULL]

[COLLATE <порядок сортировки>]

[CHECK <условие>]

Операнд DEFAULT определяет для столбца значений по умолчанию, которое автоматически заносится в столбце при добавлении к таблице новой записи. Операнд NOT NULL указывает, что столбец не может быть пустым и в обязательном порядке должен содержать значение допустимого типа и диапазона. Операнд COllATE определяет порядок сортировки строковых значений. Операнд CHECK позволяет установить для столбца разнообразные условия, управляющие его значением. При редактировании записей столбцу разрешается присваивать только те значения, которые удовлетворяют заданным условиям.

12. Создание представления

Представление является логической (виртуальной) таблицей, записи в которую отобраны с помощью оператора SELECT. Преимущества просмотра заключается в том, что можно один раз отобрать записи и использовать из в дальнейшем без повторного выполнения оператора SELECT. Создание просмотра имеет следующий формат:

 CREATE VIEW <имя просм> [список столбцов]

 AS <инструкция SELECT>

[WITH CHECK OPTION]

Имя просмотра после его создания можно использовать как имя физической таблицы. Состав столбцов просмотра определяет список, который следует за именем просмотра. Если список столбцов не задан, то в просмотр отбираются все столбцы таблиц, указанных в операторе SELECT. Операнд WITH CHECK OPTION для редактируемого просмотра запрещает добавление записей, не удовлетворяющих условиям отбора, заданным в операторе SELECT.

13. Удаление представления

Удалить просмотр можно следующим оператором:

DROP VIEW<имя просмотра>;

DROP VIEW vStore;

14. Хранимые процедуры

Хранимая процедура представляет собой подпрограмму, расположенную на сервере и вызываемую из приложения клиента. Использование этих объектов. Увеличивает скорость доступа к БД по следующим причинам:

  1.  Вместо текста запроса, который может быть достаточно длинным, серверу передается по сети относительное обращение к хранимой процедуре;
  2.  Хранимая процедура, в отличии от запроса, не требует предварительной синтаксической проверки

По числу строк, возвращаемых в качестве результата, можно выделить следующие виды хранимых процедур:

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

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

Исходные данные передаются через входные параметры, а результаты возвращаются через выходные параметры.

15. Генераторы

Генератор – это механизм, формирующий уникальное число, после чего это число вставляется в указанное поле при операциях вставки или обновления записей. Генератор создается при помощи оператора CREATE GENERATOR:

CREATE GENERATOR generator_name;

В результате выполнения этого оператора в БД  будет создан новый генератор с указанным именем и его начальное значение будет установлено в 0. Чтобы получить очередное значение генератора используется функция GEN_ID(generator_name, step).
Функцию
gen_id() можно вызвать прямо из приложения из триггера или хранимой процедуры, а так же использовать в операторах INSERT, UPDATE или DELETE.

16. Триггеры

Триггер представляет собой процедуру, которая находится на сервере БД и вызывается автоматически при модификации записей БД. В отличии от хранимых процедур  триггеры нельзя вызывать из приложения клиента, а так же передавать им параметры и получать от них результаты. Шаблон создания триггера:

CREATE TRIGGER trigger_name FROM {table_name|view_name}

[ACTIVE | INACTIVE]

{BEFORE | AFTER} {DELETE | INSERT | UPDATE}

[POSITION number]

AS {trigger_body}

Оператор CREATE TRIGGER вводит определение триггера, которое состоит из заголовка и тела триггера. В заголовке указывается имя триггера, имя таблицы или представления. Тело триггера включает необязательный список объявление переменных, а так же набор операторов на языке триггеров и процедур InterBase, заключенных в операторные скобки BEGINEND.

В заголовке триггера можно употребить ключевое слово ACTIVE или INACTIVE. В первом случае триггер будет работать в указанных в его заголовке ситуациях, во втором не будет.  Ключевое слово INACTIVE используется в исключительно отладочных целях.

Следующие две группы ключевых слов задают шесть вариантов событий, при наступлении которых триггер активизируется: BEFORE DELETE – перед удалением, BEFORE INSERT – перед вставкой, BEFORE UPDATE – перед обновления, или же AFTER – перед этими действиями. С одной и той же таблицей может быть связано несколько триггеров. Для того, чтобы определить очередности их активизации в заголовке можно указать конструкцию POSITION.

Шаблон тела:

AS

BEGIN

[объявление переменных]

список операторов

END;

Переменные объявляются следующим образом:

DECLARE VARIABLE имя_переменной тип_данных

Для доступа к значениям столбца используется конструкции формата:

OLD.<имя_столбца>

NEW.<имя_столбца>

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


 

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

71262. Вексель и вексельные правоотношения 159 KB
  Сложившаяся в стране экономическая ситуация дает толчок развитию вексельного оборота в банковско-финансовой и промышленной областях, в сфере торговли и обслуживания. Долгое время векселя использовались лишь в сфере международной торговой деятельности.
71263. ГРАЖДАНСКО-ПРАВОВОЙ ДОГОВОР И ЕГО МЕСТО В СИСТЕМЕ ГРАЖДАНСКОГО ПРАВА 315.27 KB
  Договор — это наиболее распространенный вид сделок. Только немногочисленные односторонние сделки не относятся к числу договоров. Основная же масса встречающихся в гражданском праве сделок — договоры. Как и любая сделка, договор представляет собой волевой акт.
71265. ПРОЕКТИРОВАНИЕ ЭЛЕКТРОСНАБЖЕНИЯ КВАРТИРЫ В МНОГОКВАРТИРНОМ ЖИЛОМ ДОМЕ 128.54 KB
  При проектировании электроустановок жилых и общественных зданий необходимо руководствоваться требованиями действующих строительных норм и правил, других нормативных документов, утвержденных в установленном порядке.
71266. Товарищество собственников жилья 291 KB
  В изменившейся ситуации, когда жилищный фонд переходит в основном в собственность отдельных граждан, становится частным, требуются новые подходы к его управлению. По сообщениям некоторых средств массовой информации доля частной собственности в жилом секторе России уже превышает 75% от всего жилого фонда.
71267. ВНЕШНИЙ ГОСУДАРСТВЕННЫЙ ДОЛГ РФ 224.57 KB
  В любой стране существуют проблемы и трудности, которые необходимо решить и преодолеть, чтобы занять достойное место в мире. Это проблемы экономического, социального, политического, духовного характеров, которые очень важны, взаимосвязаны и требуют решения.
71268. Работа в СУБД Microsoft Access и электронных таблицах Microsoft Excel 798.07 KB
  Практически все области деятельности современного общества развиваются на базе все более широкого применения информационных технологий. Электронные таблицы Microsoft Excel – это очень мощное средство создания и ведения различных электронных документов.
71269. Анализ выполнения плана отгрузки изделий за третий месяц периода 361 KB
  В предметной области комплекса задач, к которой относится и задача проверки выполнения плана отгрузки продукции заказчикам, рассматриваются процессы планирования и учета выпуска изделий на предприятии, сдача готовых изделий на склады и отгрузка готовой продукции заказчикам в соответствии...
71270. Проблемы сохранения культурного наследия. Социально-экономические и правовые аспекты сохранения историко-культурного наследия Санкт-Петербурга 236.86 KB
  Безусловно, данная проблема является очень актуальной, и мы решили провести исследование, как люди относятся к тому, что архитектурные постройки Петровских времен меняют на современные стеклянные бизнесс-центры, которые по стилю совершенно не вписываются в «историческое» окружение.