- •2.2 Выбор инструментальных средств разработки
- •2.3 Алгоритмическое обеспечение проекта
- •2.3.1 Концептуальное моделирование предметной области
- •2.3.2 Проектирование и оптимизация логической модели
- •2.3.3 Нормализация данных
- •2.3.4 Физическое проектирование базы данных
- •2.3.5 Проектирование модулей
- •2.4 Реализация и тестирование программного обеспечения
- •2.4.1 Реализация программного обеспечения
- •2.4.2 Тестирование программного обеспечения
2.3.4 Физическое проектирование базы данных
После того, как была спроектирована логическая модель базы данных, необходимо приступить к следующему этапу проектирования, а именно – к физическому. Для этого требуется знать следующие правила перевода логической модели в физическую модель:
– объекты становятся таблицами в физической базе данных;
– атрибуты становятся колонками в физической базе данных. Для каждой колонки нужно выбрать подходящий тип данных;
– уникальные идентификаторы становятся колонками, не допускающими значение «NULL». В физической базе данных они называются первичными ключами («primary keys»);
– отношения моделируются в виде внешних ключей («foreign keys»).
Главными вопросами физического проектирования являются: оптимизация времени выполнения основных запросов к базе данных и обеспечение безопасности данных.
Для повышения производительности реляционные системы управления базами данных (СУБД) используют специальные объекты, называемые индексами.
В реляционных системах управления базами данных таблицы всегда индексируются по полю (полям) первичного ключа. Однако необходимо также строить дополнительные индексы для ускорения поиска при выполнении основных запросов.
Для удобства ввода данных для таких полей как денежные суммы, даты можно задать определенный формат представления информации, например, денежный с двумя знаками после десятичной точки, краткий формат даты [15].
Результат проведенного проектирования базы данных для данного дипломного проекта можно представить в виде полного описания свойств полей для всех таблиц (рисунки 2.3 – 2.11).
Рисунок 2.3 – Сведения, относящиеся к таблице «Ответы к тестам»
Рисунок 2.4 – Сведения, относящиеся к таблице «Лекции»
Рисунок 2.5 – Сведения, относящиеся к таблице «Проектирование»
Рисунок 2.6 – Сведения, относящиеся к таблице «Вопросы к тестам»
Рисунок 2.7 – Сведения, относящиеся к таблице «Результаты тестов»
Рисунок 2.8 – Сведения, относящиеся к таблице «Пользователи»
Рисунок 2.9 – Сведения, относящиеся к таблице «Лаб. работы»
Рисунок 2.10 – Сведения, относящиеся к таблице «Видео»
Рисунок 2.11 – Сведения, относящиеся к таблице «Ресурсы»
2.3.5 Проектирование модулей
Соединение страниц сайта с базой данных происходит при помощи следующего кода, который выполняет загрузку уже заполненных контентом страниц из базы данных:
<?php
$connection = mysql_connect('localhost', 'root') or die(mysql_error()); // Соединение с СУБД и обработка ошибки, если она есть
mysql_select_db('handbook', $connection) or die(mysql_error()); // Выбор базы данных
mysql_set_charset('utf8'); // Определение кодировки
?>
Выборка лабораторных работ из базы данных осуществляется с помощью следующего кода:
$data = mysql_query('SELECT * FROM works ORDER BY number') or die(mysql_error()); // Выполнение запроса, получение данных и обработка ошибки
$works = array(); // Объявление пустого массива с лабораторными работами
while ($row = mysql_fetch_object($data)) // Получение строки в виде объекта данных на каждом проходе цикла
{
$works[] = $row; // Присваивание строки новой ячейке массива
}
Для получения данных из других таблиц используются подобные блоки кода.
