Принцип роботи бази даних

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 19.06.2014
Размер файла 626,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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

Міністерство Освіти і Науки України

Національний Авіаційний Університет

Курсова робота

з дисципліни «Технології програмування»

Виконав:

студент ІКІТ-342

Мозговий І.П.

Перевірила доцент кафедри КСЗІ:

Мелешко Олена Олексіївна

Київ-2014

ВСТУП

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

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

Метою даної роботи є освоєння основних навиків роботи з таблицями та базами даних, використовуючи SQL.

Завданням даного курсового проекту являється створення програмного продукту - бази даних. Для реалізації даного завдання було обрано програмне середовище Builder C++ 6.0 та мова структурованих запитів SQL.

1. ТЕОРЕТИЧНІ ВІДОМОСТІ

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

База даних - це набір даних з наступними властивостями:

· дані логічно пов'язані між собою і несуть відповідну інформацію;

· структура баз даних звичайно відповідає тому специфічному набору даних, які вона містить;

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

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

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

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

Системи управління даними другого покоління

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

Системи управління даними третього покоління

Можливості СУБД розширились. Створені розвинуті інтерфейси, що забезпечують інтерактивний доступ звичайним користувачам.

Переваги СУБД:

· Скорочення надлишку даних;

· Без баз даних неможливо уникнути зберігання надлишкових даних;

· При наявності центрального контролю баз даних деякі надлишкові дані можна усунути;

· Надлишкові дані не можуть бути повністю усунені, оскільки велику роль в СУБД відіграють питання часу і достовірності.

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

Проектування бази даних

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

Існує два підходи, два варіанти до створення бази даних. Перший варіант широко відомий, бо він запропонований фірмою Microsoft. Другий варіант відображає практичний досвід проектування, і за основу взято варіант, надрукований у «ComputerWorld - Moscow» за 1996 рік.

Варіант 1.Етапи проектування бази даних

Нижче наведені основні етапи проектування бази даних:

Визначення мети створення бази даних.

Визначення таблиць, що їх повинна містити база даних.

Визначення необхідних у таблиці полів.

Завдання індивідуального значення кожному полю.

Визначення зв'язків між таблицями.

Відновлення структури бази даних.

Додавання даних і створення запитів, форм, звітів та інших об'єктів бази даних.

Використання засобів аналізу в СУБД.

Розглянемо ці етапи дещо детальніше.

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

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

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

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

- кожне поле має бути пов'язане з темою таблиці;

- не рекомендується включати до таблиці дані, що є результатом виразу;

- у таблиці має бути вся необхідна інформація;

- інформацію варто розбивати на найменші логічні одиниці (наприклад, поля «Ім'я» і «Прізвище», а не загальне поле «Ім'я»).

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

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

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

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

Використання засобів аналізу в СУБД. Наприклад, у СУБД Microsoft Access є два інструменти для вдосконалення структури баз даних. Майстер аналізу таблиць досліджує таблицю, в разі потреби пропонує нову її структуру та зв'язки, а також переробляє її. Аналізатор швидкодії досліджує всю базу даних, дає рекомендації з її поліпшення, а також реалізує їх.

Варіант 2. Розробка проекту бази даних

1. Розробка логічної моделі даних. Логічні моделі використовуються розробниками баз даних для формального представлення інформаційних потреб виробництва, економіки, бізнесу тощо. Найрозповсюдженішою формою відображення цієї моделі слугують ER-діаграми. Основними поняттями ER-моделі є сутність, зв'язок та атрибут. Кожна з частин такої діаграми повідомляє дещо про структуру даних або про те, як ці дані співвідносяться з іншими.

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

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

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

3. Перетворення логічної моделі у фізичну. У процесі розробки фізичної моделі сутності, атрибути та зв'язки складають фізичну модель, відображаються у таблиці та стовпчиках. До раніш заданих властивостей стовпчиків (типів даних, довжини і невизначених значень) додаються нові - первинні та зовнішні ключі, індекси, перевірочні обмеження та правила підтримки посилкової цілісності. Щоб правильно і добре виконати цей етап проектування, засоби моделювання даних повинні працювати з кількома популярними СУБД SQL-типу, графічно відображати фізичні характеристики, дозволяти призначати та модифікувати триггери1 за замовчування, створювати власні тригери, денормалізувати фізичну модель, не торкаючись при цьому логічної.

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

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

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

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

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

2. СТРУКТУРА БАЗИ ДАНИХ «СКЛАД»

База даних складається з 3 таблиць: book, container, customs.

Таблиці бази даних містять наступні поля - таблиця book: id, cat_name, bk_name, aut_name, aut_surname, aut_patronymic, aut_phone, aut_email, aut_passport, bk_price; таблиця container - id_containerint, id int, bk_data, bk_bar_codeint; таблиця customs - id_customsint, id_containerint, cus_data, cus_priceint, cus_finish.

Всі таблиці розміщені в головній формі на елементі, який має назву Page Control. На елементі Page Control розміщено 3 вкладки. Для таблиці book, container передбачена можливість додавання, редагування та видалення записів з таблиці - кнопки Insert, Update та Delete відповідно. Передбачена можливість переводу книги з таблиці customsу статус пройдена митниця, чи ні.

На вкладках програми передбаченні можливості відповідних запитів по сортування записів чи вибирання по певних критеріях.

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

3. ПРОГРАМУВАННЯ БАЗИ ДАНИХ

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include <fstream.h>

#pragma package(smart_init)

#pragma resource "*.dfm"

int id_stud, id_instr;

int dell_id_stud, dell_id_tems, dell_id_instr, dell_id_temi;

String n1,n2,n3,n4;

TForm1 *Form1;

fastcall TForm1: TForm1(TComponent* Owner)

: TForm(Owner)

void __fastcall TForm1::TabSheet1Show(TObject *Sender)

Query1->SQL->Clear();

Query1->Close();

if (RadioButton1->Checked)

Query1->SQL->Add("select * from kurs.template");

if (RadioButton2->Checked)

Query1->SQL->Add("select * from kurs.instructor");

if (RadioButton3->Checked)

Query1->SQL->Add("select * from kurs.name");

if (RadioButton4->Checked)

Query1->SQL->Add("select * from kurs.student");

Query1->Open();

void __fastcall TForm1::RadioButton1Click(TObject *Sender)

Query1->SQL->Clear();

Query1->Close();

Query1->SQL->Add("select * from kurs.template");

Query1->Open();

void __fastcall TForm1::RadioButton2Click(TObject *Sender)

Query1->SQL->Clear();

Query1->Close();

Query1->SQL->Add("select * from kurs.instructor");

Query1->Open();

void __fastcall TForm1::RadioButton3Click(TObject *Sender)

Query1->SQL->Clear();

Query1->Close();

Query1->SQL->Add("select * from kurs.name");

Query1->Open();

void __fastcall TForm1::RadioButton4Click(TObject *Sender)

Query1->SQL->Clear();

Query1->Close();

Query1->SQL->Add("update student set avg = (select AVG(mark) from name where id_stud=id_student)");

Query1->ExecSQL();

Query1->SQL->Clear();

Query1->Close();

Query1->SQL->Add("select * from kurs.student");

Query1->Open();

void __fastcall TForm1::FormCreate(TObject *Sender)

string s;

ifstream F;

F.open("file.txt");

while (!F.eof())

SQL->Clear();

getline(F, s);

Query1->SQL->Add(s.c_str());

Query1->ExecSQL();

Query1->Close();

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)

Query1->SQL->Clear();

Query1->Close();

Query1->SQL->Add("drop database kurs");

Query1->ExecSQL();

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)

if (Key>='А' && Key<='я' || Key==VK_BACK) {}

else Key=0;

void __fastcall TForm1::Edit8KeyPress(TObject *Sender, char &Key)

if (Key>='1' && Key<='5' || Key==VK_BACK) {}

else Key=0;

void __fastcall TForm1::Edit4KeyPress(TObject *Sender, char &Key)

if (Key>='0' && Key<='9' Key=='-' Key==VK_BACK) {}

else Key=0;

void __fastcall TForm1::Edit6KeyPress(TObject *Sender, char &Key)

if ((Key>='0' && Key<='9') || (Key>='А' && Key<='Я')|| Key==VK_BACK) {}

else Key=0;

void __fastcall TForm1::Edit11KeyPress(TObject *Sender, char &Key)

if ((Key>='0' && Key<='9') || (Key>='А' && Key<='Я')|| Key=='-' || Key==VK_BACK) {}

else Key=0;

void __fastcall TForm1::Edit13KeyPress(TObject *Sender, char &Key)

if (Key>='0' && Key<='9' || Key==VK_BACK) {}

else Key=0;

void __fastcall TForm1::Edit5KeyPress(TObject *Sender, char &Key)

if ((Key>='0' && Key<='9') || (Key>='A' && Key<='z')|| Key=='.' || Key==VK_BACK || Key=='@')

if (Key=='@' && Edit5->Text.Pos('@')!=0) Key=0;

else Key=0;

void __fastcall TForm1::Button1Click(TObject *Sender)

try

if (ComboBox1->ItemIndex==0)

if(RadioButton5->Checked)

Query1->SQL->Clear();

Query1->Close();

Query1->SQL->Add("insert into student values ("+Edit13->Text+", '"+Edit1->Text+"', '"+ Edit2->Text+"', '"+Edit3->Text+"', '"+Edit4->Text+"', '"+Edit5->Text+"', '"+Edit6->Text+"', "+Edit7->Text+", NULL, '" +Edit11->Text+"', '" +Edit12->Text+"')");

Query1->ExecSQL();

Query1->SQL->Clear();

Query1->Close();

Query1->SQL->Add("insert into name values ("+Edit13->Text+", '"+"Matematika', "+Edit8->Text+", 1)");

Query1->ExecSQL();

Query1->SQL->Clear();

Query1->Close();

Query1->SQL->Add("insert into name values ("+Edit13->Text+", '"+"Ukrainskiy', "+Edit9->Text+",2)");

Query1->ExecSQL();

Query1->SQL->Clear();

Query1->Close();

Query1->SQL->Add("insert into name values ("+Edit13->Text+", '"+"Fizika', "+Edit10->Text+", 3)");

Query1->ExecSQL();

if(RadioButton6->Checked)

GroupBox1->Visible=false;

GroupBox2->Visible=true;

Query1->SQL->Clear();

Query1->Close();

Query1->SQL->Add("insert into instructor values ("+Edit14->Text+", '"+Edit15->Text+"', '"+ Edit16->Text+"', '"+Edit17->Text+"', '"+Edit18->Text+"', '"+Edit19->Text+"', '"+Edit20->Text+"', "+Edit21->Text+", '" +Edit22->Text+"', " +Edit23->Text+")");

Query1->ExecSQL();

if (ComboBox1->ItemIndex==1)

if(RadioButton5->Checked)

Query1->SQL->Clear();

Query1->Close();

Query1->SQL->Add("update student set id_stud="+Edit13->Text+", name='"+Edit1->Text+"', surname='"+Edit2->Text+"', father='"+Edit3->Text+"', tel_num='"+Edit4->Text+"', email='"+Edit5->Text+"', data_of_pasport='"+Edit6->Text+"', id_tems="+Edit7->Text+", grup='"+Edit11->Text+"', curator='"+Edit12->Text+"' where id_stud="+IntToStr(id_stud)); Query1->ExecSQL();

Query1->ExecSQL();

Query2->SQL->Clear();

Query2->Close();

Query2->SQL->Add("select * from student");

Query2->Open();

if(RadioButton6->Checked)

Query1->SQL->Clear();

Query1->Close();

Query1->SQL->Add("update instructor set id_instr="+Edit14->Text+", name='"+Edit15->Text+"', surname='"+Edit16->Text+"', father='"+Edit17->Text+"', tel_num='"+Edit18->Text+"', email='"+Edit19->Text+"', data_of_pasport='"+Edit20->Text+"', id_temi="+Edit21->Text+", status='"+Edit22->Text+"', age_of_work="+Edit23->Text+" where id_instr="+IntToStr(id_instr)); Query1->ExecSQL();

Query1->ExecSQL();

Query2->SQL->Clear();

Query2->Close();

Query2->SQL->Add("select * from instructor");

Query2->Open();

if(RadioButton7->Checked)

Query1->SQL->Clear();

Query1->Close();

Query1->SQL->Add("update name set id_student="+Edit24->Text+", subject='"+Edit25->Text+"', mark="+Edit26->Text+", id_instructor="+Edit27->Text+" where id_student="+n1+" and subject='"+n2+"' and mark="+n3+" and id_instructor="+n4); Query1->ExecSQL();

Query1->ExecSQL();

Query2->SQL->Clear();

Query2->Close();

Query2->SQL->Add("select * from name");

Query2->Open();

if (ComboBox1->ItemIndex==2)

if(RadioButton5->Checked)

Query3->SQL->Clear();

Query3->Close();

Query3->SQL->Add("delete from name where id_student ="+IntToStr(dell_id_stud));

Query3->ExecSQL();

Query3->SQL->Clear();

Query3->Close();

Query3->SQL->Add("delete from student where id_stud ="+IntToStr(dell_id_stud));

Query3->ExecSQL();

if(RadioButton6->Checked)

Query3->SQL->Clear();

Query3->Close();

Query3->SQL->Add("delete from name where id_instructor ="+IntToStr(dell_id_instr));

Query3->ExecSQL();

Query3->SQL->Clear();

Query3->Close();

Query3->SQL->Add("delete from instructor where id_instr ="+IntToStr(dell_id_instr));

Query3->ExecSQL();

if(RadioButton5->Checked)

Query3->SQL->Clear();

Query3->Close();

Query3->SQL->Add("select * from student");

Query3->Open();

if(RadioButton6->Checked)

Query3->SQL->Clear();

Query3->Close();

Query3->SQL->Add("select * from instructor");

Query3->Open();

catch(EDatabaseError&)

ShowMessage("Проверте ввод!");

void __fastcall TForm1::Edit19KeyPress(TObject *Sender, char &Key)

if ((Key>='0' && Key<='9') || (Key>='A' && Key<='z')|| Key=='.' || Key==VK_BACK || Key=='@')

if (Key=='@' && Edit19->Text.Pos('@')!=0) Key=0;

else Key=0;

void __fastcall TForm1::RadioButton5Click(TObject *Sender)

GroupBox1->Visible=true;

GroupBox2->Visible=false;

GroupBox3->Visible=false;

if (ComboBox1->ItemIndex==1)

Query2->SQL->Clear();

Query2->Close();

Query2->SQL->Add("select * from student");

Query2->Open();

if (ComboBox1->ItemIndex==2)

Query3->SQL->Clear();

Query3->Close();

Query3->SQL->Add("select * from student");

Query3->Open();

void __fastcall TForm1::RadioButton6Click(TObject *Sender)

GroupBox2->Visible=true;

GroupBox1->Visible=false;

GroupBox3->Visible=false;

if (ComboBox1->ItemIndex==1)

Query2->SQL->Clear();

Query2->Close();

Query2->SQL->Add("select * from instructor");

Query2->Open();

if (ComboBox1->ItemIndex==2)

Query3->SQL->Clear();

Query3->Close();

Query3->SQL->Add("select * from instructor");

Query3->Open();

void __fastcall TForm1::ComboBox1Change(TObject *Sender)

if (ComboBox1->ItemIndex==0 || ComboBox1->ItemIndex==2)

if(ComboBox1->ItemIndex==0){ Label28->Visible=false;

DBGrid3->Visible=false;

Edit8->Visible=true;

Edit9->Visible=true;

Edit10->Visible=true;

Label10->Visible=true;

Label11->Visible=true;

Label12->Visible=true;

Edit1->Clear();Edit2->Clear();Edit3->Clear();Edit4->Clear();Edit5->Clear();

Edit6->Clear();Edit7->Clear();Edit8->Clear();Edit9->Clear();Edit10->Clear();

Edit11->Clear();Edit12->Clear();Edit13->Clear();Edit14->Clear();Edit15->Clear();

Edit16->Clear();Edit17->Clear();Edit18->Clear();Edit19->Clear();Edit20->Clea();

Edit21->Clear();Edit22->Clear();Edit23->Clear();

RadioButton7->Visible=false; DBGrid2->Visible=false;

if(RadioButton7->Checked)

{GroupBox1->Visible=false;

GroupBox2->Visible=false;

GroupBox3->Visible=false;}

else {RadioButton7->Visible=true; DBGrid2->Visible=true;}

if (ComboBox1->ItemIndex==1)

{DBGrid3->Visible=false; Label28->Visible=false;

if(RadioButton5->Checked)

Edit8->Visible=false;

Edit9->Visible=false;

Edit10->Visible=false;

Label10->Visible=false;

Label11->Visible=false;

Label12->Visible=false;

Query2->SQL->Clear();

Query2->Close();

Query2->SQL->Add("select * from student");

Query2->Open();

if(RadioButton6->Checked)

Query2->SQL->Clear();

Query2->Close();

Query2->SQL->Add("select * from instructor");

Query2->Open();

if(RadioButton7->Checked)

Query2->SQL->Clear();

Query2->Close();

Query2->SQL->Add("select * from name");

Query2->Open();

if(ComboBox1->ItemIndex==2){

DBGrid3->Visible=true;

if(RadioButton5->Checked)

Query3->SQL->Clear();

Query3->Close();

Query3->SQL->Add("select * from student");

Query3->Open();

if(RadioButton6->Checked)

Query3->SQL->Clear();

Query3->Close();

Query3->SQL->Add("select * from instructor");

Query3->Open();

void __fastcall TForm1::RadioButton7Click(TObject *Sender)

GroupBox1->Visible=false;

GroupBox2->Visible=false;

GroupBox3->Visible=true;

if (ComboBox1->ItemIndex==1)

Query2->SQL->Clear();

Query2->Close();

Query2->SQL->Add("select * from name");

Query2->Open();

void __fastcall TForm1::Edit26KeyPress(TObject *Sender, char &Key)

if (Key>='1' && Key<='5' || Key==VK_BACK) {}

else Key=0;

void __fastcall TForm1::DBGrid2CellClick(TColumn *Column)

if (RadioButton7->Checked)

n1=Query2->FieldByName("id_student")->AsString;

n2=Query2->FieldByName("subject")->AsString;

n3=Query2->FieldByName("mark")->AsString;

n4=Query2->FieldByName("id_instructor")->AsString;

Edit24->Text=Query2->FieldByName("id_student")->AsString;

Edit25->Text=Query2->FieldByName("subject")->AsString;

Edit26->Text=Query2->FieldByName("mark")->AsString;

Edit27->Text=Query2->FieldByName("id_instructor")->AsString;

if (RadioButton6->Checked)

id_instr=StrToInt(Query2->FieldByName("id_instr")->AsString);

Edit14->Text=Query2->FieldByName("id_instr")->AsString;

Edit15->Text=Query2->FieldByName("name")->AsString;

Edit16->Text=Query2->FieldByName("surname")->AsString;

Edit17->Text=Query2->FieldByName("father")->AsString;

Edit18->Text=Query2->FieldByName("tel_num")->AsString;

Edit19->Text=Query2->FieldByName("email")->AsString;

Edit20->Text=Query2->FieldByName("data_of_pasport")->AsString;

Edit21->Text=Query2->FieldByName("id_temi")->AsString;

Edit22->Text=Query2->FieldByName("status")->AsString;

Edit23->Text=Query2->FieldByName("age_of_work")->AsString;

if (RadioButton5->Checked)

id_stud=StrToInt(Query2->FieldByName("id_stud")->AsString);

Edit13->Text=Query2->FieldByName("id_stud")->AsString;

Edit1->Text=Query2->FieldByName("name")->AsString;

Edit2->Text=Query2->FieldByName("surname")->AsString;

Edit3->Text=Query2->FieldByName("father")->AsString;

Edit4->Text=Query2->FieldByName("tel_num")->AsString;

Edit5->Text=Query2->FieldByName("email")->AsString;

Edit6->Text=Query2->FieldByName("data_of_pasport")->AsString;

Edit7->Text=Query2->FieldByName("id_tems")->AsString;

Edit11->Text=Query2->FieldByName("grup")->AsString;

Edit12->Text=Query2->FieldByName("curator")->AsString;

void __fastcall TForm1::DBGrid3CellClick(TColumn *Column)

if (RadioButton6->Checked)

dell_id_instr=StrToInt(Query3->FieldByName("id_instr")->AsString);

dell_id_temi=StrToInt(Query3->FieldByName("id_temi")->AsString);

if (RadioButton5->Checked)

dell_id_stud=StrToInt(Query3->FieldByName("id_stud")->AsString);

dell_id_tems=StrToInt(Query3->FieldByName("id_tems")->AsString);

Query4->SQL->Clear();

Query4->Close();

Query4->SQL->Add("select name, surname, father, tel_num, email, data_of_pasport, faculty, cathedra, institute, avg, grup, curator from student, template where id_tem=id_tems and id_stud="+Edit28->Text);

Query4->Open();

catch(EDatabaseError&)

ShowMessage("Проверте ввод!");

void __fastcall TForm1::Button3Click(TObject *Sender)

Query5->SQL->Clear();

Query5->Close();

Query5->SQL->Add("select name, surname, father, tel_num, email, data_of_pasport, faculty, cathedra, institute, status, age_of_work from instructor, template where id_tem=id_temi and id_instr="+Edit29->Text);

Query5->Open();

catch(EDatabaseError&)

ShowMessage("Проверте ввод!");

void __fastcall TForm1::Button4Click(TObject *Sender)

Query6->SQL->Clear();

Query6->Close();

Query6->SQL->Add("select subject, mark, name, surname, father, grup from student, name where id_student = id_stud");

Query6->Open();

void __fastcall TForm1::Button5Click(TObject *Sender)

if (ComboBox2->ItemIndex==0)

if (ComboBox3->ItemIndex==0)

{Query6->SQL->Clear();

Query6->Close();

Query6->SQL->Add("select subject, mark, name, surname, father, grup from student, name where id_student = id_stud order by subject");

Query6->Open();

else {

Query6->SQL->Clear();

Query6->Close();

Query6->SQL->Add("select subject, mark, name, surname, father, grup from student, name where id_student = id_stud order by subject DESC");

Query6->Open();

if (ComboBox2->ItemIndex==1)

if(ComboBox3->ItemIndex==0){

Query6->SQL->Clear();

Query6->Close();

Query6->SQL->Add("select subject, mark, name, surname, father, grup from student, name where id_student = id_stud order by grup");

Query6->Open();

else {

Query6->SQL->Clear();

Query6->Close();

Query6->SQL->Add("select subject, mark, name, surname, father, grup from student, name where id_student = id_stud order by grup DESC");

Query6->Open();}

void __fastcall TForm1::Button6Click(TObject *Sender)

Query7->SQL->Clear();

Query7->Close();

Query7->SQL->Add("create view kur as select subject, mark from name");

Query7->ExecSQL();

Query7->SQL->Clear();

Query7->Close();

Query7->SQL->Add("select * from kur");

Query7->Open();

Button6->Enabled=false;

4. ДЕМОНСТРАЦІЯ ПРОГРАМИ

Редагування:

Вигляд інформації:

ВИСНОВОК

Під час виконання курсової роботи була створена база даних «Склад», а також система управління цією базою (СУБД). Створення бази і таблиць відбувалось в середовищі Builder у формі запитів - SQL.

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

данні програмування builder

ЛІТЕРАТУРА

1. А. Хомоненко, С. Ададуров. Работа с базами данных в C++ BUILDER

2. А.Я. Архангельский. C++Builder 6. Справочное пособие.

3. Астахова И.Ф., Толстобров А.П., Мельников В.М. SQL в примерах и задачах: Учебное пособие.

Размещено на Allbest.ru

...

Подобные документы

  • Розробка структури бази даних. ER-моделі предметної області. Проектування нормалізованих відношень. Розробка форм, запитів, звітів бази даних "Автосалон". Тестування роботи бази даних. Демонстрація коректної роботи форми "Додавання даних про покупців".

    курсовая работа [4,0 M], добавлен 02.12.2014

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

    курсовая работа [2,9 M], добавлен 06.11.2011

  • Проектування бази даних та інтерфейсу програми. Розробка бази даних за допомогою Firebird 2.5. Контроль коректності вхідних та вихідних даних. Додавання та редагування інформації. Вплив електронно-обчислювальних машин на стан здоров'я користувачів.

    дипломная работа [4,7 M], добавлен 12.10.2015

  • Узагальнена структурна схема інформаційної системи та алгоритми її роботи. Проект бази даних. Інфологічне проектування і дослідження предметної області. Розробка інфологічної моделі предметної області. Розробка композиційної, логічної системи бази даних.

    курсовая работа [861,7 K], добавлен 21.02.2010

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

    курсовая работа [147,2 K], добавлен 02.06.2019

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

    курсовая работа [946,8 K], добавлен 02.07.2015

  • Розробка бази даних для меблевої фірми. Обстеження і аналіз предметної області та побудова концептуальної, логічної та фізичної моделі цієї бази даних. Використання мови програмування Visual Basic при написанні програмного коду, що обслуговує базу даних.

    курсовая работа [1,4 M], добавлен 24.10.2010

  • Проектування бази даних, що реалізує звіти про графік робіт на об’єктах впродовж місяця. Графічне зображення нагромаджувачів даних. Побудова діаграм потоків даних і переходів станів, таблиць у вигляді двовимірного масиву, запитів. Створення бази даних.

    курсовая работа [1,2 M], добавлен 29.02.2012

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

    курсовая работа [3,5 M], добавлен 28.11.2011

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

    курсовая работа [2,5 M], добавлен 02.01.2014

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

    курсовая работа [8,8 M], добавлен 16.12.2015

  • Проектування бази даних предметної області "Магазин будівельних матеріалів". Аналіз сукупності вхідних і вихідних даних, шляхи удосконалення інформаційної системи обліку товару. Організація інформаційної бази, розробка логічної і фізичної моделі.

    курсовая работа [559,2 K], добавлен 09.05.2016

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

    отчет по практике [748,5 K], добавлен 26.03.2015

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

    курсовая работа [414,5 K], добавлен 31.01.2014

  • Розробка бази даних в середовищі Microsoft SQL Server 2008 для обліку послуг фітнес-клубу. Таблиці для баз даних, їх властивості. Аналіз сукупності вхідних і вихідних параметрів, опис інформаційної бази, розробка логічної і фізичної моделі даних в ІС.

    курсовая работа [449,9 K], добавлен 09.05.2016

  • Розробка бази даних "Автовокзал". Функціональні залежності між атрибутами. Ідентифікація атрибутів, які в реляційної моделі даних використовуються в якості первинних ключів реляційних відносин. Організація вибірки інформації з бази за допомогою запиту.

    курсовая работа [35,6 K], добавлен 19.08.2012

  • Розробка бази даних для обробки інформації про діяльність туристичного агентства. Визначення предметної області, вхідних та вихідних даних, їх організації. Генерація схеми бази даних. Реалізація функціональних вимог. Інструкція з експлуатації системи.

    курсовая работа [5,3 M], добавлен 12.05.2015

  • Визначення мети створення бази даних магазину та таблиць, які вона повинна містити. Розгляд видів полів та ключів таблиць. Створення запитів, форм, звітів, макросів та модулів. Вибір системи управління базами даних. Реалізація моделі у Microsoft Access.

    курсовая работа [3,8 M], добавлен 20.07.2014

  • Основні поняття та особливості розробки баз даних в Microsoft Access. Побудова бази даних магазину побутової техніки: створення таблиць та встановлення зв’язків між ними, створення запитів, форм та звітів. Охорона праці і гігієна користувача комп'ютера.

    курсовая работа [2,5 M], добавлен 19.01.2010

  • Використання баз даних та інформаційних систем. Поняття реляційної моделі даних. Ключові особливості мови SQL. Агрегатні функції і угрупування даних. Загальний опис бази даних. Застосування технології систем управління базами даних в мережі Інтернет.

    курсовая работа [633,3 K], добавлен 11.07.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.