Файл: Содержание информационнологическое (Инфологическое) проектирование бд. 6 Определение требований к операционной обстановке 8 Заключение 40 Список литературы 41 Введение.docx
Добавлен: 19.03.2024
Просмотров: 73
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Таблица 9 – Отношение МАРКИ, приведённое ко 2НФ
Номер марки | Цена | Цвет | Год выпуска | Номер страницы | Размер | Номер серии |
1 | Р. 600.00 | Синий | 1920 | 3 | Маленький | 1 |
2 | Р. 600.00 | Красный | 1930 | 4 | Средний | 2 |
3 | Р. 600.00 | Жёлтый | 1953 | 5 | Большой | 3 |
Далее преобразуем отношениеМАРКИ к 3НФ, убрав транзитивную зависимость. Выделим таблицы МАРКИ, МАРКИ-СЕРИЯ (Таблица 10-11). Они связаны с помощью внешнего ключа: Номер марки.
Таблица 10 – Отношение МАРКА-СЕРИЯ, приведённое к 4НФ
Номер марки | Номер серии |
1 | 1 |
2 | 2 |
3 | 3 |
Таблица 11 – Отношение МАРКА, приведённое к 3НФ
Номер марки | Цена | Цвет | Год выпуска | Номер страницы | Размер |
1 | Р. 600.00 | Синий | 1920 | 3 | Маленький |
2 | Р. 600.00 | Красный | 1930 | 4 | Средний |
3 | Р. 600.00 | Жёлтый | 1953 | 5 | Большой |
Зададим необходимые декларативные ограничения целостности исходя из специфики предметной области:
Для отношения МАРКА-ТОМ
:
Название атрибута | Номер марки | Номер тома |
Тип данных | VARCHAR (10 б.) | VARCHAR (10 б.) |
Внешний ключ | References Марка(Номер марки) | References Том(Номер тома) |
Первичный ключ | - | - |
Not Null | + | + |
Для отношения МАРКА-СЕРИЯ:
Название атрибута | Номер марки | Номер серии |
Тип данных | VARCHAR (10 б.) | VARCHAR (10 б.) |
Внешний ключ | References Марка(Номер марки) | References Серия(Номер серии) |
Первичный ключ | - | - |
Not Null | + | + |
Для отношения СЕРИЯ:
Название атрибута | Тема серии | Номер серии |
Тип данных | VARCHAR (10 б.) | VARCHAR (10 б.) |
Внешний ключ | - | - |
Первичный ключ | - | + |
Not Null | + | + |
Для отношения ТОМ:
Название атрибута | Номер тома | Страна | Тема марки |
Тип данных | VARCHAR (10 б.) | VARCHAR (15 б.) | VARCHAR (15 б.) |
Внешний ключ | - | - | - |
Первичный ключ | + | - | - |
Not Null | + | + | + |
Для отношения МАРКА:
Название атрибута | Номер марки | Цена | Год выпуска | Цвет | Размер | Номер страницы |
Тип данных | VARCHAR (10 б.) | INT (4 б.) | INT (4 б.) | VARCHAR (10 б.) | VARCHAR (10 б.) | VARCHAR (10 б.) |
Внешний ключ | - | - | - | - | - | - |
Первичный ключ | + | - | - | - | - | - |
Not Null | + | + | + | + | + | + |
Построим диаграмму, где прослеживается связь между внешними ключами, первичными ключами и их атрибутами (Рисунок 2).
Рисунок 2 - связи между первичными и внешними ключами
6. Физическое проектирование БД
В качестве примера для физического проектирования была взята БД «Марки».
Построение физической модели БД производилось на основе логической модели.
Средствами СУБД создана спроектированная база данных, ее таблицы, заданы необходимые ограничения целостности, и создадим обычные индексы для столбцов, которые являются внешними ключами, часто встречающиеся в критериях поиска, индексы создаём с помощью команды с помощью команды «CREATE INDEX test1_id_index ON test1 (id);». Здесь мы использовали тип индекса – B-дерево. Из всех типов индексов, которые поддерживает FireBird, сортировать данные могут только B-деревья – индексы других типов возвращают строки в неопределённом, зависящем от реализации порядке (рисунки 3-7).
Рисунок 3 - Таблица Марки и созданный индекс
Рисунок 4 - Таблица Том и созданный индекс
Рисунок 5 – Таблица Серия и созданный индекс
Рисунок 6 - Таблица Марки-серия и созданный индекс
Рисунок 7 - Таблица Марки-том и созданный индекс
При осуществлении запроса к таблице осуществляется просмотр всех записей таблицы и выбираются те, которые соответствуют запросам.
Для уменьшения времени на выполнение запроса используются индексы.
При наличии индексации в таблице запрос выполняется быстрее за счет того, что не требуется просматривать каждую запись, а осуществляется поиск по индексам записей.
В системах, поддерживающих язык SQL, индекс создаётся командой CREATE INDEX. Индексы повышают производительность запросов, которые выбирают относительно небольшое число строк из таблицы. Для определения целесообразности создания индекса нужно проанализировать запросы, обращённые к таблице, и распределение данных в индексируемых столбцах.
Далее посчитаем, сколько по времени проходят запросы по добавлению, обновлению, удалению и выборке (Таблица 13-14).
Таблица 12 – время выполнения запросов без индексации
| INSERT | SELECT | UPDATE | DELETE |
Марка | 56 мc | 50 мс | 51 мс | 58 мс |
Том | 67 мс | 45 мс | 65 мс | 59 мс |
Серия | 67 мс | 72 мс | 71 мс | 65 мс |
Марка том | 56 мс | 45 мс | 49 мс | 48 мс |
Марка серия | 57 мс | 58 мс | 53 мс | 56 мс |
Таблица 13 – Время выполнения запросов с индексацией
| INSERT | SELECT | UPDATE | DELETE |
Марка | 48 мc | 37 мс | 43 мс | 47 мс |
Том | 57 мс | 36 мс | 57 мс | 47 мс |
Серия | 54 мс | 63 мс | 67 мс | 54 мс |
Марка том | 45 мс | 37 мс | 41 мс | 39 мс |
Марка серия | 48 мс | 45 мс | 43 мс | 44 мс |
После проведения индексации мы видим, что при выборке строк время уменьшилось.
Что касаемо селективности, во всех столбцах она достаточно высокая, так как индексируются внешние, первичные ключи и столбцы, значения которых уникальны и не могут повторяться.
7. Разработка подсистемы безопасности
Создание ролей.
В данной базе данных выделим две локальные области — это «Коллекционер», «Посетитель».
Пользователь коллекционер может делать выборку, удаление, добавление, изменение во всех таблицах БД.
Пользователь посетитель может делать только выборку во всех таблицах БД.
На рисунке 8 представлено создание роли коллекционер и присвоение ей привилегий.
Рисунок 8 - Создание роли admin600 и присвоение привилегии
На рисунке 9 представлено создание роли для посетителя posetitel3 и присвоение ей привилегий.
Рисунок 9 - Создание роли posetitel3 и присвоение ей привилегий
Защита данных на уровне строк.
Создадим защиту на уровне строк. Она необходима для того, чтобы подключённые пользователи могли видеть все строки (Рисунок 10).
Рисунок 10 - Защита на уровне строк
8. Описание интерфейса приложения