Смекни!
smekni.com

Работа торгового склада (стр. 3 из 7)

Полная реализация реляционной структуры БД отражена на плакате.

Рис. 4.1.10. Нормализованная база данных

4.2 Целостность данных

Целостность (от англ. integrity – нетронутость, неприкосновенность, сохранность, целостность) – понимается как правильность данных в любой момент времени.

Поддержание целостности базы данных может рассматриваться как защита данных от неверных изменений или разрушений. Современные СУБД имеют ряд средств для обеспечения поддержания целостности (так же, как и средств обеспечения поддержания безопасности).

Выделяют три группы правил целостности:

1. Целостность по сущностям.

2. Целостность по ссылкам.

3. Целостность, определяемая пользователем.

Мотивировка правил целостности, общих для любых реляционных баз данных:

1. Не допускается, чтобы какой-либо атрибут, участвующий в первичном ключе, принимал неопределенное значение.

2. Значение внешнего ключа должно либо:

· быть равным значению первичного ключа цели;

· быть полностью неопределенным, т.е. каждое значение атрибута, участвующего во внешнем ключе должно быть неопределенным.

3. Для любой конкретной базы данных существует ряд дополнительных специфических правил, которые относятся к ней одной и определяются разработчиком. Чаще всего контролируется: уникальность тех или иных атрибутов, диапазон значений (экзаменационная оценка от 2 до 5),принадлежность набору значений (пол "М" или "Ж").

Таблицы создаются при помощи утилиты FireBird в формате InterBASE, которая позволяет выполнить все необходимые при работе с базами данных действия. Она обеспечивает создание, просмотр и модификацию таблиц, кроме того, позволяет выполнять выборку информации путем создания запросов.

InterBase поддерживает большинство типов данных, характерных для SQL. Следующая ниже таблица дает краткое описание типов данных, применимых для операторов SQL в InterBase.

В нашем случае зависимости между различными атрибутами будут следующими:

1. Товар определяется ключевым атрибутом «товар» в таблице Товары

2. Факт продажи товара со склада определяется составным ключевым атрибутом «товар» и «номер_накладной» в таблице Отпуск_товаров_со_склада

3. Накладные определяются ключевым атрибутом «номер_накладной» в таблице Накладные

4. Данные о покупателе определяются ключевым атрибутом «покупатель» в таблице Покупатель

Таблицы Товары и Отпуск_товаров_со_склада связаны отношением 1:М по внешнему ключу «Отпуск_товаров_со_склада . товар».

Таблицы Отпуск_товаров_со_склада и Накладные связаны отношением М:1 по внешнему ключу «Отпуск_товаров_со_склада . номер_накладной».

Таблицы Накладные и Покупатели связаны отношением М:1 по внешнему ключу «Накладные . покупатель».

4.3 Организация секретности базы данных

Обеспечение секретности в основном заключается в том, что для определенных пользователей право доступа и (или) модификации ограничивается лишь некоторым подмножеством БД. Определение прав доступа пользователей к различным объектам данных может быть определено в декларациях языка определения данных. Механизмом защиты может служить пароль для каждого защищаемого объекта.

Одним из механизмов защиты служит система паролей при входе в прикладную программу. Существует три вида пользователей: кладовщик, оператор, администратор БД. Каждой из перечисленных категорий предоставляются определенные полномочия. При вводе соответствующего пароля клиент может оперировать разрешенным подмножеством функций БД.

Кладовщик имеет наиболее низкий приоритет среди трех пользовательских категорий. Вход в клиентское приложение осуществляется по паролю кладовщика. Разрешенные функции:

- просмотр содержимого всех имеющихся таблиц без возможности удаления, добавления, модификации данных;

- выполнение стандартных простых и сложных запросов к базе данных.

Оператор имеет более расширенные права. Доступ осуществляется при вводе соответствующего пароля. Предоставляются следующие функции программы:

- просмотр содержимого всех имеющихся таблиц;

- удаление, добавление, модификация данных;

- выполнение стандартных простых и сложных запросов к базе данных.

Администратор БД наделен наибольшими полномочиями. Вход осуществляется по паролю администратора. Функции:

- просмотр содержимого всех имеющихся таблиц;

- удаление, добавление, модификация данных;

- выполнение стандартных простых и сложных запросов к базе данных;

- реализация сеанса SQL с возможностью написания собственных запросов;

- изменение всех видов паролей.


5. Список операций над базой данных

Для получения информации из отношений необходим язык манипулирования данными. Основной его частью является формирование запросов Для формирования запросов используют три типа теоретических языков: реляционная алгебра, реляционное исчисление с переменными-кортежами, реляционное исчисление с переменными-доменами. По своей выразительности эти языки эквивалентны. Таким образом манипулирование данными включает реляционную алгебру или исчисление и реляционное присваивание.

Каждая операция реляционной алгебры использует одно или два отношения в качестве операндов и образует в результате некоторое новое отношение. Кодд определил 8 таких операций, которые можно разделить на две основные группы:

1) традиционные теоретико-множественные операции объединения, пересечения, разности и декартового произведения применительно к отношениям;

2) специальные реляционные операции селекции, проекции, соединения и деления.

Язык SQL является языком манипулирования для реляционной БД. В SQL реализовано три функции манипулирования данными : 1) определение; 2) выборка; 3) обновление. Язык позволяет обеспечить наиболее необходимые и часто используемые операции при помощи объединения различных таблиц.

Все таблицы реализованы в физическом файле TEST.GDB. Таблицы реализованы в формате InterBASE, который используется для реализации локальных баз данных.

В программе реализованы следующие операции, которые можно выполнять над БД:

1) Выбор какого-либо одного поля либо всей записи из заданной таблицы по признаку равенства поля какому-либо значению;

2) Вывод нескольких необходимых полей таблицы;

3) Выбор всей таблицы в целом;

4) Сортировка данных таблиц по какому-либо заданному полю;

5) Создание, модификация и удаление записей таблиц;

6) Подсчет выручки за каждый день и вывод общего списка всех выручек либо подсчет выручки за какой-либо конкретный день;

7) Подсчет сведений о товарах: сколько всего единиц и на какую сумму каждого товара продано за весь период либо за конкретный день;

8) Получение сведений о том, какие фирмы приобретали тот или иной товар;

9) Получение сведений о том, какие товары приобретала определенная фирма.

Клиентское приложение работает с сервером баз данных.

Сервер Interbase фирмы Borland является полнофункциональным сервером реляционных баз данных. Одним из самых известных клонов стал FireBird, разработкой и сопровождением которого, занимается сообщество разработчиков, включая бывших сотрудников подразделения Borland Interbase, а также компанию IBPhoenix.

Сервер на Win32 запускается в качестве сервиса ОС. Клиентские приложения могут присоединяться к нему несколькими способами: по протоколам NetBEUI, TCP-IP; локальное подключение (в случае, если вы работаете на машине, на которой запущен сервер). В нашем случае рассматривается подключение к серверу по протоколу ТСР-IP.

Общий алгоритм выполнения операции чтения данных будет происходить следующим образом. Прикладная программа обращается к серверу с запросом на чтение/запись данных. Сервер, используя свои средства и описание отображения модели данных, определяет, какие записи концептуальной модели необходимы для формирования записи внешней модели данных. После сервер определяет, какие хранимые записи необходимы для построения затребованных записей пользователем, и какая совокупность физических записей необходима для считывания с машинного носителя.

Затем сервер производит чтение данных с машинного носителя в оперативную память, где осуществляет выполнение запросов и сохраняет результаты выполненных операций на накопителе жесткого магнитного диска.


6. Список запросов к базе данных

В клиентском приложении реализованы различные виды запросов, отражающих основные сведения о данных.

Существует несколько категорий запросов:

1 Полный просмотр таблиц

Просмотр содержимого таблицы товары:

select *from товары

Просмотр содержимого таблицы покупатели:

select *from покупатели

Просмотр содержимого таблицы накладные:

select *from накладные

Просмотр содержимого таблицы отпуск_товаров_со_склада:

select *fromотпуск_товаров_со_склада

В результате запроса будет полностью выведена соответствующая таблица.

2 Простые запросы

Селекция для таблицы товары

select *fromтовары whereтовар=’наимен_тов’

select *fromтовары whereед_измерения=’наимен_ед_измер’

Селекция для таблицы покупатели

select *fromпокупатели whereгород=’наимен_города’

select *from покупатели whereпокупатель=’наимен_фирмы’

Селекция для таблицы накладные

select *fromнакладные whereдата=’день . месяц . год’

select *from накладные whereпокупатель=’наимен_фирмы’

Селекция для таблицы отпуск_товаров_со_склада

select *fromотпуск_тов_со_склада whereтовар=’наимен_тов’

select *fromотпуск_тов_со_склада whereотпущено_ед =max(отпущено_ед)

select *fromотпуск_тов_со_склада whereотпущено_ед =min(отпущено_ед)

В результате приведенных запросов будут выведены только те строки заданной таблицы, которые соответствуют поставленному условию.