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

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

Про SQL

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

Microsoft Access

Ця програма для створення баз даних точно знайома багатьом. Адже вона йде в пакеті програм Microsoft Office. Ця програма є однією з найлегших в освоєнні, адже знання мови програмування SQL там практично не потрібні. Можна лише позначити, який запит зробити, а програма сама складе SQL-запит.

Щодо актуальності програми. До сих пір бази даних безлічі організацій зроблені саме за допомогою Microsoft Access. Дійсно, сама програма дуже легка, є інтуїтивно зрозумілий інтерфейс. Більш того, основам роботи в Access навіть навчають в школі і на початкових курсах коледжу!

PhpMyAdmin

Access, звичайно, програма хороша, але якщо потрібна база даних для сайту, вона не впорається. Тоді на допомогу приходить PhpMyAdmin. Це дуже корисна програма для створення баз даних. Установка на комп'ютер займає деякий час, та й при інсталяції легко щось зробити не так, і не буде працювати. Тому при установці цієї програми для створення баз даних потрібно чітко слідувати інструкції. Але плюсом ще PhpMyAdmin є те, що до неї можна отримати доступ і через інтернет у вигляді сайту! Наприклад, у вас є сайт, який працює на WordPress. У нього буде база даних. І якщо у вас сайт на якому-небудь хорошому хостингу, то, найімовірніше, робота з базами даних буде здійснюватися через PhpMyAdmin, і до нього можна буде отримати доступ через панель управління хостингу.

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

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

Створимо просте додаток баз даних, яке виводить на екранну форму інформацію з таблиці «Туристи» і пов'язану з поточним записом таблиці «Туристи» запис таблиці «Інформація про туристів» з бази даних 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. \u200b\u200bКомпонент 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);

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

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

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

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

Вступ

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

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

6. Инфологическая модель

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

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

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

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

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

висновок

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

Вступ

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

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

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

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

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

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

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

База даних повинна містити

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Розуміти вимоги і дотримуватися їх

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

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

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

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

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

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

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

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

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

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

Строки виконання робіт

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

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

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

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

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

Инфологическая, логічна модель БД

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Виділяють наступні види СУБД:

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

* Сервери БД;

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

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

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

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

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

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

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

* Призначених для користувача додатків.

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

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

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

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

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

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

* Забезпечення безпеки даних, що зберігаються і розвиненою структурованої системи доступу до них.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Реляційна модель даних (РМД) деякої предметної області являє собою набір відносин, що змінюються в часі. При створенні інформаційної системи сукупність відносин дозволяє зберігати дані про об'єкти предметної області та моделювати зв'язку між ними. Терміни РМД представлені в табл. 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. Логічна модель

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

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

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

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

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

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

малюнок 2

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

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

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

vDisciplina.db

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

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

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

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

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

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

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

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

vStudent.db

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

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

vPrepodaet.db (Disciplina-Prepodavatel)

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

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

vPrepod.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 \u003d: s and

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

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

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

select Prepodaet.FIO,

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

Ocenka, Disciplina.Nazv

from Disciplina, Prepodaet, Izuchaet

where Disciplina.KodDiscip \u003d Prepodaet.KodDiscip

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

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

select Disciplina.Nazv, Prepodaet.FIO,

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

from Izuchaet, Disciplina, Prepodaet

where Izuchaet.Ocenka \u003d "2"

and Disciplina.KodDiscip \u003d Izuchaet.KodDiscip

and Disciplina.KodDiscip \u003d Prepodaet.KodDiscip

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

Update Disciplina

set ObsheeKolChVNed \u003d VsegoCh / 17;

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

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

from Izuchaet, Disciplina

where Disciplina.KodDiscip \u003d Izuchaet.KodDiscip

and Disciplina.FormaOtchet \u003d "Іспит"

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-\u003e install packages-\u003e add відкрити папку bin вибрати файл dclqrt70.bpl натиснути OKі тоді з'явиться вкладка з компонентами QReport. Використовувані мною компоненти:

Таблиця 2

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

Опис проекту

program Project1;

uses

Forms,

Unit1 in "Unit1.pas" (Form1),

Unit2 in "Unit2.pas" (Form2),

Unit3 in "Unit3.pas" (Form3),

Unit4 in "Unit4.pas" (Form4),

Unit5 in "Unit5.pas" (Form5),

Unit6 in "Unit6.pas" (Form6),

Unit7 in "Unit7.pas" (Form7),

Unit8 in "Unit8.pas" (Form8),

Unit9 in "Unit9.pas" (Form9),

Unit10 in "Unit10.pas" (Form10),

Unit11 in "Unit11.pas" (Form11),

Unit12 in "Unit12.pas" (Form12),

Unit13 in "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 \u003d 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 \u003d 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 \u003d 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 \u003d 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 \u003d 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: \u003d 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 \u003d 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: \u003d 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 \u003d 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: \u003d edit2.Text

else

begin

Query1.Params.Value: \u003d 0;

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

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 \u003d 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 \u003d 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: \u003d edit1.Text

else

begin

Query1.Params.Value: \u003d 0;

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

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: \u003d edit1.Text

else

begin

Query2.Params.Value: \u003d 0;

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

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 \u003d 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: \u003d edit1.Text

else

begin

Query1.Params.Value: \u003d 0;

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

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 \u003d class (TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Memo1: TMemo;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Button7: \u200b\u200bTButton;

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. \u200b\u200bКомпонент 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

lecturer of the Department of General Educational Disciplines

Kazan national research Technological University

Russia, Kazan

АНОТАЦІЯ

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

ABSTRACT

The article examines the methods of access to databases and the software interfaces used in these access methods. We consider the integration of Visual C # applications with the Microsoft SQL Server 2012 database server. As an example the development of the "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 передбачено обмеження операцій. Які можуть її змінити, так що вони виконуються тільки в межах транзакцій. При спробі декількох користувачів одночасно використовувати одну і ту ж таблицю бази даних, створюється ситуація конкурентного доступу. Проблеми, пов'язані з одночасним доступом, виникають навіть у відносно простих додатках, якщо програма встановлена \u200b\u200bі запущено в багато користувачів, у якій в недостатній мірі забезпечено управління одночасним доступом. Конфлікт транзакцій не виникає, якщо вони виконуються послідовно.

Одним з головних інструментів підтримки цілісності бази даних є транзакція. Транзакція инкапсулирует все 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 \u003d false; comboBox1.SelectedIndex \u003d -1;

button2.Enabled \u003d false;

Малюнок 1. Вид головного вікна програми

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

private string parfam, parpasw, parlog;

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

using System.Data.SqlClient;

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

string sql \u003d "";

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

SqlDataReader cmReader;

parfam \u003d comboBox1.Text; parlog \u003d textBox1.Text;

SqlConnection conn \u003d new SqlConnection (connstr);

sql \u003d "SELECT Прізвище, Ім'я, Пароль FROM Користувачі" +

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

SqlCommand cmdkod \u003d new SqlCommand (sql, conn);

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

cmdkod.Parameters [ "@ fam"]. Value \u003d parfam;

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

cmdkod.Parameters [ "@ pasw"]. Value \u003d parpasw;

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

cmdkod.Parameters [ "@ log"]. Value \u003d parlog;

if (! cmReader.Read ())

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

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

menuStrip1.Enabled \u003d true; comboBox1.SelectedIndex \u003d -1;

button1.Enabled \u003d false; button2.Enabled \u003d true;

textBox1.Text \u003d ""; textBox1.Enabled \u003d false;

textBox2.Text \u003d ""; textBox2.Enabled \u003d false;

comboBox1.Enabled \u003d false;

cmReader.Close ();

private void button2_Click (object sender, EventArgs e)

menuStrip1.Enabled \u003d false; comboBox1.Enabled \u003d true;

textBox1.Enabled \u003d true; textBox2.Enabled \u003d true;

button1.Enabled \u003d true; button2.Enabled \u003d false;

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

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

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

cmReader \u003d 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с.