Построение организационной структуры. КР БД 8 вариант. Содержание информационнологическое (Инфологическое) проектирование бд. 6 Определение требований к операционной обстановке 8 Заключение 40 Список литературы 41 Введение
Скачать 2.02 Mb.
|
Далее описаны подробные характеристики выбранной СУБД – Firebird/Interbase. Firebird — свободная кроссплатформенная реляционная система управления базами данных, работающая на macOS, Linux, Microsoft Windows и некоторых Unix-платформах. Firebird поддерживает большие базы данных. Базы данных могут быть расположены в нескольких файлах, предельный размер которых зависит от операционной системы. Теоретический предел в настоящее время составляет 64TB для одного файла базы данных, таким образом, главные ограничения накладываются файловой системой и местом на жёстком диске. Практически база данных объемом 1 ТБ стабильно работает, что доказывает проведенный тест. Максимальная длина одной записи (суммарно все поля за исключением полей с типом BLOB) равна 64 КБ. Следовательно, PostgreSQL позволяет создавать таблицы, больших объемов, что полностью соответствует запрашиваемому уровню БД. Характеристики производительности Firebird/Interbase. Сервер InterBase разрабатывался с учетом современных требований к производительности СУБД. В последних версиях InterBase SQL Server применен ряд технологий значительно повышающих скорость работы: Поддержка симметричной многопроцессорной обработки InterBase SMP (symmetric multiprocessing) позволяет задействовать возможности многопроцессорной архитектуры при единственном серверном процессе InterBase SuperServer. Поддержка технологии Hyperthreading. Пакетное выполнение SQL запросов позволяет уменьшить сетевой трафик и повысить производительность. Определение запаса функциональных возможностей. InterBase и Firebird для работы с базами данных от разных версий IB/FB использует понятие ODS (OnDisk Structure, или "формат базы данных"), номер которого меняется от версии к версии. Это позволяет серверу работать с базами данных от предыдущих версий IB (так называемый Y-valve, или "мост"), и одновременно с новыми. Так же, с новыми версиями Firebird/Interbase появиляются новые стратегии повышения производительности, оптимизации запросов, мониторинга и масштабируемости, а также дополнительные параметры безопасности. А в язык SQL вводятся ряд популярных функций, включая поддержку типа данных Boolean и связанных с ним логических предикатов. Существует множество графических инструментов - свободно распространяемых и коммерческих- доступны для администрирования баз данных Firebird. В поставку InterBase и Firebird обязательно входит комплект утилит командной строки, которые в основном используются разработчиками и администраторами для автоматизации резервного копирования и других операций. Кроме того, эти утилиты кроссплатформенные. Для создания БД, таблиц, процедур и т. п. в InterBase и Firebird принято использовать сторонние инструменты, которые обладают высокой функциональностью – IBExpert, IBManager, IB/FB Developer Studio, DatabaseWorkbench и др. Большая часть этих инструментов бесплатны для России, а их качество, функциональность и удобство использования зачастую превышают подобные характеристики инструментов других коммерческих СУБД (например, в отношении MS SQL). В качестве графического инструмента разработки использован IBExpert. СУБД FireBird является одной из самых популярных в мире бесплатных, кросплатформенных систем управления базами данных с открытым исходным кодом. Она была разработана на основе исходного кода СУБД Interbase и развивается сегодня независимым международным сообществом. По надёжности, производительности и функциональным возможностям эта система мало в чём уступает признанным лидерам своего класса - Oracle и Microsoft SQL Server. В качестве преимуществ Firebird можно отметить многоверсионную архитектуру, обеспечивающую параллельную обработку оперативных и аналитических запросов (это возможно потому, что читающие пользователи не блокируют пишущих), компактность (дистрибутив 5Mb), высокую эффективность и мощную языковую поддержку для хранимых процедур и триггеров. В качестве удобства и надежности СУБД можно выделить: хранимые процедуры, резервное копирование, без необходимости выключение серверов. , большое количество поддерживаемых наборов символов, полный контроль за транзакциями. Firebird 2.5 является СУБД с открытым кодом, бесплатной для любого вида использования, в том числе коммерческого, образовательного, некоммерческого или частного. Как готовые дистрибутивы, так и исходные коды, могут быть загружены совершенно бесплатно с сайта проекта Firebird. Регистрация или активация при этом не требуется. Основываясь на характеристиках СУБД Firebird и критериям, по которым выбрана СУБД для базы данных, я считаю Firebird наиболее подходящим вариантом, поскольку эта СУБД содержит в себе большое количество полезных функций и инструментов, удобна в использовании. 5. Логическое проектирование БД Определим ключи отношений. Номер тома – первичный ключ,Номер серии-первичный ключ, Номер марки– первичный ключ Далее выполним нормализацию отношений, приведя модель к 4НФ. Рассмотрим отношение ТОМ (Таблица 5). Таблица 5 - Исходное отношение ТОМ
Отношение приведено к 4НФ, так как имеет простые атрибуты, и в нём отсутствуют тривиальные, транзитивные и функциональные зависимости. Рассмотрим отношение СЕРИЯ (Таблица 6). Таблица 6 - Исходное отношение СЕРИЯ
Отношение приведено к 4НФ, так как имеет простые атрибуты, и в нём отсутствуют тривиальные, транзитивные и функциональные зависимости. Рассмотрим отношение МАРКИ (Таблица 7). Таблица 7 - Исходное отношение МАРКИ
Отношение приведено к 1НФ, так как имеет простые атрибуты. Далее преобразуем отношениеМАРКИ ко 2НФ, убрав функциональную зависимость. Выделим таблицы МАРКИ, МАРКИ-ТОМ (Таблица 8-9). Они связаны с помощью внешнего ключа: Номер марки. Таблица 8 – Отношение МАРКИ-ТОМ, приведённое к 4НФ
Таблица 9 – Отношение МАРКИ, приведённое ко 2НФ
Далее преобразуем отношениеМАРКИ к 3НФ, убрав транзитивную зависимость. Выделим таблицы МАРКИ, МАРКИ-СЕРИЯ (Таблица 10-11). Они связаны с помощью внешнего ключа: Номер марки. Таблица 10 – Отношение МАРКА-СЕРИЯ, приведённое к 4НФ
Таблица 11 – Отношение МАРКА, приведённое к 3НФ
Зададим необходимые декларативные ограничения целостности исходя из специфики предметной области: Для отношения МАРКА-ТОМ:
Для отношения МАРКА-СЕРИЯ:
Для отношения СЕРИЯ:
Для отношения ТОМ:
Для отношения МАРКА:
Построим диаграмму, где прослеживается связь между внешними ключами, первичными ключами и их атрибутами (Рисунок 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 – время выполнения запросов без индексации
Таблица 13 – Время выполнения запросов с индексацией
После проведения индексации мы видим, что при выборке строк время уменьшилось. Что касаемо селективности, во всех столбцах она достаточно высокая, так как индексируются внешние, первичные ключи и столбцы, значения которых уникальны и не могут повторяться. 7. Разработка подсистемы безопасности Создание ролей. В данной базе данных выделим две локальные области — это «Коллекционер», «Посетитель». Пользователь коллекционер может делать выборку, удаление, добавление, изменение во всех таблицах БД. Пользователь посетитель может делать только выборку во всех таблицах БД. На рисунке 8 представлено создание роли коллекционер и присвоение ей привилегий. Рисунок 8 - Создание роли admin600 и присвоение привилегии На рисунке 9 представлено создание роли для посетителя posetitel3 и присвоение ей привилегий. Рисунок 9 - Создание роли posetitel3 и присвоение ей привилегий Защита данных на уровне строк. Создадим защиту на уровне строк. Она необходима для того, чтобы подключённые пользователи могли видеть все строки (Рисунок 10). Рисунок 10 - Защита на уровне строк 8. Описание интерфейса приложения Создадим проект на Visual Studio 2019, выбрав шаблон проекта Windows Forms и язык программирования С#. Скачаем IBProvider во вкладке «Управление пакетами NuGET». IBProvider – это провайдер для доступа к Firebird и InterBase в качестве OLE DB драйвера с открытым исходным кодом ADO.NET Поставщик данных для Firebird Server, он позволяет программам, написанным на C#, Visual Basic, F#, получать доступ к серверу баз данных Firebird Server. Он реализован на 100% в коде C#, является бесплатным и с открытым исходным кодом. Благодаря нему, мы сможем подключить таблицы к DataGridView и совершать какие нам вздумаются действия. Реализуем форму авторизации, для разграничения доступа между коллекционером, посетителем (Рисунок 11). Для того чтобы войти в систему, коллекционеру нужно ввести логин admin2 и пароль admin2. Рисунок 11 – Окно авторизации и вход в окно коллекционера И перед нами окно для коллекционера. Он может добавлять, изменять, удалять и осуществлять выборку над всеми данными таблиц. Для начала добавим новую марку (Рисунок 12). А потом мы увидим результат на рисунке 13. Рисунок 12 – Добавление данных Рисунок 13 – Новые данные о марках А теперь изменим номер страницы марки 4 с 6 на 7, выбрав номер марки в строке, предназначенной для изменения, удаления и поиска строки (Рисунок 14). Посмотрим на результат (Рисунок 15). Рисунок 14 – Изменение данных строки Рисунок 15 – Результат изменения данных строки А теперь удалим марку одной темы, где её номер равен 1 и посмотрим на результат (Рисунок 16 и Рисунок 17). Рисунок 16 – Удаление данных строки Рисунок 17 – Результат удаления данных строки Интерфейс и принцип работы для вкладок «Серия», «Том», «Марка-серия», «Марка-том» такой же, что и для всех остальных (Рисунок 18 - 21). Рисунок 18 – Вкладка «Серия» Рисунок 19 – Вкладка «Том» Рисунок 20 – Вкладка «Марки серия» Рисунок 21 – Вкладка «Марки том» Осуществим поиск строк в таблицах по их номерам (Рисунок 22-26). Рисунок 22 – Поиск во вкладке «Серия» Рисунок 23 – Поиск во вкладке «Том» Рисунок 24 – Поиск во вкладке «Марки серия» Рисунок 25 – Поиск во вкладке «Марки том» Рисунок 26 – Поиск во вкладке «Марка» Далее выведем справку о стране марки с номером 1 (Рисунок 27-28). Рисунок 27 – создание справки Рисунок 28 – вывод справки о марке Далее выведем число марок по определённой стране (Рисунок 29). Рисунок 29 – подсчёт числа марок по странам Далее откроем окно посетителя, введя логин «posetitel1» и пароль «posetitel1» (Рисунок 30) Рисунок 30 – Вход в окно посетителя Теперь перед нами окно посетителя. Посетитель может только осуществлять выборку над всеми таблицами. Осуществим поиск строк в таблицах по их номерам (Рисунок 31-35). Рисунок 31 – Поиск во вкладке «Серия» Рисунок 32 – Поиск во вкладке «Том» Рисунок 33 – Поиск во вкладке «Марки серия» Рисунок 34 – Поиск во вкладке «Марки том» Рисунок 35 – Поиск во вкладке «Марка» |