Практична робота на тему Організація бази даних
« НазадОрганізація бази даних1. Короткий опис задачіВизначення i класифікація сучасних систем управління базами данихВсю iсторiю обчислювальної технiки можна представити як розвиток двох основних напрямкiв їївикористання: для здiйснення складних математичних розрахункiв, виконання яких неможливе вручну, i власне, використання обчислювальної технiки в автоматизованих iнформаційних системах. Під iнформаційною системою слід розумiти програмно-апаратний комплекс, функції якого полягають у нацiйному збереженi iнформацiї, наданні користувачу зручного інтерфейсу i, що особлово важливо, виконаннi специфiчних операцiй з перетворенням та пошуку необхiдної iнформацiї. На початку 70-х рр. розроблений новий вид програмного забезпечення системи управлiння базами даних (Data Base Management - DBMS), яка дозволяла структурувати, систематизувати й органiзувати данi для їх комп’ютерного збереження й обробки. Базу даних (БД) можна визначити як уніфіковану сукупнiсть даних, спiлно використовувану рiзними задачами в рамках єдиної автоматизованої iнформацiйної системи (ІС). Системою управління базами даних (СУБД) називають програмну сисгему, призначену для створення на ЕОМ загальної бази даних длябагаьох додаткiв; пiдтримки її в актульному станi i забезпечення ефективного доступу користувачiв до даних, що мiстяться в нiй, у рамках наданих їм повноважень. СУБДпризначена, таким чином, для централiзованого управлiння базою даних чи соцiальним ресурсом в iнтересах усiєї сукупності користувачiв. В даний час практично неможливо представити iнформацiйну пiдтримку сучасної установи без застосування професiйних СУБД. Однак наявний сьогоднi рiвень можливостей програмних продуктів даного напрямку був досягнутий не вiдразу: еволюцiя СУБД пройшла шлях вiд систем, що спиралися на iєрархiчну i мережну модель даних, до систем так званого третього поколiння. для яких характернi ідеї обстрактно-орiєнтованого пiдходу. СУБД першого покоління мали ряд iстотних недолiкiв: вiдсутнiсть стандарту зовнiшнiх iнтерфейсiв iзабезпечечня перснесення прикладних програм. Однак цiСУБДвлявилися дуже довговiчнi: розроблене на їх основi програмне забезпечення використовується i сьогоднi i великi ЕОМ (mainframe) мiстять величезнi масиви актуальної iнформацiї. Розробка Е.Коддом реляцiйної теорiї пiдштовхнула до створення настпного класу СУБД. Особливостями другого покоління є застосування реляцiйної моделi даних i розвинена мова запитів SQL. Простота i гнучкість моделi даних дозволили їйстати домінуючою ізайняти лiдируючi позицій на вiдповiдному секторi ринку. Багато розробникiв сьогоднi видiляють ряд негативних моментiв у реляцiйнiй моделi, серед яких неможливiсть представлення i манiпулювання даними складної структури (тексти, просторові данi). Це змушує вести роботи з удосконалювання систем другого поколiння чи створення нової моделi даних. Для СУБД третього покоління харакгерне використання пропозоцiй, якi стосуються управлiня об’єктами і правилами, управлiння розподiленими даними, мов програмування четвертого поколiня (4GL), технологiї тиражування даних та iнших досягнень у галузi обробки даних. Сьогоднi СУБД цього поколiння застосовуються в дiловiй сферi досить активно не тілъки як незакiнченi технiчнi рiшення, а iяк готовi продукти, що дають можливостi розробникам активно використовувати потужні засоби управлiння даними.
|
Ріве нь / Декомпо зиція |
Зовнішній : предметна область - предмет досліджен-ня |
Інфологіч-ний: на основі знань спеціаліста-предметни-ка |
Концепту- альний - на основі моделі даних СУБД |
Внутрішній- засобами опису та маніпулю-вання даними СУБД |
Реалізації (фізичний): засобами збереження даних СУБД в пам’яті ОС |
1 |
Система об’єктів (процесів, документів) предметної області |
Інфологічна модель |
Концепту-альна модель |
База даних як сукупність файлів даних і програм |
Бібліотека на магнітних дисках |
2
|
Набір об’єктів |
Набір сутностей |
Набір структурованих таблиць і зв’язків між ними |
Сукупність зв’язаних таблиць даних і запитів |
Том |
3 |
Об’єкт
|
Сутність |
Структура таблиці |
Запис
|
Фізичний запис |
4 |
Властивість об’єкта |
Реквізит |
Атрибут |
Поле |
Відповідна сукупність комірок пам’яті ОС |
5 |
Характеристика властивості |
Значення реквізиту |
Значення атрибуту |
Значення поля |
Стан комірок пам’яті ОС |
На основі такого опису можна відслідкувати відображення кожного структурного елемента на певному етапі декомпозиції рівнів архітектури подання даних АІС. Наприклад, на 4-му етапі декомпозиції реквізит, як певна властивість процесу або документу, відображається в атрибут на концептуальному рівні. В свою чергу атрибут відображається в поле на внутрішньому рівні подання даних.
Відзначимо, що усі відображення повинні бути гомоморфними. Вимога гомоморфізму означає, що в БД повинні міститися дані, що відповідають всім об'єктам предметної області, з одного боку, а з іншого боку - будь-якій процедурі обробки інформації ПО в автоматизованій інформаційній системі повинна відповідати деяка процедура обробки відповідних даних, що дозволяє отримати адекватний результат.
4. Проектування бази даних
Природно, що проект бази даних треба починати з аналiзу предметної галузi i виявлення вимог до неї окремих користувачiв (працiвникiв органiзацiї, для яких створюється база даних). Докладнiше цей процес буде розглянутий нижче, а тут вiдзначимо, що проектування звичайно доручається людинi (групi осiб) - адмінiстратору бази даних. Ним може бути як спецiально видiлений працiвник органiзацiї, так i майбутнiй користувач бази даних, досить добре знайомий з машинною обробкою даних. Поєднуючи частковi уявлення про вмiст бази даних, отриманi в результатi опитування користувачiв, i свої уявлення про данi, що можуть знадобитися в майбутнiх додатках, адміністратор БДспочатку створює узагальнений неформальний опис створюваної бази даних. Це опис, виконаний з використанням природної мови, математичних формул, таблицъ, графiкiв та iнших засобiв, зрозумiлих усiм, хто працюс над проектуванням бази даних, називають iнфологiчною моделлю даних (рис. 1.5).
Така людино-орiєнтована модель цiлком незалежна вiд фiзичних параметрiв середовища збереження даних. Зрештою, цим середовищем може бути пам’ять людини, а не ЕОМ. Тому iнфологiчна модель не повинна змiнюватися доти, доки якiсъ змiни в реальному свiтi не потребуватимуть змiни в нiй певного визначення щоб ця модель продовжувала вiдбивати предметну галузь.
Iншi моделi, які показанні в таблиці, є комп’ютеро-орiєнтованими. З їхньою допомогою СУБДдає можливiсть програмам i користувачам здiйснювати доступ до збережених даних лише за iменами, не турбуючись про фiзичне розташування цих даних. Потрiбнi данi вiдшукуються СУБД на зовнiшнiх запам’ятовуючих пристроях за фізичною моделлю даних.
Через те, iщо зазначений доступ здiйснюється за допомогою конкретної СУБД, моделi повиниi бути описанi мовою опису даних СУБД.Такий опис, створюваний адміністратор БД по iнфологiчнiй моделi даних, називають концептуальною моделлю даних на датологічному рівні.
Така архітектура (зовнішній, iнфологiчний, концептуальний, внутрішній і фізичний рiвнi) дозволяє забезпечити незалежністъ збережених даних вiд програм, що їх використовують. Адміністратор БД може при необхiдностi переписати збереженi данi на iншi носії iнформації і(або) реорганiзувати їхню фiзичну структуру, змінивши лише фiзичну модель даних. Адміністратор БД може пiдключити до системи будь-яку кiлькiсть нових користувачiв (нових додаткiв), доповнивши, якщо треба, внутрішню модель. Зазначенi змiни фiзичної івнутрішньої моделей не будуть помiченi iснуючими користувачами системи (виявляться „прозорими” для них), так само як не будуть помiчені новi користувачi. Отже, незалежнiсть даних забезпечує можливiсть розвитку системи баз даних без руйнування iснуючих додаткiв.
4.1. Особливостi СУБД АССESS
У свiтi iснує безлiч систем управлiння базами даних. Незважаючи на те, що вони можуть по-рiзному працювати з рiзними об’єктами i надають користувачу рiзнi функцiї і засоби, бiльшiсть СУБДспираються на єдиний усталений комплекс основних понять. Це дає нам можливiсть розглянути одну систему й узагальнити її поняття, прийоми і методи на весь клас СУБД. Таким навчальним об’єктом ми вибрали СУБДMicrosoftАссеss, що входить у пакет Microsoft Office.
Ассеss 1.0, випущений у 1992 р.,був одним із найпоширеніших продуктiв, розроблених для персональних комп’ютерiв. Цей пакет установив новi стандарти для iнтерфейсу, полiпшивши систему звiтiв iзбiльшивши швидкiстъ управлiння даними. Завдяки цьому він став найпопулярнiшим пакетом СУБД для Windows ієдиним унiверсалъним програмним продуктом, що задовольняє усiх — і кінцевих користувачiв, i розробникiв повномасштабних додаткiв. Вданий час широко використовуються версії Ассеss 97 i Ассеss 2000.
При розробці баз даних одночасно доводиться працювати з декiлькома рiзними структурними об’єктами. У Ассеss реалiзований зовсім новий формат збереження даних. Єдина унiфiкована структура, яка називається контейнер, мiстить у собi всi структурнi елементи – таблицi, запити, програмнi модулi на Ассеss Ваsiс i т.д. Стандартне розширення цих файлiв .MDB (Microsoft Data Base). При вiдкриттi файла .МDВвсі об’єкти бази даних виводяться у виглядi списку у вiкнi бази даних. Для вибору одного з вказаних спискiв використовуються вкладки (корінці).
4.2. Основнi об’єкти i процеси, що займають центральне мiсце в системi керування процесом проектування БД
4.2.1.Моделi організації даних
Набiр принципiв, якi визначають органiзацiю логiчної структури збереження даних у базi, одержав назву моделi даних. Моделi баз даних визначаються тръома компонентами:
-
можливою органiзацiєю даних;
-
обмеженнями цiлiсностi;
-
множиною припустимих операцiй.
У теорiї систем управлiння базами даних видiляють моделi трьох основних типiв: iєрархiчну, мережну i реляцiйну.
Термiнологiчною основою для iєрархiчної імережної моделей с поняття: атрибут, агрегат iзапис. Пiд атрибутом (елементом даних) розумiєтъся найменша пойменована структурна одиниця даних. Пойменована множина атрибутiв може утворювати агрегат даних. У деяких випадках окремо узятий агрегат може складатися з множини екзмплярiв однотипних даних або, як ще говорять, бути множинним елементом. Нарештi, записом називають складений агрегат, який не входить до складу iнших агрегатiв.
В iєрархiчнiй моделi всi записи, агрегати йатрибути бази даних утворюють iєрархiчно органiзований набiр, тобто таку структуру, у якiй всi елементи зв’язанi вiдношеннями пiдпорядкованостi iпри цьому будь-який елемент може пiдкорятися тiльки одному якому-небудь цiлому елементу. Таку форму залежностi зручно зображувати за допомогою деревоподiбного графа (зв’язної схеми, яка складається з точок та стрiлок iне має циклiв). Приклад iєрархiчної структури бази даних наведений на рис. 1.2.
Концепцiя мережної моделі даних пов’язана з iм’я Ч. Бахмана. Мережний пiдхiд до органiзацій даних с розширенням iєрархiчного. Вiєрархiчних структурах запис-нащадок повинем мати одного предка; у мережнiй струкгурi даних нашадок може мати будь-яке число предкiв (рис. 1.3).
Мережна БД складається з набору записiв i набору зв’язкiв між цими записами, точнiше, з набору екземплярiв записiв заданих типiв (iз припустимого набору типiв) i набору екземплярiв iз заданого набору типiв зв’язку.Серед переваг систем управлiння даними, заснованих на iєрархiчнiй чи мережнiй моделях, можуть бути їiхня компактнiсть i, як правило, висока швидкодiя, а серед недолiкiв неунiверсальність, високий ступiнь залежностi Концепція реляційної моделі вперше були сформульованi в роботах американського вченого Е.Ф.Кодда. Звiдси походить її друга назва - модель Кодда.
У реляцiйнiй моделi об’єкти i взасмозв’язки мiж ними представляються за допомогою таблиць (рис. 1.4). Для її формального визначення використовується фундаментальне поняття вiдношення. Власне кажучи, термiн “реляцiйна” походить вiд англiйського relation - вiдношення.
У реляцiйній базi даних кожна таблиця повинна мати первинний ключ (ключовий елемент) - поле чи комбiнацiю полiв, якi єдиним чином iдентиифiкують кожен рядок у таблицi.
Важливою перевагою реляційної моделі є те, що в її рамках дії над даними можуть бути зведенi до операцiй реляційної алгебри, якi виконуються над вiдношеннями. Це такi операцiї: об’єднання, перетинання. вiднiмання, декартовий добуток, вибiрка, проекцiя, з’єднання, дiлення.
Найважливішою проблемою, що розв’язується при проектуванні баз даних, є створення такої їх структури, яка бзабезпечувала мінімальне дублювання iнформації iспрощувала процедури обробки iвiдновлення даних. Коддом був запропонований певний набiр формальних вомог універсального характеру до органiзацiї даних, які дозводяють ефективно вирiшувати перерахованi завдання. Ці вимоги до стану таблиць даних одержали назву нормальних форм. Спочатку були сформульованi три нормальні форми. Надалi з’явилася нормальна форма Бойса-Кодда i нормальнi форми вищих порядкiв. Однак вони не одержали поширення на практицi.
1. Кажуть, що вiдношення знаходиться в першій нормальній формі, якщо всi його атрибути є простими.
2. Кажуть, що вiдношення знаходяться в другiй нормальнiй формi, якщо воно задовольняє вимоги першої нормальної форми iкожен неключовий атрибут функцiонально повно залежить вiд ключа (однозначно визначається ним).
3. Кажуть, що вiдношення знаходиться в третій нормальнiй формі, якщо воно задовольняє вимоги другої нормальної форми i при цьому будь-який неключовий атрибут залежить вiд ключа нетранзитивно. Вiдмiтимо, що транзитивною називається така залежністьь, при якiй який-небудь неключовий атрибут залежить вiд iншого неключового атрибута, а той, у свою чергу, уже залежить вiд ключа.
Принциповим моментом є те, що для приведення таблиць до стану, який задовольняє вимоги нормальних форм чи, як ще кажуть, для нормалiзацiї даних над ними, повиннi бути здiйсненi перерахованi нижче операцiї реляцiйної алгебри
4.2.2.Процес нормалізації
Нормалізація складається з трьох крокiв.
1. Перша нормальна форма (1НФ).
Повторення одних і тих самих полів небажане.Для того, щоб модель знаходилася в першiй нормальнiй формi, необхiдно:
-
зробити всi поля атомарними;
-
виключити повторюванi значення атрибутiв;
-
виключити вiдносини «багато-до-багатьох».
Приклад правильно органiзованої таблицi: значення полiв «Дата» i «Сума» слiд перенести в нову таблицю i зв’язати її з головною у вiдношеннi один-до-багатьох.
2. Друга нормальна форма (2НФ).
Кожнне поле повинне залежативід єдиного первинного ключа.
Для того щоб модель знаходилася в другiй нормальнiй формi,необхiдно:
-
видiлити ключi та залежнi вiд них атрибути;
-
видiлити зв’язки мiж ключами й iншими атрибутами;
-
виписати в окрему таблицю складений ключ, частини ключiв i залежнi вiд них атрибути.
При використаннi допомiжних таблиць потрiбно простежити, щоб у них не було однакових полiв. У прикладi поле «Поштовий iндекс» повторюэться в декiлькох таблицях, але їх структуру треба переформувати так, гщб воно згадувалося лише в однiй.
3. Третя нормальна форма (ЗНФ).
Значення поля повинне зберiгатися незмінним, навiть якщо вміст інших полів змінився.
Для того щоб модель знаходилася в другiй нормальнiй формi необхiдно виключити транзитивнi залежностi, тобто видiлити їх в окремi таблицi. Транзитивна залежнiсть –ц е залежнiсть, у якiй ключовi поля беруть участь опосередковано.
Наступний приклад iлюструє порушення третьої нормально форми. Якщо значення в полi «Код набору» таблицi «Телефонии» змiнилося, вмiс поля «Місто» також повинен змiнитися. У протилежному випадку iнформацiя в таблицi може виявитися неправильною. Залежнi одне вiд одного поля доцiльно винести в окрему таблицю.
Розглянемо процес нормалiзацiї на прикладі бази даних для вiддiлу постачання заводу, що виготовляє медичнi препарати. Вiдразу вiдзначимо, що ця БД не охоплює всього рiзноманiття зв’язкiв, які є в реальному житті.
Вiддiл постачання займається збереженням i обробкою iнформацiї про надходження сировини на завод i вiдвантаження готової продукдiї. На завод надходять екстракти трав, хiмiчнi препараги, тара, кришки, етикетки i т.д. Виготовивши продукцiю, завод реалiзує її оптом ряду клiснтiв. При цьому в базу даних надходить iнформацiя про вiдпущений товар.
З багатьох документiв розглянемо тi, котрi вiдносяться до вiдпускання готової продукцiї зi складу:
1) Замовлення.
2) Накладна.
3) Звiт по руху готової продукцiї на складi.
Проаналiзуємо спочатку структуру документiв. На рисунку видiленi групи полiв. В одному замовленнi може бути вказано кiлька найменувань продукцi, але тiльки один клiснт.
Видiлимо сутностi i зв’язки між ними позбувшись насамперед повторюваних груп. Для бiльшої наочностi наведене бiльш компактне графiчне представлення. Ключовi атрибути видiленi значком ’#’.
Звiт по руху продукцiї зi складу можна не зв’язувати з iншими сутностями. Бажано мати можливiсть задавати параметри звiту (наприклад, звiтний перiод), отже, всi поля будуть вибиратися з iнших таблиць і групуватися.
У схемi взасмозв’язкiв мiж сутностями для нашого об’єкта присутнє одне неспецифiчне вiдношення, яке необхiдно дозволити (в овалi поля, що залежать, як вiд замовлення, так i вiд виду продукцiї). Додамо сутнiсгь «Замовлено» iз двома зчепленими ключами. Схема буде мати такий вигляд:
Побудована схема задовольняє всi умови третьої нормальної форми.
5. Реалізація бази даних на внутрішньому рівні
Лабораторна робота №1
Тема: Створення бази даних (БД) (створення таблиць, заповнення таблиць інформацією, створення зв'язків між таблицями, робота з даними в режимі таблиці).
Запуск програми Microsoft Access:ПУСК - Програми - Microsoft Access
У вікні Microsoft Access виберіть Нова база даних і клацніть на кнопці OK. У вікні Файл нової бази виберіть папку, у якій будете поміщати БД, а в нижній частині вікна дайте ім'я файлу Бібліотека.mdb (розширення mdb система додасть автоматично). Клацніть на кнопці Створити.
Відкривається вікно бази даних, де відображені всі компоненти БД.
Компоненти бази даних:
- таблиці – об'єкти, у яких зберігається інформація про якусь предметну область (наприклад, роботи бібліотеки, складального цеху заводу тощо). У таблицях інформація представлена
- у стовпцях, які називаються доменами значень,
- у рядках, які називаються записами.
- у полях, які розміщені на перетині стовпців і рядків таблиці
Кожне поле має свої властивості: ім'я, тип, розмір і при необхідності формула розрахунку, які задаються користувачем при створенні таблиць;
-
запити – вибірки з однієї або декількох таблиць або інших запитів, які задовольняють певним умовам; у запитах можна виконувати обчислення, за допомогою запитів можна змінювати значення відразу декількох записів;
-
звіти – інформація з таблиць, підготовлена для печатки;
-
форми – зображення даних з таблиць на екрані у формі зручної для уведення, перегляду й коректування інформації; якщо з формою зв'язати програми мовою Visual Basic for Application (VBA), те форма стане засобом обробки даних;
-
макросы й модулі – програми обробки даних, які зберігаються в БД мовою VBA.
4.1.Створення таблиць
Створимо три таблиці, які містять інформацію про роботу бібліотеки університету:
-
Книги – містить інформацію про книги, які зберігаються в бібліотеці;
-
ЧитКниги – містить інформацію про книги, які отримані читачами;
-
Читачі – містить інформацію про читачів бібліотеки.
Для створення таблиці клацніть на кнопці Створення таблиці в режимі конструктора. У вікні конструктора таблиць уведіть інформацію, представлену на мал. 1. Вам необхідно задати для кожного поля його властивості:
-
Ім'я поля, може складатися з букв, цифр, може містити пробіли;
-
Тип даного поля, вибирається зі списку, що розкривається;
-
Размер поля, кількість символів для типу Текстовий, або один із числових типів для типу Числовий;
-
Опис дозволяє вказати призначення поля й особливості інформації, що зберігається в ньому;
-
Формат поля, можна вказувати формат для даних, які вводяться;
-
Підпис дозволяє задати заголовок поля при висновку таблиці на екран, якщо заголовок не заданий, то виводиться ім'я поля;
-
Умова на значення записують логічні вираження для значень, які вводяться в поле (наприклад, для поля Вартість можна поставити <100, якщо вартість книги не повинна перевищувати 100 гривень);
-
Повідомлення про помилку містить повідомлення користувачеві при уведенні помилкових значень.
Одне з полів таблиці призначається ключовим. Значення в цьому полі однозначно визначає запис. Це поле повинне бути призначене Обов'язковим і необхідно вказати, що це поле є Індексованим (без повторений). Таким полем у таблиці Книги є поле Инв№. Щоб призначити це поле ключовим, відзначте поле й клацніть на інструменті Ключ (він виділений на малюнку 1). Закрийте вікно Конструктора таблиць для збереження структури таблиці й дайте їй ім'я у вікні запиту.
Тепер потрібно ввести дані в таблицю. Це можна зробити багатьма способами. Приведемо два найпростіших:
1) Перегляд й уведення даних у режимі таблиці: для цього у вікні бази даних необхідно виділити таблицю й нажати на кнопку Відкрити. Ви побачите порожню таблицю. Уведіть у неї кілька записів про книги вашої бібліотеки як зазначено в таблиці 1.
2). Використання автоформы: натисніть на кнопку Новий об'єкт на панелі інструментів і виберіть пункт Автоформа. Буде створена й відкрита форма для перегляду й редагування записів. Уведіть не менш 10 записів у таблицю Книги.
Створіть нову таблицю ЧитКниги з полями (Рис. 2):
- Инв№ - інвентарний номер книги, виданої читачеві;
- NB – номер читацького квитка читача;
- Дата видачі - дата видачі книги читачеві;
- Дата повернення – дата, коли читач належний повернути книгу в бібліотеку.
Виберіть відповідному змісту типи полів й їхні розміри. Поле Инв№ повинне бути типуТекстовий і мати розмір 6 (байтів) як й у таблиці Книги. Поле NB теж зробітьтекстовим. Поля Инв№ й NB повинні бути індексованими й обов'язковими. У цій таблиці можна не призначати ключового поля.
Заповните таблицю даними про видані книги (Таблиця 2). Стежите за тим, щоб дані у всіх трьох таблицях були погоджені, тобто не видавайте книг, яких немає в бібліотеці.
Таблиця 2
Список книг, які видані, до таблиці ЧитКниги
Инв№ |
NB |
Дата видачі |
Дата повернення |
Прим |
1 |
700 |
3.01.03 |
14.02.03 |
|
11 |
830 |
20.01.03 |
13.02.03 |
|
10 |
830 |
2.12.02 |
6.01.03 |
|
8 |
830 |
21.12.02 |
23.01.03 |
|
5 |
700 |
3.12.02 |
4.01.03 |
|
3 |
1220 |
10.12.02 |
11.01.03 |
|
4 |
830 |
2.12.02 |
3.01.03 |
|
Створіть нову таблицю Читачі (Рис.3) з полями:
- NB – номер читацького квитка читача;
- Прізвище – прізвище читача;
- Кафедра – кафедра, на якій працює читач, або група, у якій учиться читач;
- Телефон – робочий телефон читача.
Ключовим полем в останній таблиці є поле NB, тому що саме воно однозначно визначає кожен запис.
Малюнок 3. Структура таблиці Читачі
Заповните й цю таблицю даними (Таблиця 4). Стежите за тим, щоб не видавати книги неіснуючим читачам, тому що в цьому випадку ви не зможете встановити необхідні зв'язки між таблицями.
Таблиця 4
Список читачів до таблиці Читачі
NB |
Прізвище |
Кафедра |
Телефон |
700 |
Корнич В. Г. |
Фізика |
2-92 |
890 |
Нечай И. С. |
Фізика |
2-91 |
1220 |
Цокотун П. В. |
ВМ |
4-14 |
555 |
Романиченко Г. В. |
ВМ |
4-14 |
830 |
Біла Н. И. |
ВМ |
4-14 |
4.2.Створення зв'язків між таблицями
Реалізація нашої бази даних можна вважати завершеною. Залишилося тільки встановити постійні зв'язки між таблицями для того, щоб можна було вибирати дані з декількох таблиць у відповідності зі значеннями співпадаючих полів. Для цього клацніть на інструменті Схема даних і додайте у вікно схеми даних три створених таблиці. На екрані з'явилося схематичне зображення трьох таблиць. Зв'язку між ними встановлюються за допомогою миші по методу «зачепити й перетягнути». Зачепите поле Инв№ у таблиці Книги й протягнете до такого ж поля в таблиці ЧитКниги. Увікні діалогупоставте прапорець для цілісності даних (Малюнок 4). На схемі з'явиться лінія, що з'єднує ці поля. Аналогічно встановите зв'язок двох інших таблиць по полю NB (Малюнок 5).
4.3. Робота з даними в режимі таблиці
1) Уведення нових записів: у режимі Таблиця необхідно відкрити таблицю. Перейти до порожнього строку, вибравши команду Виправлення/Перейти/Новий запис або на панелі інструментів Новий запис. Для того, щоб запам'ятати внесені дані, натисніть клавішу Так або команду Запису/Зберегти запис.
Для редагування записів необхідно виділити дані. Для цього двічі натисніть на слові в клітці або клацніть на лівому кінці клітки (якщо стрілка миші прийме форму білого контурного знака плюс). Дані, які будуть уведені із клавіатури, замінять виділені.
2) Пошук і заміна даних у всіх записах. Для заміни даних у декількох записах однаковим значенням необхідно виділити першу клітку в стовпці, що підлягає коректуванню. Виберіть команду Виправлення/Замінити. У вікні діалогу наберіть значення, яке потрібно змінити, і вірне значення (на яке потрібно замінити). Натисніть кнопку Замінити або Замінити все.
3) Копіювання даних, копіювання окремих записів у резервну копію. Для копіювання даних їх необхідно виділити. Далі вибрати команду Виправлення/Копіювати. Вибрати місце розташування даних (наприклад, іншу таблицю або резервну копію) і команду Виправлення/Вставити. Резервну копію роблять так: перейдіть у вікно бази даних, виберіть необхідну таблицю й виконаєте команду Виправлення/Копіювати. Далю виберіть команду Виправлення/Вставити й у вікні діалогу дайте копії таблиці нове ім'я.
4) Видалення рядків. Для видалення записів необхідно їх виділити й нажати клавішу Delete. У вікні діалогу підтвердити своє рішення.
5) Сортування даних. Сортування даних виконується декількома засобами. Перший: виберіть стовпець, якому необхідно відсортувати, і натисніть кнопку на панелі інструментів Сортування по зростанню або по убуванню. Другий спосіб: виконати сортування за допомогою Розширеного фільтра. Цей спосіб допомагає при сортуванні декільком стовпцям. Відкрийте Фільтр/Розширений фільтр. Виберіть необхідні поля в порядку сортування й для кожного вкажіть порядок сортування. Далі виберіть команду фільтр/Застосувати фільтр.
Лабораторна робота №2
Тема: Створення запитів з однієї чи декількох таблиць(за умовою, підсумковий запит, перехресний запит на пошук записів, модифікація даних за допомогою запитів)
Запит - це об'єкт бази даних, що дозволяє відбирати дані з однієї або декількох таблиць за умовами. Крім того, використовуючи запит можна створювати обчислюють поля, що, для кожного запису або для групи записів. Це робиться в запитах “на вибірку”. Запити на відновлення даних дозволяють вносити зміни відразу в кілька записів, які задовольняють зазначеним умовам. Запит - найважливіший об'єкт роботи з даними. Розглянемо послідовно всі типи запитів.
2.1 Робота з однією таблицею
У перших, потрібно навчитися записувати умови відбору даних у запитах. Умови записуємо в рядку “Умова відбору:”. Для числових полів умови мають вигляд, наприклад, <100 , або >40 And <60. Тобто, записуємо знак відносини й числове значення. Можна також використати логічні функції And , Or, Not.
Функція Beetween нижня_границя And верхня_границя використається для завдання умови влучення в інтервал. Наприклад, Beetwen 40 And 60 влучення значення поля від 40 до 60.
Умови для текстових полів записуються з використанням функції Like “Рядок пошуку із символами шаблона” Символ шаблона * заміняє довільна кількість символів у даній позиції, символ ? заміняє один який-небудь символ у позиції, символ # указує, що в даній позиції повинна стояти цифра. Наприклад, умова Like “CA-#######” дозволить відібрати запису, у яких записані номери паспортів серії СА.
2.1.1 Запит, що відбирає дані з однієї таблиці за умовою
Розглянемо приклад створення запиту, що відбирає з таблиці Книги ті екземпляри, ціна яких більше 20 гривень і прізвище автора починається або з букви “Б”, або з букви “В”.
Перейдіть на вкладку Запити. Натисніть кнопку Створити. Виберіть у меню Конструктор. У вікні діалогу Додавання таблиці на вкладці Таблиці виберіть таблицю, з якої потрібно відібрати дані. Для нашого випадку це - Книги. Натисніть кнопку Додати. Закрийте вікно Додавання таблиці. Тепер потрібно вибрати ті поля, які необхідно включити в запит. Виберемо поля: Автор, Назва, Рік, Вартість. Для того, щоб помістити ці поля в бланк запиту, потрібно двічі нажати кнопкою миші на імені поля в таблиці. Є й інші можливості: перетягнути назва поля з таблиці в бланк запиту або вибрати необхідні поля в списку назв полів у бланку запиту.
Далі необхідно поставити умови, по яких буде вестися відбір. Для цього в рядку Умова відбору для Вартості ставимо умову ”>20”. Для поля Автор ставимо умову “Б*” Or “В*”, де * означає всі символи після першої Б. Функція Like буде додана автоматично. Для перегляду результату натисніть кнопку “!” або виберіть у пункті меню ВИД -режим таблиці.
2.1.2 Підсумкові запити. Якщо нам потрібні не окремі записи, а підсумкові значення для групи даних, наприклад, кількість книг по інформатиці, або кількість книг кожного видавництва, або кількість читачів по кафедрах, то ми створюємо підсумкові запити. Такі запити створюють групи записів, для яких збігаються значення зазначених полів (для таких полів вибираємо Групові операції – Угруповання), і обчислюють підсумкові значення для інших полів (для таких полів вибираємо Групові операції –Sum, Avg, Count, …)...
Створимо такий підсумковий запит: порахуємо кількість читачів кожної кафедри. Вибираємо таблицю Читачі, включаємо поля Кафедра й Прізвище. Для створення підсумкового запиту на панелі інструментів вибираємо піктограму Групові операції (зі значком S). У бланку запиту з'являється рядок Групові операції. У списку, що розкривається, цього рядка є список можливих обчислень для груп записів:
SUM- обчислення суми значень для групи;
AVG - середнє значення поля для даних із групи записів;
MIN - мінімальне значення для даних із групи записів;
MAX - максимальне значення для даних із групи записів;
COUNT- кількість записів, у яких є значення із групи;
STDEV - стандартне відхилення;
VAR - дисперсія;
FIRST - значення в першому записі групи;
LAST - значення в останньому записі групи.
За значенням першого поля Кафедра створюємо групу, а для другого вибираємо COUNT (підрахунок кількості записів у групі). Для того, щоб при перегляді запиту кожне поле мало зрозумілий підпис, визначимо властивості поля. Для цього вибираємо ВИД - Властивості й ставимо Підпис – Кількість читачів.
2.1.3 Перехресний запит - особливий тип підсумкового запиту, що дозволяє вивести обчислені значення в перехресній таблиці, що нагадує зведену таблицю в Excel.
Наприклад, підрахуємо сумарну вартість книжок для кожного року видання по видавництвах. Для цього створимо перехресний запит майстром запитів Запрос-Создать-Перекрестний запросо. У вікні діалогу вибираємо послідовно таблицю, назви рядків, назви стовпців, функцію обробки даних.
Для нашого випадку це: таблиця - Книги; назви рядків - Рік; назви стовпців - Видавництво; функція - Sum(Вартість). Установимо підсумкове значення - Підсумкове значення по строках.
Переглянемо створений запит у режимі Таблиця (малюнок 11) і в режимі Конструктор (малюнок 12).
2.2 Запити, які відбирають дані з декількох таблиць
При створенні таких запитів до верхньої частини вікна конструктора запитів вибираємо кілька таблиць. Якщо зв'язку між таблицями були створені у вікні “Схема даних”, то в цьому вікні вони з'являться автоматично. Тепер можна вибирати в один запит поля з декількох таблиць. Існує два різних типи об'єднання двох таблиць - внутрішнє й зовнішнє. Якщо об'єднання внутрішнє (саме його ви встановили), то в один запит будуть об'єднані записи, у яких збігаються значення в полях зв'язку. Якщо який-небудь запис в одній таблиці не має відповідного запису в іншій таблиці, то цей запис не буде включена в запит. Зовнішнє об'єднання буде розглянуто пізніше.
Створення полів, які обчислюються. У таблицях баз даних (на відміну від електронних таблиць) ніколи не зберігають дані, які можуть бути обчислені за даними з таблиць. У більшості випадків тому, що це вимагає значних витрат пам'яті й сповільнює пошук необхідних даних й обробку даних у таблицях. Всі необхідні обчислення виконують у запитах, створюючи поля, які обчислюються. Для створення таких полів у вільному стовпці конструктора запитів записують нове ім'я поля, знак “:”, а потім вираження, що використає імена інших полів й обчислює необхідне значення. Наприклад, обчислимо вартість замовлення, якщо є поля Вартість одиниці й Кількість одиниць. У новому стовпці запишемо:
Вартість замовлення: [Вартість одиниці]*[Кількість одиниць]
Імена полів записуються у квадратних дужках.
При записі виражень можна використати убудовані функції Access. Імена цих функцій, на відміну від Excel, пишуться по-англійському, але за змістом багато з них збігаються з функціями Excel. Приведемо кілька функцій:
Iif(умова; вираження1; вираження2) – обчислює вираження1, якщо умова виконується, і вираження2, якщо умова не виконується (збігається з функцією ЯКЩО в Excel).
DateDiff(“d”; дата1; дата2) - обчислює різницю між двома датами в днях. Якщо перший аргумент “m” – різниця дат обчислюється в місяцях, якщо “y” - у літах.
Повний список всіх функцій ви знайдете у вікні «Построитель виражень».
2.2.1. Створимо запит, що відбирає й поєднує запису із двох таблиць - Книги й ЧитКниги, щоб показати, які книги були видані читачам. Створимо обчислює поле, що, з ім'ям Пеня, що нараховується на кожну книгу, що не повертається вчасно. Розмір пені дорівнює 1% від вартості книги за кожний прострочений день. Створимо запит з ім'ям Список1. Для створення запиту Список1 перейдіть на вкладку Запити й виберіть кнопку Створити. Додайте в запит таблиці Книги й ЧитКниги. У вікні схеми даних повинна бути показана зв'язок між таблицями по полю Инв№ - інвентарний номер книги. Перетягніть мишею в нижню половину вікна поля, які необхідно включити в запит: Автор, Назва, Вартість, Инв№, Дата видачі, Дата повернення, NB. Останнє поле буде потрібно для зв'язку запиту з таблицею Читачі. У першому вільному стовпчику нижньої частини вікна створіть поле, що обчислюється, з ім'ям Пеня. Для цього наберіть у верхньому рядку (де розташовується ім'я поля) такий текст:
Пеня: iif([Дата повернення]>Date();
DateDiff(“d”; [Дата повернення]; Date())*0,01*[Вартість]; 0).
Для створення такого вираження можна використати Построитель виражень. Для цього натисніть кнопку Побудувати на панелі інструментів. На екрані відкривається вікно Построителя виражень. У цьому вікні створюється вираження послідовним додаванням до нього полів таблиць або запитів, функцій, констант й операторів (малюнок 13). Імена полів записуються у квадратних дужках.
Збережете запит під ім'ям Список1. Переглянете запит, клацнувши на кнопці Відкрити. Розмір пені, зрозуміло, залежить від поточної дати, на яку він обчислювався. Приклад наведений на 26.01.03.
2.2.2. Створимо підсумковий багато табличний запит. Обчислити для кожного читача кількість книг на руках, їхню загальну вартість і пеню, що нарахована для книг даного читателя.
Для цього виберіть таблиці Книги, Читачі йзапит Список1. У бланк запиту включите поля Прізвище з таблиці Читачі, Инв№ з таблиці Книги, Вартість із таблиці Книги й Пеня із запиту Список1. Для створення підсумкового запиту на панелі інструментів вибираємо піктограму Групові операції. У бланку запиту з'являється рядок Групові операції. Для першого поля запиту Прізвище з таблиці Читачі вибираємо Угруповання, для Вартість із таблиці Книги – SUM (підрахунок суми), для поля Инв№ з таблиці Книги- CountідляПеня із запиту Список1- SUM. Для того, щоб при перегляді запиту кожне поле мало зрозумілий підпис, визначимо властивості полів. Для цього вибираємо Виду-властивості й задаємо Підпис для кожного поля -кількість книг, Загальна вартість книг і Загальна сума пені.
2.2.3. Створення запиту на пошук записів, які не мають зв'язаних в іншому списку. Такі запити називаються «Записи без підлеглих». Для створення таких запитів необхідно змінювати тип об'єднання таблиць на зовнішній. При такому типі об'єднання в запит обов'язково включаються всі записи з першої таблиці й до них додаються поля із другої таблиці, якщо в другій таблиці є запис, для якої значення зв'язаних полів збігаються. Якщо в другій таблиці такого запису ні, то до запису з першої таблиці додаються поля з порожніми значеннями. Зовнішнє об'єднання в конструкторі таблиць зображується лінією зі стрелкой.
Наприклад, створимо список книг, які не видані на руки читачам. У запит включимо дві таблиці Книги й ЧитКниги. Включимо в запит поля Инв№, Шифр, Автор, Назва з таблиці Книги й Инв№ з таблиці ЧитКниги. Знайдемо ті записи, які присутні в таблиці Книги й відсутні в таблиці ЧитКниги. Змінимо Параметри об'єднання. Необхідно створити Зовнішнє об'єднання. Для цього двічі натисніть на лінії зв'язку між таблицями. У вікні діалогу виберіть другий тип – “Об'єднання ВСІХ записів з ‘Книги' і тільки тих записів з 'ЧитКниги', у яких зв'язані поля збігаються”. Тепер створене зовнішнє об'єднання, у яке включені всі книги з таблиці Книги. Для тих книг, які не мають записів з таблиці ЧитКниги встановлюється значення ‘Null’, тому для поляИнв№ з таблиці ЧитКниги встановимо такі параметри Умова відбору – Is Null і Виведення на екран відсутній.
Переконаєтеся, що запит вибирає необхідну інформацію.
2.3. Модифікація даних за допомогою запитів
2.3.1 Запити, які змінюють значення групи записів
Такі запити називаються запити на відновлення даних. Наприклад, за допомогою такого запиту можна здійснювати зміна вартості книг по даті їхнього видання або по інших умовах. Наприклад, збільшити вартість на 20% для книг 1998 року видання.
Цієї запит змінює таблицю, тому для повного захисту від можливих помилок зробіть резервну копію таблиці. Для цього перейдіть у вікно бази даних, виберіть необхідну таблицю й виконаєте команду Виправлення - Копіювати. Далі виберіть команду Виправлення - Вставити й у вікні діалогу дайте копії таблиці нове ім'я.
Перш, ніж обновити дані, створимо запит на вибірку. Перевіримо, чи вибираються необхідні записи, а після перешикуємо його в запит на відновлення. У запит включимо поля Рік і Вартістьіз таблиці Книги. Надамо можливість уводити рік видання як параметр. Для цього у квадратних дужках уведемо [Уведіть рік] у рядку Умова відбору.. Під час виконання запиту цей текст з'явиться в діалоговому вікні для уведення року видання. Перевіримо, чи вибираються необхідні записи. Далі перетворимо цей запит у запит на відновлення. Для цього в основному меню вибираємо Запит-Відновлення. У рядку Відновлення вводимо вираження [Вартість]*([націнка]+100)/100 для перерахування вартості книг. Це вираження використає ще один параметр [націнка], що дає можливість уводити розмір націнки у відсотках. На екрані з'являється вікно діалогу, що повідомляє про кількість обновлених записів. Після підтвердження таблиця обновляється, і доступу до початковим даних уже немає.
2.3.2. Запит на створення нових таблиць. Такі запити створюють нову таблицю й записують у неї дані з інших наявних таблиць або запитів.
Наприклад, створимо таблицю, що містить інформацію про читачів, які не повернули книги вчасно.
Перед тим, як зробити запит на зміну даних, створимо запит на вибірку, щоб переконатися, що робота йде з необхідними даними. У запит включимо таблицю Читачі йзапит Запит 2-2, що для кожного читача підраховує суму пені. Виберіть поля NB, Прізвище, Кафедра, Телефон- Читачі, Count-Инв№, Sum-Вартість, Sum-Пеня із запиту Запит 2-2. З'єднаєте таблицю й запит по полю Прізвище. Для поля Sum-Пеня задайте умову “>0” Ця умова буде вибирати тих читачів, у яких є пеня.
Переконаєтеся, що запит вибирає необхідну інформацію. Для перебудови запиту на створення таблиці перейдіть до команди Запит-Створення таблиці. У вікні діалогу наберіть ім'я нової таблиці (наприклад, “Боржники на 25 січня”). Після запуску запиту на екрані з'явиться вікно діалогу з повідомленням про кількість записів, які будуть вставлені в таблицю. Для підтвердження створення таблиці натисніть кнопку ТАК. На вкладці Таблиці вікна бази даних перевірте наявність таблиці із цим ім'ям і переглянете її вміст.
2.3.3. Створення запитів на видалення даних. Такі запити дозволяють видаляти з таблиць групи записів, які задовольняють яким-небудь умовим.
Наприклад, створимо запит, що видаляє запис із таблиці ЧитКниги на момент повернення читачем книги. Для повного захисту від помилок зробіть резервну копію таблиці. Для цього перейдіть у вікно бази даних, виберіть необхідну таблицю й виконаєте команду Виправлення^-Копіювати. Далі виберіть команду Виправлення-Вставити й у вікні діалогу дайте копії таблиці нове ім'я.
Перед тим, як зробити запит на зміну даних, створимо запит на вибірку, щоб переконатися, що робота йде з необхідними даними.
У запит включимо таблицю ЧитКниги: поля Инв№ й NB. Поставимо умови на значення цих полів через параметри [Уведіть Инв№ книги], [Уведіть номер читацького квитка]. При виконанні цього запиту з'являться послідовно два вікна діалогу для уведення необхідної інформації. Переконаєтеся, що запит вибирає необхідну інформацію.
Для перебудови запиту на видалення перейдіть до команди Запит- Видалення. У рядку Видалення залишіть Умову. Після запуску запиту на екрані з'явиться вікно діалогу з повідомленням про кількість записів, які будуть вилучені з таблиці. Для підтвердження натисніть кнопку Так. Після підтвердження таблиця обновляється й доступу до початковим даних уже немає.
Лабораторна робота № 3
Тема: Створення форм (для перегляду й уведення даних, із підлеглою формою)
Форми є найважливішим засобом створення інтерфейсу користувача при роботі з базами даних Access.
Ви можете створювати форми в багатьох випадках:
1) Уведення й редагування даних. Ця найбільш відома сфера використання форм. Внесення змін, додавання й видалення даних стає набагато більше простим. Ви маєте можливість працювати з даними з декількох таблиць в одній формі, обчислювати необхідні дані й виводити їх на екран.
2) Керування ходом виконання програми. Для автоматизації виконання деяких дій по обробці даних створюють форми для роботи з макросами й процедурами Visual Basic. Для запуску макросів або процедур у формі розміщають елементи керування, які називають кнопками. Макроси й процедури дозволяють відкривати інші форми, запити й звіти, фільтрувати дані, які виводяться на екран, і виконувати багато інших дій.
3) Виведення повідомлень про хід роботи. За допомогою макрокоманди “Повідомлення” або функції MsgBox Visual Basic можливо вивести на екран повідомлення для користувача (наприклад, про помилку).
4) Друк інформації з бази даних. Ви маєте можливість надрукувати форму з даними, які вона містить. Для висновку форми на екран ви повинні задати параметри печатки.
3.1 Створення форм для перегляду й уведення даних
Найпростіший шлях для створення форми для роботи з таблицями - це використати інструмент “Автоформа” на вкладці Таблиці. Тоді Access створює форму, у якій можна бачити й редагувати дані з декількох зв'язаних таблиць одночасно. Така форма, створена для таблиці “Читачі”, наведена на малюнку 24. У верхній частині форми ви бачите інформацію про один читача, нижче - інформацію про видані цьому читачеві книги з таблиці “Читкниги”, ще нижче - повну інформацію про книгу з таблиці «Книги».
Але не завжди буває зручно працювати з такими формами, тому на вкладці Форми ви маєте можливість створювати форми за допомогою “Майстра форм” – програми, що у діалозі з користувачем допомагає задавати різноманітні параметри, які змінюють
зовнішній вигляд форми і її можливості.
Перейдіть на вкладку Форми й створіть прості форми для кожної з таблиць. Спробуйте кілька різноманітних типів форм (проста, стрічкова, у стовпець) і виберіть для себе найбільш зручну. Уведіть нові дані в таблиці, використовуючи форми.
3.2. Створення форм із підлеглою формою
Форми з підлеглої дозволяють редагувати дані або із двох зв'язаних таблиць, або з таблиці й запиту, які зв'язані типом зв'язків один-до-багатьох. Головна форма в такому випадку показує дані з одного запису, а підлегла з декількох записів, які пов'язані із записом головної форми. Підлеглі форми повинні бути типу стрічкова або таблиця. У таких формах часто створюють обчислюють поля, що, у яких обчислюють підсумкові величини за даними із записів підлеглої форми.
Наприклад, створимо форму, що для кожного читача виводить список книг, які в нього на руках, із вказівкою автора книги, назви книги, дати видачі, дати повернення й поля Пеня, що створена й обчислюється в запиті Список1. Пеня нараховується в розмірі одного відсотка від вартості книги за кожний прострочений день. Підрахуємо також загальну суму пені для кожного читача. Форма буде мати підлеглу форму зі списком книг читача. Дані в підлеглу форму будуть братися із запиту Список1, що уже створений у попередньому пункті.
Початковий макет форми створимо за допомогою Майстра форм, а потім поліпшимо його за допомогою Конструктора.
Виконаєте такі операції для створення форми майстром форм:
1) У вікні бази даних виберіть вкладку «Форми» і клацніть на кнопці Створити.
2) У вікні Нова форма в списку: «Виберіть як джерело даних таблицю або запит» розкрийте список таблиць і виберіть таблицю Читачі. Потім в іншому полі виберіть Майстер форм і клацніть на кнопці ОК.
3) Появилось вікно Створення форм. Зі списку Доступні поля перенесіть у список Обрані поля поля NB, Прізвище, Кафедра й Телефон. Потім у списку, що розкривається, розташованому вище, розкрийте список таблиць і запитів, виберіть запит Список1. Його поля з'являться в списку Доступні поля, перенесіть у список Обрані поля всі поля запиту.
4) У наступному вікні необхідно вибрати тип зображення даних. Виберіть «по Читачі», тому що головною формою буде форма, що показує відомості про читачів. Відзначте перемикач Підлеглі форми, щоб інші дані були вставлені в підлеглу форму, і клацніть на кнопці Далі.
5) У наступному вікні виберіть вид підлеглої форми. Тому що нам зручніше за все було б бачити дані про книги, які читаються, представленими у вигляді таблиці, відзначте перемикач «стрічковий» і клацніть на кнопці Далі.
6) Виберіть стиль для головної форми. Стиль показується у вікні вибору відразу ж, як тільки ви відметете один з них. Клацніть на кнопці Далі.
7) У наступному вікні необхідно задати імена форм - головної й підлеглої. Access створив дві форми, зв'язані одна з однієї. Але ви можете коректувати їх у режимі конструктора незалежно одну від інший, а також користуватися підлеглою формою не залежно від головної. Дайте головній формі ім'я Читачі, а підлеглої – Список1. Клацніть на кнопці Готове й ви побачите на екрані створену форму.
На наступному кроці поліпшимо створену форму за допомогою Конструктора форм.
Додамо тепер у форму Список1 поле, у якому обчислюється загальна сума пені для кожного читача. Приклад такої форми в режимі конструктора наведений на малюнку 25, Конструктором форм додане поле “Усього пені”, що обчислюється, і розташовано в області “Примітка форми”.
Далі йде докладний опис перерахованих дій.
Відкрийте підлеглу форму Список1 у режимі конструктора. В області Примітка форми створіть нове поле, що обчислюється. Дайте йому ім'я “Усього пені”, і у вікні Властивості для графи Дані задайте формулу: =Sum([Пеня]) , по якій буде обчислюватися сума пені. Зміните текст перед цим полем, і ваша нова форма готова. Збережете зроблені зміни й відкрийте форму для перегляду. Ви побачите у формі запису про всі видані книги й унизу в поле загальну суму пені по всіх читачах. Зверніть увагу на змінені розміри полів, у яких виводиться інформація про книги. Це зроблено, щоб автори й назва книги виводилися в кілька рядків, щоб більш повно бачити зміст поля.
Поліпшимо тепер вид форми Читачі. Для цього відкрийте форму Читачі в режимі конструктора й виконаєте такі дії:
а) розтягніть мишею область “Заголовок форми”, додайте елемент керування Напис і напишіть текст «Інформація про читачів і видані книги» (малюнок 26). Зміните шрифт і його розмір для кращого виду.
б) перемістите поля Кафедра й Телефон вправо, щоб звільнити більше місця для підлеглої форми.
в) розтягніть підлеглу форму на все вільне місце.
Відкрийте форму для перегляду.
Унизу кожної форми розташований елемент керування, що називається “Кнопки переходу”. Вони дозволяють переміщатися по записах, створювати нові порожні записи й заповнювати їх. Цей елемент керування з'являється у формі, якщо властивість форми “Кнопки переходу” має значення “Так”. Якщо змінити значення цієї властивості на “Ні”, то цього елемента не буде у формі. У підлеглій формі цей елемент не потрібний. Тому, знову відкрийте форму Список1 у режимі конструктора, відкрийте вікно “Властивості” для форми, знайдіть властивість “Кнопки переходу”, зміните на “Ні” значення.
Лабораторна робота №4
Тема: Створення звітів для виведення даних на принтер
4.1. Перейдіть на вкладку Звіти й створіть звіт про наявні в бібліотеці книги, упорядкований по році видання за допомогою майстра.
4.2. Тепер створимо простий звіт, що виводить на принтер список книг, згрупованих по видавництвах, і підраховує загальну вартість книг кожного видавництва. Для цього виконаєте дії:
-
Відкрийте у вікні бази даних закладку Звіти й клацніть на кнопці Створити (Малюнок 27).
-
У наступному вікні виберіть як джерело даних таблицю Книги й укажіть, що будете створювати звіт Майстром звітів. Клацніть на кнопці Далі.
-
Далее необхідно відібрати поля, які будуть відображені у звіті. Виберіть всі поля таблиці «Книги». Помітимо, що на цьому кроці можна вибирати поля не тільки із зазначеної вище таблиці, але з будь-яких таблиць і запитів поточної бази даних. Для цього у вікні Таблиці/запити розкриваєте список таблиць і запитів і вибираєте потрібний об'єкт. Список полів обраної таблиці з'явиться у вікні Доступні поля й у вас з'явиться можливість перенести потрібні поля у вікно Відібрані поля.
-
На цьому кроці необхідно визначити чи хочете ви групувати дані у звіті за значенням якого-небудь поля. Access часто сам пропонує поля, по яких виконувати угруповання. Виберіть поле «Видавництво».
-
Наступний екран пропонує вам вибрати порядок сортування й обчислення, які необхідно виконати для записів. Сортування можна виконувати по чотирьох полях. Виберіть у першому вікні поле «Шифр», а в другому «Рік». Це означає, що для будь-якого видавництва книги будуть упорядковані по шифрі, а для кожного шифру - по році видання. Клацніть на кнопці Підсумки…,щоб організувати обчислення підсумкових значень для потрібних полів. Access запропонує вам всі числові поля серед відібраних у звіт. У нашому випадку будуть запропоновані поля “Рік” й “Вартість”. Для поля “Вартість” відзначте прапорці під написами Sum й Avg, щоб прорахувати сумарну й середню вартості книг для будь-якого видавництва й по бібліотеці в цілому. Відзначте перемикач Показати дані й результати й прапорець Обчислити відсотки, якщо це потрібно.
-
Виберіть вид макета для звіту. Макет показується на екрані, і ви можете вибрати його по своєму смаку.
-
Виберіть стиль звіту серед тих, які пропонуються у вікні.
-
Назвіть ваш звіт «Список книг» і клацніть на кнопці Готово.
Переглянете створений звіт і переконаєтеся, що він задовольняє всім вимогам.
4.3. Створимо звіт, що виводить список читачів бібліотеки, згрупованих по кафедрах, список книг кожного читача, уважається пеня й обчислюється загальна сума пені для кожного читача й по всіх читачах. Для створення такого звіту використається таблиця «Читачі» і запит «Список1», створений у попередній роботі, у якому є обчислює поле, що, «Пеня». Звіт має вигляд, аналогічний формі, але його можна друкувати. Приклад такого звіту наведений на малюнку 27. У створеному звіті текстові поля були малі для назви книги, ми збільшили розмір поля у висоту, назву книги виводиться в кілька рядків.
Для створення звіту виконаєте такі дії:
Виберіть Майстер звітів і таблицю Читачі.
Виберіть із таблиці Читачі поля Прізвище, Кафедра й Телефон. Виберіть запит «Список1» і всього його поля.
Тип зображення даних - «по Читачі».
Додайте рівні угруповання - по полю Кафедра.
Сортувати по полю «Дата видачі», а підсумки підводити по полю «Пеня», обчислювати суму значень (sum) і середнє значення (avg). Підсумки можна підводити й по текстових полях, наприклад по полю “Автор”. Для таких полів використайте підсумкову функцію Count, що обчислює кількість значень у групі, а в цьому прикладі буде обчислювати кількість книг у читача.
Виберіть вид макета й стиль.
Дайте звіту ім'я «Читачі» і Готовий.
Відкрийте створений звіт у режимі конструктора й збільште розміри текстових полів для назви книг й анотації.
Зверніть увагу, що в створеному звіті угруповання зроблені по двох полях, тобто існують дві групи, для кожної з яких обчислюються підсумкові значення по зазначених полях. Заголовок кожної із груп виділений шрифтом.
Відкрийте звіт у режимі конструктора. Ви бачите такі елементи керування у звіті:
- Напису, які виводять тексти, що пояснюють;
- Текстові поля, які виводять дані з таблиць. Такі поля називаються зв'язаними;-
Текстові поля, які містять формули. Такі поля називаються що обчислюють. Для того, щоб обчислити підсумкові значення з використанням підсумкових функцій, що обчислюють поля розташовують в області “Примітка групи”.
З повагою ІЦ "KURSOVIKS"!