Файл: Проектирование БД для контроля сессионной успеваемости студентов ВУЗа.pdf
Добавлен: 29.03.2023
Просмотров: 265
Скачиваний: 4
Еще одним механизмом подержания целостности данных является создание логических правил на основе хранимых процедур. Хранимая процедура – это особый объект реляционной базы данных, который обладает собственным именем и хранится в серверной части СУБД. Процедуры включают в себя набор SQL инструкций, а также могут содержать циклы и условные конструкции. В целом же хранимые процедуры очень похожи на функции языков высокого уровня, в них также могут быть выполнятся различные вычисления, осуществляться работа с символьными переменными и многое другое. Хранимые процедуры позволяют выполнять операции над сложными объектами базы данных, информация о котором хранятся во множестве таблиц.
Особым видом хранимых процедур являются триггеры. Данные процедуры не вызываются пользователем, а выполняются только при наступлении событий, связанных с добавление, удалением или изменением записей в заданной таблице базы данных.
С увеличение числа различных экономических операций в глобальной сети, а также с увеличением объема персональных данных пользователей, различных информационных систем, функция СУБД по защите и контролю доступа к базам данных становится все важнее.
Основными механизмами обеспечения контроля доступа к данным на уровне языка SQL являются представления и создание различных групп пользователей, обладающих разным уровнем доступа к данным.
Пользователю могут предоставляться права только на представление, благодаря чему он не будет иметь доступа к данным, находящимся в тех же таблицах, но не предназначенных для него.
Роли обеспечивают распределение прав между категориями пользователей.
2.2 Архитектура и основные виды СУБД
На заре развития реляционных СУБД комитет ANSI-SPARC предложил трехуровневую организацию архитектуры СУБД. Во многом данная архитектура схожа с архитектурой реляционной модели данных, но включает лишь три уровня:
- уровень представления баз данных (внешний);
- логический (концептуальный) уровень представления баз данных;
- физический (внутренний) уровень.
Внешний уровень содержит описание базы данных с точки зрения пользователей. Логический уровень предназначен для разделения представлений пользователя от изменений структуры базы данных, так же этот уровень содержит описание типов данных. И последний физический уровень содержит конкретную реализацию размещения баз данных на физических носителях.
Исходя из предложенной архитектуры и функции СУБД, выделяются следующие компоненты СУБД [13 c.27-28]:
- ядро СУБД;
- интерпретатор языка SQL, а в некоторых реализациях СУБД и компилятор языка SQL;
- модули управления внешней и внутренней памятью;
- набор различных утилит.
Ядро СУБД отвечает за управление данными, управление транзакциями и журнализацию. Соответственно, можно выделить такие компоненты ядра, как менеджер данных, менеджер транзакций и менеджер журнала. Ядро СУБД обладает собственным интерфейсом, не доступным пользователям напрямую [22].
Так как язык SQL является непроцедурным языком, то в состав СУБД входит интерпретатор запросов получаемых от пользователей баз данных. Задача интерпретатора преобразовать запрос к внутренней структуре СУБД, постараться его выполнить и передать результат пользователю. В тех случаях, когда СУБД поддерживает хранимые процедуры или триггеры необходимо наличие и компилятора языка SQL. Компилятор создает дополнительные процедуры, хранящиеся в структуре базы данных, на сервере СУБД.
Модуль управления внешней памятью обеспечивает создание необходимых структур внешней памяти как для хранения данных, непосредственно входящих в БД, так и для служебных целей, например для ускорения доступа к данным в некоторых случаях. В некоторых реализациях СУБД активно используются возможности существующих файловых систем, в других работа производится вплоть до уровня устройств внешней памяти, в любом случае не обязаны знать, использует ли СУБД файловую систему, и если использует, то как организованы файлы.
Модуль управления буферами оперативной памяти предназначен для решения задач эффективной буферизации, которая используется практически для выполнения всех остальных функций СУБД [22].
Наконец, в отдельные утилиты БД обычно выделяют такие процедуры, которые слишком накладно выполнять с использованием языка БД, например, загрузка и выгрузка БД, сбор статистики, глобальная проверка целостности БД и т.д. Утилиты программируются с использованием интерфейса ядра СУБД, а иногда даже с проникновением внутрь ядра [22].
Существующие реализации СУРБД можно классифицировать по различным признакам, но самым существенным признаком, по которому делятся СУБД считается способ доступа к базам данных. Различают следующие способы доступа: файл-серверные; клиент-серверные; встраиваемые СУБД.
На сегодняшний момент файл-серверные СУБД являются уже устаревшими. В данных СУБД данные располагаются на выделенном файл-сервере. Доступ к данным осуществляется с локальных станций, объединенных в общую сеть. Данная архитектура содержит ряд недостатков [22]:
- при выполнении операций добавления и изменения данных СУБД осуществляет блокировку целых файлов;
- высокая нагрузка на вычислительную сеть;
- низкое обеспечение надежности и безопасности данных.
К файл-серверным СУБД относятся: MS Access, dBase, Paradox, FoxPro, Visual FoxPro.
Клиент-серверные СУБД являются развитием технологии файл-серверных СУБД с одним отличием, управлением базами данных осуществляется сервером монопольно, а клиентские приложения получаю лишь результаты своих запросов. Данная реализация очень требовательна к вычислительным ресурсам сервера, но дает несомненный выигрыш в экономии нагрузки на сеть передачи данных и ресурсам рабочих станций. К тому же увеличивается надежность и безопасность операций с базами данных. Особенно выигрышна данная архитектура в базах данных, в которых будут преобладать частые операции поиска, так как при выполнении данной операции запросы поступают на сервер, затем на сервере осуществляются все необходимые дополнительные запросы и передает клиенту уже конечный результат, который тот в свою очередь передают прикладному процессу пользователя [22]. Примером СУБД данного вида могут служить следующие системы: DB2, MS SQL Server, MySQL, PostgreSQL, Firebird, Interbase, Sybase, Oracle, ЛИНТЕР.
И последней разновидностью СУБД, которая сегодня находит все большее применение, благодаря распространению различных мобильных компьютеров это встраиваемые СУБД. Встраиваемые СУБД — это не отдельное приложение (набор приложений), а отдельно распространяемая библиотека доступная разработчикам прикладного программного обеспечения. Основными достоинствами данных систем является:
- скорость работы гораздо выше, чем у других видов СУБД;
- отсутствие выделенного сервера;
- не требуют больших затрат на сопровождение;
- низкая требовательность к ресурсам компьютера.
При этом одним из существенных недостатков данного рода СУБД является ориентированность на те или иные языки программирования.
Примеры данного вида СУБД: MS SQL Server Compact, SQLite, MySQL, ScimoreDB, TurboDB, VistaDB OpenEdge, BerkeleyDB, Firebird, Sav Zigzag.
В заключение нужно отметить, что в некоторых исключительных ситуациях прикладные программы, в частности те, которые называют утилитами, могут выполнять операции непосредственно на внутреннем, а не на внешнем уровне. Конечно, такой практикой пользоваться не рекомендуется; она определяет риск с точки зрения безопасности (правила безопасности игнорируются) и целостности (правила целостности тоже игнорируются), к тому же программа будет зависеть от загруженных данных; но иногда это может быть единственным способом достичь выполнения требуемой функции или добиться необходимого быстродействия - так же, как пользователю языка высокого уровня, иногда по тем же причинам, необходимо прибегнуть к языку ассемблера.
3. ПРОЕКТИРОВАНИЕ ДЛЯ КОНТРОЛЯ СЕССИОННОЙ УСПЕВАЕМОСТИ СТУДЕНТОВ ВУЗА, В MICROSOFT ACCESS
Access - это СУБД предназначенная для хранения и поиска информации, её представления в удобном виде и автоматизации часто повторяющихся операций. Чтобы реализовать базу данных в Access надо ввести через режим конструктора свою модель. Для начала надо ввести название таблиц и всех их атрибутов. Здесь же задается тип данных и первичный ключ.
Затем реализуем реляционную модель третей нормальной формы в схеме данных.
Для ввода данных в таблицы мы можем воспользоваться специально созданными формами.
Например, для заполнения таблицы «Студент» была создана форма «Сведения о студенте».
Рисунок 1 - Форма «Сведения о студенте»
Так же данные можно вводить непосредственно в таблицу, но это не всегда удобно.
При вводе данных в таблицы в Microsoft Access нужно быть предельно внимательным, так как можно не заметив изменить какие-либо важные данные (Access не выдает при этом ни каких предупреждений). И хорошо, если это заметите сразу. Потом найти ошибку будет гораздо труднее.
Формы как раз служат для уменьшения вероятности ошибки. Они позволяют различать типы и форматы вводимых данных.
Рисунок 2 - Пример ввода данных непосредственно в таблицу
После заполнения всех таблиц данными мы можем организовать работу с выборкой и изменением этих данных.
Рисунок 3 - Каскадное отображение таблиц
В Access используется каскадное отображение таблиц. Например, открыв таблицу «Ведомость» и нажав на значок «+» слева, мы увидим связь с результатами сдачи студентами этой дисциплины.
Рисунок 4 - Каскадное отображение таблицы «Ведомость»
В MS Access существует возможность показать каскадно не одну связь, а несколько, что делает анализ связей особенно удобным, к тому же такой подход делает возможным анализ непрямых связей.
В таком виде удобно исправлять неверные связи. Возможность же править данные при каскадном отображении делает MS Access ещё более привлекательным для создания сложных комплексов автоматизированного учета данных.
Рисунок 5 - «Каскад» из нескольких связей
Единственным «недостатком» такого рода изображения можно считать большой объём места на экране, заминаемое «полной» схемой.
Создадим несколько информационных запросов к нашей базе данных, воспользовавшись системой создания запросов.
Рисунок 6 - Мастер запросов
Проверим их работоспособность согласно задания
Рисунок 7 - Запрос
Зачастую запросы удобнее создавать создавать с помощью конструктора запросов, хотя большинство простых запросов легко создаются с помощью мастера
Рисунок 8 - Конструктор запросов
Практически все современные базы данных управляются запросами. Для этого был создан специальный язык SQL.- это язык, который дает вам возможность создавать и работать в реляционных базах данных, содержащиеся в базе, управлять ими и налагать правила, обеспечивающие целостность реляционных данных, которые являются наборами связанной информации сохраняемой в таблицах.
Чтобы войти в режим SQL в access нужно в поле конструктора запроса нажать правой кнопкой и в появившемся окне нажать “Режим SQL”.
Рисунок 9 - Пример SQL-запроса
Access позволяет создавать завершенную базу данных с удобным интерфейсом. Для этого в нем существует множество средств.
Для управления нашей базой данных создадим специальную кнопочную форму, на которой расположим кнопки доступа к основным необходимым операциям.
Каждая кнопка будет вызывать какою-либо процедуру (выборка данных, внесение новых данных, построение отчетов, просмотр содержимого таблиц).
Кнопка «Список студентов» выводит для просмотра форму «Список студентов», с возможностью редактирования и добавления данных.
Рисунок 11 - Таблица «Список студентов»
Если нажать на номер студента будет выведена форма с данными о успеваемости студента без возможности редактирования содержимого. Редактирование успеваемости производится через специальную форму «Ведомость».
Рисунок 12 - «Ведомость»
В верхнем левом углу формы находится ссылка «Новый студент», которая вызывает чистую форму «Студент» для добавления учащихся.