Розробка баз даних. Курсова робота. Цілі та завдання курсової роботи
Скачать 1.27 Mb.
|
Вступ У світі бази даних застосовуються практично скрізь – в інтернет магазинах, підприємствах, навчальних і медичних установах. У зв'язку з цим виникає потреба у створенні спеціальних систем, відповідальних за управління базами даних. Мова SQL широко застосовується у роботі з базами даних. Значна частина ІТ-сфери так чи інакше пов'язана з ним. Незважаючи на свою простоту, мова SQL надає величезні можливості для роботи з базами даних. У ході роботи буде проведено систематизацію та поглиблення теоретичних знань про бази даних та методи роботи з ними. Крім цього, курсова робота дозволить практично застосувати методи проектування інформаційних систем, освоїти обрану СУБД та виробити навички роботи з базою даних. Для виконання курсової роботи було обрано СУБД MS Access – один із нинішніх лідерів ринку програмного забезпечення для роботи з базами даних. Для програмування користувача програми був обраний компілятор CODEGear - як один з найбільш зручних, сучасних і найчастіше зустрічаються. Цілі та завдання курсової роботиМета курсової роботи - систематизація та поглиблення теоретичних знань, отриманих за час навчання, а також придбання та закріплення навичок самостійної роботи. Завдання курсової роботи: 1) практичне застосування методів проектування; 2) вироблення навичок роботи з БД; 3) засвоєння прийомів роботи з СУБД Access та мовою SQL; У ході виконання курсового проекту було поставлено таке завдання. Необхідно створити базу даних для врахування успішності студентів, що складається з трьох таблиць: Студент (Номер Заліку, Прізвище, Домашня Адреса, Група), Предмет (Код Предмета, Найменування), Іспит (Код Предмета, Номер Заліковки, Дата Іспиту). Далі потрібно запрограмувати систему, що дозволяє отримувати відповіді запити: 1) отримайте дані про студентів зазначеної групи, наприклад, ПОВТ-06; 2) отримайте дані про студентів, які склали іспит після зазначеної дати; 3) отримайте дані про студента за номером його заліковки; 4) отримайте дані про кількість студентів, які складали іспити з предметів; 5) отримайте відомості про кількість студентів, які отримали позитивні оцінки; 6) отримаєте назву предмета, за яким поставлено найбільшу кількість двійок; 7) отримайте дані про предмети, які складали студенти заданої групи; 8) отримайте домашні адреси студентів, які здали на «відмінно» зазначений предмет. Необхідно розробити форми введення, перегляду та редагування даних у базі та створити звіти за таблицею «Студенти», за запитами 1, 7, 8. Вибір СУБД для реалізації БДОсновними критеріями на вибір служили: 1) Доступність ПЗ; 2) Знайомство з ПЗ; 3) функціональні можливості; Як реляційна СУБД була обрана MSAccess, з наступних причин: Access легко взаємодіє коїться з іншими програмами; Access широко поширений; Access найбільш звичний, має зручний інтерфейс, широкий функціонал та суб'єктивно зрозумілий. Незважаючи на відсутність ліцензії, можна використовувати Access у режимі trial. У порівнянні Access з іншими реляційними СУБД можна сказати таке. Більшість СУБД аналогічна і відрізняється незначною мірою. Питання вибору СУБД найчастіше впирається у зручність і звичку використання тієї чи іншої СУБД, і доступності. На прикладі того ж таки OpenOfficeBase можна сказати, що відмінності не завжди можуть бути знайдені звичайним користувачем. Найістотнішим відмінністю між Access і Base мені стало труднощі прикріплення БД від Base до стороннім програмним забезпеченням, т.к. не всі вони знають про таку СУБД. З цієї причини Access найбільш зручний для розробки БД. Для розробки клієнтської програми було обрано CODEGearRADStudio, що вільно розповсюджується. Основними перевагами даного ПЗ можна назвати: Підтримка величезної кількості мов розробки; Підтримка технології ADO; Широкий функціонал та легка інтеграція VS з Access. Обґрунтування вибору способу з'єднання з БДТехнологія ADO має свої недоліки, і свої переваги. Основними перевагами можна назвати: Технологія ADO пропонує розробнику зручний прикладний інтерфейс OLE DB; ADO зручна в обігу, тому що надає об'єкти Automation, що приховують інтерфейси OLE DB, що дозволяє програмісту приділяти основну увагу вирішуваним завданням, а не складнощі технології OLE DB; ADO-об'єкти дозволяється використовувати на будь-якій платформі, яка підтримує СОМ та Automation; ADO-набір даних можна від'єднувати від джерела даних і передавати іншим додаткам, при цьому можлива зміна даних набору у відриві від мережі та джерела даних. До всього вищесказаного варто додати той факт, що ADO проста у використанні і звична. Це стало ключовим моментом у виборі технології з'єднання. В якості мови для розробки клієнтської програми використовувався Delphi. Як ПЗ для розробки використовувався CodeGear. Перевагами CodeGear можна назвати: Підтримка багатьох мов програмування; Підтримка технології ADO. Простота та інтуїтивність інтерфейсу, зібраність інтерфейсу в єдиному вікні; Широкий функціонал; Звичність, велика кількість навчальних матеріалів у мережі; Інтерфейси та програми для технологічних операцій з БДРисунок 1 – форма введення таблиці "Предмет" Рисунок 2 – форма перегляду таблиці "Предмет" Рисунок 3 – форма редагування таблиці "Предмет" Рисунок 4 – форма введення таблиці "Студент" Рисунок 5 – форма перегляду таблиці "Студент" Рисунок 6 – форма редагування таблиці "Студент" Рисунок 7 – форма редагування таблиці «Іспит» Рисунок 8 – форма введення таблиці «Іспит» Рисунок 9 – форма перегляду таблиці «Іспит» Рисунок 10 – Звіт за запитом 1 Рисунок 11 – Звіт за запитом 2 Малюнок 12 – Звіт за запитом 8 Прийоми роботи з Базою данихУ СУБД було встановлено зв'язок між таблицями. Тип зв'язків між: Код Предмета (Іспит) – Код Предмета (Іспит) одним-багатьом, тому що одному коду відповідає кілька іспитів. Тобто. один і той самий предмет здають багато студентів. Номер Заліки (Студент) – Номер Заліки (Студент) багато-багатьом, т.к. один студент може складати кілька іспитів, з кількох предметів, і кілька студентів можуть складати один і той же іспит. Рисунок 13 – Логічна модель бази даних Зв'язки зі ставленням «багато-багатьом» створюються в базі даних за допомогою проміжних (сполучних) таблиць. Сполучна таблиця містить стовпці первинного ключа обох зв'язуваних таблиць. Була створена сполучна таблиця "Студент + Іспит". Вона містить ключовий ключ НомерЗаліки таблиці «Студент» та id_запису, ключовий ключ таблиці «Іспит». Рисунок 14 – Сполучна таблиця Фізична модель даних – це конкретні місця зберігання даних у конкретній СУБД. Модель залежить від конкретної СУБД. Об'єктами фізичної моделі є таблиці та поля з типами даних, визначеними для обраної СУБД. Об'єкти називаються відповідно до правил СУБД. Однією логічною моделлю даних може відповідати кілька фізичних моделей. Оскільки CODEGear не може працювати з версіями MS Access після 2003, то було створено дві бази даних. Одна з них версія 2003 – для роботи з додатком користувача, інша аналогічна, з формами введення, перегляду, редагування, звітами, запитами в режимі конструктора і так далі. Рисунок 15 – Фізична модель бази даних Алгоритм роботи програмиЯкщо описувати основний алгоритм програми у роботі, саме здійснення запитів до Бази Даних, можна висловити його так: ПОЧАТОК 1 ОЧИСТИТИ.SQL; 2 ВИКЛЮЧИТИКОМПОНЕНТ ADO Query; 3 ДОДАТИНОВИЙ.SQL; 4 УВІМКНУТИКОМПОНЕНТ ADOQuery; 5 ВИРІВНИТИСтовпці; 6 ЗАДАТИ Ширину стовпців; КІНЕЦЬ Тепер давайте розглянемо покроково: Необхідно очистити попередній SQL-запит для коректного виведення нового. Цей крок виконується рядком коду ADOQuery1.SQL.Clear; Вимкнення компонента ADOQuery (тобто виставлення властивості Active в положення false) відбувається автоматично, при очищенні SQL-рядка, що міститься в ньому; Новий SQL-запит передається через 2 кроки. Спочатку спрацьовує оператор множинного вибору, який передає необхідний запит компонент Memo2, потім вже поза оператором множинного вибору даний запит передається в SQL рядок ADOQuery. Це зроблено для того, щоб користувач легко міг знайти помилку в SQLзапиті, якщо вона допущена; Включення компонента ADOQuery відбувається також після оператора множинного вибору, рядком коду ADOQuery1.Active:=true; Вирівнювання стовпців і завдання їх ширини не є обов'язковими, але дозволяють легше переглядати отримані дані; Далі наведемо код програми: Код, що виконується під час створення форми Код для виведення таблиці з Бази Даних та форматування таблиці DBGrid Код, що виконує зміну змінних, що оперують у запитах дані алгоритм access логічний Основний код, який відповідає за SQL запити Докладно розберемо запити: SELECT * FROM Студент WHERE Група = '''+group+''' – простий запит вибірки всіх стовпців з таблиці Студент з умовою, що стовпець Група дорівнюватиме змінній рядковій змінній group. SELECT * FROM Студент WHERE НомерЗалікиIN(SELECT НомерЗаліки FROM Іспит WHERE ДатаЕкзамена>'''+date+''') – запит із вкладеним запитом. Вкладений запит видає всі номери заліку з таблиці Іспит, у яких ДатаЕкзамену пізніше 01.01.2015. Конструкція IN набуває значень із вкладеного запиту. Далі на основі отриманих номерів заліку з таблиці Студент вибираються всі дані. SELECT * FROM Студент WHEREНомерЗаліки='+IntToStr(numb)+' – простий запит вибірки всіх даних з таблиці студенти з умовою, що НомерЗаліки дорівнюватиме цілісній змінній numb. SELECTCOUNT(*) FROM Іспит WHEREКодПредмета='+IntToStr(pred)+' – простий запит, що використовує агрегатну функцію COUNT(*) для підрахунку іспитів за заданим КодомПредмета. SELECTCOUNT(*) FROM Іспит WHERE Оцінка>3 – запит використовує агрегатну функцію COUNT(*) для підрахунку кількість оцінок вище 3, у таблиці Іспит. SELECT TOP 1 Найменування FROM Предмет WHERE КодПредметаIN(SELECT COUNT(*) as Оцінка FROM Екзамен WHERE Оцінка=2 GROUP BY КодПредмета ORDER BY 1 DESC) – складний запит на вибірку. TOP 1 – означає, що виводитиметься лише перший за значенням. GROUPBYКодПредмета означає, що дані групуються по заданому полю. ORDERBY 1 DESC – визначає, що впорядкування відбувається по 1 стовпцю в порядку зменшення. Таким чином, вкладений запит підраховує кількість оцінок рівних 2, потім отримує два результати 2 (Математика), 1 (Фізика). Сортує їх у порядку зменшення. Потім передає в основний запит, який виводить лише верхній, тобто. максимальний. SELECT Найменування FROM Предмет WHERE КодПредметаIN(SELECT КодПредмета FROM Іспит WHERE НомерЗаліковки IN(SELECT НомерЗаліковки FROM Студент WHERE Група='''+group+'')) – складний запит, який використовує дві вкладеності. Спочатку вибирається Номери Заліки з таблиці Студенти, відповідно до прописаної групи, далі номери передаються і проглядаються яким Іспиту відповідають дані номери в таблиці Іспит і нарешті в Таблиці КодПредмету виводяться предмети. SELECT ДомашняАдреса FROM Студент WHERE НомерЗалікиIN(SELECT НомерЗаліки FROM Екзамен WHERE Оцінка=5 andКодПредмета='+IntToStr(pred)+') – складний запит, який використовує вкладеність. Спочатку вкладений запит вибирає такі НомериЗаліки в таблиці Іспит, у яких Оцінка з певного предмета 5. Потім дані передаються і з таблиці Студент знаходиться їх ДомашняАдреса. Компоненти та процедури розробленої програми 7. Документація користувача Встановлення з'єднання БД із клієнтською програмою відбувається за допомогою компонента ADOConnection, в якому в режимі браузера задається необхідний рядок з'єднання. Якби у нас був багатовіконний додаток, то був би сенс у відключенні та підключенні БД динамічно, але так як у нас лише одне вікно, це не має великого значення. Рисунок 16 – Властивість каналу Для з'єднання використовувався провайдер MicrosoftJet 4.0 OLEDBProvider та технологія ADO. Рядок з'єднання пов'язаний з іншими компонентами зв'язку – ADOQuery, DataSourse та DBGrid. Рисунок 17 – Тестові дані таблиці «Студент» Рисунок 18 – Тестові дані таблиці «Іспит» Рисунок 19 – Тестові дані таблиці «Предмет» 8. Інтерфейс програмиІнтерфейс програми складається з наступних компонентів: DBGrid – необхідний відображення Бази Даних; ADOConnection – містить рядок підключення з БД; ADOQuery – містить запити SQL; 2 компоненти Memo - службовці для виведення тексту запиту та пояснення, що він повинен робити; 2 компоненти ComboBox – необхідні для вибору запитів або таблиць; 8компонентів Label – для виведення на екран пояснювальних написів; 4 компоненти Edit - для введення даних нових змінних; Рисунок 20 – Інтерфейс програми 9. Результати роботи програмиТаблиціВідображення таблиці "Студент" Рисунок 21 – таблиця «Студент» Відображення таблиці «Іспит» Рисунок 22 – таблиця «Іспит» Відображення таблиці "Предмет" Рисунок 23 – таблиця «Предмет» ЗапитиЗапит 1 - отримайте дані про студентів зазначеної групи; Рисунок 24 – відповідь на запит 1 Запит 2 – отримайте дані про студентів, які склали іспит після зазначеної дати; Рисунок 25 – відповідь на запит 2 Запит 3 - отримайте дані про студента за номером його заліковки; Рисунок 26 – відповідь на запит 3 Запит 4 - отримайте дані про кількість студентів, які складали іспити з предметів; Рисунок 27 – відповідь на запит 4 Запит 5 – отримайте відомості про кількість студентів, які отримали позитивні оцінки; Рисунок 28 – відповідь на запит 5 Запит 6 - отримайте назву предмета, яким поставлено найбільшу кількість двійок; Рисунок 29 – відповідь на запит 6 Запит 7 – отримайте дані про предмети, які складали студенти заданої групи; Рисунок 30 – відповідь на запит 7 Запит 8 – отримайте домашні адреси студентів, які здали на «відмінно» зазначений предмет; Рисунок 31 – відповідь на запит 8 ВисновокУ міру роботи з проектом були створені логічна та фізична моделі бази даних, встановлені зв'язки, створені запити мовою SQL та в конструкторі запитів, були зроблені звіти за запитами, створені таблиці та заповнені тестовими даними, форми перегляду, редагування та введення даних. У ході виконання курсового проекту було виконано поставлену мету та завдання, а саме: Практично застосовано різні методи проектування інформаційних систем; Було вироблено навички роботи з базами даних; Засвоєно прийоми роботи з СУБД Access та мовою SQL; Так само, в ході роботи над курсовим проектом було розроблено додаток користувача, який дозволяє працювати з базою даних, здійснювати подачу запитів на вибірку даних відповідно до завдання. На додаток, були отримані навички з використання технології з'єднання з базами даних - ADO. У ході розробки додатка користувача, були на практиці продемонстровані можливості мови SQL на можливість складної вибірки, умовної вибірки та використання вкладених запитів. Додаток 1Лістинг процедури створення форми Додаток 2 Лістинг SQL-запитів Розміщено на Allbest.ur |