Робота з бд в foxpro
2. Загальні теоретичні відомості
Проектування структури, тобто визначення входять до запис полів, їх типу, розміру, а також зв'язків між базами виконується зазвичай один раз спочатку до заповнення бази даних. Кожна з баз даних містить інформацію про будь-яких об'єктах одного типу (групи), наприклад, база даних документів або база даних виконавців. Кожна база даних утворена рядками і стовпцями, які називаються відповідно записами і полями. Кожне поле має найменування і тип, який визначає характер даних, які зберігаються в цьому полі.
У FoxPro припустимі наступні типи даних:
- Character - символьний вираз;
- Currency - грошовий вираз для числової величини;
- Date - вираз для дати;
- DateTime - вираз дата і час;
- Logical - булева висловлювання;
- Numeric - числове вираження;
- Integer - ціле число;
- Double - числа з плаваючою точкою подвійної точності;
- Float - то ж, що числове вираження (Залишено для сумісності);
- General - поле для посилання на об'єкт OLE;
- Memo - поле приміток для посилання на блок даних;
Реляційні бази даних зв'язуються між собою за допомогою сполучних полів. FoxPro підтримує чотири типи відносин між базами даних: один-до-одного, один-ко-багато чому, багато-до-одного, багато-до-багатьох. Зв'язок між базами даних здійснюється на підставі значень зв'язуючих полів, які, як правило, є індексними. Кожна база даних може містити одне або кілька індексних полів, що утворюють в цьому випадку складовою індекс.
3 Порядок виконання роботи
3.1 Проектування баз даних
Створення нової бази даних в FoxPro v 5.0 починається зі створення нового проекту. Створіть новий проект (директива New з File-меню). У вікні, виберіть Project і натисніть кнопку New File. Збережіть створений проект під будь-яким ім'ям.
Автоматично з'являється вікно диспетчера проектів. Диспетчер проектів зручно використовувати, якщо привести його до виду панелі інструментів і вбудувати в головне вікно Visual FoxPro. Для цього достатньо перетягнути вікно Диспетчера проектів до верхньої рамці вікна Visual FoxPro.
Створіть нову базу даних. Для цього у вікні проекту виберіть вкладку Data. виділіть заголовок Database і натисніть кнопку New. Збережіть нову базу даних під будь-яким ім'ям.
Вам необхідно створити базу даних з наступною структурою.

Мал. 1. Структура бази даних
Створіть таблицю документів в диспетчері проектів. Для цього у вашій новій базі даних виберіть заголовок Tables. натисніть кнопку New. У вікні New Table натисніть кнопку New Table. потім збережіть таблицю.
Після того, як ви зберегли таблицю автоматично відкривається вікно Конструктора таблиць - Table Designer. в якому можна виконати визначення структури таблиці. У центральній частині вікна розташований список полів. У ньому визначаються імена полів (Name), типи полів (Type), розміри полів (Width), кількість десяткових розрядів після коми для числових полів (Decimal). У стовпці Index можна вказати необхідність створення індексу звичайного типу зі зростаючою (Ascending) або спадної (Descending) послідовністю значень. У стовпці NULL можна відзначити допустимість використання значень NULL в даному полі. Значення NULL дозволяють виконувати такі специфічні завдання:
- визначати відсутність ознак в поле;
- мати значення, відмінні від порожнього рядка або цифри 0;
-ці значення розташовуються попереду інших значень;
- використовуються при обчисленнях і в великій кількості функції.
При введенні першої ж літери імені діалогове вікно змінює свій зовнішній вигляд - про бнаружіваются кошти вказівки інших характеристик поля: розміру, типу, ключа. Порядок рядків визначень полів у вікні Table Designer відповідає порядку полів у запису (порядку стовпців в її табличній формі).
Після того, як ви створили поля записів у вкладці Fields Конструктора таблиць, перейдіть у вкладку Indexes і внесіть дані про ключі (індексах), званих тегами.
У стовпець Name заноситься ім'я тега. Воно повинно починатися з літери або знака підкреслення і не може включати більше 10 букв, цифр або знаків підкреслення. У стовпці Type вказується тип індексу, наприклад, primary (первинний), regular (звичайний). У стовпці Expression в якості вираження для індексного ключа зазвичай використовується ім'я поля, по якому створюється тег. У стовпці Filter ви можете накласти обмеження на записи, які будуть доступні при активізації індексу. Переглядати і редагувати можна буде лише ті записи, які будуть задовольняти вказаним виразом. У стовпці Order можна встановити зростаючий або спадаючий порядок розташування даних в індексі.
До тих пір, поки не натиснута кнопка ОК в діалоговому вікні Table Designer. структура таблиці не була зафіксована, і в неї можна вносити будь-які зміни.
Згодом в структуру таблиці можна внести зміни двома способами.
1) виділити заголовок таблиці мишкою в диспетчері проектів і натиснути кнопку Modify;
2) в меню View головного вікна Visual FoxPro вибрати пункт Database Designer. за умови наявності в меню View пункту типу Browse " <Название вашей таблицы> (<Название вашей базы данных>!<Название вашей таблицы>) ".
Аналогічним чином створіть таблиці виконавців і контролю виконання.
3.2 Перевірка правильності, тригери
Для кожного поля може бути заданий набір правил, за допомогою яких контролюється зберігання і перевірка інформації. Для кожного поля можуть бути задані:
Validation Rule - правило перевірки (логічне вираз);
Validation Text - повідомлення при перевірці (виводиться при помилковому значенні логічного виразу);
Default Value - значення за замовчуванням;
Caption - заголовок стовпця.
Повинні бути задані наступні обмеження: значення поля «номер документа» має бути більше нуля, в поле «дата отримання» спочатку заноситься поточна дата.
Перевірка правильності на рівні запису полягає в створенні тригера, наприклад, заборона на оновлення запису.
3.3 Заповнення баз даних
Для заповнення таблиці необхідно виділити заголовок таблиці мишкою в диспетчері проектів і натиснути кнопку Browse. Щоб ввести FoxPro включає вікно, в якому все поля однієї записи таблиці розташовані один під одним в окремих рядках. Курсор знаходиться в першому рядку, де FoxPro очікує введення номера першого документа. Введіть дані у відповідні поля. Після завершення введення даних в одне поле за допомогою [Tab] переходите до наступного. Щоб додати новий запис в таблицю, виберіть пункт Append Mode в меню View.
Для заповнення нуля фотографії, двічі клацніть по ньому мишею. Відкриється вікно з ім'ям типу ім'я_таблиці .І мя_поля. Для вбудовування об'єкта викличте директиву Insert Object з Edit-меію і виберіть тип об'єкта. Ви можете створити новий об'єкт або створити об'єкт з файлу, поставивши відповідний прапорець у вікні. Вставка об'єкта і вибрати файл, натиснувши кнопку Огляд.
3.4 Зв'язування баз даних і цілісність посилальної системи
Виконайте зв'язування баз даних документів і виконань. Переконайтеся, що по полю "номер документа" створений первинний індекс для таблиці Документи У таблиці Виконання створіть звичайний (тип Regular) індекс по полю "номер документа". Для роботи з елементами бази даних існує Конструктор Бази Даних. Щоб увійти в нього, виберіть пункт Database Designer меню View. У Конструкторі БД кожна таблиця представлена окремим вікном з ім'ям таблиці в рядку заголовка. Вікно містить список полів таблиці і список індексів таблиці, що розташовується під списком полів. Зображення ключа перед індексом позначає, що даний індекс є первинним.
Для створення зв'язку між таблицями Документ і Контроль виконання натисніть кнопку миші на первинному індексі номера документа в таблиці документів, і не відпускаючи її, перемістити покажчик миші на індекс номера документа таблиці виконання. У вікні Конструктора БД ми побачимо створену зв'язок візуально.
Точно також треба зв'язати таблиці Виконавець і Контроль виконання.
Для визначення типу зв'язку між таблицями Документ і Виконання, необхідно відкрити вікно меню Window.
У лівому полі Aliases вікна Data Session містяться імена таблиць вашої візи даних. Якщо воно порожнє, натисніть кнопку Open і виберіть потрібні таблиці. Справа в розташоване поле Relations. яке призначене для відображення зв'язків між таблицями. У вікні Data Session постійні зв'язки не успадковуються, і відносини між таблицями треба встановлювати вручну. Для цього слід використовувати кнопку Relations. Виберіть зі списку відкритих таблиць ту, яка буде батьківської в встановлюється відношенні. Натисніть кнопку Relations. a потім виберіть в списку Aliases таблицю, яка повинна бути підпорядкована першій таблиці (дочірню). З'явиться діалогове вікно Set Index Order. У цьому вікні необхідно вибрати індекс у дочірньої таблиці, за яким буде встановлено відношення. Після цього з'явиться вікно будівника виразів Expression Builder. в якому треба вказати поле в батьківській таблиці, яке повинно бути пов'язано з індексом, обраним в дочірній таблиці. За замовчуванням створюється відношення 1: 1. Створіть відношення 1: М. Для цього виділіть мишкою батьківську таблицю в правій частині вікна Data Session (де зображена зв'язок таблиць) і натисніть кнопку 1_ to _ many. У вікні Create One - To - Many Relationships виберіть ім'я дочірньої таблиці. Закрийте вікно. Ви побачите, що в поле зв'язків встановлено зв'язок "1 багато до чого".
Аналогічним чином встановіть відношення 1: М для баз даних виконавців і контролю виконання.
1) з Конструктора таблиць, клацнувши по рядку заголовка вікна цієї таблиці;
2) з Диспетчера проектів, виділивши її ім'я і натиснувши кнопку Browse.
Зазвичай дані представляються у вигляді послідовності записів для зручності редагування (режим Edit). Однак можна уявити дані і в звичайній табличній формі. Для цього необхідно увійти в меню View і вибрати режим Browse.
Доповніть командний файл встановлення відносин директивами створення русифікованого Browse-вікна. У цій програмі повинні бути поля з усіх трьох баз даних: номер документа, тип документа (база даних документів), виконавець документа (база даних виконавців), дата виконання документа (база даних контроль виконання). Кожна колонка повинна мати український заголовок. Прізвища виконавців повинні виводитися українськими літерами з автоматичним перетворенням малих літер в прописні. Формат команди BOWSE наведено в додатку 1.
4 Форма звітності
1. Заповнені і пов'язані між собою файли таблиці документів, виконавців і контролю виконання.
2. Файл встановлення відносин.
З. Звіт з лабораторної роботи містить роздруківку файлу встановлення відносин з створення BROWSE -вікна.
5 Контрольні питання
1. Які типи даних для полів розрізняє Visual FoxPro.
2. Що таке індексне поле і для чого воно потрібне? Для чого створюється мультііндексний файл?
3. Як організовується зв'язок між базами даних, і які переваги це дає?
4. У чому полягає відмінність між зв'язуванням і вбудовуванням об'єктів?
5. Формат команди BROWSE
Список використаних джерел

БД характеристик автомобільних шин