Проверка целостности
Я провел несколько проверочных запросов для того, чтобы удостовериться, что некоторые изменения базы данных не приводят её таблицы в состояние рассогласованности.
UPDATE salespeople set sid = 12 WHERE sid = 2;
Далее приведены прямо затронутая таблица продавцов а также затронутая через систему внешних ключей таблица заказов.
|
|
|
| |||
|
sid |
sname |
comm | |||
|
1 |
Иван Жадов |
0,12 | |||
|
3 |
Максим Хитров |
0,14 | |||
|
4 |
Алиса Тырь |
0,12 | |||
|
12 |
Федор Захапов |
0,15 | |||
|
|
|
|
|
| |
|
|
|
|
|
|
|
oid |
odate |
amt |
pid |
sid |
|
1 |
01.09.2009 |
650,5 |
1 |
1 |
|
2 |
10.09.2009 |
790 |
2 |
12 |
|
3 |
01.10.2009 |
2200 |
3 |
3 |
|
4 |
15.11.2009 |
9000 |
4 |
1 |
|
5 |
04.12.2009 |
650,5 |
1 |
12 |
UPDATE products set pid = 22 WHERE pid = 2;
После выполнения запроса изменились таблица продуктов и зависящая от значений её полей pidтаблица заказов:
|
|
|
|
|
|
|
|
pid |
pbrand |
pcategory_id |
pname |
pquantity |
pcost |
|
1 |
Samsung |
1 |
Выхлоп |
3 |
650,5 |
|
3 |
Black mesa |
2 |
Black mesa-1 |
7 |
2200 |
|
4 |
Black mesa |
3 |
Излучатель-3 |
9 |
9000 |
|
22 |
Samsung |
1 |
Фонтан |
5 |
790 |
|
|
|
|
|
|
|
oid |
odate |
amt |
pid |
sid |
|
1 |
01.09.2009 |
650,5 |
1 |
1 |
|
2 |
10.09.2009 |
790 |
22 |
12 |
|
3 |
01.10.2009 |
2200 |
3 |
3 |
|
4 |
15.11.2009 |
9000 |
4 |
1 |
|
5 |
04.12.2009 |
650,5 |
1 |
12 |
UPDATE orders set oid = 32 WHERE oid = 2;
После выполнения запроса изменилась только таблица заказов:
|
|
|
|
|
|
|
oid |
odate |
amt |
pid |
sid |
|
1 |
01.09.2009 |
650,5 |
1 |
1 |
|
3 |
01.10.2009 |
2200 |
3 |
3 |
|
4 |
15.11.2009 |
9000 |
4 |
1 |
|
5 |
04.12.2009 |
650,5 |
1 |
12 |
|
32 |
10.09.2009 |
790 |
22 |
12 |
UPDATE categories set pcategory_id = 42 WHERE pcategory_id = 2;
Изменилась таблица категорий и зависящая от её значений номеров категорий таблица продуктов:
|
|
|
|
pcategory_id |
pcname |
|
1 |
Чайники |
|
3 |
Телевизоры |
|
42 |
Микроволновки |
|
|
|
|
|
|
|
|
pid |
pbrand |
pcategory_id |
pname |
pquantity |
pcost |
|
1 |
Samsung |
1 |
Выхлоп |
3 |
650,5 |
|
3 |
Black mesa |
42 |
Black mesa-1 |
7 |
2200 |
|
4 |
Black mesa |
3 |
Излучатель-3 |
9 |
9000 |
|
22 |
Samsung |
1 |
Фонтан |
5 |
790 |
DELETE FROM salespeople WHERE sid = 1;
После выполнения запроса из строки продавцов исчезла запись Ивана Жадова, а из таблицы заказов — две связанные с ним строки:
|
|
|
|
|
sid |
sname |
comm |
|
3 |
Максим Хитров |
0,14 |
|
4 |
Алиса Тырь |
0,12 |
|
12 |
Федор Захапов |
0,15 |
|
|
|
|
|
|
|
oid |
odate |
amt |
pid |
sid |
|
3 |
01.10.2009 |
2200 |
3 |
3 |
|
5 |
04.12.2009 |
650,5 |
1 |
12 |
|
32 |
10.09.2009 |
790 |
22 |
12 |
DELETE FROM products WHERE pid = 1;
Из таблицы продуктов исчезла запись с «Выхлопом» Samsung, а из таблицы заказов — связанная с ним запись:
|
|
|
|
|
|
|
|
pid |
pbrand |
pcategory_id |
pname |
pquantity |
pcost |
|
3 |
Black mesa |
42 |
Black mesa-1 |
7 |
2200 |
|
4 |
Black mesa |
3 |
Излучатель-3 |
9 |
9000 |
|
22 |
Samsung |
1 |
Фонтан |
5 |
790 |
|
|
|
|
|
|
|
oid |
odate |
amt |
pid |
sid |
|
3 |
01.10.2009 |
2200 |
3 |
3 |
|
32 |
10.09.2009 |
790 |
22 |
12 |
DELETE FROM orders WHERE oid = 3;
Из таблицы заказов исчезла еще одна запись. Остальные таблицы остались без изменений.
|
|
|
|
|
|
|
oid |
odate |
amt |
pid |
sid |
|
32 |
10.09.2009 |
790 |
22 |
12 |
