1.4.1 Результирующие компоненты изделия
База данных в визуальной среде разработки систем управления реляционными базами данных Microsoft Visual FoxPro и все сопровождающие файлы.
1.4.2 Носители информации
Продукт должен размещаться в виде файлов на CD дисках. В процессе работы могут использоваться Flash, CD-R/-RW, DVD-R/RW или другие носители информации.
1.4.3 Требования к составу и параметрам технических средствПрограммный комплекс должен корректно работать на компьютере со следующими техническими характеристиками:
− процессор Pentium V 2200 МГц;
− оперативная память объемом 1024 Мб;
− жесткий диск Seagate Barracuda, объемом 120 Гб;
− видеоадаптер SVGA;
− клавиатура;
− манипулятор типа “мышь”;
устройство удаленного доступа к сети: модем или сетевая карта.
2 Технический проект 2.1 Описание предметной области
Аптека состоит из нескольких помещений: торговый зал, склад, бухгалтерия, включая кабинет директора. Аптека взаимодействует с поставщиками в лице менеджера, осуществляющими заказы на поставку лекарств, бытовой химии, медицинского оборудования и косметических средств. Каждый препарат имеет свой состав, наименование, артикул и показание к применению. Так же в аптеке есть свой штат сотрудников: фармацевты, бухгалтера, грузчики-водители, менеджеры. Клиент, приходя в аптеку, взаимодействует с фармацевтом, который, в свою очередь, осуществляет продажу. Операции с денежными средствами и отбивку чека осуществляет так же фармацевт. При покупке товара, клиент получает чек с указанием товара и его стоимости. При отсутствии товара на складе покупатель может оформить бланк-заказа, где оговариваются сроки поставки, и вносится предоплата за выбранный товар.
В магазине ведется документация: кассовая книга (сумма проданного товара, которая отдается бухгалтеру, а затем передается в налоговую для отчетности), приходная накладная, ведется учет доходов и расходов аптеки..
2.2 Словарь понятий и терминовСловарь понятий и терминов приведен в таблицах 2.1 – 2.11.
Таблица 2.1 – Сотрудники
Атрибут | Смысл | Пример |
serial_pas | Серия паспорта сотрудника аптеки | 3800 |
num_pas | Номер паспорта сотрудника аптеки | 884532 |
name | Имя сотрудника магазина | Ольга |
surname | Фамилия сотрудника аптеки | Кургузова |
patronymic | Отчество сотрудника аптеки | Александровна |
address | Адрес прописки сотрудника аптеки | Ул. Сонина, д7, кв. 2 |
telephone_num | Телефонный номер сотрудника аптеки | 89516782355 |
dolgnost | Занимаемая должность | Фармацевт |
Таблица 2.2 – Продукция аптеки
Атрибут | Смысл | Пример |
productid | Порядковый номер в таблице продуктов | 105 |
artikul | Артикул продукта | 2345456 |
naimenovanie | Наименование продукта | Азаран |
sostav | Состав продукта | цефтриаксон |
Cost_one | Стоимость за штуку | 200 |
count | Количество штук | 34 |
sroc_godn | Срок годности | 24.06.2011 |
description | Показания к применению | Антибиотик местного действия с противовоспал. эффектом |
Таблица 2.3 – Заказ товара
Атрибут | Смысл | Пример |
Data_zakaza | Дата заказа товара | 24.02.09 |
predoplata | Сумма предоплаты за товар | 800 |
Order_execution | Дата выполнения заказа | 02.03.09 |
Таблица 2.4 – Заработная плата сотрудников
Атрибут | Смысл | Пример |
oklad | Оклад сотрудника аптеки | 4000 |
premia | Премия сотрудника аптеки | 2000 |
avans | Аванс сотрудника аптеки | 1000 |
zarplata | Зарплата сотрудника аптеки | 5000 |
Таблица 2.5 – Клиенты
Атрибут | Смысл | Пример |
serial_pas_e | Серия паспорта клиента | 3234 |
number_pas_e | Номер паспорта клиента | 676767 |
name | Имя клиента | Александра |
surname | Фамилия клиента | Кургузова |
patronymic | Отчество клиента | Ивановина |
address | Адрес прописки клиента | Ул. Ленина, д97, кв. 8 |
telephone_number | Телефонный клиента | 89513302324 |
Таблица 2.6 – Поставщики
Атрибут | Смысл | Пример |
supplierid | Порядковый номер поставщика | 2 |
name | Название организации поставщика | ООО Биофарм |
address | Адрес поставщика | Ул. Кр. Армия, д.8 |
telephone | Телефон поставщика | 546523 |
Таблица 2.7 – Поставка продукции
Атрибут | Смысл | Пример |
Data_supply | Дата поставки продукции | 10.05.10 |
Time_supply | Время поставки продукции | 16.20 |
Таблица 2.8 – Продажа товара
Атрибут | Смысл | Пример |
Data_prodagi | Дата продажи продукции | 05.05.10 |
Time_prodagi | Время продажи продукции | 15.35 |
count | Количество проданной продукции | 2 |
Таблица 2.9 – Доход аптеки
Атрибут | Смысл | Пример |
Month_d | Месяц учета | июль |
Year_d | Год учета | 2009 |
Dohod_employee | Выручка сотрудника за месяц | 91233 |
Таблица 2.10 – Расходы аптеки
Атрибут | Смысл | Пример |
Month_r | Месяц учета | январь |
Year_r | Год учета | 2009 |
arenda | Сумма за аренду | 15000 |
Communal_yslygi | Сумма за коммунальные услуги | 4500 |
reklama | Сумма за рекламу | 3000 |
Vnutr_rashodi | Сумма за внутренние расходы | 10000 |
Таблица 2.11 – Бухгалтерия
Атрибут | Смысл | Пример |
month | Месяц учета | август |
year | Год учета | 2008 |
Не может быть так, что бы в один и тот же день, в одно и тоже время был оформлен заказ и прибыло два поставщика.
data_supply, vremy_postavki -> supplierid.
Не может такого быть, что бы один и тот же продукт, в одно и тоже время, в один и тот же день, один и тот же клиент, купил у двух и более продавцов.
productid, data_cost, vremy_cost, clientid -> employeeid.
Не может такого быть, что бы в один и тот же месяц, в один и тот же год фиксировались дважды расходы аптеки.
month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi.
Не может такого быть, что бы в один и тот же месяц, в один и тот же год фиксировалась дважды выручка, заработанная каждым продавцом
month_d, year_d -> viruchka_emploee.
Не может такого быть, что бы один и тот же продавец фиксировался дважды за месяц и год.
employeeid -> month_d, year_d.
Не может такого быть, что бы в один и тот же месяц, в один и тот же год фиксировались дважды доходы и расходы.
month, year -> rashodid, dohodid.
Не может такого быть, что бы один и тот же продавец получил дважды зарплату за месяц.
emloyeeid -> oklad, premia, avans, zarplata.
Не может такого быть, что бы один и тот же продукт имел два одинаковых артикула.
productid -> artikulid.
Не может такого быть, чтобы один и тот же поставщик имел 2 порядковых номера.
supplierid -> name.
Исходные функциональные зависимости представлены на рисунке 2.1
data_supply, vremy_postavki -> supplierid clientid, productid, data_voz, vremy_voz -> employeeid month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi month_d, year_d -> viruchka_emploee employeeid -> month_d, year_d month, year -> rashodid, dohodid emloyeeid -> oklad, premia, avans, zarplata productid -> artikulid supplierid -> name |
Рисунок 2.1 – Исходные функциональные зависимости
2.4 Синтез схемы базы данных на основании функциональных зависимостей 2.4.1 Построение неизбыточного покрытияЭтапы построения неизбыточного покрытия представлены на рисунке 2.2.
Построение неизбыточного покрытия.
G: data_supply, vremy_postavki -> supplierid clientid, productid, data_voz, vremy_voz -> employeeid month_r, year_r -> arenda, mployee_yslygi, reklama, vnutr_rashodi month_d, year_d -> viruchka_emploee employeeid -> month_d, year_d month, year -> rashodid, dohodid emloyeeid -> oklad, premia, avans, zarplata productid -> artikulid supplierid -> name Неизбыточное покрытие g: data_supply, vremy_postavki -> supplierid clientid, productid, data_voz, vremy_voz -> employeeid month_r, year_r -> arenda, mployee_yslygi, reklama, vnutr_rashodi month_d, year_d -> viruchka_emploee employeeid -> month_d, year_d month, year -> rashodid, dohodid emloyeeid -> oklad, premia, avans, zarplata productid -> artikulid supplierid -> name |
Рисунок 2.2 – Построение неизбыточного покрытия
2.4.2 Построение леворедуцированного покрытияЭтапы построения леворедуцированного покрытия представлены на рисунке 2.3.
Построение леворедуцированного покрытия.
g: data_supply, vremy_postavki -> supplierid clientid, productid, data_voz, vremy_voz -> employeeid month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi month_d, year_d -> viruchka_emploee employeeid -> month_d, year_d month, year -> rashodid, dohodid emloyeeid -> oklad, premia, avans, zarplata productid -> artikulid supplierid -> name Леворедуцированное покрытие g: data_supply, vremy_postavki -> supplierid data_voz, vremy_voz, productid -> clientid month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi month_d, year_d -> viruchka_emploee employeeid -> month_d, year_d month, year -> rashodid, dohodid emloyeeid -> oklad, premia, avans, zarplata productid -> artikulid supplierid -> name |
Рисунок 2.3 - Построение леворедуцированного покрытия
2.4.3 Построение праворедуцированного покрытияЭтапы построения праворедуцированного покрытия представлены на рисунке 2.4
Построение праворедуцированного покрытия.
g: data_supply, vremy_postavki -> supplierid productid, data_voz, vremy_voz -> employeeid month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi month_d, year_d -> viruchka_emploee employeeid -> month_d, year_d month, year -> rashodid, dohodid emloyeeid -> oklad, premia, avans, zarplata productid -> artikulid supplierid -> name Удаление зависимостей вида X-> Праворедуцированное покрытие g: data_supply, vremy_postavki -> supplierid productid, data_voz, vremy_voz -> employeeid month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi month_d, year_d -> viruchka_emploee employeeid -> month_d, year_d month, year -> rashodid, dohodid emloyeeid -> oklad, premia, avans, zarplata productid -> artikulid supplierid -> name |
Рисунок 2.4- Построение праворедуцированного покрытия.
2.4.4 Построение классов эквивалентностиЭтапы построения классов эквивалентности представлены на рисунках 2.5 – 2.6. Построение классов эквивалентности.
Построение классов эквивалентности 1. Ef( data_supply, vremy_postavki ): data_supply, vremy_postavki -> supplierid 2. Ef( clientid, productid, data_voz, vremy_voz ): clientid, productid, data_voz, vremy_voz -> employeeid 3. Ef( month_r, year_r ): month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi 4. Ef( month_d, year_d ): month_d, year_d -> viruchka_emploee 5. Ef( employeeid ): employeeid -> month_d, year_d 6. Ef( month, year ): month, year -> rashodid, dohodid 7. Ef( emloyeeid ): emloyeeid -> oklad, premia, avans, zarplata |
Рисунок 2.5 - Построение классов эквивалентности
8. Ef( productid ): productid -> artikulid 9. Ef( supplierid ): supplierid -> name Построение минимального покрытия на основе прямой функциональной определяемости Редуцированное минимальное покрытие g: data_supply, vremy_postavki -> supplierid clientid, productid, data_voz, vremy_voz -> employeeid month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi month_d, year_d -> viruchka_emploee employeeid -> month_d, year_d month, year -> rashodid, dohodid emloyeeid -> oklad, premia, avans, zarplata productid -> artikulid supplierid -> name |
Рисунок 2.6 - Построение классов эквивалентности
2.4.5 Построение редуцированного минимального кольцевого покрытияОпределение CF-зависимостей по классам эквивалентности представлено на рисунках 2.7 – 2.11. Построение кольцевого покрытия
Минимальное кольцевое покрытие ( data_supply, vremy_postavki; ) -> supplierid ( productid, data_voz, vremy_voz; ) -> employeeid ( productid, data_zakaza, employeeid; clientid, data_zakaza, productid; ) ( month_r, year_r; ) -> arenda, kommunal_yslygi, reklama, vnutr_rashodi ( month_d, year_d; ) -> viruchka_emploee ( employeeid; ) -> month_d, year_d ( month, year; ) -> rashodid, dohodid ( emloyeeid; ) -> oklad, premia, avans, zarplata ( productid; ) -> artikulid (supplierid;) -> name Получение кольцевого минимального редуцированного покрытия Естественное характеристическое множество для кольцевого покрытия f(C): data_supply, vremy_postavki -> supplierid productid, data_voz, vremy_voz -> employeeid |
Рисунок 2.7 - Построение редуцированного минимального кольцевого покрытия
month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi month_d, year_d -> viruchka_emploee employeeid -> month_d, year_d month, year -> rashodid, dohodid emloyeeid -> oklad, premia, avans, zarplata productid -> artikulid supplierid -> name Левая редукция или перенос в правую часть 1. Проверка CF-зависимости: ( data_supply, vremy_postavki; ) -> supplierid 2. Проверка CF-зависимости: ( clientid, productid, data_voz, vremy_voz; ) -> employeeid 3. Проверка CF-зависимости: ( month_r, year_r; ) -> arenda, kommunal_yslygi, reklama, vnutr_rashodi 4. Проверка CF-зависимости: ( month_d, year_d; ) -> viruchka_emploee 5. Проверка CF-зависимости: ( employeeid; ) -> month_d, year_d |
Рисунок 2.8 - Построение редуцированного минимального кольцевого покрытия
6. Проверка CF-зависимости: ( month, year; ) -> rashodid, dohodid 7. Проверка CF-зависимости: ( emloyeeid; ) -> oklad, premia, avans, zarplata 8. Проверка CF-зависимости: ( productid; ) -> artikulid 9. Проверка CF-зависимости: ( supplierid; ) -> name Проверка покрытия на праворедуцированность 1. Проверка CF-зависимости: ( data_supply, vremy_postavki; ) -> supplierid 2. Проверка CF-зависимости: ( clientid, productid, data_voz, vremy_voz; ) -> employeeid 3. Проверка CF-зависимости: ( month_r, year_r; ) -> arenda, kommunal_yslygi, reklama, vnutr_rashodi 4. Проверка CF-зависимости: ( month_d, year_d; ) -> viruchka_emploee |
Рисунок 2.9 - Построение редуцированного минимального кольцевого покрытия
5. Проверка CF-зависимости: ( employeeid; ) -> month_d, year_d 6. Проверка CF-зависимости: ( month, year; ) -> rashodid, dohodid 7. Проверка CF-зависимости: ( emloyeeid; ) -> oklad, premia, avans, zarplata 8. Проверка CF-зависимости: ( productid; ) -> artikulid 9. Проверка CF-зависимости: ( supplierid; ) -> name Минимальное редуцированное кольцевое покрытие C ( data_supply, vremy_postavki; ) -> supplierid ( clientid, productid, data_voz, vremy_voz; ) -> employeeid ( month_r, year_r; ) -> arenda, kommunal_yslygi, reklama, vnutr_rashodi ( month_d, year_d; ) -> viruchka_emploee ( employeeid; ) -> month_d, year_d ( month, year; ) -> rashodid, dohodid ( emloyeeid; ) -> oklad, premia, avans, zarplata ( productid; ) -> artikulid ( supplierid; ) -> name |
Рисунок 2.10 - Построение редуцированного минимального кольцевого покрытия
Естественное характеристическое множество f(C): data_supply, vremy_postavki -> supplierid clientid, productid, data_voz, vremy_voz -> employeeid month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi month_d, year_d -> viruchka_emploee employeeid -> month_d, year_d month, year -> rashodid, dohodid emloyeeid -> oklad, premia, avans, zarplata productid -> artikulid supplierid -> name R0 = ( data_supply, vremy_postavki, supplierid ) K0 = { data_supply, vremy_postavki } R1 = ( clientid, productid, data_voz, vremy_voz, employeeid ) K1 = { clientid, productid, data_voz, vremy_voz } R2 = ( month_r, year_r, arenda, kommunal_yslygi, reklama, vnutr_rashodi) K2 = { month_r, year_r } R3 = ( month_d, year_d, viruchka_emploee ) K3 = { month_d, year_d } R4 = ( employeeid, month_d, year_d ) K4 = { employeeid } R5 = ( month, year, rashodid, dohodid ) K5 = { month, year } R6 = ( emloyeeid, oklad, premia, avans, zarplata ) K6 = { emloyeeid } R7 = ( productid, artikulid ) K7 = { productid } R8 = ( supplierid, name ) K8 = { supplierid } |
Рисунок 2.11 - Построение редуцированного минимального кольцевого покрытия
2.5 ER-схема базы данныхВ приложении А приведены схемы базы данных до минимизации и после минимизации. Построение запросов на SQL
2.5.1 Запрос на выборку 2.5.1.1 Словесная формулировка запросаПеречислить всех клиентов и их паспортные данные, которые приобрели продукцию компании Fuzafungin.
2.5.1.2 Текст запроса на языке SQLТекст запроса на языке SQL представлен на рисунке 2.20.
SELECT clients.name, clients.serial_pas, clients.number_pas, product.name_product, orders.data_zakaza, orders.orderid as Number_Order; FROM ((orders JOIN sotrud s ON orders. clientid = clients. clientid) JOIN product ON orders.productid = product.productid); WHERE (product.name_product = "Fuzafungin") |
Рисунок 2.20 - Текст запроса на языке SQL
2.5.1.3 Исходное дерево запросаИсходное дерево для запроса представлено на рисунке 2.21
q2
q1 product clients orders |
Рисунок 2.21- Исходное дерево запроса
2.6.1.4 Расчет сложности запросаРасчет сложности исходного запроса приведен ниже.
, (2.1)
где - результат естественного соединения таблиц;
- таблицы, участвующие в соединении;
- псевдонимы, используемые вместо имен таблиц для сокращения записи;
- операция естественного соединения.
, (2.2)
(2.3)
где - число записей в таблице ;
- число записей в таблице С;
- число записей в таблице O;
- число различных значений в столбце clientid таблицы Clients;
- число различных значений в столбце clientid таблицы Orders.
,
,
,
.
, (2.4)
, (2.5)
где - число блоков, записанных в таблице ;
- длина одной записи таблицы в блоках;
- длина одной записи таблицы в байтах;
- размер одного блока.
Очевидно, что
, (2.6)
где - объем в байтах поля ;
- объем в байтах поля ;
,
,
.
.
.
.
, (2.7)
,
,
,
,
. (2.8)
.
Очевидно, что
, (2.9)
,
,
,
.
.
.
(2.10)
где - операция селекции с логической формулой .
Формула имеет вид:
, (2.11)
,
, (2.12)
.
Так как операция селекции не изменяет структуру таблицы, то
,
.
Так как операция проекции располагается последней, то ее не учитывают при расчете сложности запроса.
Окончательно имеем:
, (2.13)
.
2.1
2.2
2.3
2.3.1
2.3.1.1
2.3.1.2
2.3.1.3
2.3.1.4
2.3.1.5 Оптимизированное дерево запросаОптимизированное дерево для запроса представлено на рисунке 2.22
q3
q2 product
clients orders |
Рисунок 2.22 - Оптимизированное дерево запроса
Текст оптимизированного запроса на языке SQL
Текст оптимизированного запроса представлен на рисунке 2.23
SELECT product.productid, product.name_product; FROM product; WHERE (product.name_product = " Fuzafungin ") INTO TABLE k SELECT sotruds...name, sotruds..serial_pas, sotruds...number_pas, orders.data_zakaza, orders.orderid as Number_Order; FROM ((orders JOIN clients ON orders. sotrudid = sotruds. sotrudid) JOIN k ON k.productid = orders.productid); |
Рисунок 2.23
2.3.1.6 Расчет сложности оптимизированного запросаРасчет сложности оптимизированного запроса приведен ниже.
, (2.14)
где - операция селекции с логической формулой .
Формула имеет вид:
, (2.15)
,
,
, (2.16)
.
Так как операция селекции не изменяет структуру таблицы, то
,
.
, (2.17)
где - результат естественного соединения таблиц;
- таблицы, участвующие в соединении;
- псевдонимы, используемые вместо имен таблиц для сокращения записи;
- операция естественного соединения.
, (2.18)
(2.19)
,
,
,
.
, (2.20)
, (2.21)
где - число блоков, записанных в таблице ;
- длина одной записи таблицы в блоках;
- длина одной записи таблицы в байтах;
- размер одного блока.
Очевидно, что
, (2.22)
где - объем в байтах поля ;
- объем в байтах поля ;
,
,
.
.
.
.
, (2.23)
,
,
,
,
, (2.24)
.
Очевидно, что
, (2.25)
,
,
,
.
.
.
Так как операция проекции располагается последней, то ее не учитывают при расчете сложности запроса.
Окончательно имеем:
, (2.26)
2.5.2 Запрос на деление 2.5.2.1 Словесная формулировка запросаВыбрать всех клиентов, которые приобрели все без исключения препараты, перечисленные в отдельном списке – отдельной таблице.
2.5.2.2 Текст запроса на языке SQL Текст запроса представлен на рисунке 2.23 SELECT COUNT(*); FROM product INTO ARRAY Ar SELECT clients.clientid, clients.name; FROM ((clients JOIN orders ON orders.clientid = clients.clientid) JOIN Ar ON orders.productid = Ar.productid); GROUP BY clients.clientid, clients.name; HAVING COUNT(*)=Ar; |
q2
q1
product clients
clients orders
Рисунок 2.4Расчет сложности исходного запроса приведен ниже.
, (2.27)
где - результат естественного соединения таблиц;
- таблицы, участвующие в соединении;
- псевдонимы, используемые вместо имен таблиц для сокращения записи;
- операция естественного соединения.
, (2.28)
(2.29)
где - число записей в таблице ;
- число записей в таблице С;
- число записей в таблице O;
- число различных значений в столбце clientid таблицы Clients;
- число различных значений в столбце clientid таблицы Orders.
,
,
,
.
, (2.30)
, (2.31)
где - число блоков, записанных в таблице ;
- длина одной записи таблицы в блоках;
- длина одной записи таблицы в байтах;
- размер одного блока.
Очевидно, что
, (2.32)
где - объем в байтах поля ;
- объем в байтах поля ;
,
,
.
.
.
.
, (2.33)
,
,
,
,
. (2.34)
.
Очевидно, что
, (2.35)
,
,
,
.
.
.
(2.36)
где - операция проекции из таблицы атрибутов .
.
.
,
,
.
Так как операция группировки является последней, то для нее не производится расчет сложности.
Окончательно имеем:
, (2.37)
2.5.2.5 птимизированное дерево запросаОптимизированное дерево запроса представлено на рисунке 2.25.
q2
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)
... об аптеках, в которых данный препарат можно приобрести. Администратор должна иметь возможность получать информацию об изменении стоимости препаратов, об аптеках и изготовителях препаратов. 2. Цели и задачи создания базы данных «Аптеки-препараты» Проанализировав предметную область, мы можем сказать, что разработка рассматриваемой базы данных актуальна. Целью разработки базы данных « ...
... к первой фазе и является наиболее трудным и длительным во времени этапом процесса проектирования. Однако он является наиболее важным, т.к. на его базе строится большинство проектных решений. Основной задачей является сбор требований, предъявляемых к содержанию и процессу обработки данных пользователями всех уровней. Анализ требований обеспечивает согласованность целей пользователей, а также ...
... 453АР Совпадает со значением поля "Код назначения" в таблице "Назначения препаратов". 1.6 Заполнение таблиц информацией Таблица Препараты. В базе данных аптеки на каждую группу препаратов (антибиотики, антисептики и т.п.) приходится небольшое количество лекарственных средств, которые находятся на складе аптеки. Единица измерения: либо упаковка, либо пузырек. В зависимости от фирмы ...
... было проведено исследование данной предметной области. В рамках данной курсовой работы реализуется проектирование и разработка учебной базы данных по предметной области. Следовательно, полученная БД не будет отражать всю бизнес-логику данной предметной области, а ограничиться лишь её частью. Предметную область «Аптека» можно описать в виде модели данных. Модель данных отображает реальный мир в ...
0 комментариев