Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра САПР
ЗВІТ
про виконання лабораторної роботи №4
на тему: «Розробка структури бази даних у середовищі Free Access»
з курсу: «Організація баз даних і знань»
Львів 2009
Тема роботи
Розробка структури бази даних у середовищі Free Access.
Мета роботи
Метою роботи є здобуття практичних навичок створення структури бази даних та використання на практиці усіх типів зв’язку.
Лабораторне завдання
Розробити структуру бази даних. Тема завдання «Ветенринарна поліклініка».
Теоретичні відомості
СУБД MS Access належить до так званих об(єктно-орієнтованих систем. Під об(єктами у MS Access розуміють все, що має ім(я. Множину об(єктів MS Access складають таблиці, запити, форми, звіти, макроси та модулі. Ці об(єкти визначаться користувачем, а їх сукупність складає базу даних. Всі об(єкти взаємопов(язані, причому таблиці знаходяться в основі всіх зв(язків. На цій основі, як правило, будуються всі інші об(єкти (але взагалі кажучи це не обов(язково). Це пояснюється перш за все тим, що саме в таблицях зберігаються дані, які вже надалі обробляються формами, запитами тощо. Таким чином таблиці призначені для збереження даних. Кожна таблиця містить інформацію певного типу, наприклад, кадровий склад працівників підприємства. Таблиці можуть бути пов(язані між собою, що дає змогу представити інформацію як багатовимірну. Запит призначений для виборки необхідних даних з таблиць. За допомогою запитів можна також модифікувати дані або створювати інші таблиці. Форми призначаються для перегляду, введення і редагування даних таблиць а також надають користувачу засоби керування програмами, які використовують базу даних. Форми, як правило, використовуються для того, щоб забезпечити необхідний зовнішній вигляд документа, дані якого вводяться у таблицю. Звіти призначаються для перегляду та друку результуючої інформації. Звіти можуть бути включені до документів інших програм. Макроси та модулі призначені для обробки подій. Терміном подія у MS Access називають зміну стану об(єкта. Так, подія – це відкриття того чи іншого об(екта, його закриття, зміна стану самого об(єкта. Наприклад, для таблиць це введення запису, видалення запису тощо. Для визначення макросів та модулів необхідні знання з теорії програмування та вміння програмувати в системі програмування Visual Basic for Applications (VBA), яка вбудована у MS Access. Всі наведені вище об(єкти можуть бути визначені у MS Access як вручну, так і за допомогою так званих майстрів , які допомагають користувачеві за декілька кроків діалогу створити необхідне. Майстри – це один з найпотужніших засобів MS Access, якими слід користуватись на перших кроках опанування даної СУБД, або в інших “нештатних” ситуаціях.
Примітка: у зв(язку з наявністю російськомовної і відсутністю на сьогодні україномовної кирилізованої версії MS Access у даному посібнику використовуються російськомовні назви елементів інтерфесу (тобто, назви кнопок, дій меню тощо).
Побудова бази даних
Після запуску MS Access користувач має змогу:
побудувати базу даних самостійно;
побудувати базу даних за допомогою майстра;
відкрити існуючу базу даних.
При самостійному способі побудови бази даних і першому відкритті вікна бази даних MS Access (більш докладно процес побудови таблиць, форм, запитів, звітів у середовищі MS Access наведено у [4]) активізує вкладку “Таблица” з трьома кнопками: “Открыть”, “Конструктор”, “Создать”. Саме остання кнопка буде спочатку активною, вона призначена для побудови нової таблиці. Таким чином, за угодою MS Access дає змогу розпочати процес побудови бази даних з визначення таблиць.
Роль сутності у зв'язку - функція, яку виконує сутність у даному зв'язку. Наприклад, у зв'язку БАТЬКО-НАЩАДОК сутність ЛЮДИНА може мати ролі "батько" і "нащадок". Вказання ролей у моделі "сутність-зв'язок не є обов'язковою і служить для уточнення семантики зв'язку.
Набір зв'язків (relationship set) - це відношення між n (причому n не менше 2) сутностями, кожна з яких відноситься до деякого набору сутностей.Поняття "зв'язок" і "набір зв'язків" різні (перша є елементом другого), їх, проте, часто вживають для позначення одного і того самого. Не претендуючи на академічну строгість, надалі також часто користуватимемося термінами "зв'язок" маючи на увазі "набір зв'язків" і "сутність" маючи на увазі "набір сутностей".
У випадку n=2, тобто коли зв'язок об'єднує дві сутності, він називається бінарним. Доведено, що n-арний набір зв'язків (n>2) завжди можна замінити безліччю бінарних, проте перші краще відображають семантику предметної області.
Розгляд степенів особливо корисно для бінарних зв'язків. Можуть існувати наступні степені бінарних зв'язків:
один до одного (позначається 1:1). Це означає, що в такому зв'язку сутності з однією роллю завжди відповідає не більше однієї сутності з іншою роллю. У розглянутому прикладі це зв'язок "керує", оскільки у кожному відділі може бути лише один начальник, а співробітник може керувати лише в одному відділі. Даний факт представлений на наступному рисунке, де прямокутники позначають сутності, а ромб - зв'язок. Оскільки степінь зв'язку для кожної сутності дорівнює 1, то вони з'єднуються однією лінією.Іншою важливою характеристикою зв'язку крім його степені є клас належності сутностей які до нього входять. Оскільки у кожному відділі обов'язково повинен бути керівник, то кожній сутності "ВІДДІЛ" неодмінно повинна відповідати сутність "СПІВРОБІТНИК". Проте, не кожний співробітник є керівником відділу, відповідно у даному зв'язку не кожна сутність "СПІВРОБІТНИК" має асоційовану з нею сутність "ВІДДІЛ".Таким чином, говорять, що сутність "СПІВРОБІТНИК" має обов'язковий клас належності (цей факт є також вказівкою інтервалу кількості можливих входжень сутності у зв'язок, у даному випадку це 1,1), а сутність "ВІДДІЛ" має необов'язковий клас належності (0,1). Тепер даний зв'язок ми можемо описати як 0,1:1,1. Надалі клас належності бінарних зв'язків степены 1 будемо позначати наступним чином:
один до багатьох (1:n). У даному випадку сутності з однією роллю може відповідати будь-яка кількість сутностей з іншою роллю. Таким є зв'язок ВІДДІЛ-СПІВРОБІТНИК. У кожному відділі може працювати довільна кількість співробітників, але співробітник може працювати лише в одному відділі. Графічно степінь зв'язку n відображається "деревоподібною” лінією, як це зроблено на наступному рисунку.Даний рисунок додатково ілюструє той факт, що між двома сутностями може бути визначено декілька наборів зв'язків.Тут також необхідно враховувати клас належності сутностей. Кожний співробітник повинен працювати у якому-небудь відділі, але не обов’язково кожний відділ (наприклад, щойно сформований) повинен включати хоча б одного співробітника. Тому сутність "ВІДДІЛ" має обов'язковий, а сутність "СПІВРОБІТНИК" необов'язковий класи належності. Степінь зв’язку бінарних зв'язків степені n будемо позначати наступним чином:
багато до одного (n:1). Цей зв'язок аналогічний відображенню 1:n. Припустимо, що представлення нами підприємство будує свою діяльність на підставі контрактів, що підприємство, яке ми розглядаємо, будує свою діяльність на основі контрактів, які укладаються із замовниками. Цей факт відображається у моделі "сутність-зв'язок за допомогою зв'язку КОНТРАКТ-ЗАМОВНИК, який об'єднує сутності КОНТРАКТ(НОМЕР, ТЕРМІН_ВИКОНАННЯ, СУМА) і ЗАМОВНИК(НАЗВА, АДРЕСА). Оскільки з одним замовником може бути укладено більше одного контракту, то зв'язок КОНТРАКТ-ЗАМОВНИК між цими сутностями матиме степінь n:1.У даному випадку, по представлення очевидних міркуваннях (кожний контракт укладений представлення конкретним замовником, а кожний замовник має хоча б один контракт, інакше він не був би таким), кожне представлення має обов'язковий клас приналежності.
багато до багатьох (n:n). У цьому випадку кожне з асоційованих сутностей може бути представлена будь-якою кількістю екземплярів. Нехай на підприємстві для виконання кожного контракту створюється робоча група, у яку входять співробітники різних відділів. Оскільки кожний співробітник може входити в кілька (у тому числі і в жодну) робочих груп, а кожна група повинна включати не менше одного співробітника, то зв'язок між сутностями СПІВРОБІТНИК і РОБОЧА_ГРУПА має степінь n:n.
Хід роботи
Моя база даних складається з таких таблиць:
«Кабінети»
«Лікарі»
«Хвороби»
«Тварини»
«Стан кабінетів»
Схема даних:
Зв’язок один-до-одного
Використовуємо таблиці «Працівник» і «Дані працівника». Запис в головній таблиці «Працівник» може мати не більше одного зв’язаного запису зі зв’язаної таблиці «Дані працівника» і навпаки. При такому відношенні ключові поля повинні бути унікальними, тобто в цих полях не допускається повторення даних. В головній таблиці та зв’язаній ключовим полем є «№ працівника».
Зв’язок один-до-багатьох
Беремо таблиці «Замовники» і «Поліс». У цьому зв’язку декільком записам таблиці «Поліс» відповідає один запис зв’язаної таблиці «Замовники».
Зв’язок багато-до-одного
Використовуємо таблиці «Поліс» і «Працівник». При використанні цього відношення одному запису таблиці «Працівник» відповідає декілька записів в зв’язаній таблиці «Поліс».
Зв’язок багато-до-багатьох
Використовуємо таблиці «Замовники», «Замовлення» і «Поліс». При використанні цього відношення багатьом записам таблиці «Поліс» відповідає багатo записів таблиці «Замовники» і навпаки.
Таблиця «лікарі»:
Таблиця «хвороби»:
Таблиця «тварини»:
Таблиця «кабінети»:
Таблиця «стан кабінетів»:
Висновок
На цій лабораторній роботі я навчився створювати структуру бази даних. Набула практичних навиків у створенні структури бази даних у середовищі Access і створенні схеми даних тобто конструювання схеми зв’язків.