logo
Лекц_1_Загальн_видом_СУБД

Архітектура Місгоsoft Ассеss

У Microsoft Access об'єктами називається усе, що може мати ім'я (у розумінні Ассеss). У базі даних Access основними об'єктами є таблиці, запити, форми, звіти, макроси та модулі.

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

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

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

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

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

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

Таблиці і поля

Основний структурний елемент Ассеss — таблиця, в якій зберігається інформація. Об'єкт «таблиця» — це лише одна частина Ассеss-системи, в якій справді зберігається інформація. Всі інші об'єкти (такі, як запити, форми та звіти) ґрунтуються на даних таблиць.

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

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

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

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

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

Стовпчики і рядки, поля та записи

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

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

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

Запис містить інформацію про окрему особу, місце чи предмет.

Терміни рядок, стовпчик, поле та запис використовуються в різних частинах системи Ассеss.

Робота з вікном бази даних

Перш ніж перейти до створення таблиць, потрібно створити базу даних, у якій зберігатимуться таблиця та інші об'єкти Ассеss. Із запуском Access з'являється діалогове вікно (рис. 1).

Можна відкрити вже існуючу базу даних, створити нову базу даних або запустити Мастера для створення нової бази даних за зразком. Після відкриття наявної бази даних з'явиться вікно з такими вкладками: Таблицы, Запросы, Формы, Отчеты, Макросы, Модули. На кожній вкладці є кнопки: Запуск, Конструктор, Создать. Натиснувши на одну з цих кнопок, починаємо певну роботу з базою даних. Роботу можна також почати, натиснувши на об'єкті правою кнопкою миші. З'являється відповідне контекстне меню, в якому вибираємо відповідний пункт і починаємо роботу.

Створення нової таблиці

... .

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

Таблицы. У результаті цього відкривається вікно Новая таблица, показане на рис.

У правій частині вікна наведено п'ять пунктів, які дають можливість вибрати спосіб задання таблиці Режим таблицы, Конструктор, Мастер таблиц, Импорт таблиц і Связь с таблицами. Вибираємо пункт Конструктор і натискуємо ОК.

Вікно конструктора таблиці має три стовпчики: Имя поля, Тип данных і Описание (рис. 3).

Рис. 3

Имя поля — це ім'я, що присвоюється даному полю. Кожне поле в одній таблиці мусить мати унікальне ім'я, а також може мати протяжність не більше 64 символів і містити літери, цифри, проміжки та знаки пунктуації. Бажано у разі надання імен полям дотримуватися таких правил. Імена повинні бути набрані латинськими літерами і завдовжки не більше 8 символів, тобто слід намагатися дотримуватися правил іменування об'єктів у МS DOS. Після введення імені поля натискуємо на клавішу <ТАВ>, щоб перевести курсор у стовпчик Тип данных. За замовчування дане вважається текстовим, завдовжки 50 символів. Щоб змінити тип даних, натискуємо на кнопку розкриття списку та вибираємо потрібний тип. У Ассеss є дев'ять типів даних і майстер підстановок: Текстовый, Поле МЕМО, Числовой, Дата/время, Денежный, Счетчик, Логический, Поле обьекта ОLЕ, Поле типа Гиперссылка, Мастер подстановок. Вибравши потрібний тип поля знову натискуємо клавішу ТаЬ, і курсор переходить у поле Описание. Описание — це записаний нами коментар, у якому мовиться про призначення даного поля. Ці нотатки заносити не обов'язково, але якщо проект виконується для замовника, то опис повинен бути зроблений, щоб не мати клопотів під час здавання проекту.

Говорячи про імена полів, слід зупинитися на одному моменті. Як уже зазначалося вище, бажано давати імена полям за правилами DOS. Але коли проект досить великий і даних багато та ще виникає бажання давати імена більш інформативні, то варто скористатися одним прийомом. Ім'я може складатися з кількох слів, початкові літери цих слів великі, пробіли між словами відсутні. Наприклад: ПосівнаПлоща, ТабНомер, ПосадОклад, ПреміяКвартальна, ПреміяЗаВислугу і т. ін. Access дає можливість використовувати пробіли в іменах полів, тому можна вводити фрази, подібні таким: «Премія за вислугу», але важко розібратися, скільки прогалин між словами у чужих імен полів. Користувачі, які працюватимуть з нашими додатками, теж не зможуть відразу розібратися з іменем поля.

Типи полів

Поле може належати до одного з десяти типів, описаних нижче.

Текстовые (Техt) — використовується для збереження будь-якої послідовності символів, включаючи літери, цифри, знаки пунктуації, прогалини та спеціальні символи. Текстові поля можуть бути завдовжки до 255 символів. За замовчування довжина текстового поля дорівнює 50 символам. Найчастіше цей тип використовується в полях, призначених для збереження коротких текстових характеристик, наприклад, імен або адрес.

МЕМО (Меmо) — поля цього типу використовуються для збереження довгих текстових блоків до 65 000 символів (близько 16 сторінок інформації). Потрібно використовувати цей тип поля тоді, коли треба ввести чи імпортувати великий текстовий блок. Це поле змінної величини, і задавати розмір його не потрібно.

Числовой (Number) — використовується для збереження числових значень (крім грошових сум). У числових полях, як правило, містяться значення, над якими виконуватимуться обчислення; числа можуть містити десяткові коми та знак «мінус». Якщо число є іменем якогось об'єкта (поштовий індекс, шифр виробу), то потрібно задавати тип поля як Текстовый.

Дата/Время (Date/Тіmе) — використовується для зберігання дати/часу, значення вводяться в поля такого типу в стандартному форматі, наприклад 1/1/99/, 12:53:00 РМ.

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

Счетчик (АutoNumbег) — автоматично присвоює унікальне числове значення для кожного запису, починаючи з 1 для першого запису, 2 для другого і т. д. Якщо запису присвоєно таке значення, то воно далі не буде змінюватися чи використовуватися знову в тій самій таблиці. Ми не зможемо змінити значення поля такого типу.

Логический (Yes/No) — цей тип поля використовується для збереження логічних величин, які можуть набувати лише двох значень типу «так» чи «ні».

ОLЕ Object — цей тип поля містить дані з інших додатків, які підтримують технологію Object Linking and Embedding (OLE) — зв'язок та впровадження об'єктів. Цей тип поля дає змогу зберегти документи, таблиці, графіки, малюнки, звукові сигнали, відео-та іншу інформацію, створену додатками Windows, що підтримують технологію ОLЕ.

Гиперссылка (Нірегlіпк) — поле цього типу містить адресу гіперпосилання, яка вказує шлях до іншого об'єкта, документа чи WEB-сторінки. Наприклад, якщо таблиця створюється для відстежування документів, створених у Місгоsoft Word, варто ввімкнути поле гіперпосилання, натиснувши на яке зможемо побачити зміст цих документів.

Мастер подстановок (Lookup Wizard) — поле цього типу використовується для задання списку значень, які може приймати дане поле.

Використання засобу «Описание»

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

Властивості поля

На додачу до трьох основних елементів (Тип поля, Тип данных, Описание) поле може містити також і набір властивостей. Властивість — це така характеристика об'єкта, як розмір, тип або ім'я. Кожен об'єкт у Access має власний набір властивостей. Access має дванадцять властивостей, що можуть бути притаманні полю. Властивості поля залежать від його типу. Наприклад, єдина властивість «Подпись поля» (Caption) притаманна всім полям. Варто також пам'ятати, що вибір властивостей істотно залежить від типу поля. Наприклад, поля типу «Текстовый» (Техт) і «Числовой» (Number) мають властивість «Формат поля» (Format). Проте вона не однакова для цих двох типів полів, оскільки логічно вони обробляються по-різному.

За винятком властивостей «Размер поля» (Field size) i «Формат» (Format), властивості діють на всі типи полів однаково.

«Размер поля» (Field size). Розмір поля можна зазначити для полів типу «Текстовый» (Техt) і «Числовой» (Namber). Розмір текстового поля можна легко уявити. Просто вводимо значення, яке встановлює максимальне число символів поля не більше 255. За замовчуванням встановлюється розмір 50. Розмір поля можна не змінювати, бо на відміну від деяких інших баз даних, Access не використовує поля фіксованої довжини, тому на диску зберігаються лише введені в поля символи. За замовчуванням розмір числового поля встановлюється зі значенням Double (подвійної точності), і можна лишити його без зміни.

Формати полів (Format)

За винятком полів типу ОLЕ Access по-різному здійснює введення та виведення даних. Наприклад, якщо ви в поле вводите число 71500.0, то може знадобитися вивести його у вигляді $71,500.00. Це можна реалізувати через вибір формату поля, що «змусить» виводити всі введені дані саме в такому вигляді. Форматовані дані, як правило, легше читати, особливо якщо вони числові, тому що послідовність таких символів, як коми, знаки долара та десяткові крапки, не залежить від способу введення даних. Форматування також усуває необхідність введення незначних символів — таких, як знак долара чи кома, що можна вводити автоматично, залежно від формату.

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

Маска введення (Input Mask)

Маски введення використовуються, коли дані, що вводяться в поля, мають наперед визначену структуру. Прикладами можуть бути такі дані, як дата, номери телефонів і факсів, табельний номер тощо. Маска введення виконує дві функції. По-перше, обмежує введення за рахунок установленої фіксованої довжини і типу символу. По-друге, може автоматично під час введення вставляти фіксовані символи. У цьому відношенні добрим прикладом є номер телефону. Маска введення складається з буквених символів — дефісів і дужок — і символу #, замість якого повинна ставитися цифра чи пробіл: (###)-###-##-##. Якщо вводимо число 0444412070, то воно з'явиться в полі у вигляді (044)-441-20-70. Існують різноманітні засоби керування запровадженням даних за допомогою масок.

Підпис поля (Caption)

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

Значення за замовчування (Default Value)

Ця властивість використовується, коли додається новий запис для автоматичного введення значень у поле. Звичайно такими значеннями є літери — такі, як О, для поля «Кількість».

Умова на значення (Validation Rule) і повідомлення про помилку (Validation Text).

Подібно до правил введення, умова на значення використовується для контролю введення в поле інформації. Відмінність полягає в тому, що маски введення управляють введенням, базуючись на структурі (такій, як кількість і тип символів, що вводяться), а умови на значення оцінюють зміст поля, куди вводиться інформація. Наприклад, можна мати таку умову на значення, що перевірятиме наявність цифри замість знака # між числами 0 і 100. Правила для перевірки є виразами, що використовуються Access для визначення того, чи буде елемент, який вводиться збережений як зміст поля. Такі вирази обмежать дати, що можуть бути введені в поле за 15 днів до або після поточної системної дати:

Between Date ()-15 And Date () +15

Повідомлення про помилки — це повідомлення, виведене в діалоговому вікні за помилкового введення даних користувачем. Якщо не ввести перевірочний текст, то у разі введення помилкових даних Access виведе в діалоговому вікні таке повідомлення: «The value you entered is prohibited by The validation rule set this field» (Введене вами значення не може бути прийняте на збереження в базу даних відповідно до встановленого правила для даного поля).

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

Обов'язкове поле (Required)

Ця властивість «змушує» користувача ввести дані в поле. Access не збереже запис доти, доки буде нульове значення хоча б одного поля, для якого встановлене значення Yes (Так) властивості Required. Нульове значення — це незаповнене поле. У числовому полі нуль не є таким і розглядається як припустиме введене значення. У текстовому полі Access розглядає прогалину як нульове значення. Ми повинні ввести принаймні один видимий символ у поле зі значенням (Так) властивості Required (Обов'язкове поле).

Потрібно пам'ятати, що Access не примушує вводити дані в поля такого типу доти, доки ми не спробуємо зберегти запис. Тільки за такої спроби виводиться вікно з повідомленням для кожного незаповненого поля. Ці вікна з повідомленнями з'являються в тому ж порядку, в якому зазначені поля з'являються в структурі таблиці. Якщо ми вимагаємо обов'язкового заповнення полів Рік народження й Місце народження, Access виведе вікно, в якому повідомлятиметься про те, що не заповнене поле Рік народження. Лише після його заповнення у вікні з'явиться наступне повідомлення про незаповнене поле Місце народження

Порожні рядки (Allow Zero Length)

Ця характеристика допоможе встановити різницю між полями, які були визначені, як поля, що не мають певного значення (для цього ставимо "" в поле), і як поле, що не було заповнене. Нехай, у нас є поле для введення номера посвідчення водія. Якщо в ньому немає інформації, то це може бути витлумачено подвійно. Порожньо: ми знаємо, що немає ніякого номера для цього запису. Невідомо або не існує: для поля типу не існує такий номер може існувати чи не існувати, тож під час введення запису це поле було поки що пропущено. У такому разі іноді можна ввести слово невідомо.

У деяких випадках може бути корисно або потрібно розуміти різницю між полями типу порожньо (коли немає інформації) і невідомо (коли дані можуть бути введені пізніше). Звичайно, якщо властивість Allow Zero Length має значення No (Немає), будь-яким записам, що залишилися незаповненими, автоматично присвоюється нульове значення. Поля обробляються при цьому як порожні. Якщо ми хочемо зазначити, що окремі поля повинні мати значення невідомо, то в поле необхідно ввести слова Unknown або None. За такого підходу складність полягає в тому, що користувачі мають завжди правильно вводити слова: Unknown або None і т. ін. Якщо для властивості Allow Zero Length установлене значення Yes, ми можемо вказати на порожнє поле введенням двох лапок (" ") і вказати на поле типу невідоме, залишивши його порожнім. Можна використовувати цей підхід для будь-якого текстового поля, не присвоюючи якоїсь спеціальної фрази порожнім записам.

Пізніше ми зможемо використати оператор IS Null для вибору невідомих записів, а для вибору записів, що містять порожнє значення, як умову вибору слід буде використати (" ")

Індексоване поле

Якщо як значення властивості вибрано Yes, Ассеss створює і підтримує індекс значення, введеного в поле Indexed. Індекс — це відсортований список змісту поля з покажчиком, за яким можна знайти місце розташування кожного значення в таблиці. Використання індексу набагато прискорює процес пошуку інформації з певної теми.

Access підтримує два типи індексів.

Індекс — первинний ключ (Primary key). Це поле або комбінація полів, що однозначно визначає кожний запис. Для кожної таблиці має бути визначений первинний ключ. Під час вибору первинного ключа Ассеаз генерує індекс — первинний ключ, що використовується для визначення порядку виведення записів. Якщо для таблиці первинний ключ не визначений, то записи з'являтимуться в тому порядку, в якому були введені. Індекс — первинний ключ не може мати однакових чи нульових значень. Якщо ми вибрали поле або поля в ролі первинного ключа, які в даний момент мають однакові чи нульові значення, то первинний ключ не буде встановлений. Хоча Access не потребує встановлення первинного ключа, все одно рекомендується це зробити під час пошуку даних і в реляційних базах даних для встановлення зв'язків між таблицями.

Індекс — поле. Індексне поле не використовується для визначення порядку проходження записів у таблиці. Такі індекси починають працювати, коли Access потрібно відсортувати чи відшукати записи, використовуючи дані у певних полях..

Установка індексів первинних ключів

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

У режимі конструктора таблиці можна задати первинний ключ двома способами.

За допомогою піктограми: виберемо поле або поля, які ми хотіли б включити в первинний ключ. Клацаємо на піктограмі «ключ» основної панелі інструментів Ассеss. Access видає підтвердження, що ці поля є частиною первинного ключа, через виведення на екран ключа в лівій частині поля первинного ключа.

За допомогою діалогового вікна: діалогове вікно для установки індексів буде виведено на екран за директивою Индексы меню Вид. Це діалогове вікно містить таблицю з трьома стовпчиками: Индекс, Имя поля, Порядок сортировки. Вводимо ім'я, поле і порядок для першого поля, який ми хочемо використовувати як первинний ключ. Access розташовує піктограму «ключ» перед полем «Индекс».

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

Для детальнішого ознайомлення з індексами та роботою з ними можна звернутися до пункту меню Справка.