База данных "Аптечный склад"

Доступ к базам данных в этом случае осуществляется с помощью драйверов ODBC, библиотек DLL, в которых содержатся функции для обеспечения

База данных Аптечный склад

Дипломная работа

Компьютеры, программирование

Другие дипломы по предмету

Компьютеры, программирование

Сдать работу со 100% гаранией
, в базе данных «Аптечный склад» используется связь «один ко многим».

Это объясняется характеристикой самой БД, в которой присутствует четыре связи «один ко многим». К первой из них можно отнести связь «Поставщики-Заказы». Здесь, за каждым заказом может быть закреплен лишь один поставщик. В свою очередь, каждый поставщик имеет несколько заказов.

Связь «Заказы-Товары» является связью «один ко многим», т.к. один заказ может содержать несколько товаров.

Связь «Товары-Аптеки», «Аптеки-Сотрудники» также являются связью «один ко многим».

2.1.3 ER-диаграмма

Результатом инфологического проектирования является концептуальная модель, которая представляет структуру данных не зависимую от любой физической реализации. Инфологическая модель данных представлена на рисунке 2.1

 

Рисунок 2.1 - Инфологическая модель

2.2 Даталогическая модель

 

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

 

Таблица 2.7 - Атрибуты таблицы «Поставщики»

Наименование атрибутовТип полейNULLКод_поставщикаintНазвание_поставщикаtext Адрес_поставщикаtextТелефон_поставщикаnumeric(10)Код_товараintКод_заказаintКлючи таблицы: Код_поставщика (первичный ключ).

 

Таблица 2.8 - Атрибуты таблицы «Заказы»

Наименование атрибутовТип полейNULLКод_заказаintНазвание_заказаtext ДатаdatetimeЦенаmoneyКоличество_товаровnumeric(10)Код_поставщикаintКод_товараintКлючи таблицы: Код_заказа (первичный ключ).

 

Таблица 2.9 - Атрибуты таблицы «Товары»

Наименование атрибутовТип полейNULLКод_товараintНазвание_товараtext Код_заказа intКоличество_товаровnumeric(10)Имеется_товаровintОжидается_товаровnumeric(10)Код_поставщикаintКлючи таблицы: Код_товара (первичный ключ).

 

Таблица 2.10 - Атрибуты таблицы «Сотрудники»

Наименование атрибутовТип полейNULLКод_сотрудникаintФИО_сотрудникаtext Телефон_сотрудникаnumeric(10)Код_аптекиintКлючи таблицы: Код_сотрудника (первичный ключ).

 

Таблица 2.11 - Атрибуты таблицы «Аптеки»

Наименование атрибутовТип полейNULLКод_аптекиintНазвание_аптекиtext Адрес_аптекиtextТелефон_аптекиnumeric(10)Код_сотрудникаintКлючи таблицы: Код_аптеки (первичный ключ).

 

2.2.1 Диаграмма связи по полям

 

3. ОРГАНИЗАЦИЯ ВЫБОРКИ ИНФОРМАЦИИ ИЗ БД

 

Запросы в БД создаются пользователем для выборки нужных данных из одной или нескольких связанных таблиц.

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

В данной работе все запросы написаны с помощью языка SQL. Которые состоят из одиночной команды SELECT с достаточно простой структурой, однако, путем ее использования можно выполнить сложную обработку данных.

С помощью запроса можно также обновить, удалить или добавить данные в таблице или создать новые таблицы на основе уже существующих. Рассмотрим приведенные ниже запросы:

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

SELECT MIN (цена) as Минимальный,MAX(цена)as Максимальный,AVG(цена)as Средний FROM Заказы - запрос выводит информацию о минимальной, максимальной и средней цене заказа. Результат данного запроса приведен на рисунке 3.1.

 

Рисунок 3.1 - Запрос вычисляемых значений

 

2. Запрос с сортировкой по убыванию

SELECT * FROM Товары ORDER BY Имеется_товаров desc - сортируем записи по убыванию по полю Имеется_товаров. Результат данного запроса приведен на рисунке 3.2.

Рисунок 3.2 - Сортировка по убыванию

 

3. Запрос с оператором between* FROM Заказы WHERE цена between 100 AND 400 - производится выборка записей из таблицы «Заказы» поле цена которых находится в диапазоне значений от 100 до 400. Результат данного запроса приведен на рисунке 3.3.

 

Рисунок 3.3 - Запрос с оператором Between

 

4.Запрос с оператором in

SELECT * FROM Заказы WHERE цена in (20,150,400) - выбираем записи где цена 20,150,400. Результат данного запроса приведен на рисунке 3.4.

 

Рисунок 3.4 - Запрос с оператором in

 

5. Запрос с оператором like

SELECT Код_аптеки, Название_аптеки, Адрес_аптеки, Тел_аптеки FROM Аптеки WHERE Название_аптеки LIKE 'Б%' - выбираем записи из таблицы «Аптеки», которые начинаются с символа «Б». Результат данного запроса приведен на рисунке 3.5.

 

Рисунок 3.5 - Условная выборка с оператором like

 

6. Запрос из связных таблицСотрудники.ФИО_сотрудника, Аптеки.Название_аптеки FROM Сотрудники, Аптеки WHERE Аптеки.Код_сотрудника=Сотрудники.Код_сотрудника - показывает имя сотрудника и аптеку, в которой он работает. Результат данного запроса приведен на рисунке 3.6.

 

Рисунок 3.6 - Выборка из связных таблиц

 

7. Естественное соединениеТовары.Название_товара, Товары.Код_товара, Поставщики.Название_поставщика FROM Товары INNER JOIN Поставщики ON Товары.Код_поставщика = Поставщики.Код_поставщика - результатом данного запроса является множество которое представляет собой выборку всего товара и устанавливает в соответствии с кодом поставщика названиепоставщика. Результат данного запроса приведен на рисунке 3.7.

Рисунок 3.7 - Естественное соединение

 

8. Запрос по дате* FROM Заказы WHERE Дата between '15.02.2011' AND '13.05.2011' - выборка заказов, которые были заказаны в промежутке 15.02.2011 по 13.05.2011. Результат данного запроса приведен на рисунке 3.8.

 

Рисунок 3.8 - Запрос по дате

 

9.Запрос с подзапросом* from Заказы where цена>(select AVG(цена) from Заказы) - выборка заказов, цена которых больше средней. Результат данного запроса приведен на рисунке 3.9.

 

Рисунок 3.9 - Запрос с подзапросом

 

10. Запрос с условием.

SELECT * FROM Заказы WHERE цена>300 - запрос производит выборку записей из таблицы «Заказы» поле цена которых больше 300.

 

4. РАЗРАБОТКА ПРЕДСТАВЛЕНИЙ для отображения результатов выборки

 

Представления - это сохраненные результаты SQL-запроса, при помощи которых можно осуществлять доступ к данным таблицы, являющейся главной при его разработке. Представления являются удобным инструментом для работы с таблицами базы данных.

В базе данных «Аптечный склад» разработано одно представление: «Представление_Аптеки_Сотрудники».

«Представление_Аптеки_Сотрудники». Данное представление содержит информацию об аптеках, а так же информацию о сотрудниках, котрые работают в аптеках. Информацию об аптеках составляет следующие поля: Код_аптеки, Название_аптеки, Адрес_аптеки. Информацию о сотрудниках представляют поля: ФИО_сотрудника и Тел_сотрудника. Данное представление выглядит следующим образом:

 

Рисунок 4.1 - Представление - Аптеки_Сотрудники

5. ПРОЕКТИРОВАНИЕ ХРАНИМЫХ ПРОЦЕДУР

 

Хранимые процедуры - представляют собой процессы, выполняемые непосредственно на сервере баз данных. В данном курсовом проекте была разработана хранимая процедура, которая называется - «Товар». Dанная процедура увеличивает данные в указанном столбце. Код процедуры представлен ниже:

CREATE PROCEDURE NEW_Товар AS

UPDATE ТоварыКоличество_товаров=Количество_товаров+1

Проверка работоспособности созданной процедуры:

EXEC NEW_Товар

SELECT * FROM Товары

Результат данной процедуры:

 

Рисунок 5.1 - Результат хранимой процедуры

 

6. Разработка механизмов управления данными в базе при помощи триггеров

 

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

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

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

В курсовом проекте «Аптечный склад» разработано 3 триггера: «триггер для вставки», «триггер для удаления», «триггер для обновления».

 

6.1 Триггер для добавления данных

 

Код триггера для добавления данных:

CREATE TRIGGER [dbo].[InsertDealTrg1]

ON [dbo].[Çàêàçû]

FOR INSERT

- SET NOCOUNT ON added to prevent extra result sets from

- interfering with SELECT statements.NOCOUNT ON;

- Insert statements for trigger here(SELECT Äàòà FROM Inserted) < getdate()

6.2 Триггер для удаления данных

 

Код триггера для удаления данных:

CREATE TRIGGER [dbo].[InsertDealTrg2][dbo].[Çàêàçû]

FOR DELETE

- SET NOCOUNT ON added to prevent extra result sets from

- interfering with SELECT statements.NOCOUNT ON;

- Delete statements for trigger here(SELECT Äà&

Похожие работы

< 1 2 3 4 > >>