Проверка целостности
Далее я проверил ссылочную целостность данных в созданных таблицах, изменив их и проверив результаты.
Я обратился к системе с запросом, меняющим идентификатор одного из продавцов:
UPDATE salespeople set snum = 12 where snum = 2;
Таблица продавцов обновилась:
|
|
|
|
snum |
sname |
city |
comm |
1 |
Иван Жадов |
Нижний Новгород |
0,12 |
3 |
Максим Хитров |
Нижний Новгород |
0,14 |
4 |
Алиса Тырь |
Бор |
0,1 |
12 |
Федор Захапов |
Нижний Новгород |
0,15 |
Вслед за ней обновилась таблица заказов:
|
|
|
|
|
onum |
odate |
amt |
cnum |
snum |
1 |
02.11.2006 |
610 |
1 |
12 |
2 |
02.11.2006 |
8255,5 |
2 |
3 |
3 |
15.06.2007 |
5160 |
3 |
3 |
4 |
05.05.2008 |
310 |
4 |
4 |
5 |
15.11.2009 |
1200 |
5 |
4 |
6 |
17.11.2009 |
15 |
5 |
4 |
Изменения появились и в таблице покупателей:
|
|
|
|
|
cnum |
cname |
city |
rating |
snum |
1 |
Василий Дубов |
Нижний Новгород |
60 |
12 |
2 |
Алексей Шмыга |
Нижний Новгород |
830 |
3 |
3 |
Лариса Тупакова |
Нижний Новгород |
520 |
3 |
4 |
Петр Быков |
Бор |
30 |
4 |
5 |
Антон Тотуттотам |
Бор |
120 |
4 |
Следующий запрос поменял идентификатор одного из покупателей:
UPDATE customers set cnum = 22 where cnum = 2;
Номер покупателя был изменен в таблице покупателей:
|
|
|
|
|
cnum |
cname |
city |
rating |
snum |
1 |
Василий Дубов |
Нижний Новгород |
60 |
12 |
3 |
Лариса Тупакова |
Нижний Новгород |
520 |
3 |
4 |
Петр Быков |
Бор |
30 |
4 |
5 |
Антон Тотуттотам |
Бор |
120 |
4 |
22 |
Алексей Шмыга |
Нижний Новгород |
830 |
3 |
Вместе с тем поменялся номер в заказе, связанном с этим покупателем:
|
|
|
|
|
onum |
odate |
amt |
cnum |
snum |
1 |
02.11.2006 |
610 |
1 |
12 |
2 |
02.11.2006 |
8255,5 |
22 |
3 |
3 |
15.06.2007 |
5160 |
3 |
3 |
4 |
05.05.2008 |
310 |
4 |
4 |
5 |
15.11.2009 |
1200 |
5 |
4 |
6 |
17.11.2009 |
15 |
5 |
4 |
Следующий запрос поменял номер одного из заказов:
UPDATE orders set onum = 32 where onum = 2;
Изменения произошли только в таблице заказов:
|
|
|
|
|
onum |
odate |
amt |
cnum |
snum |
1 |
02.11.2006 |
610 |
1 |
12 |
3 |
15.06.2007 |
5160 |
3 |
3 |
4 |
05.05.2008 |
310 |
4 |
4 |
5 |
15.11.2009 |
1200 |
5 |
4 |
6 |
17.11.2009 |
15 |
5 |
4 |
32 |
02.11.2006 |
8255,5 |
22 |
3 |
Далее я удалил одну запись из таблицы продавцов:
DELETE FROM salespeople where sname = "Алиса Тырь";
Таблица продавцов стала выглядеть так:
|
|
|
|
snum |
sname |
city |
comm |
1 |
Иван Жадов |
Нижний Новгород |
0,12 |
3 |
Максим Хитров |
Нижний Новгород |
0,14 |
12 |
Федор Захапов |
Нижний Новгород |
0,15 |
В таблице покупателей исчезли сразу две записи, связанные с Алисой:
|
|
|
|
|
cnum |
cname |
city |
rating |
snum |
1 |
Василий Дубов |
Нижний Новгород |
60 |
12 |
3 |
Лариса Тупакова |
Нижний Новгород |
520 |
3 |
22 |
Алексей Шмыга |
Нижний Новгород |
830 |
3 |
В таблице заказов исчезли три записи:
|
|
|
|
|
onum |
odate |
amt |
cnum |
snum |
1 |
02.11.2006 |
610 |
1 |
12 |
3 |
15.06.2007 |
5160 |
3 |
3 |
32 |
02.11.2006 |
8255,5 |
22 |
3 |
Затем я удалил запись с Василием Дубовым из таблицы покупателей:
DELETE FROM customers where cname = "Василий Дубов";
Таблица покупателей стала еще меньше:
|
|
|
|
|
cnum |
cname |
city |
rating |
snum |
3 |
Лариса Тупакова |
Нижний Новгород |
520 |
3 |
22 |
Алексей Шмыга |
Нижний Новгород |
830 |
3 |
Исчезла запись из таблицы заказов:
|
|
|
|
|
onum |
odate |
amt |
cnum |
snum |
3 |
15.06.2007 |
5160 |
3 |
3 |
32 |
02.11.2006 |
8255,5 |
22 |
3 |
Наконец, я удалил запись из таблицы заказов.
DELETE FROM orders where onum = 3;
От этого изменилась только таблица записей, что согласуется с установленными нами правилами:
|
|
|
|
|
onum |
odate |
amt |
cnum |
snum |
32 |
02.11.2006 |
8255,5 |
22 |
3 |