Проектирование базы данных "Почтовое отделение" - Программирование, компьютеры и кибернетика курсовая работа

Главная
Программирование, компьютеры и кибернетика
Проектирование базы данных "Почтовое отделение"
Создание базы данных почтового отделения, которая включает в себя информацию о подписке клиентов на различные издания, о доставляемых в почтовое отделение изданиях. Построение диаграмм ER-типа с учетом сущностей и связей. Описание интерфейса пользователя.
посмотреть текст работы
скачать работу можно здесь
полная информация о работе
весь список подобных работ
Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
В настоящее время почтовые отделения предоставляют населению следующие услуги:
В соответствии с Федеральным Законом «О почтовой связи» тарифы на оказание универсальных услуг почтовой связи регулируются государством. Данный раздел будет незаменим, если Вы собираетесь отправить письмо, бандероль или посылку друзьям, родственникам. В данный раздел входят следующие услуги:
Вместе с оказанием почтовых услуг Почта России развивает финансовые сервисы для предоставления, как населению, так и корпоративным клиентам более широких возможностей в почтовых отделениях по всей стране. К данному разделу относятся следующие услуги:
Денежные переводы "КиберДеньги" (по России)
Денежные переводы "КиберДеньги" (в странах СНГ, Балтии и странах Дальнего зарубежья)
Денежные переводы Western Union (Страны Дальнего зарубежья)
Прием платежей за услуги связи, интернет и телевидение
Из списка услуг видно, что распространение печати по подписке является лишь частью предоставляемых современным почтовым отделением услуг. При реализации данного спектра услуг почтовое отделение сталкивается с большими объемами информации. Выполнение данных задач качественно и своевременно, не применяя современные компьютерные средства, очень сложно.
Цель моей курсовой работы - создание базы данных почтового отделения, которая будет включать в себя информацию о подписке клиентов на различные издания, информацию о доставляемых в почтовое отделение изданиях, а также о почтальонах, работающих в почтовом отделении. Использование данной базы позволит существенно облегчит поиск информации о подписчиках, почтальонах их обслуживающих, о количестве экземпляров изданий, необходимых почтовому отделению.
Распространение печати по подписке является одной из задач почтового отделения связи.
В базе данных почтового отделения должна храниться информация о клиентах, об изданиях, на которые ведется подписка, о почтальонах, работающих в почтовом отделении, а также должна предоставляться возможность просмотра различной информации, интересующей как клиентов почтового отделения, так и его сотрудников.
Информация о клиентах включает в себя: паспортные данные клиента, ФИО, адрес, телефон, а также информация о том, нужна ли клиенту доставка изданий. Район, обслуживаемый почтовым отделением, разбивается на участки, каждый из участков обслуживает один почтальон, поэтому также необходимо хранить информацию о том, к какому участку относится клиент, а также иметь возможность посмотреть, какой почтальон обслуживает данного клиента. Необходимо иметь возможность просмотра изданий, которые выписывает данный клиент, а также учесть возможность продления подписки после окончания старой.
Информация об изданиях включает в себя: индекс издания, название, а также стоимость подписки в зависимости от срока подписки. Иногда необходимо получать информацию о количестве изданий, поступающих в почтовое отделение по подписке, а также распределение количества выписываемых изданий по участкам или по домам. Эта информация также должна представляться в базе данных.
Информация о почтальонах включает в себя: табельный номер почтальона, а также личные данные почтальона (ФИО, адрес, телефон, дату рождения), а также информацию об обслуживаемых почтальоном участках. Почтальону необходима информация о количестве доставляемых им изданий всего по его участку (или участкам), а также по отдельным домам. Также необходимо просматривать информацию об общей загруженности почтальонов, чтобы при необходимости менять закрепленные за ними участки, не допуская серьезных различий в загруженности сотрудников.
2. Проектирование базы данных «Почтовое отделение»
Процесс проектирования базы данных является итерационным, т.е. допускающим возврат к предыдущим этапам для пересмотра ранее принятых решений, и включает следующие этапы:
выявление сущностей и связей между ними;
построение диаграмм ER-типа с учетом всех сущностей и их связей;
формирование набора предварительных отношений с указанием предполагаемого первичного ключа для каждого отношения;
добавление неключевых атрибутов в отношения;
приведение предварительных отношений к БКНФ с помощью метода нормальных форм;
пересмотр ER-диаграмм в следующих случаях:
некоторые отношения не приводятся к БКНФ;
некоторым атрибутам не находится логически-обоснованных мест в предварительных отношениях.
После преобразования ER-диаграмм осуществляется повторное выполнение предыдущих этапов проектирования.
При разработке концептуальной модели, прежде всего, следует определить сущности. С этой целью нужно сделать следующее:
необходимо понять, какая информация должна храниться и обрабатываться и можно ли это определить как сущность;
выявить атрибуты сущности и присвоить им имя;
определить уникальный идентификатор сущности.
В данной базе данных нас будет интересовать информация о следующих объектах реального мира:
клиенты почтового отделения - причем под клиентами здесь понимается те люди, которые услугами почтового отделения, связанными с подпиской на издания. Другие клиенты нас не интересуют
сотрудники почтового отделения - а именно, почтальоны
издания - каталог изданий, на которые возможна подписка в данном почтовом отделении
Клиенты - о клиентах нас будет интересовать следующая информация
адрес, на который осуществляется доставка
номер участка - информация о номере участка необходима для распределения адресов обслуживания между почтальонами
Иная информация о клиентах в рамках данной базы данных нас не интересует.
Стоимость подписки на различные периоды
Связь сущности - зависимость между атрибутами этих сущностей, название связи обычно представляется глаголами.
Степень связи характеризует связь между сущностями, которая может быть один к одному (1:1), один ко многим (1:М), много к одному (М:1), много ко многим (М:М).. Степень означается символами на линии связи.
Класс принадлежности может быть обязательным или необязательным. Класс принадлежности является обязательным в том случае, если все экземпляры этой сущности обязательно участвуют в этой связи. В противном случае класс принадлежности является необязательным
Между выделенными сущностями существуют следующие связи:
2.2 Построение диаграмм ER-типа с учетом всех сущностей и их связей
Клиенты выписывают издания. Один клиент может выписывать множество изданий, и одно издание может выписываться множеством клиентов. Поэтому связь М:М. Некоторые клиенты могу вообще не выписывать издания, некоторые издания могут не выписываться клиентами. Поэтому класс принадлежности - необязательный. На рисунке 1 представлена связь «Клиенты выписывают издания»
Рисунок 1 - Связь «Клиенты выписывают издания»
Клиенты обслуживаются почтальонами. Один клиент обслуживается одним почтальоном. Один почтальон обслуживает множество клиентов. Значит связь М:1. Почтальон необязательно обслуживает клиентов (может возникнуть такая ситуация, что в определенный момент у почтальона не останется клиентов), а клиенты необязательно обслуживаются почтальонами. Поэтому класс принадлежности - необязательный. На рисунке 2 представлена связь «Клиенты обслуживаются почтальонами»
Рисунок 2 - Связь «Клиенты обслуживаются почтальонами»
На основе анализа построенных связей и правил формирования отношений построим предварительные отношения.
Если степень связи 1:1 и класс принадлежности обеих сущностей обязательны, то формируется одно отношение. Первичным ключом этого отношения может быть ключ любой сущности.
Если степень связи 1:1 и класс принадлежности первой сущности обязателен, а другой нет, то под каждую из сущностей выделяется по отношению с первичными ключами, являющимся ключами соответствующих сущностей. Далее к отношению, сущность которого имеет обязательный класс принадлежности, добавляется в качестве атрибута ключ сущности с необязательным классом принадлежности.
Если степень связи 1:1 и класс принадлежности обеих сущностей необязателен, то нужно использовать три отношения: два отношения соответствуют связываемым сущностям, ключи которых являются первичными в этих отношениях; третье отношение является связным между первыми двумя, поэтому его ключ объединяет ключевые атрибуты связываемых отношений.
Если степень связи между сущностями 1:М или М:1 и класс принадлежности М-связной обязательный, то достаточно формирования двух отношений, по одному на каждую из сущностей. Каждое отношение будет иметь свои первичные ключи, и, кроме того, ключ 1-связной сущности добавляется в отношение М-связной сущности.
Если степень связи 1:М или М:1 и класс принадлежности М-связной сущности является необязательным, то необходимо формирование трех отношений: два отношения соответствуют связываемым сущностям, ключи которых являются первичными в этих отношениях; третье отношение является связным и его ключ объединяет ключи первых двух отношений.
Если степень связи М:М, то независимо от класса принадлежности сущностей формируется три отношения: два отношения соответствуют связываемым сущностям; а третье является связным и объединяет ключи первых двух отношений.
Связь «Выписывают» удовлетворяет условиям правила №6, в соответствии с которым получаем 3 отношения:
Клиенты (паспортные данные, ФИО клиента, адрес, телефон, информация о доставке);
Издания (Индекс, название, стоимость подписки);
Подписка (Номер подписки, паспортные данные клиента, индекс издания, дата начала подписки, дата окончания подписки).
Связь «Обслуживаются» удовлетворяет условиям правила №5, в соответствии с которым получаем 2 отношения:
Клиенты (паспортные данные, ФИО клиента, адрес, номер участка, телефон, информация о доставке);
Почтальоны (Табельный номер, ФИО, адрес, дата рождения, обслуживаемые участки).
Добавим неключевые атрибуты к полученным отношениям, и тогда они примут следующий вид:
Клиенты (паспортные данные, ФИО клиента, адрес, номер участка, телефон, информация о доставке).
Подписка (Номер подписки, паспортные данные клиента, индекс издания, дата начала подписки, дата окончания подписки)
Издания (Индекс, название, стоимость подписки).
Почтальоны (Табельный номер, ФИО, адрес, дата рождения, обслуживаемые участки).
В основе процесса проектирования лежит метод нормализации, т. е. декомпозиции отношения, находящегося в предыдущей нормальной форме, на два или более отношений, которые удовлетворяют требованиям следующей нормальной формы. Приведем исходные отношения к БКНФ.
Отношение Клиенты находится в 1НФ, т.к. все его атрибуты принимают единственное значение.
Рассмотрим функциональные зависимости, присутствующие в отношении:
паспортные данные > ФИО, адрес, телефон, необходимость доставки
В отношении присутствует явное и неявное избыточное дублирование данных, например
название улицы повторяется для многих клиентов
при необходимости изменить нумерацию участков могут возникнуть трудности, из-за того что придется исправить всю таблицу Клиенты.
Для устранения избыточности переходим к 2НФ и 3НФ.
Отношение находится в 2НФ, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от первичного ключа (составного)
Т.к. ключ отношения - простой, переходим к 3НФ
Отношение находится в 3НФ в том и только в том случае, если все неключевые атрибуты отношения взаимно независимы и полностью зависят от первичного ключа.
паспортные данные > ФИО, адрес, телефон, необходимость доставки
Для устранения зависимости адрес>номер участка выделяем следующие отношения:
Отношение находится в БКНФ, если оно находится в 3НФ и в нем отстствуют зависимости ключей от неключевых атрибутов.
У нас подобной зависимости нет, поэтому отношение Клиенты находится в БКНФ
Номер подписки>паспортные данные клиента, индекс издания, дата начала подписки, дата окончания подписки
Индекс издания>название издание, стоимость подписки на месяц, стоимость подписки на 3 месяца , стоимость подписки на 6 месяцев, стоимость подписки на год
Т.к. один сотрудник может обслуживать несколько участков, то для устранения избыточности данных необходимо выделить отношение Почтальон-участок, состоящее из следующих полей:
Код записи> Табельный номер сотрудника; Номер участка
Табельный номер>ФИО сотрудника, адрес, телефон, дата рождения.
Каждый из неключевых атрибутов всех отношений функционально-полно зависит от первичного ключа своего отношения, и это значит, что все эти отношения находятся в 2НФ. Все неключевые атрибуты каждого из отношений взаимно-независимы и полностью зависят от своего первичного ключа, следовательно, все эти отношения находятся в 3НФ. Все атрибуты первичных ключей каждого из отношений не имеют зависимости от неключевых атрибутов, и это значит, что все эти отношения находятся в БКНФ.
Результатом проектирования базы данных «Почтовые отделения» является схема базы данных, представленная на рисунке 3
Рисунок 3 - Логическая модель «сущность-связь» почтового отделения
В результате данного преобразования, получены следующие таблицы с учетом типа данных MSAccess:
Таблица «Информация о подписчиках». Содержит информацию о клиентах почтового отделения.
Подстановка из таблицы "код улицы - название"
Номер квартиры (если частный дома - не заполняется)
Необходимо ли доставлять издания в почтовый ящик
Таблица «Информация о подписке». Содержитпаспортные данные клиентов, индексы изданий, на которые оформлена подписка, а также даты начала и окончания подписки
Список значений: "1 месяц";"3 месяца";"6 месяцев";"12 месяцев"
Таблица «Издания». Информация об изданиях, поступающих в почтовое отделение.
Цена в зависимости от срока подписки
Таблица «Почтальоны». Информация о почтальонах, работающих в почтовом отделении.
Таблица «Код улицы - название». Справочник улиц, обслуживаемых почтовым отделением.
Список значений: "улица"; "проспект"; "проезд"; "переулок"; "шоссе"; "аллея"
Таблица «Номер участка - адрес ». Справочник типов проездов города.
Подстановка из таблицы "код улицы - название"
Таблица «Почтальоны - участки». Справочник основных операций паспортного стола.
Схема базы данных, реализованная в MSAccess, представлена на рисунке 3
Рисунок 3 - Схема базы данных, реализованная в MSAccess
3. Разработка интерфейса пользователя
3.1 Описание интерфейса пользователя
При запуске БД выводится главная форма, на которой расположены следующие кнопки:
- Клиенты - открытие формы поиска документов, изменение, удаление и добавление новых документов (паспортов), отображение истории по регистрации данного документа, истории по заявкам и новым выданным паспортам.
- Подписка - работа со справочником адресов, обслуживаемых данным паспортным столом, отображение данных о регистрации граждан по конкретному адресу, а также всех заявок поданных по данному адресу.
- Издания - работа со справочниками улиц, оснований, операций и т.д.
- Сотрудники - добавление и обработка заявок от граждан
- Поиск клиента - поиск информации о клиенте.
- Информация о количестве выписываемых изданий- вывод информации о количестве выписываемых изданий всего по отделению, по участку, по улице или по дому. Также поиск информации о количестве выписываемых изданий по индексу изданий.
- Информация о количестве доставляемых изданий- вывод информации о количестве доставляемых изданий всего по отделению, по участку, по улице или по дому. Также поиск информации о количестве доставляемых изданий по индексу изданий.
- Информация о загруженности - вывод информации о загруженности почтальонов.
Рисунок 4 - Главная кнопочная форма
На форме «Редактирование информации о подписчиках» (см. рис. 5) доступны следующие кнопки:
-Найти запись -редактирование или удаление записей о подписчиках
-Добавить запись- добавление подписчика
-Удалить запись - удаление подписчиков, у которых давно (более года назад) закончилась подписка. ( Информация о подписчиках хранится в базе данных после окончания их подписки еще некоторое время, для того чтобы, если подписчик вновь решит оформить подписку, не пришлось вновь заносить его данные)
Рисунок 5 - Форма «Редактирование информации о подписчиках»
При нажатии кнопки «Найти запись» на форме «Редактирование информации о подписчиках» выводится форма «Информация о подписчиках» (см. рис. 6),открытая для редактирования записей. На форме имеются следующие функциональные кнопки:
- Сохранить запись - сохранить сделанные в записи изменения;
- Удалить запись - удаление выбранной записи.
- Перейти к подписке - закрытие формы «Информация о подписчиках» и открытие формы «Подписка».
-Закрыть форму - закрытие данной формы
Рисунок 6 - Форма «Информация о подписчиках»,открытая для редактирования
При нажатии кнопки «Добавить запись» на форме «Редактирование информации о подписчиках» выводится форма «Информация о подписчиках» (см. рисунок 7),открытая для добавления записей.
Рисунок 7 - Форма «Информация о подписчиках», открытая для добавления
При нажатии кнопки «Удалить записи» на форме «Редактирование информации о подписчиках» выполняется запрос на удаление подписчиков, которые более года не выписывали ни одного издания.
При нажатии на кнопку "Подписка" на Главной форме открывается форма «Редактирование информации о подписке»(рис.8).
Рисунок 8 - Форма «Редактирование информации о подписке»
На форме «Редактирование информации о подписке» (рис. 8) доступны следующие кнопки:
-Найти запись - редактирование или удаление записей о подписке
-Добавить запись - добавление подписки
-Просмотр записей - просмотр подписчиков, у которых закончилась подписка.
При нажатии кнопки «Найти запись» на форме «Редактирование информации о подписке» выводится форма «Подписка» (см. рис. 9),открытая для редактирования записей. На форме имеются следующие функциональные кнопки:
- Сохранить запись - сохранить сделанные в записи изменения;
- Удалить запись - удаление выбранной записи.
- Перейти к подписчикам - закрытие формы «Подписка» и открытие формы «Информация о подписчиках».
-Закрыть форму - закрытие данной формы
Рисунок 9. Форма «Подписка», открытая для редактирования
При нажатии кнопки «Добавить запись» на форме «Редактирование информации о подписчиках» выводится форма «Информация о подписчиках» (см. рис. 10),открытая для добавления записей.
Рисунок 10. Форма «Подписка», открытая для добавления записей
При нажатии на кнопку "Сотрудники" на Главной форме открывается форма «Редактирование информации о сотрудниках»(рис.11).
Рисунок 11. Форма «Редактирование информации о сотрудниках»
При нажатии кнопки «Найти запись» на форме «Редактирование информации о сотрудниках» выводится форма «Информация о сотрудниках» (см. рисунок 12),открытая для редактирования записей. На форме имеются следующие функциональные кнопки:
- Сохранить запись - сохранить сделанные в записи изменения;
- Удалить запись - удаление выбранной записи.
- Перейти к подписке - закрытие формы «Информация о сотрудниках» и открытие формы «Подписка».
-Закрыть форму - закрытие данной формы
Рисунок 12. Форма «Информация о сотрудниках», открытая для редактирования записей
При нажатии кнопки «Добавить запись» на форме «Редактирование информации о сотрудниках» выводится форма «Информация о сотрудниках» (см. рис. 12),открытая для добавления записей.
Рисунок 13. Форма «Информация о сотрудниках», открытая для добавления записей
При нажатии на кнопку "Поиск клиента" на Главной форме открывается форма «Поиск клиента» (рисунок 14).
На форме "Поиск клиента" доступны следующие кнопки:
-Просмотр информации - при нажатии на кнопку "Просмотр информации" открывается форма "Выписываемые клиентом издания" (рисунок 15) и выполняется соответствующий запрос (конструкция и SQL запроса находятся в приложении №1)
Рисунок.15 "Выписываемые клиентом издания"
Суть запроса: по введенным паспортным данным клиента вывести информацию о количестве выписываемых изданий.
-Найти почтальона (по паспортным данным клиента) - открывается форма "Поиск почтальона по паспортным данным клиента"(рис.16) и выполняется соответствующий запрос, который по введенным паспортным данным клиента выдает информацию о почтальоне, его обслуживающем.
Рисунок 16 "Поиск почтальона по паспортным данным клиента"
-Найти почтальона (по адресу) - открывается форма "Поиск почтальона по адресу" (рисунок 17) и выполняется соответствующий запрос, который по введенному адресу выдает информацию о почтальоне.
Рисунок.17 "Поиск почтальона по адресу"
Следующая доступная кнопка на главной форме - "Информация о количестве выписываемых изданий". При нажатии на эту кнопку открывается следующая форма:
Рисунок.18 Поиск выписываемых изданий.
С помощью данной формы можно просмотреть информацию о количестве выписываемых изданий:
Также можно получить информацию о количестве экземпляров конкретного издания, поступающего в почтовое отделение по подписке, указав индекс или название издания.
Форма "Поиск доставляемых изданий" (рисунок 19), вызываемая из главной формы нажатием кнопки "Информация о количестве доставляемых изданий" аналогична предыдущей форме, но, если в предыдущей форме выдается информация о количестве выписываемых изданий, то в данной форме предоставляется информация о количестве доставляемых изданий. Данные также можно получить всего по отделению, по участкам, по улице, по дому или же по конкретному изданию.
Рисунок.19 Поиск доставляемых изданий.
Последняя доступная кнопка на Главной форме это кнопка "Информация о загруженности почтальонов". При нажатии на нее открывается форма "Информация о загруженности сотрудников":
Рисунок.20 "Информация о загруженности сотрудников"
На данной форме доступны следующие кнопки:
-Просмотр общей загруженности - открывает форму "Загруженность почтальонов общая" (рисунок 21), на которой выводится информация о загруженности всех почтальонов отделения
Рисунок.21 "Загруженность почтальонов общая"
-Найти - поиск сотрудника, обслуживающего введенный адрес (форма "Поиск почтальона по адресу" рисунок 17)
-Просмотр записей -открывает форму "Загруженность почтальона"(рисунок 22), на которой выводится информация о загруженности конкретного почтальона.
Рисунок.22 "Загруженность почтальона"
3.2 Запросы, используемые в базе данных
1.Запрос на удаление старых записей (форма "Редактирование информации о подписчиках) - данный запрос удаляет все записи из таблицы "Информация о подписке", если подписка по данной записи закончилась более 1 года назад
DELETE [Информация о подписке].[Окончание подписки], [Информация о подписке].*
FROM [Информация о подписчиках] INNER JOIN [Информация о подписке] ON [Информация о подписчиках].[Серия и номер паспорта] = [Информация о подписке].[Паспортные данные]
WHERE ((([Информация о подписке].[Окончание подписки])Date() Or ([Информация о подписке].[Окончание подписки])=Date()))
GROUPBY [Информация о подписке].[Паспортные данные], [Информация о подписчиках].Фамилия, [Информация о подписке].[индекс издания], Издания.название, [Информация о подписке].[Окончание подписки]
HAVING ((([Информация о подписке].[Паспортные данные])=[Введите паспортные данные]));
4. Поиск почтальона по паспортным данным клиента - по введенным паспортным данным клиента выдает информацию об обслуживающем его почтальоне.
SELECT [Информация о подписчиках].[Серия и номер паспорта], [Информация о подписчиках].Фамилия, [Информация о подписчиках].Имя, [Информация о подписчиках].Отчество, Почтальоны.Фамилия, Почтальоны.Имя, Почтальоны.Отчество
FROM Почтальоны INNERJOIN ((([код улицы - название] INNERJOIN [Информация о подписчиках] ON [код улицы - название].Код = [Информация о подписчиках].[Название улицы]) INNERJOIN [номер участка-адрес] ON ([Информация о подписчиках].[Номер дома] = [номер участка-адрес].[Номер дома]) AND ([код улицы - название].Код = [номер участка-адрес].[код улицы - название_Код])) INNERJOIN [Почтальоны-участки] ON [номер участка-адрес].[Номер участка] = [Почтальоны-участки].[Обслуживаемый участок]) ON Почтальоны.[Табельный номер] = [Почтальоны-участки].[Табельный номер]
GROUPBY [Информация о подписчиках].[Серия и номер паспорта], [Информация о подписчиках].Фамилия, [Информация о подписчиках].Имя, [Информация о подписчиках].Отчество, Почтальоны.Фамилия, Почтальоны.Имя, Почтальоны.Отчество
HAVING ((([Информация о подписчиках].[Серия и номер паспорта])=[Введите паспортные данные клиента]));
Поиск почтальона по улице и номеру дома - по введенным типу улицы, улице и номеру дома выдает информацию об обслуживающем данный адрес почтальону.
SELECT [код улицы - название].[Тип улицы], [код улицы - название].[Название улицы], [номер участка-адрес].[Номер дома], Почтальоны.Фамилия, Почтальоны.Имя, Почтальоны.Отчество
FROM [код улицы - название] INNERJOIN ([номер участка-адрес] INNERJOIN (Почтальоны INNERJOIN [Почтальоны-участки] ON Почтальоны.[Табельный номер] = [Почтальоны-участки].[Табельный номер]) ON [номер участка-адрес].[Номер участка] = [Почтальоны-участки].[Обслуживаемый участок]) ON [код улицы - название].Код = [номер участка-адрес].[код улицы - название_Код]
WHERE ((([код улицы - название].[Тип улицы])=[Введите тип улицы]) AND (([код улицы - название].[Название улицы])=[Введите название улицы]) AND (([номер участка-адрес].[Номер дома])=[Введите номер дома]));
Общее количество выписываемых изданий (по отделению) - выдает информацию о количестве экземпляров изданий, выписываемых всего по отделению по подписке.
SELECT [Информация о подписке].[индекс издания], Издания.название, Count([Информация о подписке].[индекс издания]) AS [Count-индекс издания]
FROM Издания INNER JOIN [Информация о подписке] ON Издания.индекс = [Информация о подписке].[индекс издания]
WHERE ((([Информация о подписке].[Окончание подписки])>Date() Or ([Информация о подписке].[Окончание подписки])=Date()))
GROUP BY [Информация о подписке].[индекс издания], Издания.название;
Количество выписываемых изданий по участку - по введенному номеру участка, выдает информацию о количестве и распределении выписываемых по участку экземпляров изданий.
SELECT [номер участка-адрес].[Номер участка], Издания.индекс, Издания.название
FROM ([код улицы - название] INNER JOIN ([Информация о подписчиках] INNER JOIN (Издания INNER JOIN [Информация о подписке] ON Издания.индекс = [Информация о подписке].[индекс издания]) ON [Информация о подписчиках].[Серия и номер паспорта] = [Информация о подписке].[Паспортные данные]) ON [код улицы - название].Код = [Информация о подписчиках].[Название улицы]) INNER JOIN [номер участка-адрес] ON ([Информация о подписчиках].[Номер дома] = [номер участка-адрес].[Номер дома]) AND ([код улицы - название].Код = [номер участка-адрес].[код улицы - название_Код])
WHERE ((([Информация о подписке].[Окончание подписки])>Date() Or ([Информация о подписке].[Окончание подписки])=Date()))
GROUP BY [номер участка-адрес].[Номер участка], Издания.индекс, Издания.название
HAVING ((([номер участка-адрес].[Номер участка])=[Введите номер участка]));
Количество выписываемых изданий по улице.
SELECT [код улицы - название].[Тип улицы], [код улицы - название].[Название улицы], Издания.индекс, Издания.название, Count([Информация о подписке].[номер подписки]) AS [Count-номер подписки], [Информация о подписке].[Окончание подписки]
FROM Издания INNER JOIN ([код улицы - название] INNER JOIN ([Информация о подписчиках] INNER JOIN [Информация о подписке] ON [Информация о подписчиках].[Серия и номер паспорта] = [Информация о подписке].[Паспортные данные]) ON [код улицы - название].Код = [Информация о подписчиках].[Название улицы]) ON (Издания.индекс = [Информация о подписке].[индекс издания]) AND (Издания.индекс = [Информация о подписке].[индекс издания]) AND (Издания.индекс = [Информация о подписке].[индекс издания])
GROUP BY [код улицы - название].[Тип улицы], [код улицы - название].[Название улицы], Издания.индекс, Издания.название, [Информация о подписке].[Окончание подписки]
HAVING ((([код улицы - название].[Тип улицы])=[Введите тип улицы]) AND (([код улицы - название].[Название улицы])=[Введите название улицы]) AND (([Информация о подписке].[Окончание подписки])>Date() Or ([Информация о подписке].[Окончание подписки])=Date()));
Количество выписываемых изданий по дому:
SELECT [код улицы - название].[Тип улицы], [код улицы - название].[Название улицы], [Информация о подписчиках].[Номер дома], Издания.индекс, Издания.название, Count([Информация о подписке].[номер подписки]) AS [Count-номер подписки]
FROM [код улицы - название] INNER JOIN ([Информация о подписчиках] INNER JOIN (Издания INNER JOIN [Информация о подписке] ON Издания.индекс = [Информация о подписке].[индекс издания]) ON [Информация о подписчиках].[Серия и номер паспорта] = [Информация о подписке].[Паспортные данные]) ON [код улицы - название].Код = [Информация о подписчиках].[Название улицы]
WHERE ((([Информация о подписке].[Окончание подписки])>Date() Or ([Информация о подписке].[Окончание подписки])=Date()))
GROUP BY [код улицы - название].[Тип ул
Проектирование базы данных "Почтовое отделение" курсовая работа. Программирование, компьютеры и кибернетика.
Реферат: КОЛДУН И КРИСТАЛЛ
Реферат: Этический аспект смерти
Реферат: Исследование функций менеджмента на примере IT-компаний Hewlett-Packard, Acer Group и ASUSTeK Computer
Всероссийский Конкурс Сочинений 2022 Орел
Контрольные Работы По Математике 2 Класс Перспектива
Реферат по теме Деньги и денежное обращение. Уровень монетизации в экономике современной России
Папка Дипломная Работа Шымкент
Реферат По Статье Из Журнала
Реферат по теме Деловые СМИ: между бизнесом и пиаром
Итоговая Контрольная Работа 1
Реферат: Игровые технологии в системе образования студента
Дипломная работа по теме Пути улучшения платежеспособности и ликвидности предприятия (на примере ООО 'ТЛТ Пресс')
Реферат: Освещение и его характеристики
Реферат: Фигурное катание на коньках
Пивоварова Сочинение Главная Мысль
Сингапур 2022 Реферат
Дипломная работа по теме Анализ потенциала энергосбережения на примере эффективности Нижне-Свирская ГЭС каскада Ладожских ГЭС
Реферат по теме Методы количественной оценки ценовой чувствительности покупателей
Реферат: The Birth Of Computer Programming Essay Research
Курсовая Работа На Тему Технологія Виробництва Пива На Прикладі Заводу Оболонь
Характеристика экономики России от Ивана Грозного до наших дней - История и исторические личности доклад
Марко Поло - География и экономическая география реферат
Проблемы возникновения пожаров на территории Ханты-Мансийского автономного округа - Безопасность жизнедеятельности и охрана труда презентация