Стъпките при проектиране на база от данни
За да създадем схемата на базата, първо трябва да имаме текстово описание на процеса, който моделираме — и то изчерпателно. После:
- Планиране на таблици — за всеки обект от ER модела по една таблица. Четейки заданието, най-често срещаните съществителни са добри кандидати за обекти: за училищна ИС — клас, преподавател, ученик; за автомобили под наем — клиент, автомобил, наем.
- Избор на типове данни — определя се типът на всеки атрибут (аналогично на типовете на променливи в програмирането).
- Избор на първичен ключ — задължителен, ако искаме да няма дублиране. Първо търсим естествен атрибут-идентификатор; после комбинация от атрибути (внимаваме за мощността на домейна); в краен случай добавяме нов атрибут за ключ.
- Установяване на общите атрибути — първичен или външен ключ. Единственото, което може да се повтаря на логическо ниво, са стойностите на ключовете, когато от една таблица сочим (референцираме) кортеж от друга.
- Свързване на таблиците — 1:1 и 1:N чрез механизма на външния ключ; M:N чрез таблица на взаимодействието.
- Поддържане на целостността на връзките — правила за контрол на изтриването и промяната.
Свързване: 1:N и M:N
1:N — външен ключ
Стоки, произвеждани от производител: една стока има точно един производител, а той произвежда много стоки — 1:N. Моделира се, като атрибутът Идентификатор на производителя стои не само в таблицата Производител (първичен ключ), но и в таблицата Продукт — там той е указател към ред от таблицата на производителите и е външен ключ.
M:N — таблица на взаимодействието
Клиенти и Продукти: един клиент купува много продукти, един продукт се купува от много клиенти. Фактът „клиент К е купил продукт П" означава, че двойката (К, П) е елемент на декартовото произведение Клиенти × Продукти, а множеството от установените двойки е релация — представяме я с таблица на взаимодействието.
Цялостност на връзките
Осъществява се чрез правила за контрол на изтриването и промяната в свързани таблици. Прилагат се, когато общото поле е първичен ключ на таблица, свързаните полета имат еднакъв формат и таблиците са в една база:
- Преди добавяне на запис в свързаната таблица, в първичната трябва да съществува съответен запис.
- Стойността на първичния ключ в първичната таблица не може да се променя, ако в свързаната има кортежи, цитиращи тази стойност.
- Кортеж в първичната таблица не може да бъде изтрит, ако в свързаната има съответстващи му кортежи.
Практикум и контрол
Какво трябва да запомниш
- Шест стъпки: таблици → типове → първичен ключ → общи атрибути → свързване → цялостност.
- Съществителните в заданието са кандидатите за обекти/таблици.
- 1:1 и 1:N → външен ключ; M:N → таблица на взаимодействието.
- Повтарящо се взаимодействие → добавяме време към първичния ключ.
- Трите правила за цялостност пазят връзките при добавяне, промяна и изтриване.