Смекни!
smekni.com

Довідник аматора живопису (стр. 3 из 6)

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

В створену базу даних додамо 4 таблиці:

1. Таблиця epohi має поля: kod (код епохи), name (назва епохи живопису), period (історичний період), cherti (коротка характеристика епохи), predstaviteli (найвідоміші представники епохи);

2. Таблиця hudogniki має поля: num (номер), fio (прізвище, ім’я та по-батькові художника), date_birth (дата народження художника), date_death (дата смерті художника), epoha (спрямування в історії живопису), count_kartin (кількість картин, що написав художник), best_kartin (найкращі картини художника);

3. Таблиця kartini має поля: num (номер), name (назва картини), fio (прізвище, ім’я та по-батькові художника), date (дата написання картини), epoha (епоха, в яку була створена картина), razmer (розмір картини), material (матеріал, з якого було створено картину), museum (музей, в якому картина зберігаться);

4. Таблиця museums має поля: kod (код музею), name (зава музею), place (місце розташування), opisanie (короткий опис музею).

Для того, щоб створити кожну з таблиць, натискаємо на хрестик поруч з базою даних та зі списку обираємо пункт Tables. Натискаємо Create…New table та обираємо ім’я таблиці і місце зберігання – каталог Data. Після цього відкривається вікно табличного редактора першої таблиці epohi (рис. 2.4), у якому вводимо імена та псевдоніми для полів таблиці, типи даних цих полів. На вкладці Індекси створюємо необхідні для роботи індекси (рис. 2.5).

Рис. 2.4 – Створення полів таблиці epohi

Рис. 2.5 – Створення індексів таблиці epohi

Після створення усіх полів та індексів відкриваємо таблицю для введення даних, натиснувши кнопку Browse. Для створення нового запису необхідно натиснути комбінацію клавіш Ctrl+Y. Заповнена таблиця epohi показана на рис. 2.6.


Рис. 2.6 – Заповнена даними таблиця epohi

Аналогічно створюємо заповнюємо і інші 3 таблиці:

1) створення полів таблиць hudogniki, kartini, museums відповідно показано на рис. 2.7, 2.10 та 2.13;

2) створення індексів таблиць hudogniki, kartini, museums відповідно показано на рис. 2.8, 2.11 та 2.14;

3) заповнення даними таблиць hudogniki, kartini, museums відповідно показано на рис. 2.9, 2.12 та 2.15.

Рис. 2.7 – Створення полів таблиці hudogniki

Рис. 2.8 – Створення індексів таблиці hudogniki


Рис. 2.9 – Заповнена даними таблиця hudogniki

Рис. 2.10 – Створення полів таблиці kartini

Рис. 2.11 – Створення індексів таблиці kartini

Рис. 2.12 – Заповнена даними таблиця kartini


Рис. 2.13 – Створення полів таблиці museums

Рис. 2.14 – Створення індексів таблиці museums

Рис. 2.15 – Заповнена даними таблиця museums

2.1.4 Встановлення зв’язків між таблицями

У вікні Database designer відкриваємо створені раніше таблиці та встановлюємо необхідні для роботи зв’язки, використовуючи створені на попередньому етапі індекси. Схема зв’язків між таблицями показана на рис. 2.16.


Рис. 2.16 – Схема зв’язків між таблицями бази Dovidnik_Givopis

2.1.5 Визначення умов цілісності даних

Установлені відносини між таблицями можуть бути використані для завдання умов цілісності даних. Цілісність даних є одним з найважливіших вимог до баз даних.

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

Встановити умови цілісності даних можна за допомогою вікна “REFERENTIAL INTEGRITY BUILDER”. Їх встановлення показано нижче на рис. 2.17.

Рис. 2.17 – Визначення умов цілісності даних бази


Як бачимо в полі UPDATE усіх зв’язків між таблицями стоїть опція CASCADE, яка означає наступне: при зміні значень полів первинного ключа чи ключа-кандидата в батьківській таблиці автоматично здійснюється каскадна зміна усіх відповідних значень у дочірній таблиці. Наприклад, якщо це правило застосувати до відношення між таблицями hudogniki і kartini, то при зміні коду диска в таблиці hudogniki автоматично будуть змінені коди диска й у таблиці kartini.

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

Для поля INSERT встановлена опція IGNORE, що означає наступне: при введенні даних у дочірню таблицю не аналізується значення індексного вираження. Цілісність даних при цьому не підтримується.

При визначенні умов цілісності даних VISUAL FOX PRO створює службові тригери, текст яких можна переглянути у вкладці STORED PROCEDURES.

2.2 Створення форм

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

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

За допомогою майстра форм створимо 4 форми:

1) Форма artists – є звичайною однотабличною формою, що відображає дані з таблиці hudogniki. Загальний вид цієї форми представлений нижче на рис. 2.18.

Рис. 2.18 – Загальний вигляд форми artists

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

2) Форма pictures – також однотаблична форма, що відображає дані з таблиці kartini. Загальний вид цієї форми представлений нижче на рис. 2.19.


Рис. 2.19 – Загальний вигляд форми kartini

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

3) Форма epoch – це багатотаблична форма, що відображає дані з 2 таблиць: epohi та hudogniki. Загальний вид цієї форми представлений нижче на рис. 2.20.

Рис. 2.20 – Загальний вигляд форми epoch

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

4) Форма museums – це також багатотаблична форма, що відображає дані з 2 таблиць: museums та kartini. Загальний вид цієї форми представлений нижче на рис. 2.21.

Рис. 2.21 – Загальний вигляд форми museums

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

2.3 Формування запитів

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

Створимо 2 запити до бази даних:

1) Запит, що виводить на екран усіх художників-передвижників, які написали більше ніж 10 картин. Створення 1 запиту в режимі конструктора показано на рис. 2.22, а результат виконання запиту – на рис. 2.23.