Створення програм баз даних. Розробка програм баз даних. Опис модуля Unit1

Надіслати свою гарну роботу до бази знань просто. Використовуйте форму, розташовану нижче

Студенти, аспіранти, молоді вчені, які використовують базу знань у своєму навчанні та роботі, будуть вам дуже вдячні.

Розміщено на http://www.allbest.ru/

Вступ

3. Моделі організації даних

4. Реляційні бази даних

6. Інфологічна модель

7. Логічна модель

8. Структура таблиць

12. Створення таблиць

16. Створення звітів

17. Лістинг програми

Висновок

Список літератури

Вступ

Для прийняття обґрунтованих та ефективних рішень у виробничій діяльності, в управлінні економікою та у політиці сучасний спеціаліст повинен уміти за допомогою комп'ютерів та засобів зв'язку отримувати, накопичувати, зберігати та обробляти дані, представляючи результат у вигляді наочних документів. Тому так важливо вміти працювати з базами даних.

База даних - це організована структура, що призначена для зберігання інформації. У сучасних базах даних зберігаються як дані, а й інформація.

Про Delphi говорять як про середовище швидкого створення програм. Це розробка візуального програмування, тобто. Користувач оформляє свою майбутню програму, і бачить результати своєї роботи ще до запуску самої програми. У принципі, сам процес написання програми поділяється на дві частини. Перший - програміст має у своєму розпорядженні вікна своєї програми необхідні елементи, позиціонує, встановлює потрібні розміри, змінює властивості. Другий - власне, написання програмного коду, опис властивостей елементів, доступних тільки під час роботи програми, опис реакцій на подію поява вікна, натискання на кнопку та ін. Для завдання будь-яких властивостей елементу програми зовсім не обов'язково писати масивні текстові рядки змінити цю властивість в інспекторі об'єктів (так званому моніторі властивостей вибраного елемента). Ця зміна автоматично доповнить або модифікує програмний код.

Це великий плюс у візуальній технології програмування. Створюючи або модифікуючи свій програмний продукт, користувач не знаючи або не звертаючи уваги деякі властивості елемента програми, а використовуючи лише необхідні, пише повністю готовий робочий продукт, часом виступає на рівних за складністю, з написаними на невізуальному редакторі.

Перед нами стоїть завдання скласти базу даних, яка містила б дані про навчальний план навчального процесу. Заповнивши базу даних, необхідно провести вибірковий аналіз за допомогою Sql-запитів.

база інфологічний таблиця програма

1. Загальні вимоги до розробки додатків БД

База даних має містити

a. Таблиці, зберігання даних, щонайменше 3-х таблиць. Кожна таблиця повинна містити щонайменше 10 записів.

b. Форми для зручного перегляду, введення, редагування та пошуку даних, формування та відображення запитів. На формі повинні бути пояснення, підказки. При заповненні полів форми для відомих наборів значень використовувати можливість вибору значень зі списку. Форми повинні бути пов'язаними, по можливості, для оптимізації навігації за записами. На формі по можливості має бути максимум інформації для користувача. Передбачити обробку семантичних помилок, що виникають.

с. Звіти, що містять усі таблиці, форми, запити

d. Меню для доступу до різних об'єктів бази даних

e. Довідка, що містить повний опис завдання

2. Для програмування бази даних необхідно використовувати додаткову літературу з мови SQL, система програмування DELPHI.

3. Перелік і способи самостійно розв'язуваних задач

1. Аналіз постановки задачі та предметної області.

2. Інфологічне проектування, обґрунтування інформаційних об'єктів, доменів, атрибутів, зв'язків, складання інфологічної моделі.

3. Логічне проектування, побудова та обґрунтування базових відносин, нормалізація.

4. Проектування Sql-запитів.

5. Програмування структури та загальних функцій у базі даних.

6. Проектування БД у програмному середовищі.

7. Розробка інтерфейсу програми.

8. Оформлення пояснювальної записки.

4. Критерії оцінки отриманих компетенцій з курсової роботи

Критерії заповнюються викладачем під час захисту роботи, наведені у таблиці 1. За підсумками середньої оцінки виставляється оцінка за курсову работу.

Таблиця 1. Оцінка компетенцій

Назва компетенцій

Об'єкт оцінювання

Розуміти вимоги та слідувати їм

Отримані результати (БД) (обсяг, структура, відповідність до завдання)

Письмова комунікація

Якість викладу в пояснювальній записці, зрозумілість, обсяг структури, відповідність завдання.

Знати та застосовувати елементи системи програмування DELPHI

Компоненти програми БД, відповіді на питання щодо реалізації БД

Знати та застосовувати елементи технології БД

Відповіді на питання, пов'язані з проектуванням, можливі у форматі тесту

Розуміти потреби у застосуванні технології БД

Введення пояснювальної записки

Планування роботи, організація роботи

Терміни виконання робіт

Самостійно вирішувати задачі

Перелік та способи самостійно розв'язуваних завдань

Усна комунікація

Публічна захист БД

Здатність до аналізу, синтезу

Інфологічна, логічна модель БД

Прагнення якості результату

Якість виконаних робіт, ергономічні показники, якість функціонування.

Здатність породжувати нові ідеї

Якість інтерфейсу, додаткові функції БД, не враховані у завданні.

Здатність до управління (пошуку) інформацією

Кількість інформаційних ресурсів, знайдених та використовуваних у курсовій роботі, кількість консультантів.

2. Основні поняття та класифікація систем управління базами даних

База даних (БД) являє собою сукупність структурованих даних, що зберігаються в пам'яті обчислювальної системи і відображають стан об'єктів та їх взаємозв'язків у предметній області.

Логічну структуру даних, що зберігаються в основі, називають моделлю представлення даних. До основних моделей уявлення даних (моделям даних) відносяться ієрархічна, мережева, реляційна.

Система управління базами даних (СУБД) - це комплекс мовних та програмних засобів, призначений для створення, ведення та спільного використання БД багатьма користувачами. Зазвичай СУБД розрізняють по моделі даних. Так, СУБД, що ґрунтуються на використанні реляційної моделі даних, називають реляційними СУБД.

Для роботи з базою даних досить коштів СУБД. Однак якщо потрібно забезпечити зручність роботи з БД некваліфікованим користувачам або інтерфейс СУБД не влаштовує користувачів, то можуть бути розроблені програми. Їх створення потребує програмування. Додаток є програмою або комплексом програм, що забезпечують автоматизацію вирішення будь-якої прикладної задачі. Програми можуть створюватися в середовищі або поза середовищем СУБД - за допомогою системи програмування, що використовує засоби доступу до БД, наприклад, Delphi або С++ Вуildег. Програми, розроблені серед СУБД, часто називають додатками СУБД, а додатки, розроблені поза СУБД, - зовнішніми додатками.

Словник даних являє собою підсистему БД, призначену для централізованого зберігання інформації про структури даних, взаємозв'язки файлів БД один з одним, типи даних і формати їх подання, належність даних користувачам, коди захисту та розмежування доступу тощо.

Інформаційні системи, засновані на використанні БД, зазвичай функціонують у архітектурі клієнт-сервер. І тут БД розміщується на комп'ютері-сервері, і до неї здійснюється спільний доступ.

Сервером певного ресурсу в комп'ютерній мережі називається комп'ютер (програма), керуючий цим ресурсом, клієнтом – комп'ютер (програма), який використовує цей ресурс. Як ресурс комп'ютерної мережі можуть бути, наприклад, бази даних, файли, служби друку, поштові служби.

Гідністю організації інформаційної системи на архітектурі клієнт-сервер є вдале поєднання централізованого зберігання, обслуговування та колективного доступу до загальної корпоративної інформації з індивідуальною роботою користувачів.

Згідно з основним принципом архітектури клієнт-сервер, дані обробляються лише на сервері. Користувач або програма формують запити, що надходять до сервера БД у вигляді інструкцій мови SQL. Сервер бази даних забезпечує пошук та вилучення потрібних даних, які потім передаються на комп'ютер користувача. Перевагою такого підходу порівняно з попереднім є помітно менший обсяг даних, що передаються.

Виділяють такі види СУБД:

* повнофункціональні СУБД;

*сервери БД;

* Засоби розробки програм роботи з БД.

Повнофункціональні СУБД є традиційні СУБД. До них відносяться dBase IV, Microsoft Access, Microsoft FoxPro та ін.

Сервери БД призначені організації центрів обробки даних у мережах ЕОМ. Сервери БД забезпечують обробку запитів клієнтських програм зазвичай з допомогою операторів SQL. Прикладами серверів БД є: Microsoft SQL Server, Inter Base та ін.

У ролі клієнтських програм у випадку можуть використовуватися СУБД, електронні таблиці, текстові процесори, програми електронної пошти та інших.

Засоби розробки програм роботи з БД можуть використовуватись для створення наступних програм:

* клієнтських програм;

* серверів БД та їх окремих компонентів;

* Користувацьких додатків.

За характером використання СУБД ділять на розраховані на багато користувачів (промислові) і локальні (персональні).

Промислові, СУБД є програмну основу розробки автоматизованих систем управління великими економічними об'єктами. Промислові СУБД повинні задовольняти такі вимоги:

* Можливість організації спільної паралельної роботи багатьох користувачів;

* масштабованість;

* Перенесення на різні апаратні та програмні платформи;

* стійкість по відношенню до збоїв різноманітних, у тому числі наявність багаторівневої системи резервування збереженої інформації;

* забезпечення безпеки даних і розвиненої структурованої системи доступу до них.

Персональні СУБД - це програмне забезпечення, орієнтоване на вирішення завдань локального користувача або невеликої групи користувачів та призначене для використання на персональному комп'ютері. Це пояснює і їхню другу назву - настільні. Визначальними характеристиками настільних систем є:

* відносна простота експлуатації, що дозволяє створювати на їх основі працездатні користувацькі додатки;

* щодо обмежені вимоги до апаратних ресурсів.

По моделі даних СУБД поділяють на ієрархічні, мережеві, реляційні, объектно-ориентированные та інших. Деякі СУБД можуть одночасно підтримувати кілька моделей даних.

Для роботи з даними, що зберігаються в базі, використовуються такі типи мов:

*мова опису даних - високорівнева непроцедурна мова
декларативного типу, призначений для опису логічного
структури даних

* мова маніпулювання даними - сукупність конструкцій, які забезпечують виконання основних операцій з роботі з даними: введення, модифікацію та вибірку даних за запитами.

Названі мови у різних СУБД можуть мати відмінності. Найбільшого поширення набули дві стандартизовані мови: QBE - мова запитів за зразком і SQL - структурована мова запитів. QBE в основному володіє властивостями мови маніпулювання даними, SQL поєднує в собі властивості мов обох типів.

СУБД реалізує такі основні функції низького рівня:

* управління даними у зовнішній пам'яті;

* управління буферами оперативної пам'яті;

* Управління транзакціями;

* ведення журналу змін у БД;

* забезпечення цілісності та безпеки БД.

Реалізація функції управління даними зовнішньої пам'яті забезпечує організацію управління ресурсами у файлової системі ОС.

Необхідність буферизації даних обумовлена ​​тим, що обсяг оперативної пам'яті менший за обсяг зовнішньої пам'яті. Буфери є області оперативної пам'яті, призначені для прискорення обміну між зовнішньою та оперативною пам'яттю. У буферах тимчасово зберігаються фрагменти БД, дані з яких передбачається використовувати при зверненні до СУБД або планується записати до бази після обробки.

Механізм транзакцій використовується в СУБД підтримки цілісності даних у основі. Транзакцією називається деяка неподільна послідовність операцій над даними БД, яка відстежується СУБД від початку до завершення. Якщо з будь-яких причин (збої та відмови обладнання, помилки в програмному забезпеченні, включаючи додаток) транзакція залишається незавершеною, вона скасовується.

Транзакції притаманні три основні властивості:

* атомарність (виконуються всі операції, що входять в транзакцію, або жодна);

* серіалізуемість (відсутня взаємний вплив виконуваних одночасно і транзакцій);

* Довговічність (навіть крах системи не призводить до втрати результатів зафіксованої транзакції).

Приклад транзакції є операція переказу грошей з одного рахунку на інший в банківській системі. Спочатку знімають гроші з одного рахунку, потім нараховують на інший рахунок. Якщо хоча б одна з дій не виконається успішно, результат операції виявиться неправильним і буде порушено баланс операції.

Ведення журналу змін виконується СУБД для забезпечення надійності зберігання даних у базі за наявності апаратних та програмних збоїв.

Забезпечення цілісності БД є необхідною умовою успішного функціонування БД, особливо при її мережному використанні. Цілісність БД - це властивість бази даних, що означає, що в ній міститься повна, несуперечлива і адекватно відображає предметну область інформація. Цілісний стан БД описується за допомогою обмежень цілісності у вигляді умов, яким повинні задовольняти дані, що зберігаються в базі.

Забезпечення безпеки досягається в СУБД шифруванням даних, парольним захистом, підтримкою рівнів доступу до бази даних та окремих її елементів (таблиць, форм, звітів та ін.).

3. Моделі організації даних

В ієрархічній моделі об'єкти-сутності та відношення предметної області є наборами даних, які мають деревоподібну (ієрархічну) структуру. Ієрархічна модель даних була історично першою. На її основі наприкінці 60-х - на початку 70-х років були розроблені перші професійні СУБД.

Основна увага в обмеженнях цілісності в ієрархічній моделі приділяється цілісності посилань між предками та нащадками з урахуванням основного правила: ніякий нащадок не може існувати без батька.

Мережева модель даних дозволяє відображати різноманітні взаємозв'язки елементів даних як довільного графа. Мережева БД складається з набору записів та набору відповідних зв'язків. На формування зв'язку спеціальних обмежень не накладається. Якщо в ієрархічних структурах запис-нащадок могла мати лише один запис-предка, то в мережній моделі даних запис-нащадок може мати довільне число записів-предків.

Перевагою міделі даних є можливість її ефективної реалізації. У порівнянні з ієрархічною моделлю мережева модель надає більші можливості у сенсі допустимості утворення довільних зв'язків.

Недоліком мережевої моделі даних є висока складність та жорсткість схеми БД, побудованої на її основі, а також складність її розуміння звичайним користувачем. Крім того, у мережній моделі даних ослаблений контроль цілісності зв'язків через допустимість встановлення довільних зв'язків між записами.

Системи на основі мережевої моделі не набули широкого поширення на практиці.

Реляційна модель даних запропонована співробітником фірми IВМ Едгаром Коддом і ґрунтується на понятті відносини (relation).

Ставлення є безліч елементів, званих кортежами. Наочною формою уявлення відносини є двовимірна таблиця.

За допомогою однієї таблиці зручно описувати найпростіший вид зв'язків між даними, а саме: розподіл одного об'єкта, інформація про який зберігається в таблиці, на безліч подібних об'єктів, кожному з яких відповідає рядок або запис таблиці.

Основними недоліками реляційної моделі є такі: відсутність стандартних засобів ідентифікації окремих записів та складність опису ієрархічних та мережевих зв'язків.

4. Реляційні бази даних

Реляційна модель даних (РМД) деякої предметної області є набір відносин, що змінюються у часі. p align="justify"> При створенні інформаційної системи сукупність відносин дозволяє зберігати дані про об'єкти предметної області і моделювати зв'язки між ними. Терміни РМД представлені у табл. 4.1

Таблиця 4.1. Терміниреляційної моделі

Термінреляційного одягу

Еквівалентний

Ставлення

Схема відношення

Рядок заголовків стовпців таблиці (заголовок таблиці)

Рядок таблиці, запис

Сутність

Опис властивостей об'єкту

Стовпець, поле

Безліч допустимих значень

атрибута

Первинний ключ

Унікальний ідентифікатор

Кардинальність

Кількість рядків

Кількість стовпців

Реляційна база даних є сховище даних, що містить набір двовимірних таблиць. Дані в таблицях повинні відповідати наступним принципам:

1. Значення атрибутів мають бути атомарними (іншими словами,
кожне значення, що міститься на перетині рядка та колонки,
має бути не розчленовується на кілька значень).

2. Значення кожного атрибута повинні належати до одного і того ж типу.

3. Кожен запис у таблиці є унікальним.

4. Кожне поле має унікальне ім'я.

5. Послідовність полів та записів у таблиці не суттєва.

Ставлення є найважливішим поняттям і є двомірною таблицею, що містить деякі дані.

Сутність є об'єктом будь-якої природи, дані про який зберігаються в базі даних. Дані про сутність зберігаються у відношенні.

Атрибути є властивостями, що характеризують сутність. У структурі таблиці кожен атрибут називається і відповідає заголовок деякого стовпця таблиці.

Ключем відношення називається сукупність його атрибутів, що однозначно ідентифікують кожен із кортежів відношення. Іншими словами, безліч атрибутів К, що є ключем відношення, має властивість унікальності. Наступна властивість ключа - не надмірність. Тобто жодна зі своїх підмножин безлічі До не має властивість унікальності.

Кожне відношення завжди має комбінацію атрибутів, яка може бути ключем.

Можливі випадки, коли відношення має кілька комбінацій атрибутів, кожна з яких однозначно визначає кортежі відносини. Усі ці комбінації атрибутів є можливими ключами відношення. Будь-який із можливих ключів може бути обраний як первинний.

Ключі зазвичай використовують для досягнення таких цілей:

Винятки дублювання значень у ключових атрибутах (інші атрибути до уваги не приймаються);

Упорядкування кортежів. Можливе впорядкування за зростанням або зменшенням значень всіх ключових атрибутів, а також змішане впорядкування (по одним - зростання, а по інших - спадання);

Організації зв'язування таблиць.

Важливе поняття зовнішнього ключа. Зовнішній ключ можна визначити як множину атрибутів одного відношення R2, ​​значення яких повинні співпадати зі значеннями можливого ключа іншого відношення R1.

Атрибути відношення К2, що становлять зовнішній ключ, не є ключовими для цього відношення.

З допомогою зовнішніх ключів встановлюються зв'язок між відносинами.

Проектування баз даних інформаційних систем є досить трудомістким завданням. Воно складає основі формалізації структури та процесів предметної області, відомості про яку передбачається зберігати в БД. Розрізняють концептуальне та схемно-структурне проектування.

Концептуальне проектування БД ІС є значною мірою евристичним процесом. Адекватність побудованої у межах інфологічної моделі предметної області перевіряється досвідченим шляхом, у процесі функціонування ІС.

Етапи концептуального проектування:

* Вивчення предметної області для формування загального уявлення про неї;

* виділення та аналіз функцій та завдань розроблюваної ІС;

* Визначення основних об'єктів-сутностей предметної області
та відносин між ними;

* Формалізоване уявлення предметної області.

При проектуванні схеми реляційної БД можна назвати такі процедури:

* визначення переліку таблиць та зв'язків між ними;

* Визначення переліку полів, типів полів, ключових полів кожної таблиці (схеми таблиці), встановлення зв'язків між таблицями через зовнішні ключі;

* встановлення індексування для полів у таблицях;

* розробка списків (словників) для полів з перелічними
даними;

* встановлення обмежень цілісності для таблиць та зв'язків;

* нормалізація таблиць, коригування переліку таблиць та зв'язків. Проектування БД складає фізичному і логічному рівнях. Проектування фізично реалізується засобами СУБД і найчастіше автоматизовано.

Логічне проектування полягає у визначенні числа та структури таблиць, розробці запитів до БД, звітних документів, створенні форм для введення та редагування даних у БД тощо.

Однією з найважливіших завдань логічного проектування БД є структуризація даних. Вирізняють такі підходи до проектування структур даних:

* об'єднання інформації про об'єкти-сутності в рамках однієї таблиці (одного відношення) з подальшою декомпозицією на кілька взаємозалежних таблиць на основі процедури нормалізації відносин;

* формулювання знань про систему (визначення типів вихідних даних та взаємозв'язків) та вимог до обробки даних, отримання за допомогою СА5Е-системи готової схеми БД або навіть готової прикладної інформаційної системи;

* Здійснення системного аналізу та розробка з труктурних моделей.

5. Призначення та принцип роботи SQL

SQL (часто вимовляється як "Сіквел", скорочена назва від Structured Query Language) символізує собою Структурований Мова Запитів.

SQL є інструментом, призначеним для обробки та читання даних, що містяться у комп'ютерній базі даних. Це мова, яка дає можливість ефективно створювати реляційні бази даних та працювати з ними.

Світ баз даних стає все більш і більш єдиним, що призвело до необхідності створення стандартної мови, яка могла б функціонувати у великій кількості різних видів комп'ютерних середовищ. Стандартна мова дозволить користувачам знає один набір команд, використовувати їх щоб створювати, відшукувати, змінювати, і передавати інформацію незалежно від того, чи працюють вони на персональному комп'ютері, мережній робочій станції, або на універсальній ЕОМ. У все більш і більше взаємопов'язаному комп'ютерному світі, користувач, з такою мовою, має величезну перевагу у використанні та узагальненні інформації з низки джерел за допомогою великої кількості способів.

Як випливає з назви, SQL є мовою програмування, яка застосовується для організації взаємодії користувача з базою даних. Насправді SQL працює лише з базами даних реляційного типу.

6. Інфологічна модель

При створенні інфологічної моделі була проаналізована предметна область заданої бази даних «Навчальні плани дисциплін напряму ПМІ, що вивчаються». Було виділено 4 об'єкти: Навчальний план, Дисципліна, Студент, Викладач, а також дві додаткові таблиці, які здійснюють зв'язок між студентами та дисциплінами, а також між викладачами та дисциплінами. Об'єкт Навчальний план має атрибути: рік створення, номер навчального плану. Об'єкт Дисципліна має такі атрибути: Назва дисципліни, Код дисципліни, Номер навчального плану, Кількість годин лекцій, Кількість годин практик, Кількість годин на лабораторні роботи, Всього годин, Кількість годин на тиждень, Форма звітності з дисципліни, Семестр вивчення. Об'єкт Судент має атрибути: Номер залікової книжки, ПІБ. І об'єкт Викладач має атрибути: ПІБ, Табельний номер, Кафедра, Посада, Телефон. Об'єкти Навчальний план та Дисципліна пов'язані щодо 1:n, об'єкти Дисципліна та Студент пов'язані ставленням 1:n, та об'єкти Дисципліна та Викладач пов'язані ставленням 1:n.

При описі інфологічної моделі використовувалися ER-діаграми:

Малюнок 1

7. Логічна модель

Логічна модель визначає поняття предметної області, їх взаємозв'язок, і навіть обмеження на дані, накладені предметної областю.

Логічна модель даних є початковим зразком майбутньої бази даних. Вона будується у термінах інформаційних одиниць, але не прив'язки до конкретної СУБД. Понад те, логічна модель даних необов'язково має бути виражена засобами саме реляційної моделі даних.

Для створення логічної моделі кожному об'єкту була поставлена ​​у відповідність таблиця, з певним набором полів. Оскільки Об'єкти Дисципліна та Викладач пов'язані щодо 1:n, то з'являється додаткова таблиця для представлення зв'язку між об'єктами Дисципліна та Викладач: Викладає.

Всього у нас 4 об'єкти і отже буде 4 таблиці для їх подання, об'єкт Навчальний план є лише інформаційним, оскільки робота бази даних здійснюється лише з одним навчальним планом:

Але між двома об'єктами є зв'язок 1:n, тому необхідно ввести ще одну таблицю для представлення зв'язків між цими таблицями. Це буде таблиця Викладає (Disciplina-Prepodavatel) та таблиця Вивчає (Disciplina-Student).

Подану базу даних можна віднести до 5-ї нормальної форми, т.к. вона відноситься до 3-ї нормальної форми і первинний ключ є простим. Логічна схема реалізована у Microsoft Access.

Малюнок 2

8. Структура таблиць

Вихідна база даних складається з 5 таблиць (таблицю Навчальні плани не рахуємо, тому що використовується один навчальний план).

Розшифровка полів:

v Disciplina.db

Ш Nazv - назва дисципліни, тип поля: String;

Ш Kod – унікальний код дисципліни: LongInt;

Ш Semestr - семестр, у якому вона викладається: String;

Ш KolLeKCh – кількість лекцій з даної дисципліни: LongInt;

Ш KolPraktCh – кількість практик з даної дисципліни: LongInt;

Ш KolLabRabCh - кількість лекцій з цієї дисципліни: LongInt;

Ш VsegoCh - загальна кількість годин: LongInt;

Ш NomerYP – номер навчального плану, в якому міститься дисципліна: LongInt.

v Student.db

Ш NomerStudBileta – номер студентського квитка: LongInt;

Ш FIO – прізвище студента: ShortInt;

v Prepodaet.db (Disciplina-Prepodavatel)

TabNomerPrepod - табельний номер викладача, який викладає відповідну дисципліну: LongInt;

Ш FIO- ПІБ викладача, який викладає відповідну дисципліну: String.

v Prepod.db

Ш FIO - ПІБ викладача: String;

Ш TabelNomerPrepodavatelya - унікальний табельний номер викладача: LongInt;

Ш Kafedra – кафедра, на якій він працює: String;

Ш Dolshnost - Посада викладача: String;

Ш Telefon-контактний телефон викладача: String.

v Izuchaet.db(Disciplina-Student)

Ш KodDiscip-код дисципліни: LongInt;

Ш NomerStudBileta – номер студентського квитка студента, який вивчає дисципліну: LongInt;

Ш FIO- ПІБ студента, який вивчає відповідну дисципліну: String;

Ш Ocenka - оцінка студента з дисципліни, що вивчається: LongInt;.

9. Проектування SQL-запитів

1. Сформувати список заліків та іспитів для кожного семестру.

select Nazv,FormaOtchet

where Semestr=:s and

(Disciplina.FormaOtchet="Залік" or Disciplina.FormaOtchet="Іспит") ;

2. Сформувати екзаменаційно-залікові відомості/ основні та додаткові/ з кожного предмета.

Основна відомість:

select Prepodaet.FIO,

Disciplina.ObsheeKolChVNed,Disciplina.Semestr,Izuchaet.FIO,Izuchaet.

Ocenka,Disciplina.Nazv

від Disciplina, Prepodaet,Izuchaet

where Disciplina.KodDiscip=Prepodaet.KodDiscip

and (Disciplina.FormaOtchet="Іспит" or Disciplina.FormaOtchet="Залік")

Додаткова відомість (для студентів, які мають 2):

select Disciplina.Nazv,Prepodaet.FIO,

Disciplina.ObsheeKolChVNed,Izuchaet.FIO,Disciplina.Semestr,Izuchaet.Ocenka

від Izuchaet,Disciplina,Prepodaet

where Izuchaet.Ocenka="2"

and Disciplina.KodDiscip=Izuchaet.KodDiscip

and Disciplina.KodDiscip=Prepodaet.KodDiscip

and (Disciplina.FormaOtchet="Іспит" or Disciplina.FormaOtchet="Залік");

Update Disciplina

set ObsheeKolChVNed=VsegoCh/17;

4. Підготувати вкладку для диплома кожного студента:

select Disciplina.Nazv, Izuchaet.Ocenka, Izuchaet.FIO

від Izuchaet, Disciplina

where Disciplina.KodDiscip=Izuchaet.KodDiscip

and Disciplina.FormaOtchet="Іспит"

Select AVG(Ocenka) as SrBall

Order by SrBall desc;

5. Видати список групи в порядку зменшення середнього балу:

Select FIO, AVG(Ocenka) as SrBall

Order by SrBall desc;

10. Структура та функції системи

Курсова робота складається з одного проекту "Project1" та 13 модулів.

1. Unit1 - тут зберігається форма, що є титульний лист. Використовуються компоненти Memo, Button.

2. Unit2 - тут зберігається форма, що є початкову сторінку бази даних. Тут застосовуються компоненти: Button, Memo.

3. Unit3 - тут зберігається форма, що містить у вигляді вкладок усі таблиці бази даних. Тут використовуються компоненти: Memo, Button, TabSheet, Table, DBGrid, DBNavigator, Label, Query.

4. Unit4 - тут зберігається форма, де відображається завдання. Тут застосовуються компоненти: Memo, Button.

5. Unit5 - тут зберігається форма, де відображається додаткова екзаменаційна відомість. Тут використовуються компоненти: Memo, Button, TabSheet, Table, DBGrid, DBNavigator, Label, Query.

6. Unit6 – тут зберігається форма, на якій відображається список іспитів та заліків. Тут використовуються компоненти: Memo, Button, TabSheet, Table, DBGrid, DBNavigator, Label, Query.

7. Unit7 - тут зберігається форма, де відображається основна екзаменаційна відомість. Тут використовуються компоненти: Memo, Button, TabSheet, Table, DBGrid, DBNavigator, Label, Query.

8. Unit8 - тут зберігається форма, де відображається список групи порядку спадання. Тут використовуються компоненти: Memo, Button, TabSheet, Table, DBGrid, DBNavigator, Label, Query.

9. Unit9 - тут зберігається форма, де відображається вкладиш в диплом. Тут використовуються компоненти: Memo, Button, TabSheet, Table, DBGrid, DBNavigator, Label, Query.

10. Unit10 – тут зберігається форма, на якій відображається форма із заповнення електронної відомості. Тут використовуються компоненти: Memo, Button, TabSheet, Table, DBGrid, DBNavigator, Label, Query.

11. Unit11 - тут зберігається форма, де відображається меню. Тут застосовуються компоненти: Memo, Button, Label.

12. Unit12 – тут зберігається форма, на якій відображається звіт щодо створення електронної екзаменаційної відомості. Тут використовуються компоненти: Memo та Button, RVProject, RVQueryConnnection та Query.

13. Unit13 - тут зберігається форма, де відображається звіт зі створення вкладиша в диплом. Тут використовуються компоненти: Memo та Button, RVProject, RVQueryConnnection та Query.

11. Посібник користувача

1. Запускаємо проект. Перед нами з'являється титульний лист курсової роботи

Малюнок 3

Тут ми можемо відразу увійти до бази даних, а можемо подивитися завдання та повернутися до цієї форми. Вибираємо «Показати завдання»

2. Перед нами з'являється вікно з інформацією про завдання курсової роботи

Малюнок 4

3. Повертаємось назад, натиснувши на відповідну кнопку та починаємо роботу, натиснувши на кнопку попереднього вікна «Продовжити»

Малюнок 5

4. Ознайомившись з інформацією на даній сторінці, натискаємо кнопку «Вхід»

Малюнок 6

Перед нами з'являється вікно, що містить на вкладках всю інформацію, що міститься в базі даних. Тут ми можемо переглянути список дисциплін, навчальну групу, викладачів, що вивчають ті чи інші студенти та який предмет викладачі викладають.

5. Також із цього вікна ми можемо перейти до запитів. Натискаємо на відповідну кнопку.

Малюнок 7

Тут ми можемо вибрати будь-який запит просто натиснувши на відповідну кнопку. Також тут ми можемо повернутися до таблиць та перейти до формування електронного варіанту екзаменаційної відомості.

6. Натискаємо на кнопку «Переглянути список заліків та іспитів для кожного семестру»

Малюнок 8

Тут необхідно ввести номер семестру і натиснути кнопку нижче, далі в віконці таблиці з'явиться список іспитів і заліків для введеного вами семестру. З цього листа ми можемо повернутися до запитів.

7. Натискаємо на кнопку «Перейти до основної екзаменаційної відомості»

Тут необхідно вибрати назву дисципліни з списку, потім ввести цю назву в віконце під списком і натиснути на кнопку «Виконати». Запит покаже загальну кількість годин на тиждень на вивчення введеної дисципліни, а також відобразить список студентів, які вивчають цю дисципліну та їх оцінку за цю дисципліну. Увага! Поле оцінка заповнюється на формі таблиці всередині вкладки Студент-Дисципліна. Також на цьому аркуші можна сформувати додаткову екзаменаційну відомість. Для студентів, які мають оцінку 2. З цього листа ми можемо повернутися до запитів.

Малюнок 9

8. Натискаємо на кнопку «Перейти до додаткової екзаменаційної відомості»

Малюнок 10

Тут ми можемо побачити студентів, які мають оцінку 2 з тієї чи іншої дисципліни. З цього листа ми можемо повернутися до запитів.

9. Натискаємо кнопку «Сформувати вкладиш для диплома»

Малюнок 11

Тут необхідно ввести ПІБ випускника, обравши відповідного студента зі списку, що випадає. Далі натиснути клавішу. І тоді на запит заповниться стовпець «Дисципліна» списком вивчених дисциплін на 5 років навчання, а також з'являться відповідні їм оцінки. На цьому ж аркуші можна переглянути електронну версію вкладки, натиснувши кнопку «Версія для друку». Після перегляду даної версії необхідно просто закрити вікно, що відкрилося, на червоний хрестик у правому верхньому кутку екрана.

Малюнок 12

10. Натискаємо на кнопку «Переглянути список групи в порядку зменшення середнього балу»

Малюнок 13

Тут ми бачимо список групи та відповідний кожному студенту середній бал, розташований у порядку зменшення. З цього листа ми можемо повернутися до запитів.

Малюнок 14

Виберемо з випадаючого списку дисципліну, що цікавить нас, наприклад, економіка і введемо її назву у вікно під випадаючим списком. Далі натиснемо кнопку виконати та побачимо прізвище викладача даної дисципліни.

Малюнок 16

Тут ми бачимо назву обраної дисципліни, ПІБ викладача цієї дисципліни. А також список студентів, які вивчали цю дисципліну. Для виходу зі звіту просто натисніть на хрестик у верхньому правому кутку екрана. Повертаємось на попередній лист. З цього листа ми можемо повернутися до запитів.

12. Створення таблиць

Для створення таблиць використовувався утиліт Database Desktop. Його можна запустити - Пуск/Програми/Borland Delphi 7/Database Desktop. Необхідно налаштувати робочий каталог утиліти. Виберіть команду File/Working Directory та встановіть ваш робочий каталог. Для створення таблиці виберіть команду File/New/Table. Потім потрібно вибрати тип таблиці. Тип PARADOX 7 можна вважати найкращим для файл-серверних таблиць.

1. Створення таблиці YchebPlan(Навчальний план):

Малюнок 17

5. Створення таблиці Disciplina (Дисципліна):

Малюнок 18

6. Створення таблиці Student:

Малюнок 19

7. Створення таблиці Prepodaet (Дисципліна-Викладач):

Малюнок 20

5. Створення таблиці Prepod (Викладач):

Малюнок 21

8. Створення таблиці Izuchaet (Дисципліна-Студент):

Малюнок 22

13. Створення програми в Delphi

Щоб створити нову програму, потрібно в меню File вибрати пункт New/Application. З'являється форма та модуль (загалом це називається проект), тепер можна поміщати на форму необхідні компоненти. За потреби можна створити ще форму (і не одну), для цього потрібно в меню File вибрати пункт New/Form.

1. Таблиця. Заповнення даними. Відображення даних.

Для того, щоб відобразити таблицю на формі, потрібно помістити на неї компоненти:

· Table (на вкладці BDE) - В інспекторі об'єктів на вкладці "Параметри" у властивості Tablename вибрати потрібну таблицю.

Малюнок 23

· DBGrid (на вкладці DataControls) - необхідний відображення таблиці на формі, в Інспекторі об'єктів як DataSource вказати потрібне джерело даних.

Малюнок 24

· DBNavigator (на вкладці DataControls) - необхідний переміщення по записам таблиці. У інспекторі Об'єктів як DataSource вказується той самий джерело даних, що у DBGrid. Функції навігатора доступні при натисканні на його кнопках під час роботи програми, Компонент містить 10 кнопок.

Малюнок 25

· DataSource (вкладка Data Access) – компонент проміжного рівня, для доступу до даних. Служить посередником між таблицями СУБД та екранними елементами керування (DBGrid, DBNavigator).

Малюнок 26

14. Створення поля з інформацією (Memo) та кнопок

На форму міститься компонент Memo, який розміщується на вкладці Standard.

Малюнок 27

В інспекторі об'єктів на вкладці "Параметри" у властивості Lines вводиться необхідний для відображення текст

Малюнок 28

Створення кнопок.

Для коректного закриття форми на неї міститься компонент Button, який розміщується на вкладці Standard.

Малюнок 29

Для того, щоб кнопка працювала, необхідно в Обробнику подій OnClick вказати:

procedure TForm1.N5Click(Sender: TObject);

begin

Form2.Show;

Form1.Close;

end;

15. Створення підписів до таблиць

Для підпису таблиці в роботі був використаний компонент Lable, розташований на вкладці Standard. В Інспекторі Об'єктів як Caption потрібно просто написати текст.

Малюнок 30

16. Створення списку

Для вибору команди з наявного списку використовується компонент ComboBox (список, що випадає). Його заповнення можна здійснити таким чином

В Інспекторі Об'єктів у властивості Items необхідно написати:

Малюнок 31

16. Створення звітів

Звіт створюється за допомогою інструмента QReports, який необхідно спочатку підключати: Component->install packages->add відкрити папку bin вибрати файл dclqrt70.bpl натиснути OKі тоді з'явиться вкладка з компонентами QReport. Використовувані мною компоненти:

Таблиця 2

17. Лістинг програми

Опис проекту

program Project1;

uses

Forms,

Unit1 в "Unit1.pas" (Form1),

Unit2 in "Unit2.pas" (Form2),

Unit3 в "Unit3.pas" (Form3),

Unit4 в "Unit4.pas" (Form4),

Unit5 в "Unit5.pas" (Form5),

Unit6 in "Unit6.pas" (Form6),

Unit7 в "Unit7.pas" (Form7),

Unit8 in "Unit8.pas" (Form8),

Unit9 in "Unit9.pas" (Form9),

Unit10 в "Unit10.pas" (Form10),

Unit11 в "Unit11.pas" (Form11),

Unit12 в "Unit12.pas" (Form12),

Unit13 в "Unit13.pas" (Form13),

Unit14 in "Unit14.pas" (Form14);

($R *.res)

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.CreateForm(TForm2, Form2);

Application.CreateForm(TForm3, Form3);

Application.CreateForm(TForm4, Form4);

Application.CreateForm(TForm5, Form5);

Application.CreateForm(TForm6, Form6);

Application.CreateForm(TForm7, Form7);

Application.CreateForm(TForm8, Form8);

Application.CreateForm(TForm9, Form9);

Application.CreateForm(TForm10, Form10);

Application.CreateForm(TForm11, Form11);

Application.CreateForm(TForm12, Form12);

Application.CreateForm(TForm13, Form13);

Application.CreateForm(TForm14, Form14);

Application.Run;

end.

Опис модуля Unit1

unit Unit1;

interface

uses

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Memo1: TMemo;

Button1: TButton;

Button2: TButton;

Button3: TButton;

private

(Private declarations)

public

(Public declarations)

end;

var

Form1: TForm1;

implementation

uses Unit2, Unit4, Unit6, Unit7, Unit5, Unit8, Unit9, Unit10;

($R *.dfm)

procedure TForm1.Button3Click(Sender: TObject);

begin

Form2.show;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Form1.Close;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

Form4.show;

end;

end.

Опис модуля Unit2

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm2 = class(TForm)

Memo1: TMemo;

GroupBox1: TGroupBox;

Button1: TButton;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

(Private declarations)

public

(Public declarations)

end;

var

Form2: TForm2;

implementation

uses Unit3;

($R *.dfm)

procedure TForm2.Button1Click(Sender: TObject);

begin

Form3.show;

Form2.Close;

end;

procedure TForm2.Button2Click(Sender: TObject);

begin

Form2.Close;

end;

Опис модуля Unit3

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB, DBTables,

StdCtrls, QuickRpt, QRCtrls;

type

TForm3 = class(TForm)

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

TabSheet3: TTabSheet;

TabSheet4: TTabSheet;

TabSheet5: TTabSheet;

TabSheet6: TTabSheet;

DataSource1: TDataSource;

DataSource2: TDataSource;

DataSource3: TDataSource;

DataSource4: TDataSource;

Table1: TTable;

Table2: TTable;

Table3: TTable;

Table4: TTable;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

DBGrid2: TDBGrid;

DBNavigator2: TDBNavigator;

DBGrid3: TDBGrid;

DBNavigator3: TDBNavigator;

DBGrid4: TDBGrid;

DBNavigator4: TDBNavigator;

DBGrid5: TDBGrid;

DBNavigator5: TDBNavigator;

DBGrid6: TDBGrid;

DBNavigator6: TDBNavigator;

Button1: TButton;

DataSource5: TDataSource;

DataSource6: TDataSource;

Table5: TTable;

Table6: TTable;

Query1: TQuery;

Button2: TButton;

Label1: TLabel;

Memo1: TMemo;

Label3: TLabel;

Button3: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

(Private declarations)

public

(Public declarations)

end;

var

Form3: TForm3;

implementation

uses Unit5, Unit11;

($R *.dfm)

procedure TForm3.Button1Click(Sender: TObject);

begin

Form11.show;

Form3.close;

end;

procedure TForm3.Button2Click(Sender: TObject);

begin

Query1.ExecSQL;

Form3.Refresh;

end;

procedure TForm3.Button3Click(Sender: TObject);

begin

Form3.close;

end;

Опис модуля Unit4

unit Unit4;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm4 = class(TForm)

Memo1: TMemo;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

(Private declarations)

public

(Public declarations)

end;

var

Form4: TForm4;

implementation

uses Unit1;

($R *.dfm)

procedure TForm4.Button1Click(Sender: TObject);

begin

Form1.show;

end;

Опис модуля Unit 5

unit Unit5;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, Mask, DBCtrls, ExtCtrls;

type

TForm5 = class(TForm)

DataSource1: TDataSource;

DBGrid1: TDBGrid;

Query1: TQuery;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

DBNavigator1: TDBNavigator;

Button1: TButton;

procedure ComboBox1Change(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

(Private declarations)

public

(Public declarations)

end;

var

Form5: TForm5;

implementation

uses Unit11;

($R *.dfm)

procedure TForm5.ComboBox1Change(Sender: TObject);

begin

Query1.Active:=true;

end;

procedure TForm5.Edit1Change(Sender: TObject);

begin

Query1.Open;

end;

procedure TForm5.Button1Click(Sender: TObject);

begin

Form11.show;

Form5.Close;

end;

Опис модуля Unit 6

unit Unit6;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, ExtCtrls, DBCtrls;

type

TForm6 = class(TForm)

Button1: TButton;

Edit1: TEdit;

DataSource1: TDataSource;

DBGrid1: TDBGrid;

Query1: TQuery;

Label1: TLabel;

DBNavigator1: TDBNavigator;

Label2: TLabel;

Memo1: TMemo;

Button2: TButton;

Label3: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

(Private declarations)

public

(Public declarations)

end;

var

Form6: TForm6;

implementation

uses Unit11;

($R *.dfm)

procedure TForm6.Button1Click(Sender: TObject);

begin

Query1.Close;

if not Query1.Prepared then

Query1.Prepare;

if length (edit1.text)<>0 then

else

begin

Query1.Params.Value:=0;

end;

Query1.Open;

end;

procedure TForm6.Button2Click(Sender: TObject);

begin

Form11.show;

Form6.Close;

end;

Опис модуля Unit 7

unit Unit7;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Grids, DBGrids, DBTables, DB, Mask, DBCtrls, ExtCtrls,

QRCtrls, QuickRpt;

type

TForm7 = class(TForm)

Label1: TLabel;

Label2: TLabel;

DataSource1: TDataSource;

Query1: TQuery;

Edit2: TEdit;

Button1: TButton;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

Label3: TLabel;

DBGrid1: TDBGrid;

Label4: TLabel;

Label5: TLabel;

DBNavigator1: TDBNavigator;

Button2: TButton;

Label6: TLabel;

Label7: TLabel;

Memo1: TMemo;

ComboBox1: TComboBox;

Label8: TLabel;

Button3: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

(Private declarations)

public

(Public declarations)

end;

var

Form7: TForm7;

implementation

uses Unit5, Unit11;

($R *.dfm)

procedure TForm7.Button1Click(Sender: TObject);

begin

Query1.Close;

if not Query1.Prepared then

Query1.Prepare;

if length (edit2.text)<>0 then

Query1.Params.Value:=edit2.Text

else

begin

Query1.Params.Value:=0;

edit2.Text:="Введіть назву!";

end;

Query1.Open;

end;

procedure TForm7.Button2Click(Sender: TObject);

begin

Form5.show;

Form7.close;

end;

procedure TForm7.Button3Click(Sender: TObject);

begin

Form11.show;

Form7.close;

end;

Опис модуля Unit 8

unit Unit8;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

type

TForm8 = class(TForm)

Label4: TLabel;

DataSource1: TDataSource;

Query1: TQuery;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

Button1: TButton;

Memo1: TMemo;

procedure Button1Click(Sender: TObject);

private

(Private declarations)

public

(Public declarations)

end;

var

Form8: TForm8;

implementation

uses Unit11;

($R *.dfm)

procedure TForm8.Button1Click(Sender: TObject);

begin

Form11.show;

Form8.close;

end;

Опис модуля Unit 9

unit Unit9;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, DBGrids, DB, DBTables, StdCtrls, Mask, DBCtrls, ExtCtrls;

type

TForm9 = class(TForm)

Edit1: TEdit;

Query1: TQuery;

DataSource1: TDataSource;

DBGrid1: TDBGrid;

Button1: TButton;

Query2: TQuery;

DataSource2: TDataSource;

Button2: TButton;

DBEdit1: TDBEdit;

DBNavigator1: TDBNavigator;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Name: TComboBox;

Button3: TButton;

Memo1: TMemo;

Label4: TLabel;

Button4: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

(Private declarations)

public

(Public declarations)

end;

var

Form9: TForm9;

implementation

uses Unit11, Unit13;

($R *.dfm)

procedure TForm9.Button1Click(Sender: TObject);

begin

Query1.Close;

if not Query1.Prepared then

Query1.Prepare;

if length (edit1.text)<>0 then

Query1.Params.Value:=edit1.Text

else

begin

Query1.Params.Value:=0;

edit1.Text:="Введіть ім'я випускника!";

end;

Query1.Open;

end;

procedure TForm9.Button2Click(Sender: TObject);

begin

Query2.Close;

if not Query2.Prepared then

Query2.Prepare;

if length (edit1.text)<>0 then

Query2.Params.Value:=edit1.Text

else

begin

Query2.Params.Value:=0;

edit1.Text:="Введіть номер семестру!";

end;

Query2.Open;

end;

procedure TForm9.Button3Click(Sender: TObject);

begin

Form11.show;

Form9.close;

end;

procedure TForm9.Button4Click(Sender: TObject);

begin

Form13.QuickRep1.Preview;

end;

Опис модуля Unit 10

unit Unit10;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, QuickRpt, StdCtrls, DB, DBTables, Mask, DBCtrls,

Grids, DBGrids;

type

TForm10 = class(TForm)

Button1: TButton;

Query1: TQuery;

DataSource1: TDataSource;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

Label1: TLabel;

Label2: TLabel;

Edit1: TEdit;

Button2: TButton;

Label3: TLabel;

ComboBox1: TComboBox;

Label4: TLabel;

Label5: TLabel;

Memo1: TMemo;

Label6: TLabel;

Label7: TLabel;

Button3: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

(Private declarations)

public

(Public declarations)

end;

var

Form10: TForm10;

implementation

uses Unit3, Unit7, Unit12, Unit11;

($R *.dfm)

procedure TForm10.Button1Click(Sender: TObject);

begin

Form12.QuickRep1.Preview;

end;

procedure TForm10.Button2Click(Sender: TObject);

begin

Query1.Close;

if not Query1.Prepared then

Query1.Prepare;

if length (edit1.text)<>0 then

Query1.Params.Value:=edit1.Text

else

begin

Query1.Params.Value:=0;

edit1.Text:="Введіть назву!";

end;

Query1.Open;

end;

procedure TForm10.Button3Click(Sender: TObject);

begin

Form11.show;

end;

Опис модуля Unit 11

unit Unit11;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm11 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Memo1: TMemo;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Button7: ​​TButton;

Label4: TLabel;

Label5: TLabel;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

private

(Private declarations)

public

(Public declarations)

end;

var

Form11: TForm11;

implementation

Подібні документи

    Створення таблиць та проектування систем управління базами даних. Інфологічне проектування. Реляційна схема бази даних Прикладне значення систем: звіт про постачальників та товари, що ними поставляються. Виписка про наявність товару у магазині.

    курсова робота , доданий 01.12.2008

    Розробка бази даних з інформацією про співробітників, товари, з довідником типів товарів засобами системи управління базами даних MySQL за допомогою SQL-запитів. Розробка інфологічної моделі предметної галузі. Структура таблиць полів бази даних.

    контрольна робота , доданий 13.04.2012

    Процес проектування бази даних, розробка її логічної структури відповідно до інфологічної моделі предметної області. Робота з програмою СУБД Access, характеристики таблиць та його полів, створення міжтабличних зв'язків; інфологічне проектування.

    курсова робота , доданий 17.12.2009

    Основні поняття бази даних та систем управління базами даних. Типи даних, із якими працюють бази Microsoft Access. Класифікація СУБД та його основні характеристики. Постріляційна база даних. Тенденції у світі сучасних інформаційних систем.

    курсова робота , доданий 28.01.2014

    Особливості розробки інфологічної моделі та створення структури реляційної бази даних. Основи проектування баз даних. Розробка таблиць, форм, запитів для виведення інформації про відповідну модель. Робота з базами даних та їх об'єктами.

    курсова робота , доданий 05.11.2011

    Дослідження параметрів та функціональних можливостей системи управління базами даних Microsoft Office Access. Визначення основних класів об'єктів. Розробка бази даних "Діловодство". Створення таблиць, форм, запитів, звітів та схем даних.

    реферат, доданий 05.12.2014

    Тенденція розвитку систем керування базами даних. Ієрархічні та мережеві моделі СУБД. Основні вимоги до розподіленої бази даних. Обробка розподілених запитів, міжоперабельність. Технологія тиражування даних та багатоланкова архітектура.

    реферат, доданий 29.11.2010

    Теоретичні відомості та основні поняття баз даних. Системи управління базами даних: склад, структура, безпека, режими роботи, об'єкти. Робота з базами даних OpenOffice.Org BASE: створення таблиць, зв'язків, запитів за допомогою майстра запитів.

    курсова робота , доданий 28.04.2011

    Проектування бази даних системи прийняття, обробки та обліку заявок до відділу інформаційних технологій; розробка інфологічної та даталогічної моделей, реалізація фізичної моделі. Створення програм для візуалізації роботи з базою даних.

    дипломна робота , доданий 25.01.2013

    Виділення інформаційних об'єктів та його інфологічна модель. Логічна структура реляційної бази даних. Розробка таблиць у системі управління базами даних Access. Створення запитів, форм та звітів у СУБД Access. Розробка програми користувача.

Створимо простий додаток баз даних, який виводить на екранну форму інформацію з таблиці Туристи і пов'язану з поточним записом таблиці Туристи запис таблиці Інформація про туристів з бази даних Microsoft Access.

Для цього створимо порожню Windows-програму. Зовнішній вигляд довкілля

Розробки наведено на малюнку 39 .

Рис. 39. Порожній додаток

На малюнку 39 виділена група компонентів "Дані" ("Data"), яка містить компоненти для доступу до даних та маніпулювання ними.

Прив'язку даних БД до форми здійснює компонент Binding Source. Перенесемо його на форму. Після розміщення його на формі середовище розробки набуває наступного вигляду (рис. 40).

Рис. 40. Компонент Binding Source на формі

Компонент не є візуальним, тому він відображається на додатковій панелі. Основною властивістю компонента є властивість DataSource, що вказує на джерело даних. За промовчанням властивість є порожньою, тому необхідно сформувати його значення. При виборі цієї властивості у вікні властивостей з'являється наступне вікно (рис. 41).

Рис. 41. Список джерел даних

На даний момент список порожній, тому необхідно створити нове джерело даних, вибравши команду Add Project Data Source для створення нового джерела даних та з'єднання з ним. З'являється вікно діалогу (рис. 42).

Рис. 42. Список джерел даних

Цей діалог надає наступний вибір джерел даних:

Database - база даних;

Service – Служба, це деякий сервіс, що надає дані. Найчастіше це Web-сервіс;

Object - Об'єкт для вибору об'єкта, який генеруватиме дані та об'єкти для роботи з ними.

У разі необхідно вибрати пункт «База даних» («Database»). Відобразиться вікно вибору з'єднання з даними (рис. 43).

Рис. 43. Вибір з'єднання з даними

Метою даного діалогу є створення рядка з'єднання, в якому будуть описані параметри з'єднання механізму ADO, такі як тип бази даних, її місцезнаходження, імена користувачів, засоби безпеки та ін.

У списку діалогу знаходяться всі створювані раніше з'єднання. Якщо необхідного з'єднання в списку немає, слід використовувати кнопку «Створити підключення» («New connection»). Натискання кнопки призводить до появи наступного діалогу (мал. 44).

У цьому діалозі вибирається тип джерела даних (в даному випадку Microsoft Access), ім'я бази даних (в даному випадку ім'я та місцезнаходження файлу бази даних), ім'я користувача та пароль, які використовуються для підключення до бази даних. Кнопка "Додатково" ("Advanced") дозволяє встановити велику кількість параметрів, що стосуються різних деталей механізму ADO. Використання кнопки "Перевірити підключення" ("Test Connection") дозволить переконатися в правильності введених параметрів та працездатності з'єднання.

Рис. 44. Створення нового з'єднання

Останній крок діалогу - вибір тих таблиць чи інших об'єктів бази даних, які необхідні у цьому джерелі даних. Вікно вибору представлене малюнку 45.

Рис. 45. Вибір необхідних таблиць

У цьому вікні вибрано таблиці «Туристи» та «Інформація про туристів». Оскільки інших об'єктів, крім таблиць, у базі даних було створено, малюнку 45 відображаються лише таблиці. У цьому створення джерела даних завершено. Після натискання кнопки "Готово" ("Finish") поруч із компонентом BindingSource на формі з'являється компонент DataSet.

Тепер дані, що підключені вище, необхідно відобразити на формі. Найпростішим способом відображення даних є використання компонента DataGridView із групи компонентів Data. Компонент є візуальним і на формі виглядає так (рис. 46).

Рис. 46. ​​Компонент DataGridView

Відразу виникає вікно налаштування компонента, яке визначає його можливості з редагування даних: «Включити редагування» («Enable Adding»), «Включити редагування» («Enable Editing»), «Включити видалення» («Enable Deleting»); можливість зміни послідовності стовпців: "Включити можливість зміни порядку стовпців" (Enable Column Reordering); а також можливість закріплення в контейнері-батьку.

Для того щоб компонент міг відображати дані, необхідно вибрати джерело даних у списку, що випадає. Вибір списку, що випадає, призводить до появи наступного діалогу (рис. 47).

Рис. 47. Вибір джерела даних для DataGridView

В даному випадку ми вибрали як джерело даних таблицю «Туристи». Цей вибір змінює екранну форму в такий спосіб (мал. 48).

Рис. 48. Компонент DataGridView відображає структуру таблиці

На малюнку видно, що з'явився ще один компонент BindingSource та компонент TableAdapter, що працює з таблицею Туристи. Зверніть увагу, що в design-time або в процесі розробки дані таблиці не відображаються.

Тепер необхідно відобразити дані зі зв'язаної таблиці «Інформація про туристів». Для цього розмістимо на формі ще один компонент DataGridView і як джерело даних виберемо наступне (рис. 49).

Рис. 49. Вибір джерела даних другого DataGridView

Тут як джерело даних виступає не сама таблиця «Інформація про туристів», а зв'язок (Binding Source) між таблицями «Туристи» та «Інформація про туристів». Такий вибір гарантує вибір із таблиці «Інформація про туристів» лише тих рядків, які пов'язані з поточним рядком у таблиці «Туристи». Також такий вибір гарантує правильність оновлення та видалення пов'язаних даних. Робота отриманої програми показано малюнку 50.

Рис. 50. Додаток бази даних у роботі

Переміщення за даними за допомогою стрілочних клавіш є незручним. Для спрощення навігації за даними є компонент BindingNavigator. Помістимо його на формі (рис. 51).

Рис. 51. Компонент BindingNavigator на формі

Цей компонент дозволяє здійснювати навігацію між записами таблиці, додавати та видаляти рядки таблиці. Можливості та зовнішній вигляд компонента можна налаштовувати, оскільки він є смужкою меню ToolStripContainer.

Властивістю, що визначає таблицю, за якою здійснюється навігація, є властивість BindingSource. Встановимо значення цієї властивості рівним «туристиBindingSource». У роботі компонент виглядає так (рис. 52).

Рис. 52. Компонент BindingNavigator у роботі

Редагування даних у осередках компонента DataGridView при відповідних налаштуваннях можливе, але незручно та не раціонально. Зокрема, важко перевіряти наведені значення на помилки. Тому для таблиці "Туристи" зробимо екранну форму, що дозволяє відображати дані в компонентах TextBox та редагувати їх. Для цього розмістимо на формі контейнер типу Panel, а на ньому три компоненти TextBox наступним чином (рис. 53).

Рис. 53. Екранна панель для редагування записів таблиці «Туристи»

Тепер необхідно здійснити прив'язку компонентів TextBox до відповідних полів таблиці Туристи. Для цього використовуємо властивість групи DataBindings - Advanced, показане на малюнку 54.

Рис. 54. Властивість "DataBindings - Advanced"

Вибір даної властивості призводить до появи діалогу, показаного на малюнку 55. Даний діалог дозволяє здійснити не тільки прив'язку даних, але також задати подію, в рамках якої проводитиметься оновлення даних, а також форматування даних під час їх виведення.

Для верхнього компонента TextBox у списку Binding виберемо джерелом даних «туристиBmdmgSource» і поле джерела - «Прізвище». Для середнього та нижнього компонентів TextBox виберемо те саме джерело даних і поля «Ім'я» та «По батькові» відповідно.

Розроблений додаток у роботі виглядає так (рис. 56).

Рис. 55. Вікно діалогу для якості "DataBindings - Advanced"

Рис. 56. Прив'язка даних до візуальних компонентів

Однак при внесенні змін усі нові дані залишаються лише на формі. У базі даних вони не зберігаються, і при повторному виклику програми, звичайно, будуть відсутні. Це відбувається тому, що дані були завантажені в об'єкт DataSet, який є копією таблиці в пам'яті. Усі дії виконуються із цією копією. Щоб зміни відобразилися у базі даних, необхідно виконати метод Update класу TableAdapter. Таким чином, у програмі, що розробляється, необхідно розмістити кнопку «Оновити» і записати в обробник події Click наступний програмний код:

туристиTableAdapteгUpdate(bDTur_firmDataSet); інформація_про_туристівTableAdapter.Update(bDTur_firmDataSet);

Цей код оновлює інформацію в таблицях "Туристи" та "Інформація про туристів", що надаються джерелом даних. Зазначимо, що цей метод є перевантаженим, і його варіанти дозволяють оновлювати окремий рядок таблиці, так і групу рядків.

DEVELOPMENT OF AN APPLICATION FOR WORKING WITH DATABASES

Roza Gaynanova

літератури з Департаменту General Educational Disciplines

Kazan National Research Technological University

Russia, Kazan

АННОТАЦІЯ

У статті розглядаються методи доступу до баз даних і програмні інтерфейси, що застосовуються в цих методах доступу. Розглядається інтеграція програм Visual C# з сервером СУБД Microsoft SQL Server 2012. Як приклад розглядається розробка інформаційної системи «Туристичне агентство».

ABSTRACT

Матеріали досліджують методи доступу до файлів і програмних засобів, використовуваних в цих методах. We consider the integration of Visual C # applications with the Microsoft SQL Server 2012 database server. Як те, що розвивається "Tourist Agency" information system is considered.

Ключові слова:база даних, SQL Server, програма, користувачі, елемент управління, запит.

Keywords: Database, SQL Server, application, users, control element, query.

Інформаційна система – це взаємопов'язана сукупність засобів, методів та персоналу, що використовуються для зберігання, обробки та видачі інформації на користь досягнення поставленої мети. Інформаційна система, що розробляється, буде побудована за технологією клієнт-сервер. У таких системах інформація зберігається на сервері, а інтерфейс інформаційної системи зберігається на клієнтських комп'ютерах, через нього користувачі інформаційної системи отримують доступ до даних.

При розробці інформаційної системи доводиться вирішувати два основні завдання:

  • завдання розробки бази даних, що призначена для зберігання інформації;
  • завдання розробки графічного інтерфейсу користувача клієнтських програм.

База даних «Турагентство» створюється на Microsoft SQL Server 2012. У базі даних зберігається інформація про клієнтів даного турагентства (туристів), про запропоновані ним тури, про оформлення та оплату путівок. На етапі проектування БД створюються таблиці Туристи, Тури, Путівки, Сезони, Оплата. Встановлюються зв'язки між таблицями.

Додатком турагентства користуватимуться керівник турагентства, менеджери з продажу, бухгалтер, касир та офісні співробітники турагентства. Один із офісних співробітників призначається системним адміністратором. Тільки він вестиме облікові записи користувачів. Крім п'яти основних таблиць створюється таблиця "Користувачі", яка містить інформацію про користувачів БД. Ця таблиця пов'язані з іншими таблицями. Структура цієї таблиці: код користувача, прізвище, посада, логін та пароль. Вносити зміни до цієї таблиці може лише системний адміністратор.

Система безпеки SQL Server будується на основі двох концепцій: автентифікації та авторизації. Системний адміністратор, який відповідає за безпеку SQL Server, створює для кожного користувача окремий об'єкт login. Цей об'єкт містить ім'я облікового запису користувача SQL Server, його пароль, повне ім'я та інші атрибути, призначені для керування доступом до баз даних SQL Server. Підключившись до SQL Server, користувач отримує доступ до баз даних, в яких зареєстровано його обліковий запис. Щоб зареєструвати обліковий запис у конкретній базі даних, системний адміністратор створює в ньому ім'я користувача бази даних та пов'язує його з певним обліковим записом. Системний адміністратор надає користувачам певні повноваження. Менеджер з продажу може вносити зміни до таблиць «Туристи», «Путівки» та змінювати стовпець «Кількість_місць» у таблиці «Тури» після продажу чергової путівки. Співробітник турагентства може вносити зміни до таблиць «Сезони» та «Тури». Бухгалтер та касир – до таблиці «Оплата».

Надання повноважень можна здійснювати в середовищі SQL Server Management Studio, відкривши вікна властивостей відповідного користувача. Надати повноваження можна і за допомогою інструкції GRANT. Приклади надання повноважень менеджеру. Наступна інструкція надає право користувачеві Menedger переглядати, змінювати таблицю «Туристи», вставляти нові рядки та видаляти застарілі дані.

USE Турагентство

GRANT SELECT, UPDATE, INSERT, DELETE

ON Туристи

Аналогічна інструкція створюється для роботи з таблицею «Путівки». Щоб надати менеджеру право змінювати лише один стовпець таблиці «Тури» після імені таблиці в дужках вказується ім'я стовпця Тури, що змінюється (Кількість_місць). Надані операції SELECT, UPDATE.

У мові управління даними (Data Control Language - DCL) є чотири інструкції: COMMIT (завершити), ROLLBACK (відкотити), GRANT (надати), REVOKE (відкликати). Всі ці інструкції пов'язані із захистом бази даних від випадкового чи навмисного пошкодження. Бази даних уразливі саме тоді, як у них вносять зміни. Для захисту бази даних SQL передбачено обмеження операцій. Які можуть її змінити, тому вони виконуються тільки в межах транзакцій. При спробі декількох користувачів одночасно використовувати ту саму таблицю бази даних, створюється ситуація конкурентного доступу. Проблеми, пов'язані з одночасним доступом, виникають навіть у відносно простих програмах, якщо програма встановлена ​​і запущена в розрахованій на багато користувачів системі, у якої в недостатній мірі забезпечене управління одночасним доступом. Конфлікт транзакцій немає, якщо вони виконуються послідовно.

Одним із головних інструментів підтримки цілісності бази даних є транзакція. Транзакція інкапсулює всі SQL-інструкції, які можуть вплинути на базу даних. Транзакція SQL завершується однією з двох вказівок: COMMIT (завершити) або ROLLBACK (відкотити). Якщо транзакція завершується інструкцією ROLLBACK, то скасовуються всі її інструкції, база даних повертається у вихідний стан. Звичайна транзакція може виконуватися в одному з двох режимів: READ-WRITE (читання-запис) або READ-ONLY (лише читання). Для транзакції можна задати один з наступних рівнів ізоляції: SERIAIZABLE (послідовне виконання), REPEATABLE READ (читання, що повторюється), READ UNCOMMITED (читання непідтверджених даних). За замовчуванням діють характеристики READ-WRITE та SERIAIZABLE. Характеристики транзакції SQL, що діють за замовчуванням, зазвичай підходять для більшості користувачів.

Програма створюється у середовищі Visual Studio 2012 за допомогою мови програмування C#. Проектування програмного продукту починається із розробки інтерфейсу користувача.

Головне вікно програми має викликати основні функції роботи з додатком (рисунок 1). Для виконання цих операцій використовується меню. Меню складається з наступних пунктів: Таблиці, Запити, Звіти. Кожен із цих пунктів містить підпункти. Кожна функція буде виконуватись у вікні. У головному вікні програми встановлюється елемент MenuStrip, формуються опції меню. На вікні форми розміщується елемент PictureBox. В область елемента завантажується рисунок. Малюнок повинен займати всю область. Властивість SizeMode встановлює масштабування зображення. Для цієї властивості з списку, що розкривається, вибирається StretchImage, малюнок масштабується так, що він займає всю поверхню об'єкта.

Для відображення списку користувачів, які мають право працювати з базою даних «Турагентство», встановлюється елемент управління comboBox. Елемент comboBox прив'язується до джерела даних. Відкривається вікно. ЗomboBoxЗавдання», у якому встановлюється прапорець «Використовувати елементи прив'язані до даних», якщо цей прапорець встановлено, відкриваються параметри прив'язки даних. Елемент comboBox прив'язується до таблиці "Користувачі", у рядку "Відобразити члена" вибирається "Прізвище". Для введення логіна встановлюється елемент керування textbox1 для введення пароля textBox2. Для елементів textBox1 і textBox2 властивість UsesSystemPasworChar встановлюється в true, яке вказує, чи текст у текстовому полі повинен відображатися символами пароля за замовчуванням. Встановлюються дві командні кнопки "Увійти" та "Змінити користувача".

При прив'язуванні елемента comboBox до таблиці «Користувачі» у програмному коді форми з'являється обробник події Form1_Load.

private void Form1_Load(object sender, EventArgs e)

this.користувачіTableAdapter1.Fill(this.турагентствоDataSet10.Користувачі);

Запуск програми меню недоступний. Щоб увійти в систему, потрібно ввести дані про користувача і натиснути кнопку «Увійти». При завантаженні форми прізвища користувачів, що містяться в таблиці "Користувачі", завантажуються в елемент управління comboBox1. У цей обробник додаються рядки, які роблять недоступними меню, кнопку «Змінити користувача» та в елементі comboBox1 жоден елемент не вибраний:

menuStrip1.Enabled = false; comboBox1.SelectedIndex = -1;

button2.Enabled = false;

Рисунок 1. Вигляд головного вікна програми

При натисканні кнопки "Увійти" перевіряється, чи є в таблиці "Користувачі", користувач, з цим прізвищем, і чи правильно введені логін і пароль. В області опису класу форми описуються параметри, що передаються в команду sql. Це три параметри: прізвище користувача, його логін та пароль.

private string parfam, parpasw, parlog;

У простір імен додається рядок:

using System.Data.SqlClient;

// Обробник події натискання кнопки "Увійти"

string sql = "";

string connstr = @"Data Source= B302CN-8 \TEST_SQL;Initial Catalog=Турагенство;Integrated Security=True";

SqlDataReader cmReader;

parfam=comboBox1.Text; parlog=textBox1.Text;

SqlConnection conn=new SqlConnection(connstr);

sql = "SELECT Прізвище, Логін, Пароль FROM Користувачі " +

WHERE (Прізвище = @fam) and (Пароль [email protected])";

SqlCommand cmdkod = New SqlCommand(sql, conn);

cmdkod.Parameters.Add(new SqlParameter("@fam", SqlDbType.NChar, 25));

cmdkod.Parameters["@fam"].Value = parfam;

cmdkod.Parameters.Add(new SqlParameter("@pasw", SqlDbType.NChar, 10));

cmdkod.Parameters["@pasw"].Value = parpasw;

cmdkod.Parameters.Add(new SqlParameter("@log", SqlDbType.NChar, 15));

cmdkod.Parameters["@log"].Value = parlog;

if (!cmReader.Read())

MessageBox.Show("Невірний пароль!");

cmReader.Close(); conn.Close();

menuStrip1.Enabled = true; comboBox1.SelectedIndex = -1;

button1.Enabled = false; button2.Enabled = true;

textBox1.Text = ""; textBox1.Enabled = false;

textBox2.Text = ""; textBox2.Enabled = false;

comboBox1.Enabled = false;

cmReader.Close();

private void button2_Click(object sender, EventArgs e)

menuStrip1.Enabled = false; comboBox1.Enabled = true;

textBox1.Enabled = true; textBox2.Enabled = true;

button1.Enabled = true; button2.Enabled = false;

Опис роботи обробника події натискання кнопки "Увійти".

Рядок connstr містить рядок підключення. У рядку sql записується текст формованого запиту, починаючи з оператора select, після якого перераховуються поля, що вибираються з таблиць, які вказані після слова from.

Обробник створює новий екземпляр об'єкта SqlConnection, який забезпечує підключення до сервера SQL. Об'єкт SqlCommand містить команду з трьома параметрами для пошуку в таблиці «Користувачі» користувача з цим прізвищем, логіном та паролем. Обробник button1_Click відкриває з'єднання SqlConnection. Далі обробник виконує SQL команду, що зберігається в об'єкті cmdkod.

cmReader = cmdkod.ExecuteReader();

В результаті виконання методу ExecuteReader створюється об'єкт класу SqlDataReader, що дозволяє послідовно прочитати всі рядки виконання команди SQL. Для вибірки використовується метод SqlDataReader. Read. Якщо таблиця «Користувачі» не містить жодного запису із заданим прізвищем, логіном та паролем, то метод cmReader.Read() поверне значення false. Це означає, що введено неправильний логін або пароль. У цьому випадку видається повідомлення про невірні введені дані, закриваються об'єкти cmReader і SqlConnection . Якщо дані про користувача введені правильно, меню та кнопка «Змінити користувача» стають доступними. Кнопка "Увійти" стає недоступною. Елементи textBox1 та textBox2 очищаються та стають недоступними. Елемент comboBox1 також стає недоступним (рис. 2)

Рисунок 2. Вигляд головного вікна після входу в систему

Таблиці та результати виконання запитів відображатимуться на елементах керування DataGridView. Головне призначення цих елементів – зв'язування з таблицями зовнішніх джерел даних, насамперед із таблицями баз даних. Для зручності перегляду та введення нових записів таблиці "Сезони", "Тури" та "Путівки", "Оплата" відображатимуться по дві в одному вікні. Кожен елемент керування DataGridView пов'язується з відповідною таблицею бази даних "Турагентство". У цьому вікні вибрано таблицю «Туристи» (рис. 3). Після завершення підключення (натискання кнопки Готово) на формі з'являються компоненти DataSet, BindingSource і TableAdapter. Ці компоненти не є візуальними, тому вони відображаються на додатковій панелі. DataSet – це спеціалізований об'єкт, що містить образ бази даних. Для взаємодії між DataSet і власне джерелом даних використовується об'єкт типу TableAdapter. Сама назва цього об'єкта – адаптер, перетворювач, – вказує на його природу. TableAdapter містить методи Fill і Update, які виконують пряму та зворотну передачу даних між набором DataSet і таблицею SQL сервера, що зберігається в базі даних. Метод Fiil заповнює набір DataSet даними з сервера SQL, а Update оновлює базу сервера SQL даними з локального набору DataSet. Компонент BindingSource спрощує прив'язку елементів управління у вигляді даних. Основною властивістю компонента BindingSource є властивість Data Source, що вказує на джерело даних.

Після завершення підключення таблиць до джерел даних у програмному коді форми з'являється обробник події Form2_Load.

private void Form2_Load(object sender, EventArgs e)

this.туристиTableAdapter.Fill(this.турагентствоDataSet9.Туристи);

При завантаженні форми дані, що містяться в таблиці Туристи, відображаються на елементі керування DataGridView на вікні форми Form2. До таблиці можна вносити зміни та додавати нові записи. Після внесення змін натисніть кнопку «Зберегти Туристи». Обробник події натискання кнопки «Зберегти Туристи»:

private void button1_Click(object sender, EventArgs e)

сезониTableAdapter.Update(турагентствоDataSet9);

MessageBox.Show("Дані збережені");

Малюнок 3. Вид вікна з таблицею «Туристи»

Кожен запит відображається на окремому вікні. У вікні Form1 в меню «Запити» додається новий пункт із ім'ям запиту. Якщо запит немає параметрів, для відображення результатів виконання запиту на вікні форми встановлюється елемент керування DataGridView і зв'язується з відповідною процедурою або функцією бази даних.

У цій статті наведено деякі методи розробки додатків, що працюють з базами даних, спосіб організації доступу до роботи з системою обмеженого кола осіб, способи інтеграції програм Visual C# із сервером СУБД Microsoft SQL Server 2012. При спільному використанні мови програмування Visual C# із SQL можна створювати потужні програми з широким набором можливостей. Основна сила SQL полягає у вилученні даних. Скільки б не було рядків у таблиці їх можна витягти за допомогою єдиної інструкції SELECT. У той самий час головним недоліком мови SQL є недорозвинений інтерфейс користувача. За допомогою процедурних мов можна створювати зручні інтерфейси введення та перегляду даних. Найпоширеніший спосіб об'єднання SQL з процедурними мовами називається використанням коду SQL. Інструкція SQL вставляється у потрібне місце процедурної програми. Між програмою, написаною процедурною мовою, і кодом SQL повинна передаватися інформація. Для цього застосовуються базові змінні. Щоб SQL розпізнав ці змінні, їх необхідно оголосити. Змінні оголошуються області опису класу форми до опису програмного коду. У програмному коді новий екземпляр об'єкта SqlConnection забезпечує підключення до сервера SQL. Об'єкт SqlCommand забезпечує виконання запровадженої SQL команди.

Список літератури:

  1. Аллен Тейлор. SQL для чайників, 8-ме видання: Пер. з англ. - М.: ТОВ “І.Д. Вільямс”, 2014. – 416 с.
  2. Гайнанова Р.Ш. Розробка програм для роботи з базами даних MS SQL Server 2012 //Фундаментальні та прикладні науки сьогодні: Матеріали XI міжнародної практичної конференції (10-11 квітня 2017 р. Noth Charleston, USA), том 3 – c. 34-41.
  3. Фролов А.В., Фролов Г.В. Візуальне проектування програм C#. - М.: КУДРИЦЬ-ОБРАЗ, 2003, - 512с.
Зависає