Обеспечение поддержки целостности данных и добавление, удаление и изменение информации в таблицах

Тип работы:
Лабораторная работа
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

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

Обеспечение поддержки целостности данных и добавление, удаление и изменение информации в таблицах

Цель работы

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

Ход работы

1. В лабораторной работе № 3 Вы определились, какую базу данных будете использовать в дальнейших лабораторных работах — базу данных технологического процесса согласно индивидуальному заданию или базу данных «БИБЛИОТЕКА». Для выполнения этой и последующих лабораторных работ Вы будете модифицировать свой вариант согласно методическим указаниям. Перед началом работы ознакомьтесь с методическими указаниями. Запустите на выполнение SCRIPT-файл, который Вы написали выполняя предыдущую лабораторную работу. Подключитесь к базе данных, получившейся в результате выполнения SCRIPT-файла.

2. Научитесь пользоваться операторами, которые определяют генераторы ключевых полей и их стартовые значения, необходимые для получения значений атрибутов, используемых в качестве первичных ключей. Для этого используйте возможности утилиты WISQL.

3. Согласно методических указаний добавьте в SCRIPT-файл операторы, которые определяют генераторы ключевых полей и их стартовые значения, необходимые для получения значений атрибутов, используемых в качестве первичных ключей. Для базы данных «БИБЛИОТЕКА» это все поля таблиц с именем Code. Для каждого такого поля должен быть в SCRIPT-файле описан соответствующий генератор. Перед тем как добавить генераторы в SCRIPT-файл опробуйте их средствами утилиты WISQL.

4. Научитесь пользоваться оператором INSERT, добавляющим новую запись в таблицу, оператором UPDATE, изменяющим значения атрибутов в уже существующих записях и оператором DELETE, удаляющим записи из таблицы в утилите WISQL. Обратите особое внимание на то, что если в операторах UPDATE и DELETE опустить WHERE < условие поиска>, в таблице будут соответственно изменены или удалены все записи. Для проверки результатов работы операторов DELETE, UPDATE и DELETE используйте оператор SELECT следующего формата:

SELECT * FROM < Имя таблицы к которой были применены DELETE, UPDATE или DELETE >

Этот оператор выведет на экран в информационной части утилиты WISQL значения всех атрибутов всех записей таблицы, к которой были применены DELETE, UPDATE или DELETE.

5. Добавьте SCRIPT-файл необходимое количество операторов INSERT, для добавления в каждую таблицу базы данных, обслуживающую технологический процесс согласно индивидуального задания, 10 — 20 записей. Информация в таблицах должна быть осмысленная и отвечать назначению технологического процесса. Перед добавлением оператора INSERT в SCRIPT-файл, рекомендуется проверять его работоспособность в утилите WISQL.

Те кто выбрал для себе базу данных «БИБЛИОТЕКА», вводят в SCRIPT-файл операторы INSERT, которые обеспечат наличие в таблицах базы данных информацию согласно табл. 5.1 — 5. 10.

информация таблица база данные

Таблица 5.1.

Таблица Readers

Code

FamilyNamе

Name

Patronymic

ReaderCardNumber

PasportCode

Job

Post

Note

1

Иванов

Петр

Иванович

317

4

ДГУ, каф. ЭВТ

Ассистент

blob

2

Федорец

Ирина

Олеговна

28

1

ДГУ, АХЧ

Вахтер

blob

3

Ильин

Иван

Петрович

1345

11

ДГУ, каф. физики

Доцент

blob

4

Суренко

Дмитрий

Павлович

543

6

ДГУ, каф. геофизики

Ст. преподаватель

blob

5

Коршунова

Наталья

Юрьевна

128

8

ДГУ, каф. гео-информа-тики

Ассистент

blob

6

Носенко

Олег

Владими-рович

5672

5

ДГУ, ИКК

Инженер

blob

Таблица 5.2.

Таблица Librarians

Code

Clock-Number

FamilyNamе

Name

Patronymic

Pasport-Code

Post

HomePhone

Note

1

28

Иванова

Елена

Владими-ровна

2

Библио-текарь

52−07−75

blob

2

12

Николаенко

Любовь

Николаев-на

10

Библио-текарь

46−32−19

blob

3

187

Иноземцева

Иванна

Модестов-на

9

Ст. биб-

лиотекарь

775−34−00

blob

4

83

Мальцева

Диана

Петровна

12

Библио-текарь

29−06−15

blob

5

10

Сызранцева

Татьяна

Игоревна

3

Библио-текарь

370−98−22

blob

6

100

Ставка

Лилия

Ивановна

7

Библио-текарь

22−00−01

blob

Таблица 5.3.

Таблица Books

Code

Name

AuthorCode

IssueYear

Drawing

UDK

Cipher

Note

1

Автоматизация производственных процессов на обогатительной фабрике

1

1985

60 000

622. 7−52

622. 7−52/Т

Blob

2

Решение задач по автоматизации процессов обогащения и металлургии

1

1969

200 000

622. 7−52(075)

622. 7−52(075)/Т

BLOB

3

Асимтотические методы оптимального управления

2

1987

100 000

681. 513. 5

681. 513. 5:/А

Blob

4

Синтез оптимальных автоматических ситем

4

1984

50 000

681. 513. 5

681. 513. 5:/К

Blob

5

Методы оптимизации стохастических систем

5

1987

450 000

681. 513. 5

681. 513. 5:/К

BLOB

6

Автоматизированные системы управления технологическим процессом обогащения руды

3

1987

400 000

622. 7−52

622. 7−52/П

Blob

Таблица 5.4.

Таблица PasportData

Code

Series

Number

Birthday

Birthplace

Sex

IssuePlace

IssueDate

Note

1

АА

45 003

30. 05. 1930

Россия, г. Опочка

Жен.

Днепропетровск

12. 01. 1995

blob

2

АА

15 700

23. 02. 1930

Россия. г. Владимир

Жен.

г. Житомир

16. 03. 2000

blob

3

АБ

87 134

20. 01. 1963

Днепропетровская область, село Соленое

Жен.

Днепропетровская область, село Соленое

10. 01. 1998

blob

4

АЕ

12 300

12. 11. 1960

Украина, г. Донецк

Муж.

Донецк

15. 12. 1991

blob

5

АЕ

1 067

19. 07. 1981

Украина, Днепропетровск

Муж.

Днепропетровск

25. 08. 1997

blob

6

АЖ

1 568

14. 09. 1956

Казахстан, город Павлодар

Муж.

Киев

24. 05. 1999

blob

7

АЗ

43 188

13. 11. 1970

Днепропетровская область, г. Днепродзержинск

Жен.

Днепропетровская область, г. Днепродзержинск

15. 05. 1998

blob

8

АК

23 490

05. 01. 1961

Россия, город Самара

Жен.

Днепропетровск

13. 09. 2000

blob

9

АС

90 843

10. 10. 1949

Молдова, город Кишинев

Жен.

Днепропетровск

13. 12. 1998

blob

10

АЯ

90 764

14. 11. 1950

Украина, город Николаев

Жен.

г. Николаев

11. 11. 1998

blob

11

ИК

10 842

19. 07. 1949

Украина, г. Кировоград

Муж.

Днепропетровск

6. 01. 1998

blob

12

ИК

45 190

18. 07. 1983

Днепропетровская область, село Петропавловка

Жен.

Днепропетровская область, село Петропавловка

20. 09. 1999

blob

Таблица 5.5.

Таблица Phones

ReaderCode

PhoneTypeCode

PhoneNumber

1

1

29−06−15

2

2

47−77−10

3

1

68−03−09

4

1

370−10−20

5

1

744−33−00

6

1

33−34−35

Таблица 5.6.

Таблица BookAutors

Code

FamilyName

Name

Patronymic

Birthday

Deatheday

ShortBiography

Note

1

Тихонов

Олег

Николаевич

31. 01. 1940

NULL

blob

Blob

2

Акуленко

Леонид

Дмитриевич

12. 03. 1934

NULL

BLOB

BLOB

3

Процуто

Виктор

Сергеевич

25. 07. 1941

NULL

BLOB

Blob

4

Колосов

Геннадий

Евгеньевич

29. 10. 1951

NULL

BLOB

Blob

5

Казаков

Игорь

Елисеевич

15. 08. 1947

NULL

BLOB

BLOB

Таблица 5. 7

Таблица BookInventaryNumbers

Code

BookCode

FundCode

InventaryNumber

Cost

1

1

1

4 567 890

15,56

2

2

1

4 510 000

22,33

3

3

1

4 532 477

34,01

4

4

1

4 512 890

12,99

5

5

2

4 678 532

56,78

6

6

2

4 632 112

10,10

Таблица 5.8.

Таблица BookGiveOutRecord

Code

ReaderCode

OutLibrarian

Code

InventaryCode

IssueDate

ReturnDate

FactReturnDate

InLibrarianCode

1

2

4

6

11. 09. 2004

25. 09. 2004

24. 09. 2004

3

2

3

4

4

02. 09. 2004

16. 09. 2004

11. 12. 2004

3

3

6

4

3

02. 09. 2004

16. 09. 2004

16. 09. 2004

1

4

4

3

6

30. 10. 2004

13. 11. 2004

10. 01. 2005

6

Таблица 5.9.

Таблица BookFunds

Code

Name

1

НТБ

2

Студенческий

  • Таблица 5. 10.
  • Таблица PhoneTypes
  • Code

    Name

    1

    Домашний

    2

    Рабочий

    3

    Мобильный

    • 6. После операторов всех операторов INSERT, добавляющих в SCRIPT-файл оговоренную в п. 5 информацию добавьте оператор UPDATE, изменяющий информацию в одной записи таблицы с наибольшим числом атрибутов, затем с помощью оператора DELETE удалите эту запись и, на конец, добавьте ее вновь соответствующим оператором INSERT. Рекомендуется отлаживать этот процесс пошагово средствами утилиты WISQL.
    • 7. Удостовертесь, что данный файл без ошибок создает базу данных на жестком диске рабочей станции (C: DB). Средствами утилиты WISQL убедитесь, что все объекты, какие вы описали в SCRIPT-файле, присутствуют в базе данных. Наличие добавленных Вами записей проверяйте с помощью оператора SELECT, формат которого описан в п. 4.
    • 8. Оформите отчет согласно требованиям методических указаний.

    Обеспечение поддержки целостности данных

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

    · обязательные данные;

    · ограничения для доменов атрибутов;

    · целостность сущностей;

    · ссылочная целостность;

    · требования данного предприятия.

    Большая часть этих требований задается при создании доменов (оператор CREATE DOMAIN) и таблиц (оператор CREATE TABLE).

    Обязательные данные определяются фразой NOT NULL после описания типа данных столбца. Если мы не использовали бы домен для определения типа полей с именем Code, то фразу NOT NULL, можно было бы использовать при создании таблицы в операторе CREATE TABLE:

    Code INTEGER NOT NULL

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

    CREATE DOMAIN AllCode AS INTEGER

    NOT NULL

    Ограничения для доменов атрибутов обеспечивают еще две фразы оператора CREATE DOMAIN: DEFAULT и CHECK. Например для исключения попадания в поле, отражающее тираж книги была применена фраза CHECK:

    CREATE DOMAIN AllDrawing AS INTEGER

    CHECK (VALUE >= 10)

    NOT NULL;

    Целостность сущностей обеспечивает первичным ключом таблицы (фраза PRIMARY KEY оператора CREATE TABLE). Ссылочная целостность обеспечивается внешними ключами (фразы FOREIGN KEY и REFERENCES, которые используются только совместно оператора CREATE TABLE). Все это Вы использовали в предыдущей лабораторной работе, но не рассматривали варианты работы операторов добавляющих, обновляющих и удаляющих записи в таблице (INSERT, UPDATE и DELETE) в связи с наложенными ограничениями целостности.

    Вспомним операторы CREATE TABLE, создающие таблицы BookAuthors и Books для базы данных «БИБЛИОТЕКА»:

    /*Создаем таблицу в которой будут храниться сведения об авторах книг. */

    CREATE TABLE BookAuthors

    (Code AllCode,

    FamilyName FIO,

    Name FIO,

    Patronymic FIO,

    Birthday DATE NOT NULL,

    Deatheday DATE,

    ShortBiography AllNote,

    Note AllNote,

    PRIMARY KEY (Code));

    /*Создаем таблицу в которой будут храниться сведения о книгах, которые числятся в фондах библиотеки. */

    CREATE TABLE Books

    (Code AllCode,

    Name BookName,

    AuthorCode AllCode,

    IssueYear DATE NOT NULL,

    Drawing AllDrawing,

    UDK AllUDK,

    Cipher AllCipher,

    Note AllNote,

    PRIMARY KEY (Code),

    FOREIGN KEY (Code) REFERENCES BookAuthors);

    Теперь система отклонит выполнение любых операторов INSERT или UPDATE, с помощью которых будет предпринята попытка создать в дочерней таблице Books значение внешнего ключа, не соответствующее одному из уже существующих значений потенциального ключа родительской таблицы BookAuthors. Действия системы, выполняемые при поступлении операторов UPDATE или DELETE содержащих попытку обновить или удалить значение потенциального ключа в родительской таблице, которому соответствует одна или более строк дочерней таблицы, зависят от правил поддержки ссылочной целостности, указанных во фразах ON UPDATE и ОN DELETE предложения FOREIGN KEY. Если пользователь предпринимает попытку удалить из родительской таблицы строку, на которую ссылается одна или более строк дочерней таблицы, язык SQL предоставляет следующих четыре допустимых варианта действий:

    § CASCADE -- выполняется удаление строки из родительской таблицы, сопровождающееся автоматическим удалением всех ссылающихся на нее строк дочерней таблицы. Поскольку удаляемые строки дочерней таблицы также могут содержать некоторые потенциальные ключи, используемые в качестве внешних ключей в других таблицах, анализируются и применяются правила обработки внешних ключей этих таблиц -- и так далее, каскадным образом;

    § SET NULL -- выполняется удаление строки из родительской таблицы, а во внешние ключи всех ссылающихся на нее строк дочерней таблицы заносятся значения NULL. Этот вариант применим только в том случае, если в определении столбца внешнего ключа отсутствует ключевое слово NOТ NULL;

    § SET DEFAULT -- выполняется удаление строки из родительской таблицы, а во внешние ключи всех ссылающихся на нее строк дочерней таблицы заносится значение, принимаемое по умолчанию. Этот вариант применим только в том случае, если в определении столбца внешнего ключа присутствует ключевое слово DEFAULT и задано значение, используемое по умолчанию;

    § NO ACTION -- операция удаления строки из родительской таблицы отменяется. Именно это значение используется по умолчанию в тех случаях когда в описании внешнего ключа фраза ON DELETE опущена.

    Те же самые правила применяются в языке SQL и тогда, когда значение потенциального ключа родительской таблицы обновляется. В случае использования правила CASCADE в столбцы внешнего ключа дочерней таблицы помещается новое, измененное значение потенциального ключа родительской таблицы. Аналогичным образом, обновления каскадно распространяются на другие таблицы, если их внешние ключи ссылаются на обновленные столбцы дочерней таблицы.

    Под требованием данного предприятия подразумеваются ограничения обновлений данных в таблицах, вызванные требованиями (бизнес-правилами), установленными в отношении ручного выполнения операций, связанных с внесением изменений в информацию. Например в базе данных «БИБЛИОТЕКА» наложено ограничение на количество книг одновременно находящихся на руках одного читателя. Это правило может быть реализовано только с помощью триггеров или хранимых процедур, которые мы рассмотрим в следующей лабораторной работе.

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

    Определение значения поля первичного ключа с помощью генератора

    Генератором называется хранимый на сервере БД механизм, возвращающий уникальные значения, никогда не совпадающие со значениями, выданными данным генератором в прошлом.

    Для создания генератора используется оператор

    CREATE GENERATOR ИмяГенератора;

    Для генератора необходимо установить стартовое значение при помощи оператора

    SET GENERATOR ИмяГенератора ТО СтартовоеЗначение;

    При этом СтартовоеЗначение должно быть целочисленным. Для получения уникального значения к генератору можно обратиться с помощью функции

    GEN_ID (ИмяГенератора, шаг);

    Эта функция возвращает увеличенное на шаг предыдущее значение, выданное генератором (или увеличенное на шаг стартовое значение, если ранее обращений к генератору не было).

    Значение шага должно принадлежать диапазону −231… +231 -1.

    ЗАМЕЧАНИЕ. Не рекомендуется переустанавливать стартовое значение генератора или менять шаг при разных обращениях к GEN_ID. В противном случае генератор может выдать неуникальное значение и, как следствие, будет возбуждено исключение «Дублирование первичного или уникального ключа» при попытке запоминания новой записи в ТБД.

    Пример. Пусть в БД определен генератор, возвращающий уникальное значение для столбца Code в таблице BookAuthors:

    CREATE GENERATOR GenCodeInBookAuthors;

    SET GENERATOR GenCodeInBookAuthors TO 0;

    Обращение к генератору непосредственно из оператора INSERT, которое добавит первую запись таблицы BookAuthors (см. рис. 5. 1):

    INSERT INTO BookAuthors

    (Code, FamilyName, Name, Patronymic, Birthday, Deatheday)

    VALUES (GEN_ID (GenCodeInBookAuthors, 1),

    " Тихонов «, «Олег», «Николаевич «, NULL, NULL)

    Добавление, изменение и удаление записей

    Оператор INSERT применяется для добавления записей в объект. Он имеет следующий формат:

    INSERT INTO < объект> [(столбец1 [, столбец2 … 1)]

    VALUES (< значение1> [, < значение2> … ])

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

    Поставить в соответствие столбцам списки значений можно двумя способами. Первый состоит в явном указании значений после слова VALUES, второй — в формировании значений при помощи оператора SELECT.

    Оператор UPDATE применяется для изменения значения в группе записей или — в частном случае — в одной записи объекта. В качестве объекта могут выступать ТБД или просмотр, созданный оператором CREATE VIEW. В последнем случае могут изменяться значения записей из нескольких таблиц.

    Формат оператора UPDATE:

    UPDATE < объект>

    SET столбец1 = < значение1> [, столбец2 = < значение2>… ]

    [WHERE < условие поиска > ]

    При корректировке каждому из перечисленных столбцов присваивается соответствующее значение. Корректировка выполняется для всех записей, удовлетворяющих условию поиска. Условие поиска задается так же, как в операторе SELECT.

    ВНИМАНИЕ! Если опустить WHERE < условие поиска>, в объекте будут изменены все записи.

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

    Формат оператора DELETE:

    DELETE FROM < объект>

    [WHERE < условие поиска> ];

    ВНИМАНИЕ! Если опустить WHERE < условие поиска>, в объекте будут удалены все записи.

    Пример SCRIPT-файла.

    /*Первый оператор устанавливает набор символов для текущей сессии. В нашем случае это всегда WIN1251. */

    SET NAMES WIN1251;

    /*Если необходимо включаем оператор, который удаляет предыдущую версию базы данных «БИБЛИОТЕКА» на жестком диске. Для этого необходимо сначала подсоединиться к удаляемой базе данных, а затем ее удалить. Например: */

    CONNECT «C: DBLIBRARY. GDB»

    USER «S»

    PASSWORD «s»;

    DROP DATABASE;

    /*Оператор, который создает БД «БИБЛИОТЕКА», определяя ее пользователя и его пароль. */

    CREATE DATABASE «C: /DB/LIBRARY. GDB»

    USER «S»

    PASSWORD «s»

    DEFAULT CHARACTER SET WIN1251;

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

    CONNECT «C: DBLIBRARY. GDB»

    USER «S»

    PASSWORD «s»;

    /*Идут операторы, предназначенные для создания доменов, определенных в физической модели базы данных. */

    /*Домен предназначен для определения уникального номера строк для

    всех отношений БД «Библиотека» (поле Code). */

    CREATE DOMAIN AllCode AS INTEGER

    NOT NULL;

    /*Домен предназначен для определения множеств всех фамилий, имен и отчеств людей БД «Библиотека» (поля FamilyName, Name, Patronymic). */

    CREATE DOMAIN FIO AS CHAR (30)

    NOT NULL

    COLLATE PXW_CYRL;

    /*Домен предназначен для определения всех дополнительных сведений и автобиографий людей БД «Библиотека» (поля Note, ShortBiography). */

    CREATE DOMAIN AllNote AS BLOB;

    /*Домен предназначен для определения множеств всех названий книг БД «Библиотека» (поле Name в таблице Books). */

    CREATE DOMAIN BookName AS CHAR (200)

    NOT NULL

    COLLATE PXW_CYRL;

    /*Домен предназначен для определения множеств всех тиражей книг БД «Библиотека» (поле Drawing в таблице Books). */

    CREATE DOMAIN AllDrawing AS INTEGER

    CHECK (VALUE >= 10)

    NOT NULL;

    /*Домен предназначен для определения множеств всех УДК БД «Библиотека» (поле UDK в таблице Books). */

    CREATE DOMAIN AllUDK AS CHAR (20)

    NOT NULL

    COLLATE PXW_CYRL;

    /*Домен предназначен для определения множеств всех шифров книг БД «Библиотека» (поле Cipher в таблице Books). */

    CREATE DOMAIN AllCipher AS CHAR (10)

    NOT NULL

    COLLATE PXW_CYRL;

    /*Далее идут операторы, которые создают таблицы базы данных. */

    /*Сначала создаем таблицы на которые есть ссылки внешних ключей — предложение FOREIGN KEY оператора CREATE TABLE. Из двух таблиц BookAuthors и Books первой должна быть создана таблица BookAuthors. */

    /*Создаем таблицу в которой будут храниться сведения об авторах книг. */

    CREATE TABLE BookAuthors

    (Code AllCode,

    FamilyName FIO,

    Name FIO,

    Patronymic FIO,

    Birthday DATE NOT NULL,

    Deatheday DATE,

    ShortBiography AllNote,

    Note AllNote,

    PRIMARY KEY (Code));

    /*Создаем таблицу в которой будут храниться сведения о книгах, которые числятся в фондах библиотеки. */

    CREATE TABLE Books

    (Code AllCode,

    Name BookName,

    AuthorCode AllCode,

    IssueYear DATE NOT NULL,

    Drawing AllDrawing,

    UDK AllUDK,

    Cipher AllCipher,

    Note AllNote,

    PRIMARY KEY (Code),

    FOREIGN KEY (Code) REFERENCES BookAuthors);

    /*Для корректного определения хранимых процедур и триггеров, необходимо изменить разделитель между операторами. В WISQL этот разделитель можно опускать, а вот в SQL-скрипте разделитель обязателен. В теле хранимых процедур и триггеров операторы разделяются таким же разделителем. А после окончания тела процедуры или триггера будем ставить новый разделитель ###. */

    SET TERM ###;

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

    /*Восстанавливаем старый разделитель. */

    SET TERM; ###

    /*Идут операторы, которые заносят информацию в базу данных*/

    /*Определяем генератор для поля Code таблицы BookAuthors и устанавливаем его начальное значение. */

    CREATE GENERATOR BookAuthorsCode;

    SET GENERATOR BookAuthorsCode TO 0;

    /*Определяем генератор для поля Code таблицы Books и устанавливаем его начальное значение. */

    CREATE GENERATOR BooksCode;

    SET GENERATOR BooksCode TO 0;

    /*Добавляем 5 записей в таблицу BookAuthors согласно таблицы 5.6.

    INSERT INTO BookAuthors

    (CODE, FAMILYNAME, NAME, PATRONYMIC, BIRTHDAY)

    VALUES

    (GEN_ID (BookAuthorsCode, 1), 'Тихонов', 'Олег', 'Николаевич', '01/31/1940');

    INSERT INTO BookAuthors

    (CODE, FAMILYNAME, NAME, PATRONYMIC, BIRTHDAY)

    VALUES

    (GEN_ID (BookAuthorsCode, 1), 'Акуленко', 'Леонид', 'Дмитриевич', '12. 03. 1934');

    INSERT INTO BookAuthors

    (CODE, FAMILYNAME, NAME, PATRONYMIC, BIRTHDAY)

    VALUES

    (GEN_ID (BookAuthorsCode, 1), 'Процуто', 'Виктор', 'Сергеевич', '25. 07. 1941');

    INSERT INTO BookAuthors

    (CODE, FAMILYNAME, NAME, PATRONYMIC, BIRTHDAY)

    VALUES

    (GEN_ID (BookAuthorsCode, 1), 'Колосов', 'Геннадий', 'Евгеньевич', '29. 10. 1951');

    INSERT INTO BookAuthors

    (CODE, FAMILYNAME, NAME, PATRONYMIC, BIRTHDAY)

    VALUES

    (GEN_ID (BookAuthorsCode, 1), 'Казаков', 'Игорь', 'Елисеевич', '15. 08. 1947');

    COMMIT;

    Отчет должен содержать:

    1. Номер, наименование и цель лабораторной работы.

    2. Таблицы с информацией, которую Вы добавили в базу данных. Для тех кто работает с базой данных «БИБЛИОТЕКА» наличие таблиц 5.1 — 5. 10 обязательно.

    3. SCRIPT-файл.

ПоказатьСвернуть
Заполнить форму текущей работой