Переход к реляционной модели данных (определение отношений, атрибутов, потенциальных и первичных ключей)
Согласно правилам преобразования ER-модели в реляционную, определяем отношения (базовые таблицы), их атрибуты, первичные и внешние ключи. Сущности Тариф будет соответствовать отношение Tarif, свойства атрибутов указаны в таблице 2.1.
Синтаксис для создания таблицы Tarif на языке структурированных запросов (SQL) будет выглядеть, как показано в листинге на рисунке 2.2. Рис. 2.2 – Создание с помощью SQL таблицы Tarif Сущности Улица соответствует отношение Street; свойства атрибутов указаны в таблице 2.2.
Синтаксис для создания таблицы Tarif на языке структурированных запросов (SQL) будет выглядеть, как показано в листинге на рисунке 2.3. Рис. 2.3 – Создание с помощью SQL таблицы Street Сущности Пользователь соответствует отношение Users; свойства атрибутов указаны в таблице 2.3.
Синтаксис для создания таблицы Users на языке структурированных запросов (SQL) будет выглядеть, как показано в листинге на рисунке 2.4. Рис. 2.4 – Создание с помощью SQL таблицы Users Сущности Логин соответствует отношение Login; свойства атрибутов указаны в таблице 2.4.
Синтаксис для создания таблицы Login на языке структурированных запросов (SQL) будет выглядеть, как показано в листинге на рисунке 2.5. Рис. 2.5 – Создание с помощью SQL таблицы Login Сущности Статистика соответствует отношение Statistics; свойства атрибутов указаны в таблице 2.5.
Синтаксис для создания таблицы Statistics на языке структурированных запросов (SQL) будет выглядеть, как показано в листинге на рисунке 2.6. Рис. 2.6 – Создание с помощью SQL таблицы Statistics Параметр DEFAULT служит для задания значения по умолчанию при добавлении новой записи в таблице. В данных отношениях используются внешние ключи, поэтому для каждого внешнего ключа необходимо определить: – Что должно случиться при попытке удалить объект ссылки внешнего ключа? – Что должно случиться при попытке обновить потенциальные ключ, на который ссылается внешний ключ? – Что должно произойти при попытке добавления значение, которого нет в родительской таблице? Исходя из задачи, которая стоит перед проектируемой базой данных, целесообразно для каждого внешнего ключа: – «ограничить» операцию удаления, т.е. удаление «запрещается» пока есть хоть одна ссылка на этот объект; – «ограничить» операцию вставки, т.е. вставка новой строки «запрещается», если значению внешнего ключа не соответствует ни одно значение из родительской таблицы; – «каскадировать» операцию обновления, обновляя также внешний ключ; Создаваемые отношения являются не избыточными и приведенными к третьей нормальной форме. Дальнейшая нормализация отношений не имеет смысла, так как приводит к увеличению количества таблиц и связей между ними, что ведет к усложнению при работе с базой данных.
|