Смекни!
smekni.com

Проектирование базы данных Аптека (стр. 6 из 6)

q1

clients


product orders

Рисунок 2.25

2.5.2.6 Текст оптимизированного запроса на языке SQL

Текст оптимизированного запроса представлен на рисунке 2.26

SELECT COUNT(*); FROM product INTO ARRAY Ar SELECT clients.clientid, clients.name; FROM ((orders JOIN Ar ON orders.productid = Ar.productid) JOIN clients ON orders.clientid = clients.clientid); GROUP BY clients.clientid, clients.name; HAVING COUNT(*)=Ar;

Рисунок 2.26

2.5.2.7 Расчет сложности оптимизированного запроса

Расчет сложности оптимизированного запроса приведен ниже.

. (2.38)

,

,

,

, (2.39)

.

Очевидно, что

, (2.40)

,

,

,

.

.

.

(2.41)

, (2.42)

,

,

.

Очевидно, что

, (2.43)

,

,

,

.

.

.

(2.44)

где

- операция проекции из таблицы
атрибутов
.

.

.

,

,

.

Так как операция группировки является последней, то для нее не производится расчет сложности.

Окончательно имеем:

, (2.45)


3 Рабочий проект

3.1 Связи таблиц

Связи таблиц представлены на рисунке 3.1

Рисунок 3.1

3.2 Внешний вид формы

В состав проекта входит форма Расходы аптеки, которая представлена на рисунке 3.2.


Рисунок 3.2

3.3 Функциональные тесты

3.3.1 Тест 1

Тест на проверку построения отчета в Excel.

Входные данные: запрос на выборку из базы данных.

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

Работа теста приведена на рисунке 3.4.


Рисунок 3.4

Заключение

В ходе выполнения курсовой работы была достигнута цель работы – проектирование базы данных аптеки.

Для достижения цели был решен ряд задач: составление описания предметной области; составление словаря понятий и терминов; построение исходной модели (ER-диаграммы) базы данных; определение функциональных зависимостей; синтез схемы базы данных на основании функциональных зависимостей; построение оптимизированной концептуальной модели; построение запросов на выборку.


Библиографический список

1. Атре, Ш., Структурный подход к организации баз данных. / [Текст] : Атре, Ш. - М.: Финансы и статистика, 1983. – 320 с.

2. Бойко, В.В., Проектирование баз данных информационных систем. / [Текст] : Бойко, В.В., Савинков, В.М., – М.: Финансы и статистика, 1989. – 351 с.

3. Гарсия-Молина, Гектор, Ульман, Джеффри, Д., Уидом, Дженнифер Системы баз данных. Полный курс. : Пер. с англ. – М. : Издательский дом “Вильямс”, 2003. – 188 с. : ил.

4. Дейт, К., Руководство по реляционной СУБД DB2. / [Текст] : Дейт, К. – М.: Финансы и статистика, 1988. – 320 с.

5. Джексон, Г., Проектирование реляционных баз данных для использования с микроЭВМ. / [Текст] : Джексон, Г., -М.: Мир, 1991. – 252 с.

6. Кириллов, В.В., Структуризованный язык запросов (SQL). / [Текст] : Кириллов, В.В., – СПб.: ИТМО, 1994. – 80 с.

7. Мартин, Дж., Планирование развития автоматизированных систем. / [Текст] : Мартин, Дж., – М.: Финансы и статистика, 1984. – 196 с.

8. Мейер, М., Теория реляционных баз данных. / [Текст] : Мейер, М.,– М.: Мир, 1987. – 608 с.

9. Тиори, Т., Проектирование структур баз данных. / [Текст] : Тиори, Т., Фрай, Дж., В 2 кн., – М.: Мир, 1985. Кн. 1. – 287 с.: Кн. 2. – 320 с.

10. Ульман, Дж., Базы данных на Паскале. / [Текст] : Ульман, Дж., – М.: Машиностроение, 1990. – 386 с.

11. Хаббард, Дж., Автоматизированное проектирование баз данных. / [Текст] : Хаббард, Дж., – М.: Мир, 1984. – 294 с.

12. Цикритизис, Д., Модели данных. / [Текст] : Цикритизис, Д., Лоховски, Ф., – М.: Финансы и статистика, 1985. – 344 с.

Приложение А

ER – схемы базы данных

На рисунке А.1 приведен вариант схемы базы данных до минимизации.

Рисунок - А.1


На рисунке А.2 приведен вариант схемы базы данных после минимизации.

Рисунок - А.2

Приложение Б

Код программы

Код запроса с созданием отчета в Excel представлен на рисунке Б.1 – Б.2.

LOCAL objExcel, lnrow SELECT clients.name, clients.serial_pas, clients.number_pas, product.name_product, orders.data_zakaza; FROM clients, orders, product; INTO CURSOR cur_report; WHERE (clients.clientid=orders.clientid) AND (orders.data_zakaza="22/01/05") AND (product.name_product="Acer") objExcel=CreateObject("Excel.Application") WITH objExcel .Visible=.T. .Workbooks.add .Columns[1].ColumnWidth=20 .Columns[2].ColumnWidth=12 .Columns[3].ColumnWidth=10 .Columns[4].ColumnWidth=15 .Columns[5].ColumnWidth=7

Рисунок - Б.1

.Range("A1:E1").Select WITH .Selection .MergeCells=.t. ENDWITH WITH .ActiveCell .Value = "Клиенты" .Font.Size = 14 ENDWITH lnrow = 2 SELECT cur_report SCAN lnrow = lnrow + 1 .Cells(lnrow,1).value = cur_report.name .Cells(lnrow,2).value = cur_report.serial_pas .Cells(lnrow,3).value = cur_report.number_pas .Cells(lnrow,4).value = cur_report.name_product .Cells(lnrow,5).value = cur_report.data_zakaza ENDSCAN ENDWITH

Рисунок - Б.2