Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕТОД1-4-kit.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.14 Mб
Скачать

Порядок виконання лабораторної роботи

1. Деякі дії над проектом можуть привести до втрати даних, логічних помилок, збоїв Access, тому бажано перед змінами бази зробити її резервну копію. Можна зберегти послідовно всі об'єкти бази, але найменш трудомістким є шлях копіювання всього проекту засобами DOS або Windows. Access всі проекти зберігає в окремих файлах з розширенням *.MDB. У ці файли входять описи всіх структур, що належать до однієї бази: опис таблиць, їхні зв'язки, індекси; опис форм, звітів; макроси й модулі, інша службова інформація. Копіюючи ці файли, ми дублюємо весь проект цілком, тому рекомендується робити збереження в копії всього проекту.

Зробимо копію проекту STUD, перемкнувшись засобами Windows у вікно диспетчера програм ("Program Manager"); запустимо диспетчер файлів подвійним кліком на іконці "File Manager" у групі "Main". У диспетчері файлів знайдемо файл, що зберігається, STUD.mdb, виділимо його, клацнувши на ньому мишкою. У меню "File" виконаємо команду "Copy to.." і у вікні, що з'явилося, уведемо ім'я майбутнього файлу STUD_1.MDB. Після натискання кнопки "Ок" ми одержимо копію бази STUD, з якої й будемо робити подальші дії.

2. Модифікація таблиць бази даних

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

Запустимо MS Access і відкриємо базу STUD_1.

2.1. Додавання нового поля в таблицю

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

Виділимо рядок таблиці "Посада". Для цього клацнемо по маркеру рядка – сірому прямокутнику в лівому краю імені поля. Рядок, над яким буде вставлено новий рядок, виділиться чорними кольорами. Виконаємо команду "Вставити рядок" ("Insert row") у меню "Вставка" ("Edit"), або натиснемо на клавіатурі клавішу "Ins". Над виділеним рядком з'явиться новий, порожній рядок. Уведемо в ньому:

Ім'я поля – "Стаж";

Тип даних – "Числовий";

Опис – "Стаж роботи викладача на кафедрі";

В області властивостей поля введемо для властивості “Розмір поля” ("Field size") тип Байт ("Byte").

2.2. Копіювання полів у таблиці

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

Створимо поля "Телефон_дом " й "Телефон_роб". Створюємо поле "Телефон_дом" з характеристиками:

Ім'я поля – "Телефон_дом";

Тип даних – Числовий;

Опис – "Домашній телефон".

В області властивостей поля введемо;

Розмір поля – Ціле;

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

Модифікуємо назву створеного поля на "Телефон_роб", клацнувши в даному рядку на стовпець "Поле" й увівши в ньому "Телефон _роб".

2.3. Створення масок введення значень

2.3.1. Створення масок

Можна додавати маски введення до полів таблиць і елементів керування формами там, де це логічно обгрунтовано. Наприклад, можна додати маску введення до поля типу "Дата/час" в таблиці або до поля у формі, приєднаному до поля типу "Дата/час". Проте не слід безладно використовувати маски введення.

Щоб додати маску введення до полів таблиці, можна запустити майстер масок введення або ввести маску у властивість поля "Маска введення" (Input Mask). Таким же чином маска введення додається до елемента керування на формі.

Маска введення складається з трьох частин, які розділені крапкою з комою. Перша частина є обов'язковою, а дві інші – необов'язковими. Перша частина визначає рядок маски і складається з місцезаповнювача і текстових констант. Друга частина вказує, чи слід зберігати знаки маски разом з даними в базі даних. Введіть 0, якщо в базі даних необхідно зберегти маску і дані. Введіть 1, якщо необхідно зберегти тільки дані. Третя частина визначає місцезаповнювач, який служить для позначення позиції даних. За умовчанням в Access використовується знак підкреслення. Якщо потрібно використовувати інший знак, введіть його в третю частину маски. За умовчанням позиція приймає тільки один знак або пропуск.

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

2.3.2. Перевірка маски введення

Помістіть курсор в поле, яке містить маску введення. Зверніть увагу, що маска відображається тільки після виділення поля. Замість пропусків введіть в маску числа і букви. Зверніть увагу, що маска приймає тільки цифри. У разі спроби додати букви додаток Access перешкоджає введенню знаків, оскільки місцезаповнювачи 9 і 0 дозволяють вводити тільки цифри. Видаліть цифру в основній частині телефонного номера і потім спробуйте перемістити курсор в інше поле або іншим способом зберегти запис. Буде відображене повідомлення про помилку. Повідомлення з’являється тому, що місцезаповнювач 0 обов'язково повинен містити цифру. У табл.4 та табл.5 перераховані і описані місцезаповнювачі і текстові константи, які можна використовувати в масці введення.

Таблиця 4 – Знаки маски введення

Знак

Використання

0

Цифра. У цю позицію обов'язково слід ввести одну цифру

9

Цифра. У цю позицію можна ввести одну цифру, але необов'язково

#

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

L

Літера. У цю позицію треба обов’язково ввести одну літеру

?

Літера. У цю позицію можна ввести одну літеру, але необов'язково

A

Літера чи цифра. У цю позицію треба обов’язково ввести одну літеру чи цифру

а

Літера чи цифра. У цю позицію треба обов’язково ввести одну літеру чи цифру, але необов'язково

&

Будь-який знак або пропуск. У цю позицію обов'язково слід ввести знак або пропуск

., : ; - /

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

!

Маска введення заповнюється зліва направо, а не справа наліво

\

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

"Текстова константа"

Будь-який текст, який повинен бачити користувач, береться в подвійні лапки

Пароль

У режимі конструктора таблиць або форм можна задати для властивості "Маска введення" (Input Mask) значення Пароль; при цьому створюється поле для введення пароля. Коли користувач вводить пароль в це поле, введені знаки зберігаються, але замість них відображаються зірочки (*)

Таблиця 5 – Приклади масок введення

Маска введення

Приклад введення значення

Опис

(000) 000-0000

(206) 555-0199

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

(999) 000-0000!

(206) 555-0199

( ) 555-0199

В цьому випадку в області міжміського коду використовується місцезаповнювач 9, тому міжміські коди необов'язкові. Крім того, знак ! обумовлює заповнення маски зліва направо

(000) AAA-AAAA

(206) 555-ТІЛІ

Надається можливість замінити буквами чотири останні цифри телефонного номера у форматі США. Зверніть увагу на місцезаповнювач 0 у області коду міста, який робить міжміський код обов'язковим

#999 -20

2000

Будь-яке позитивне або негативне число, що включає не більш чотири знаки і не має роздільників тисяч і дробової частини

>L????L?000L0

ЗЕЛЕНИЙ339М3

ТРАВЕНЬ Р 452Б7

Поєднання обов'язкових (L) і необов'язкових (?) літер і обов'язкових цифр (0). Знак "більше" вимагає вводити всі букви у верхньому регістрі. Щоб використовувати маску введення цього типу, необхідно задати для типу даних поля таблиці значення "Текстовий" або "Поле МЕМО"

Продовження табл. 5

Маска введення

Приклад введення значення

Опис

00000-9999

61072-

83055-3007

Обов'язковий поштовий індекс і необов'язкова область чотиризначного розширення

>L<??????????????

Вадим

Марія

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

0-&&&&&&&&-0

ISBN 1-55615-507-7

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

>LL00000-0000

БД51392-0493

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

2.4. Видалення опису поля

Для видалення з таблиці поля виділимо його розглянутим вище способом і в меню "Виправлення" виконаємо команду "Вирізати", або натиснувши кнопку "Del" на клавіатурі, або натиснувши кнопку “Вирізати” на панелі інструментів. Після попередження Access про те, що дані із цього поля можуть бути загублені, зробимо видалення.

Помилкове видалення поля, рядка або таблиці можна скасувати такими способами:

-з появою попередження про те, що даний рядок, поле, таблиця будуть вилучені і збережені дані можуть бути загублені, слід натиснути кнопку "Cancel";

- у меню "Виправлення" виконується команда "Скасування", або на кнопку панелі інструментів натискається кнопка "Скасування". Access може відновити дані тільки в тому випадку, якщо після видалення не були зроблені інші дії над базою;

- можна закрити вікно конструктора або закрити базу, і з появою повідомлення про збереження змін вибрати кнопку "Ні". У цьому випадку будуть проігноровані й всі інші зміни над базою.

2.5. Модифікація властивостей даних

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

Access дозволяє змінювати довжину полів типу "Символьний" й "Числовий". Довжину символьного поля можна міняти в межах від 1 до 255 символів (0 байт призначений для індикації довгого рядка). Спроба уведення символьних рядків більшого розміру, ніж зарезервовано під поле, приводить до попередження. Якщо ми урізуємо існуюче поле до меншої довжини, частина даних може бути загублена – текстові значення будуть усічені праворуч до нового розміру поля.

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

Зміна розмірів полів робиться шляхом редагування властивості "розмір поля" для змінюваного рядка.

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

Access аналізує перетворення типів даних і довгих полів, і у випадку втрати або неправильного трактування перетворених даних видає опис помилки й запитує свої подальші дії. Вибір варіанта "Ок" продовжить розпочаті перетворення (можливо, з невірним результатом), а вибір варіанта "Отмена" означатиме відмову від вироблених змін.

3. Модифікація структури бази даних

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

3.1. Зміна первинних ключів бази даних

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

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

Перевизначення первинного ключа виробляється або скиданням визначення ключа в описі індексів (команда "Індекс" меню "Вид" виводить список індексів БД, у якій слід активізувати рядок "Первинний ключ" для поля, що є первинним ключем, натиснути кнопку "Del" клавіатури), а потім установити новий первинний ключ – (командою "визначити ключ" меню "Виправлення"), або ж активізацією поля майбутнього первинного ключа і кліком на кнопці "Первинний ключ" панелі інструментів.

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

3.2. Модифікація структури зв'язків бази даних

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

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

3.3. Розщеплення таблиць

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

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

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

Створимо копію проекту бази даних, тому що розщеплення таблиці буде нести демонстраційний характер, і в наступних лабораторних роботах ми будемо користуватися збереженим варіантом. Для створення копії бази засобами Windows або Dos скопіюємо закритий проект бази даних (файл STUD.mdb) в інший каталог.

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

Розглянемо загальний алгоритм розщеплення таблиць:

1. Створюються 2 копії таблиці.

2. Обом копіям таблиць даються унікальні імена.

3. З обох таблиць видаляються зайві поля.

4.У вікні "Властивості таблиць" видаляються всі умови на значення, що містять у собі посилання на вилучені поля.

5. У вікні "Індекси" видаляються всі індекси й ключі, побудовані на вилучених полях.

6. При необхідності генеруються первинні ключі для створених таблиць (можливе введення нового поля типу "Лічильник").

7. У вікні "Схема даних" (команда "Схема даних" меню "Сервіс"), вибирається режим "Всі зв'язки" натисканням відповідної кнопки на панелі інструментів.

8. Видаляються всі зв'язки між таблицею, оригіналом й іншими таблицями (клацаючи по лінії зв'язку таблиць для активізації зв'язку й натискаючи клавішу "Del" на клавіатурі).

9. У схему даних уводяться таблиці – копії (клацнувши на кнопці "Додати таблицю" панелі інструментів).

10. Установлюються зв'язки таблиць – копій з іншими таблицями.

11. Можливо, видаляється таблиця – оригінал.

12. Зберігається структура проекту БД.

Стосовно таблиці "Викладачі":

- створюємо таблиці "Викладачі_особисте" з полями "Зарплата", "Адреса_дом", "Телефон_дом",”Номер_П” і "Викладачі_службове" з усіма полями, що залишилися, плюс "Номер_П" для зв'язку;

- видаляємо індекси на таблиці "Викладачі" й опис первинного ключа по полю "Номер_П";

- у вікні схеми даних установлюємо зв'язок: "Викладачі_служ- бове.Номер_П" з "Заняття.Номер_П" типу "один-до-багатьох" й "Викладачі_службове.Номер_П" з "Викладачі_особисте.Номер_П" типу "один-до-багатьох" ;

- видаляємо таблицю "Викладачі";

- зберігаємо проект під ім'ям STUD_2.mdb.

3.4. Об'єднання таблиць

Об'єднання таблиць підвищує продуктивність системи, коли:

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

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

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

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

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

1. У вікні бази даних активізується одна з таблиць, на яких буде побудований запит.

2. Відкривається вікно конструктора запитів.

3. Виконується команда створення за результатами заптиу нової таблиці (команда "Створення таблиці" меню "Запит" виводить вікно введення імені створюваної таблиці).

4. У бланку QBE перераховуються поля, необхідні в створеній таблиці.

5. Підключаються до запиту інші таблиці (вони повинні бути зв'язані), полюси яких необхідно включити в результуючу таблицю.

6. Виконується команда "Виконати" меню "Запит".

7. Установлюється зв'язок отриманої таблиці з іншою базою.

8. Розривається зв'язок вихідних таблиць і, при необхідності, видаляється.

Зміст звіту

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