Розробка автоматизованої інформаційної системи «Залізничний вокзал»
СКБД Microsoft Access є системою управління базами даних реляційного типу. Дані зберігаються в такій базі у вигляді таблиць, рядки (записи) яких складаються з наборів полів певних типів. З кожною таблицею можуть бути пов’язані індекси (ключі), що задають потрібні користувачеві порядки на безлічі рядків. Таблиці можуть мати однотипні поля (стовпчики), і це дозволяє встановлювати між ними зв’язки… Читати ще >
Розробка автоматизованої інформаційної системи «Залізничний вокзал» (реферат, курсова, диплом, контрольна)
Курсовий проект по дисципліні «Організація баз даних і знань»
Розробка автоматизованої інформаційної системи «Залізничний вокзал»
Вступ
Відомі два підходи до організації інформації: файлова організація та організація у вигляді бази даних.
На сучасному етапі бази даних є потужним і зручним способом зберігання і користування інформацією. Вони необхідні у величезній кількості установ, організацій, підприємств для ведення поточних справ. Важливість баз даних важко переоцінити, тому вони належать до пріоритетного напрямку розвитку програмних продуктів і займають значне місце на ринку прикладних пакетів, а на їх розробку витрачаються значні кошти.
База даних може бути визначена як структурна сукупність даних, що підтримуються в активному стані та відображає властивості об'єктів зовнішнього (реального) світу[1]. Бази даних орієнтовані на інтегровані запити, а не на одну програму, як у випадку файлового підходу, і використовуються для інформаційних потреб багатьох користувачів. В зв’язку з цим бази даних дозволяють в значній мірі скоротити надлишковість інформації. Перехід від структури БД до потрібної структури в програмі користувача відбувається автоматично за допомогою систем керування базами даних (СКБД).
Залізничний вокзал — комплекс будівель та споруд для обслуговування пасажирів приміських та пасажирських потягів, лінійного персоналу, рухомого складу та зберігання вантажів. Основні частини залізничного вокзалу — вокзальна будівля, перони для посадки і висадки пасажирів.
Зупиночні платформи влаштовуються у транзитних пунктах залізничного сполучення, залізничні вокзали — зазвичай у великих населених пунктах та на кінцевих зупинках.
У вокзальному приміщенні розташовуються зал очікування, каси для продажу квитків, часто також підприємства громадського харчування та роздрібної торгівлі, камери зберігання, а також службові приміщення (диспетчерська, адміністративні приміщення).
На території залізничних вокзалів є місця для стоянки рухомого складу між рейсами, а також пристрої для миття потягів.
Дана база даних призначена для каталогізації рейсів, рухомого складу, персоналу та пасажирів, що значно полегшує роботу залізничного вокзалу. Щодо переваг, які вона надає для предметної області, то це добре згруповані поля для зберігання інформації, які дають можливість проводити належне обслуговування пасажирів, слідкувати за перевезеннями та визначати навантаження по рейсах.
Технічне завдання база дані залізничий програма Призначення Призначення розробленої бази даних полягає у автоматизації роботи по обліку даних в залізничному вокзалі. База даних буде містити інформацію про здійснені продажі квитків, перевезення, особисті дані працівників та пасажирів. Беручи до уваги, що основною операцією є оформлення квитка, головною була обрана таблиця квитків.
Вимоги до обладнання та програмного забезпечення
— СКБД Microsoft Access 2003, або вище;
— Процесор Pentium III з тактовою частотою 233 МГц, або вище;
— Операційна система: Windows XP, або вище;
— ОЗУ: 128Mb, або вище;
— Вільне місце на жорсткому диску: 400 Мb;
— Клавіатура, миша.
Функції бази даних
— Перегляд повної інформації про квиток.
— Перегляд інформації про пасажірів.
— Перегляд інформації про працівників.
— Перегляд інформації про рейси.
— Перегляд інформації про локомотиви та вагони.
— Зберігання повної інформації про оформлення квитка.
— Зберігання інформації про новий рейс.
— Зберігання інформації про нового працівника.
— Зберігання даних про розклад руху.
— Фіксування дати і часу виконання перевезень.
Опис вхідної інформації
Для запису вхідних даних у базу дану можна використовувати кілька різних варіантів.
Перший — це за допомогою карток (Додаток Б).
Другий — за допомогою форм (безпосередньо до таблиць).
Вхідною інформацією для даної бази даних є загальна інформація про квиток, рейс, перелік додаткових послуг, працівника та пасажира.
До загальної інформації про клієнта відноситься його ПІБ, дата народження, стать, надана знижка, адреса та контактний телефон.
Опис проміжної, нормативно-довідникової інформації
Скорочення використані в базі даних наведено в Таблиці 1.
Талиця 1. Класифікації та скорочення
БД | База даних | |
СКБД | Система керування базою даних | |
ПІБ | Прізвище, І'мя, По-батькові | |
Опис вихідної інформації
Вихідна інформація повинна виводитися як на екран, так і на друк. Для виводу даних на екран використовуються: таблиці, форми, запити. Для забезпечення друку інформації потрібно використовувати звіти, які допомагають про аналізувати і вибрати необхідні дані із таблиць.
Вимоги до роботи програми та інтерфейсу Повинен бути доступ для редагування та додавання інформації у базу даних як безпосередньо через таблиці, так і шляхом використання відповідних форм.
Повина бути відкрита можливість отримання повної інформації по таблицях.
Розроблена база даних повинна володіти яскравим та зручним для користування інтерфейсом, побудованим на базі взаємопов'язаних кнопочних форм, використання яких має забезпечити доступ до всіх типів елементів розробленої бази даних (таблиць, запитів, звітів).
1. РОЗРОБКА КОМПОНЕНТІВ БАЗИ ДАНИХ
1.1 Проектування структури даних
При розробці бази данних для залізничного вокзалу було створено модель данних та розглянуто, яку інформацію повина містити безпосередньо база данних. Розробку бази реалізовано на СКБД «MS Access». В результаті було створено таблиці та встановлено взаємозв'язки між ними (Додаток А).
Таблиця «Квиток» (рисунок 1.1) містить інформацію про дату придбання та поїздки, рейс, станції відправлення та прибуття, працівника, пасажира, номер вагону та місця, вартість перевезення.
Рисунок 1.1 — Заповнена таблиця «Квиток»
Таблиця «Рейс» (рисунок 1.2) містить інформацію про маршрут руху, станцію відправлення та прибуття, дату та час відправлення та прибуття, а також час проведений в дорозі.
Рисунок 1.2 — Таблиця «Рейс»
Таблиця «Громадяни» містить інформацію про особу, яка виконала будь-яку операцію у залізничному вокзалі.
Таблиця «Працівник» містить інформацію про працівників, які працюють в даній сфері, персональні дані беруться з таблиці «Громадяни».
В таблиці «Локомотив» міститься інформація локомотиви використовуються при перевезеннях.
Таблиця «Вагон» містить дані про наявні вагони, що входять до рухомогу складу вокзалу.
З таблиці «Послуги» можна дізнатися про додаткові послуги, які можна замовити при поїздці.
Також є ряд допоміжних таблиць, в яких міститься додаткова інформація. Призначення даних таблиць в тому щоб прискорити роботу при заповненні таблиць та уникнути помилок спричинених людським фактором. Наприклад інформація з таблиці «Посада» містить список посад, які можуть бути спільні для багатьох працівників.
1.2 Проектування запитів для рішення задач
Вся інформація бази даних зберігається в базових таблицях. Найчастіше нам не потрібні усі дані з таблиці, або ж потрібні дані з кількох таблиць. Для такої роботи з базою даних використовують запити.
Запити є потужним засобом обробки даних, які зберігаються у таблицях Access. За їх допомогою можна переглядати, аналізувати та змінювати дані з кількох таблиць. Вони також можуть використовуватись як джерело даних для форм та звітів. Запити дозволяють обраховувати підсумкові значення і виводити їх у компактному форматі, а також виконувати обчислення над групами записів.
Існує кілька типів запитів: на вибірку, на оновлення, на додавання, на видалення, перехресний запит, створення таблиць. Найбільш поширеним є запит на вибірку. Запити на вибірку використовуються для відбору потрібної користувачеві інформації, що міститься в таблицях. Вони створюються тільки для зв’язаних таблиць.
Приклади запитів:
1.Початкові та кінцеві станції маршрутів (рисунок 1.3 та рисунок 1.4).
Рисунок 1.3 — Запит «Початкові та кінцеві станції маршрутів»
Рисунок 1.4 — Запит «Початкові та кінцеві станції маршрутів
Режим SQL:
SELECT Маршрут. ID_Маршрут AS Маршрут, Станція.Назва AS Станція
FROM Станція INNER JOIN (Маршрут INNER JOIN [Перелік станцій] ON Маршрут. ID_Маршрут = [Перелік станцій]. FK_Маршрут) ON Станція.ID_Станція = [Перелік станцій]. FK_Станція
WHERE ((([Перелік станцій]. Порядок)=1 Or ([Перелік станцій]. Порядок)= (SELECT COUNT ([Перелік станцій]. FK_Станція)
FROM [Перелік станцій]
WHERE [Перелік станцій]. FK_Маршрут=Маршрут.ID_Маршрут)));
2. Громадяни, що здійснювали поїздки (рисунок 1.5 та рисунок 1.6)
Рисунок 1.5 — Запит «Громадяни, що здійснювали поїздки»
Режим SQL
SELECT Громадяни. Прізвище, Громадяни. Ім'я, Громадяни. [По-батькові], DateDiff («yyyy» ,[Дата народження], Date ()) AS Вік, Громадяни. FK_Стать AS Стать, Країна.Назва AS Громадянство, Рейс. Назва, Квиток. Дата/час придбання]
FROM Країна INNER JOIN (Громадянство INNER JOIN (Рейс INNER JOIN (Громадяни INNER JOIN Квиток ON Громадяни. ID_Ідентифікаційний_код] = Квиток. FK_Громадянин]) ON Рейс. ID_Рейс] = Квиток. FK_Рейс]) ON Громадянство. ID_Громадянство = Громадяни. FK_Громадянство) ON Країна.ID_Країна = Громадянство. FK_Країна;
Рисунок 1.6 — Запит «Громадяни, що здійснювали поїздки» у режимі конструктора
3. Вагони відібрані певним (наприклад, «плацкарт») типом (рисунок 1.7 та рисунок 1.8)
Рисунок 1.7 — Запит «Вагони відібрані за типом „плацкарт“»
Рисунок 1.8 — Запит «Вагони відібрані за типом „плацкарт“» у режимі конструктора
Режим SQL
SELECT Вагон. № вагону], Вагон. Кількість місць], [Тип вагону]. Назва AS Тип, Вагон. Опис
FROM [Тип вагону] INNER JOIN Вагон ON [Тип вагону]. ID_Тип_вагону = Вагон. FK_Тип_вагону
WHERE ((([Тип вагону]. Назва) Like [Forms]![Головна]![Поле252]));
4. Регіони по яких проходять рейси (рисунок 1.9 та рисунок 1.10)
Рисунок 1.9 — Запит «Регіони по яких проходять рейси»
Рисунок 1.10 — Запит «Регіони по яких проходять рейси» у режимі конструктора
Режим SQL
SELECT DISTINCT Рейс. Назва, Регіон.Назва
FROM (((Регіон INNER JOIN Район ON Регіон.ID_Регіону = Район. FK_Регіон) INNER JOIN [Населений пункт] ON Район. ID_Район = [Населений пункт]. FK_Район) INNER JOIN Станція ON [Населений пункт]. ID_Населений пункт] = Станція. FK_Населений пункт]) INNER JOIN ((Маршрут INNER JOIN Рейс ON Маршрут. ID_Маршрут = Рейс. FK_Маршрут) INNER JOIN [Перелік станцій] ON Маршрут. ID_Маршрут = [Перелік станцій]. FK_Маршрут) ON Станція.ID_Станція = [Перелік станцій]. FK_Станція;
Окрім конструктора запити можна створювати також за допомогою майстра. Майстри запитів автоматично виконують основні дії залежно від відповідей користувача на поставлені питання. Самостійно створювати запити можна за допомогою конструктора.
1.3 Створення звітів для виведення інформації на друк
Звіт надають форматоване представлення даних, що виводиться на екран, до друку чи у файл. Вони дозволяють отримати з бази потрібні відомості і представити їх у вигляді, зручному для сприйняття, а також надають широкі можливості для узагальнення та аналізу даних.
Звіти у Microsoft Access можна створювати:
· Конструктором
· Майстром звітів
Створені звіти можна побачити на рисунку 1.11.
Рисунок 1.11 — Звіти
Для створення звіту з допомогою Майстра в якості вихідних даних зручно вибирати запит, який містить власні поля. Потім майстер звітів запропонує здійснити груповання даних. Так назва звіту друкуватиметься тільки один раз в заголовку листа, а дані, які виведе запит, будуть у вигляді списку в один стовпчик. Приклад виконаного звіту зображено на рисунку 1.12.
Рисунок 1.12 — Звіт по працівниках
1.4 Створення макросів
Макроси є невеликими програмами на мові макрокоманд СКБД Access, що складаються з послідовності певних команд (однієї або декількох макрокоманд). Набір макрокоманд в Access дуже широкий. Макроси є найпростішими засобами автоматизації дій над об'єктами Access. Необхідно відзначити, що макроси легко створювати, і для цього не потрібно знати синтаксис мови програмування.
Основне призначення макросів — це створення зручного інтерфейсу програми: щоб форми та звіти відкривалися при натисненні кнопок у формі або на панелі інструментів або ж звичним вибором команди меню; щоб при запуску програми користувач бачив на екрані не вікно бази даних, наповнене безліччю таблиць, запитів, форм і звітів, а якусь зрозумілу форму, за допомогою якої можна було б відразу робити бажані дії(рисунок 1.13).
Для створення макросу потрібно на панелі меню у вкладці «створення» вибрати пункт «створити макрос». У конструкторі зі списку можна вибрати макрокоманду, яка виконуватиметься прри запуску макросу, наприклад команду «відкрити запит».
Рисунок 1.14 — Створені макроси
Таким чином було створено 11 макросів для відкриття кнопочних форм та визову Windows програм. Переглянути вміст макросу можна у розробленій базі даних перейшовши на вкладку «Макроси».
1.5 Проектування форм для введення і перегляду даних
Форми є одним з основних засобів для роботи з базами даних в Access, які використовуються для введення нових записів (рядків таблиць), перегляду і редагування вже наявних даних, завдання параметрів запитів і виводу відповідей на них та ін. Форми являють собою прямокутні вікна з розміщеними в них елементами управління[2].
Запити і таблиці не є елементами форми. Тому для створення кнопок Запитів або Таблиць на формі можна використовувати макроси. Спочатку в вікні бази даних потрібно створити макроси «Відкрити Запит» або «Відкрити Таблицю» з унікальними іменами, а потім в формі створюються кнопки для виклику цих макросів.
Форми можна створювати за як майстром так і в режимі конструктора. Створення форми в режимі майстра (рисунок 1.15).
Рисунок 1.15 — Майстер форм
У режимі конструктора необхідно створювати кожну кнопку і подію для цієї кнопки, яка показано на Рисунку 1.16.
Рисунок 1.16 — Створення кнопки конструктором форм
2. РОЗРОБКА КОМПЛЕКСНОЇ ПРОГРАМИ
2.1 Особливості використання обраної СКБД
СКБД Microsoft Access є системою управління базами даних реляційного типу. Дані зберігаються в такій базі у вигляді таблиць, рядки (записи) яких складаються з наборів полів певних типів. З кожною таблицею можуть бути пов’язані індекси (ключі), що задають потрібні користувачеві порядки на безлічі рядків. Таблиці можуть мати однотипні поля (стовпчики), і це дозволяє встановлювати між ними зв’язки, виконувати операції реляційної алгебри. Типовими операціями над базами даних є визначення, створення та видалення таблиць, модифікація визначень (структур, схем) існуючих таблиць, пошук даних в таблицях за певними критеріями (виконання запитів), створення звітів про вміст бази даних.
Microsoft Access надає максимальну свободу в заданні типу даних (текст, числові дані, дата, час, грошові значення, малюнки, звук, електронні таблиці). Можна ставити також формати зберігання подання цих даних при виведенні на екран або друк. Для впевненості, що в базі зберігаються тільки коректні значення, можна задати умови на значення різного ступеня складності.
У Microsoft Access для обробки даних базових таблиць використовується потужна мова SQL (структурована мова запитів). Використовуючи SQL можна виділити з однієї або декількох таблиць необхідну для вирішення конкретного завдання інформацію. Access значно спрощує задачу обробки даних. Зовсім не обов’язково знати мову SQL. При будь-якій обробці даних з декількох таблиць Access використовує одного разу задані зв’язки між таблицями.
Microsoft Access спроектований таким чином, що він може бути використаний як в якості самостійної СКБД на окремій робочій станції, так і в мережі - в режимі «клієнт-сервер». Оскільки в Microsoft Access до даних можуть мати доступ одночасно кілька користувачів, в ньому передбачені надійні засоби захисту і забезпечення цілісності даних. Можна заздалегідь вказати, які користувачі або групи користувачів можуть мати доступ до об'єктів бази даних. Microsoft Access автоматично забезпечує захист даних від одночаснсті їх коригування різними користувачами. Access також пізнає і враховує захисні засоби інших приєднаних до бази даних структур
2.2 Розробка системи кнопочних форм
Головна кнопкова форма — це головне меню бази даних. Головна кнопкова форма відображається при запуску бази даних, забезпечує навігацію по базі даних і надає їй закінчений вигляд. Для однієї бази даних можна створити кілька кнопкових форм. Кнопки слід групувати на сторінці форми таким чином, щоб було зрозуміло, в яких формах можна виконувати певні команди. Саме головна кнопкова форма забезпечує навігацію по інших створених формах.
Технологія створення кнопочної форми має вигляд:
1) створити сторінку головної кнопкової форми;
2) створити елементи головної кнопкової форми;
3) створити необхідну кількість підлеглих кнопкових форм (наприклад, для введення даних, для звітів, для запитів);
4) створити елементи для кнопкових форм звітів і форм введення або зміни даних;
5) створити макроси для запитів або для таблиць з унікальними іменами;
6) створити елементи для кнопкових форм запитів або таблиць.
В процесі розробки було створено ряд підпорядкованих форм та головну кнопкову форму, яка є основним навігатором. Так головна кнопкова форма має чотири вкладки для роботи з базою даних, також кнопку «Вихід». Кожна з вкладок містить відповідні кнопки заданої функціональності, тобто керуючі елементи вкладок виконують логічно пов’язані дії (рисунок 2.1).
Рисунок 2.1 — Головна кнопкова форма За допомогою створеної кнопкової форми навіть низько кваліфікований користувач без проблем зможе користуватися даною БД.
2.3 Розробка математичної моделі до БД
Для бази даних «Залізничний вокзал» можна застосувати математичну модель для визначення доцільності використання певного маршруту для перевезень.
Математична модель матиме вигляд:
Q = ?Z
де Q — кількість перевезених пасажирів за період по певному маршруту;
Z — кількість проданих білетів на цей рейс за період по певному маршруту.
Якщо кількість перевезених пасажирів за тиждень Q
Дана математична модель допомагає спостерігати наскільки маршрути є актуальними і допомагає підвищити прибутки установи.
2.4 Розподілена технологія
Розподілена база даних дозволяє додаткам отримувати доступ до даних з локальних і віддалених баз даних. Розподілені бази даних використовують архітектуру клієнт/сервер для обробки інформаційних запитів. Кожен вузол сам по собі є системою бази даних. Будь-який користувач може виконати операції над даними на своєму локальному вузлі точно так само, як якщо б цей вузол зовсім не входив у розподілену систему.
Для створення розподіленої бази даних існуючу базу даних «Ательє» було розділено на п’ять вузлів:
— Залізничний вокзал;
— Депо;
— Відділ кадрів;
— Управління картографії та геодезії;
— Паспортний стіл.
Вміст вузлів повинен відповідати назві та функції вузла. Так у вузлі «Депо» містяться дані про потяг, локомотив та вагони, «Паспортний стіл» включає у себе персональ дані особи, «Відділ кадрів» забезпечує інформацією про працівників, «Управління картографії та геодезії» надає дані про розташування населених пунктів та станцій. Головний вузол «Залізничний вокзал» містить ряд даних необхідних для роботи організації.
Для реалізації розподіленої бази даних в середовищі MS Access потрібно створити кілька незалежних баз даних і назвати їх відповідно вузлам розподіленої БД та створити відповідні зв’язки між ними. Головний вузол матиме доступ до усіх даних приєднаних вузлів, що і дозволить в подальшому працювати з розподіленою базою даних як з цілісною.
3. РОЗРОБКА І ВИКОРИСТАННЯ ЗАПИТІВ ДЛЯ РОБОТИ З БАЗОЮ ДАНИХ
3.1 Використання пасивних запитів
Запити служать для вибору необхідної інформації з бази даних. Є багато різних видів запитів і найпростіші з них — це пасивні запити. Пасивні запити виводять дані з таблиць та не змінюють цих даних. Метою простого запиту є створення результуючої таблиці, у якій відображаються тільки потрібні за умовою запиту дані з базових таблиць. Пасивні запити використовуються найчастіше. Найпростіший приклад пасивного запиту — запит на вибірку.
Запит на вибірку, можна використовувати не тільки для відбору даних, але і для їх поновлення. Запит на вибірку має ряд властивостей, які можна використовувати для зміни роботи запиту. Після виконання запиту на вибірку Microsoft Access створює набір записів, які містять відібрані дані.
В більшості випадків з набором записів, які дає нам запит на вибірку, можна працювати так само, як з таблицею: можна проглянути і відібрати інформацію, роздрукувати і поновити дані. Але цей набір данних фізично не існує в базі, а лише є відображенням цих данних за певними критеріями. Access створює вибір записів з даних таблиць тільки під час виконання запиту.
Досить часто необхідно здійснити сортування даних, саме для цього існують оператори, які можна використовувати при завданні умов відбору (наприклад, «Like», «Between … And…», «DateValue», «DateDiff» тощо).
Приклади пасивних запитів:
1.Запит на вибір вагонів за певним (наприклад, «люкс») типом (рисунок 3.1 та 3.2).
Режим SQL:
SELECT Вагон. № вагону], Вагон. Кількість місць], [Тип вагону]. Назва AS Тип, Вагон. Опис
FROM [Тип вагону] INNER JOIN Вагон ON [Тип вагону]. ID_Тип_вагону = Вагон. FK_Тип_вагону
WHERE ((([Тип вагону]. Назва) Like [Forms]![Головна]![Поле252]));
Рисунок 3.1 — Режим таблиці
Рисунок 3.2 -Режим конструктора
2.Запит на визначення кількості перевезень за певний період (рисунок 3.1 та 3.2).
Режим SQL:
SELECT Локомотив. Номер, Квиток. Дата/час відправлення] AS Дата, Рейс. Назва AS Рейс, (SELECT Count (Квиток.ID_Квиток) FROM (Рейс INNER JOIN Квиток ON Рейс. ID_Рейс = Квиток. FK_Рейс) INNER JOIN (Локомотив AS Локомотив1 INNER JOIN [Локомотив до потягу] ON Локомотив1.ID_Локомотив = [Локомотив до потягу]. FK_Локомотив) ON Рейс. ID_Рейс = [Локомотив до потягу]. FK_Рейс WHERE Локомотив1.Номер=Локомотив.Номер) AS Кількість
FROM (Рейс INNER JOIN Квиток ON Рейс. ID_Рейс = Квиток. FK_Рейс) INNER JOIN (Локомотив INNER JOIN [Локомотив до потягу] ON Локомотив. ID_Локомотив = [Локомотив до потягу]. FK_Локомотив) ON Рейс. ID_Рейс = [Локомотив до потягу]. FK_Рейс
WHERE (((Квиток. Дата/час відправлення]) Between [Forms]![ЛокомотивПеріод]![Поле3] And [Forms]![ЛокомотивПеріод]![Поле5]));
Рисунок 3.3 — Режим таблиці
Рисунок 3.4 — Режим конструктора
3.2 Використання обрахунків у запитах
Часто нам приходиться використовувати дані, які можна знайти у результаті арифметичних дій, саме для цього існують обрахунки у запитах. Можна виконувати обчислення з будь-якими полями таблиці і зробити обчислюваний вираз новим полем в наборі записів. Для цього можна використати любі із вбудованих функцій Access. Окрім цього, поля запиту можуть містити дані, які отримані за допомогою арифметичних операцій над полями таблиці.
Розрізняють наступні запити на обрахунки:
— підсумкові запити;
— кількісні запити;
— обрахунки у запитах;
— створювачі виразів;
— комбінаторні запити;
— перехресні запити.
Для створення запитів на обрахунки, використовуються звичайні бланки запитів, різниця лише у тому, що в одному із стовпців замість імені поля записують формулу, де вписуються назви полів, що беруть участь у розрахунках, а також математичні операції.
Приклади запитів на обрахунок:
1.Запит на обрахунок загальної вартості проданих квитків по касах (рисунок 3.5 та 3.6).
Режим SQL:
SELECT Каса. Номер каси], Sum (Квиток.Вартість) AS [Сума продажів]
FROM Каса INNER JOIN Квиток ON Каса. ID_Каса = Квиток. FK_Каса
GROUP BY Каса. Номер каси]
Рисунок 3.5 — Режим таблиці
Рисунок 3.6 — Режим конструктора
2.Запит на вибір працівників з певним розміром загального стажу або віком чи рівнем освіти (рисунок 3.7 та 3.8).
Режим SQL:
SELECT Громадяни. Прізвище, Громадяни.Ім'я, Громадяни. По-батькові], Громадяни. Дата народження], Адреса. FK_Населений_пункт AS [Населений пункт], Адреса. FK_Вулиця AS Вулиця, Адреса. № будинку] AS №буд, Адреса. № квартири] AS №кв, Працівник. Дата прийняття на роботу], Працівник. Попередній стаж (в роках)], Працівник.FK_Посада AS Посада, Освіта.Рівень AS Освіта, Громадяни. FK_Стать AS Стать, Громадянство. FK_Країна AS Громадянство
FROM Освіта INNER JOIN (Громадянство INNER JOIN (Адреса INNER JOIN (Громадяни INNER JOIN Працівник ON Громадяни. ID_Ідентифікаційний_код] = Працівник. FK_Ідентифікаційний_код]) ON Адреса. ID_Адреса = Працівник.FK_Адреса) ON Громадянство. ID_Громадянство = Громадяни. FK_Громадянство) ON Освіта.ID_Освіта = Працівник.FK_Освіта
WHERE (((Освіта.Рівень)=Forms!Головна!ПолеСоСписком347) Or ((DateDiff («yyyy» ,[Дата народження], Date ()))=Forms!Головна!Поле271) Or ((DateDiff («yyyy» ,[Дата прийняття на роботу], Date ())+[Попередній стаж (в роках)])=Forms!Головна!Поле267));
Рисунок 3.7 — Режим таблиці
Рисунок 3.8 — Режим конструктора
3.3 Використання активних запитів
Активні запити здатні змінювати вихідні записи й існування повертаємих записів без обмежень.
Розрізняють наступні активні запити:
— запит на поновлення;
— запит на мультипоновлення;
— запит на додавання даних;
— запит на видалення даних;
— створення нової таблиці.
Щоб створити запит на поновлення записів в базі даних, потрібно створити запит на вибірку з умовою відбору, що дозволяє знайти всі записи, які потрібно поновити.
Запити на видалення здійснює видалення даних в кожному полі, разом із унікальним значенням ключа. Для початку потрібно створити запит на вибірку даних для видалення і тоді можна перетворити запит в запит на видалення та виконати його.
Запити на створення таблиці створюють нові таблиці на основі даних з однієї або кількох таблиць.
Активні запити виконують багато необхідних функцій для бази даних, таких як: оновлення, додавання, видалення. За допомогою цих запитів можна набагато швидше редагувати вже готову інформацію, додати нову або видалити непотрібну, витрачаючи менше зусиль на виконану роботу.
Приклади активних запитів:
1.Запит на додавання даних до таблиці «Адреса"(рисунок 3.9).
Режим SQL:
INSERT INTO Адреса (FK_Вулиця, [№ будинку], [№ квартири])
SELECT FK_Вулиця, [№ будинку], [№ квартири]
FROM Прописка;
Рисунок 3.9 — Результат роботи запиту
2.Запит на заміну (поновлення) знижки при перевезені у таблиці «Пільга» у полі «Посада» (Рисунок 3.10).
Режим SQL:
UPDATE Пільга SET Пільга. Знижка (%)] = [0,75]
WHERE (((Пільга.Статус)="Інвалід ІІІ групи"));
Рисунок 3.10 — Режим конструктора Запити на додання або на створення таблиці є різновидами активних запитів, які не змінюють вихідних записів, забезпечують постійне існування повертаємих записів[3].
3.4 Обрахунки дати й часу у запитах. Робота із строками
Для обрахунків параметрів дати та часу Microsoft Access забезпечує можливість створення запитів на витяг даних дати і часу і проведення обрахунків із ними. Access має функції, які можна використовувати при роботі з даними дати та часу:
Day (дата)? повертає значення дня місяця в діапазоні від 1 до 31.
Month (дата)? повертає значення місяця року в діапазоні від 1 до 12.
Year (дата)? повертає значення року в діапазоні від 100 до 9999.
Weekday (дата)? повертає значення чисел від 1 (Неділя) до 7 (Субота), що відповідають дням тижня.
Hour (дата)? повертає ціле число від 0 до 23, які представляють значення часу.
DatePart (інтервал, дата)? повертає номер кварталу або номер тижня в залежності від того, який код інтервалу задається («q» — для визначення кварталу, «ww» — для визначення порядкового номера тижня в році).
Date ()? п вертає поточну системну дату[4].
Запити з обчисленням дати та часу відіграють велику роль у формуванні звітів, що відображають певну статистичну інформацію про роботу організації.
Приклад запиту роботи з даними дати та часу:
1.Запит на обрахунок віку пасажирів (рисунок 3.11 та 3.12).
Режим SQL:
SELECT Громадяни. Прізвище, Громадяни.Ім'я, Громадяни. По-батькові], DateDiff («yyyy» ,[Дата народження], Date ()) AS Вік, Громадяни. FK_Стать AS Стать, Країна.Назва AS Громадянство, Рейс. Назва, Квиток. Дата/час придбання]
FROM Країна INNER JOIN (Громадянство INNER JOIN (Рейс INNER JOIN (Громадяни INNER JOIN Квиток ON Громадяни. ID_Ідентифікаційний_код] = Квиток. FK_Громадянин]) ON Рейс. ID_Рейс] = Квиток. FK_Рейс]) ON Громадянство. ID_Громадянство = Громадяни. FK_Громадянство) ON Країна.ID_Країна = Громадянство. FK_Країна;
Рисунок 3.11 Режим таблиці
Рисунок 3.12 Режим конструктора
Велика кількість інформації в базах даних зберігається у вигляді тексту, тому досить важливо вміти оперувати строковими величинами. Наприклад, для витягнення ініціалів, чи скорочень з повних назв за допомогою запиту можна зробити витяг символів із рядка.
Приклад запиту роботи з текстовими величинами:
1.Запит на вивід списку працівників з конкатенацією ПІБ (рисунок 3.13 та 3.14)
Режим SQL:
SELECT [Прізвище]+" «+Left ([Ім'я], 1)+». «+Left ([По-батькові], 1)+» ." AS ПІБ, Громадяни. Дата народження], Адреса. FK_Населений_пункт AS [Населений пункт], Адреса. FK_Вулиця AS Вулиця, Адреса. № будинку] AS №буд, Адреса. № квартири] AS №кв, Працівник. Дата прийняття на роботу], Працівник. Попередній стаж (в роках)], Працівник.FK_Посада AS Посада, Працівник.FK_Освіта AS Освіта, Громадяни. FK_Стать AS Стать, Громадянство. FK_Країна AS Громадянство
FROM Громадянство INNER JOIN (Адреса INNER JOIN (Громадяни INNER JOIN Працівник ON Громадяни. ID_Ідентифікаційний_код] = Працівник. FK_Ідентифікаційний_код]) ON Адреса. ID_Адреса = Працівник.FK_Адреса) ON Громадянство. ID_Громадянство = Громадяни. FK_Громадянство;
Рисунок 3.13 — Режим таблиці
Рисунок 3.14 — Режим конструктора
Більшість інформації в базах даних зберігається у вигляді тексту, тому робота із строковими величинами є невід'ємною частиною роботи з базами даних.
3.5 Створення графіків та діаграм
Аналізувати дані, для виявлення певних тенденцій занадто важко у числові дані таблицях, для цього слід використовувати різноманітні графіки та діаграми, що легко створюються за допомогою MS Access.
Приклад запиту на створення діаграм:
Режим SQL:
SELECT Квиток. Дата/час придбання] AS Дата, Громадяни. Прізвище, Квиток. Вартість
FROM (Громадяни INNER JOIN Працівник ON Громадяни. ID_Ідентифікаційний_код = Працівник.FK_Ідентифікаційний_код) INNER JOIN Квиток ON Працівник.ID_Працівник = Квиток. FK_Працівник;
Рисунок 3.15 — Діаграма «Навантаження на працівника»
При роботі зі зведеними діаграмами необхідно продумати, який обсяг даних потрібно відобразити для коректного відображення результатів запиту.
3.6 Розробка складних запитів
Будь-який запит в Access може бути використаний як база для іншого запиту. Механізм запитів Access дозволяє вільно комбінувати таблиці і запити для виконання складних операцій над даними.
Приклад складного запиту:
1.Запит визначення суми продажів по працівниках (рисунок 3.16 та 3.17)
Режим SQL:
TRANSFORM Sum (Квиток.Вартість) AS [Sum-Вартість]
SELECT Громадяни. Прізвище, Sum (Квиток.Вартість) AS Сума
FROM (Громадяни INNER JOIN Працівник ON Громадяни. ID_Ідентифікаційний_код = Працівник.FK_Ідентифікаційний_код) INNER JOIN Квиток ON Працівник.ID_Працівник = Квиток. FK_Працівник
GROUP BY Громадяни. Прізвище
PIVOT Квиток. Дата/час придбання];
Рисунок 3.16 — Режим таблиці
Рисунок 3.17 — Режим конструктора
2.Запит на вивід ковзаючої середньої продажу квитків за рік (рисунок 3.18 та 3.19)
Режим SQL:
SELECT [Замовник]![Прізвище]+" «+[Замовник]![Імя]+» «+[Замовник]![По-батькові] AS [Повне імя], Left (Trim ([Повне імя]), 1)+Mid ([Повне імя],(InStr ([Повне імя],» «)+2), 2) AS Ініціали
FROM Замовник;
Рисунок 3.18 — Режим діаграми
Рисунок 3.19 — Режим конструктора
Висновок
В даній базі даних було використано велику кількість активних і пасивних запитів; запитів на обрахунки; запитів для роботи із параметрами дати і часу; запитів для роботи із текстом та інші. Важливими для організації є запити на обрахунки, що допомагають розраховувати витрати чи доходи за певні періоди часу, що полегшує роботу. Через використання даних запитів забезпечується належне функціонування бази даних та виконання поставлених задач.
Створення системи форм забезпечило практичність та доступність роботи з базою даних. Базу даних «Залізничний вокзал» можна вважати окремим додатком, призначення якого автоматизація обліку послуг у сфері пасажирських перевезень залізницею та обробка інформації.
В результаті отримано повноцінну базу даних, що відповідає усім поставленим вимогам вказаним в завданні та усі потрібні для виведення завдання були виконані.
База оперує великою кількістю інформації про перевезення та іншими важливими даними, її впровадження є перспективним, оскільки здійснюється покращення роботи у таких напрямках, як якість обслуговування, мобільність, зручність для пасажирів, прискорення видачі квитків та звітів.
Це в результаті призведе до залучення більшої кількості нових пасажирів, створення нових та оптимізації стрих рейсів та маршрутів, що спричинить значне збільшення прибутку від діяльності.
Список використаних джерел
1.О.В Мазурець Організація баз даних та знань: лабораторний практикум для студентів напряму підготовки «Комп'ютерні науки» /О.В. Мазурець — Хмельницький: ХНУ, 2012, С.
2.Створення форми Access — Access — Office.com. — [Електронний ресурс]. Режим доступу: http://office.microsoft.com/uk-ua/access-help/HA102749786.aspx
3.Створення запиту на додавання — Access — Office.com. — [Електронний ресурс]. Режим доступу: http://office.microsoft.com/uk-ua/support/FX104018798.aspx
4.Збереження дати й часу змінення запису — Access — Office.com. — [Електронний ресурс]. Режим доступу: http://office.microsoft.com/uk-ua/access-help/HA010342039.aspx?CTT=1
5.Онлайн резервування та придбання квиткiв — Укрзалізниця. — [Електронний ресурс]. Режим доступу: http://booking.uz.gov.ua/
Додатки
Додаток А
Інфологічна модель бази даних «Залізничний вокзал»
Додаток Б
Приклади оформлення вхідної інформації
Картка «Працівник»:
Форма самообслуговування[5]:
Додаток В
Інфологічна модель розподіленої бази даних «Залізничний вокзал»
Додаток Г
Вузлова схема розподіленої бази даних
Додаток Д
Список імен вузлів і таблиць БД
Назва | Name | |
Залізничний вокзал | railway | |
Каса | kasa | |
Квиток | kvytok | |
Маршрут | marshrut | |
Перелік послуг | poslugy_perelik | |
Перелік станцій | stancii_perelik | |
Пільга | pilgy | |
План руху по станції | ryh_stancii | |
Послуга | posluga | |
Рейс | reys | |
Станція | stancia | |
Тип каси | typ_kasy | |
Тип рейсу | typ_reysu | |
Тип станції | typ_stancii | |
Відділ кадрів | viddil_kadriv | |
Працівник | pracivn | |
Посада | posada | |
Освіта | osvita | |
Паспортний стіл | passport_stil | |
Громадяни | gromadyany | |
Громадянство | gromadyanstvo | |
Статус громадянства | status_gromad | |
Депо | depo | |
Вагон | vagon | |
Вагон до потягу | vagon_potyag | |
Локомотив | lokomotyv | |
Локомотив до потягу | lokomotyv_potyag | |
Марка локомотиву | marka | |
Модель локомотиву | model | |
Тип вагону | typ_vagonu | |
Тип локомотиву | typ_lokomotyvu | |
Управління картографії і геодезії | kartographia_geodezia | |
Адреса | adresa | |
Вулиця | vulycia | |
Країна | kraina | |
Населений пункт | nasel_punkt | |
Район | rayon | |
Регіон | region | |
Тип населенго пункту | typ_punktu | |
Додаток Е
Каталог системних табличних імен
[email protected]@kasa
[email protected]@kvytok
[email protected]@marshrut
[email protected]@poslugy_perelik
[email protected]@stancii_perelik
[email protected]@pilgy
[email protected]@ryh_stancii
[email protected]@posluga
[email protected]@reys
[email protected]@stancia
[email protected]@typ_kasy
[email protected]@typ_reysu
[email protected]@typ_stancii
[email protected]_kadriv@pracivn
[email protected]_kadriv@posada
[email protected]_kadriv@osvita
[email protected]_stil@gromadyany
[email protected]_stil@gromadyanstvo
[email protected]_stil@status_gromad
[email protected]@vagon
[email protected]@vagon_potyag
[email protected]@lokomotyv
[email protected]@lokomotyv_potyag
[email protected]@marka
[email protected]@model
[email protected]@typ_vagonu
[email protected]@typ_lokomotyvu
[email protected]_geodezia@adresa
[email protected]_geodezia@vulycia
[email protected]_geodezia@kraina
[email protected]_geodezia@nasel_punkt
[email protected]_geodezia@rayon
[email protected]_geodezia@region
[email protected]_geodezia@typ_punktu
Додаток Є
Приклад звіту у БД