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