Файл: Проектирование базы данных Учета расчетов с поставщиками и подрядчиками (Описание предметной области. Постановка задачи).pdf
Добавлен: 02.07.2023
Просмотров: 132
Скачиваний: 2
Каждая из представленных сущностей обладает рядом атрибутов. Сущность Организация содержит следующие атрибуты:
- Название;
- ИНН;
- Адрес.
Сущность Товар содержит следующие атрибуты:
- Название;
- Цена.
Сущность Услуга содержит следующие атрибуты:
- Название;
- Цена.
Сущность Договор содержит следующие атрибуты:
- Номер;
- Дата;
- Сумма;
- Срок действия.
Сущность Счет-фактура содержит следующие атрибуты:
- Номер;
- Дата;
- Наименование организации;
- Наименование товара;
- Количество товара;
- Сумма.
Сущность Накладная содержит следующие атрибуты:
- Номер;
- Дата;
- Наименование организации;
- Наименование услуги;
- Количество услуг.
Сущность Акт приема содержит следующие атрибуты:
- Номер;
- Дата;
- Наименование организации;
- Наименование товара;
- Количество товара;
- Расхождение.
Определим отношения между выделенными сущностями:
Отношение «Указана» между сущностями Договор и Организация показывает с какой организацией был заключен договор. Отношение «один ко многим», поскольку каждый договор может быть заключен только с одной организацией. Класс принадлежности для сущности Договор является обязательным, поскольку с каждым контргагентом должен быть заключен договор. Для сущности Организация класс принадлежности является обязательным, поскольку организация не может предоставлять товары без договора.
Отношение «Указана» между сущностями Счет-фактура и Организация показывает какая организация была поставщиком товара. Отношение «один ко многим», поскольку только одна организация может быть поставщиком товара, указанного в счете-фактуре. Класс принадлежности для сущности Организация не является обязательным, поскольку организация может не предоставлять товары. Для сущности Счет-фактура класс принадлежности является обязательным, поскольку в счете-фактуре обязательно должны быть указаны реквизиты организации.
Отношение «Указана» между сущностями Накладная и Организация показывает какая организация предоставила услугу. Отношение «один ко многим», поскольку только одна организация может быть поставщиком услуги, указанной в накладной. Класс принадлежности для сущности Организация не является обязательным, поскольку организация может не предоставлять услуги. Для сущности Накладная класс принадлежности является обязательным, поскольку в счете-фактуре обязательно должны быть указаны реквизиты организации.
Отношение «Указана» между сущностями Акт приема и Организация показывает у какой организации ответственное лицо принимает товар или услугу. Отношение «один ко многим», поскольку только одна организация может быть поставщиком товара или услуги, указанной в акте. Класс принадлежности для сущности Организация не является обязательным, поскольку организация может не предоставлять услуги. Для сущности Акт приема класс принадлежности является обязательным, поскольку в счете-фактуре обязательно должны быть указаны реквизиты организации.
Отношение «Отгружен» между сущностями Товар и Счет-фактура показывает какой товар, в каком количестве и на какую сумму был отгружен. Отношение «один ко многим», поскольку каждый товар может быть указан в одной счете-фактуре. Класс принадлежности для сущности товар является обязательным, поскольку товар приходуется в системе согласно счету-фактуре. Для сущности Счет-фактура класс принадлежности является обязательным, поскольку в счете-фактуре обязательно должен быть указан какой-либо товар.
Отношение «Предоставлена» между сущностями Услуга и Накладная показывает какие услуги в каком количестве и какой стоимости были предоставлены организации. Отношение «один ко многим», каждая накладная содержит данные только о конкретном случае предоставления услуг. Класс принадлежности для сущности Услуга является обязательным, поскольку услуга приходуется в системе согласно накладной. Для сущности Накладная класс принадлежности является обязательным, поскольку в ней обязательно должна быть указана какая-либо услуга.
Отношение «Соответствует» между сущностями Услуга и Акт приема показывает соответствие предоставленных услуг договору на оказание услуг. Отношение «один ко многим», потому что в каждом акте содержатся данные о конкретном случае предоставления услуг. Класс принадлежности для сущности Услуга является обязательным, поскольку услуга подлежит обязательному приему. Для сущности Акт приема класс принадлежности является обязательным, поскольку в акте обязательно указывается услуга, которая подлежит приему.
На основании перечисленных сущностей, атрибутов и отношений составим логическую модель базы данных в CASE-средстве Erwin Data Modeler (рисунок 2).
Рисунок 2. Логическая модель базы данных
Сформируем предварительные отношения:
- Бинарная связь «Указана» между сущностями Договор и Организация порождает 2 отношения:
- Договор, первичный ключ Код договора;
- Организация, первичный ключ Код организации.
Степень связи – 2.
- Бинарная связь «Указана» между сущностями Счет-фактура и Организация порождает 2 отношения:
- Счет-фактура, первичный ключ Код счета-фактуры;
- Организация, первичный ключ Код организации.
Степень связи – 2.
- Бинарная связь «Указана» между сущностями Накладная и Организация порождает 2 отношения:
- Накладная, первичный ключ Код накладной;
- Организация, первичный ключ Код организации.
Степень связи – 2.
- Бинарная связь «Указана» между сущностями Акт приема и Организация порождает 2 отношения:
- Акт приема, первичный ключ Код акта;
- Организация, первичный ключ Код организации.
Степень связи – 2.
- Бинарная связь «Отгружен» между сущностями Товар и Счет-фактура порождает 2 отношения:
- Товар, первичный ключ Код товара;
- Счет-фактура, первичный ключ Код счета-фактуры.
Степень связи – 2.
- Бинарная связь «Предоставлена» между сущностями Услуга и Накладная порождает 2 отношения:
- Услуга, первичный ключ Код услуги;
- Накладная, первичный ключ Код накладной.
Степень связи – 2.
- Бинарная связь «Соответствует» между сущностями Услуга и Накладная порождает 2 отношения:
- Услуга, первичный ключ Код услуги;
- Накладная, первичный ключ Код накладной.
Степень связи – 2.
Полученные отношения подлежат нормализации. Все перечисленные отношения нормализованы до третьей нормальной формы, потому что все неключевые атрибуты нетранзитивно зависят от первичного ключа и первичные ключи отношений состоят из одного поля. На рисунке 3 представлена схема данных полученных отношений в СУБД MS Access.
Рисунок 3. Схема данных в СУБД MS Access
В СУБД MS Access ввод данных в базе данных может быть организован двумя способами:
- С помощью таблиц.
- С помощью форм.
На рисунке 4 представлена заполненная таблица «Организация».
Рисунок 4. Таблица «Организация»
На рисунке 5 представлена форма для ввода и редактирования данных справочника «Организации». Форма имеет инструменты для создания и удаления записей, перемещения по записям, сохранения данных и закрытия формы.
Рисунок 5. Справочник «Организация»
На рисунке 6 представлена заполненная таблица «Товар».
Рисунок 6. Таблица «Товар»
На рисунке 7 представлена форма ввода данных о товарах. Форма имеет инструменты для создания и удаления записей, перемещения по записям, сохранения данных и закрытия формы.
Рисунок 7. Справочник «Товар»
На рисунке 8 представлена заполненная таблица «Услуга».
На рисунке 9 представлена форма ввода данных об услугах. Форма имеет инструменты для создания и удаления записей, перемещения по записям, сохранения данных и закрытия формы.
Рисунок 8. Таблица «Услуга»
Рисунок 9. Справочник «Услуга»
На рисунке 10 представлена таблица «Договор».
Рисунок 10. Таблица «Договор»
На рисунке 11 представлена форма ввода данных в таблицу «Договор».
Рисунок 11. Форма ввода данных о договоре
На рисунке 12 представлена таблица «Счет-фактура».
Рисунок 12. Таблица «Счет-фактура»
На рисунке 13 представлена форма ввода данных о счете-фактуре.
Рисунок 13. Форма счета-фактуры
На рисунке 14 представлена таблица «Накладная».
Рисунок 14. Таблица «Накладная»
На рисунке 15 представлена форма ввода и редактирования данных о накладной.
Рисунок 15. Форма ввода данных о накладной
На рисунке 16 представлена таблица «Акт приема».
Рисунок 16. Таблица «Акт приема»
На рисунке 17 представлена форма вода данных об акте приема.
Рисунок 17. Форма Акта приема
После того как функция ввода данных в базу данных реализована, необходимо разработать функцию обработки данных. Для этого в базах данных используется механизм запросов. Запросы позволяют пользователям базы данных осуществлять выборку по базе данных.
Существует несколько видов запросов к базе данных. Наиболее простыми из них являются запросы на выборку данных. Например, создадим запрос для вывода списка всех контрагентов компании. Результат выполнения запроса представлен на рисунке 18.
Рисунок 18. Результаты выполнения запроса
Реализуем запрос, выводящий список всех приобретенных товаров организации (рисунок 19).
Рисунок 19. Результат выполнения запроса
Реализуем запрос, выводящий список всех приобретенных услуг организации (рисунок 20).
Рисунок 20. Результат выполнения запроса
Реализуем запрос, выводящий список всех заключенных договоров организации (рисунок 21).
Рисунок 21. Список договоров
Создадим более сложные запросы. Вычислим сумму финансовых обязательств компании за предоставленные товары(рисунок 22).
Рисунок 22. Сумма приобретенных товаров
Вычислим сумму финансовых обязательств за предоставленные услуги (рисунок 23).
Рисунок 23. Сумма предоставленных услуг
При приемке оказанных услуг может быть выявлено расхождение. Создадим запрос, который будет выдавать список расхождений (рисунок 24).
Рисунок 24. Выявленные расхождения
При ведении базы данных важно устранение дублирующих записей. Создадим запрос, выявляющий наличие дублирующих записей. Результат выполнения запроса представлен на рисунке 25.
Рисунок 25. Результат выполнения запросов
Создадим аналогичный запрос для списка услуг. Результат выполнения запроса представлен на рисунке 26.
Рисунок 26. Результат выполнения запросов
Создадим перекрестный запрос, который будет показывать суммы заключенных договоров по датам их заключения (рисунок 27).
Рисунок 27. Результат выполнения запроса