Методичнівказівки до виконаннялабораторноїроботи №1 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Методичнівказівки до виконаннялабораторноїроботи №1



Під фізичною моделлю даних розуміють опис логічної структури БД в термінах вибраної СУБД.

У цій моделі описуються:

1. Таблиці бази даних(структура, властивості полів, типи даних, розмірність);

2. Зв'язки між таблицями(первинні, зовнішні ключі, обмеження цілісності);

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

Тип даних Використовування Розмір
Текстовий Текст або комбінація тексту і чисел, наприклад, адреси, а також числа, що не вимагають обчислень, наприклад, номерителефонів, інвентарніномериабопоштовііндекси. До 255 символів.  
Поле MЕМО Довгий текст або числа, наприклад, приміткиабо описи. До 64 000 символів.
Поле MЕМО Довгий текст або числа, наприклад, примітки або описи. До 64 000 символів.
Числовий Числові дані, що використовуються для математичних обчислень, за винятком фінансових розрахунків (для них слід використовувати тип «Грошовий»). 1, 2, 4 або 8 байтів.  
Дата/час Дати і час. 8 байтів.
Грошовий Значення валют. Грошовий тип використовується для запобігання округлень під час обчислень. Припускає до 15 символів в цілій частині числа і 4 - в дробовій. 8 байтів.
Лічильник Автоматична вставка послідовних (що збільшуються на 1) або випадкових чисел при додаванні запису. 4 байти.
Логічний Поля, що містять тільки одне з двох можливих значень, таких як «Да/Нет», «Істина/брехня, «вкл/викл».   1 біт.

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

Правильнішим варіантом є винесення відомостей про видавців в окрему таблицю "Видавці". При цьому таблиця "Книги" міститиме посилання на записи таблиці "Видавці".

Щоб зберегти синхронізацію, слід забезпечити цілісність даних між таблицями "Книги" і "Видавці". Зв'язки із забезпеченням цілісності даних дозволяють стежити за тим, щоб дані в одній таблиці відповідали даним в іншій. Наприклад, кожна книга в таблиці "Книги" пов'язана з певним видавцем в таблиці "Видавці". Додати в таблицю книгу для видавця, відсутнього у базі даних, неможливо.

Види зв'язків між таблицями

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

Існує три види зв'язків між таблицями. Вид створюваного зв'язку залежить від того, як задані пов'язані стовпці.Зв'язки "один до багатьом" Зв'язок "один до багатьом" - найбільш поширений вид зв'язку. При такому зв'язку кожному рядку таблиці А може відповідати безліч рядків таблиці б, проте кожному рядку таблиці б може відповідати тільки один рядок таблиці А. Наприклад, між таблицями "Видавці" і "Книги" встановлений зв'язок "один до багатьом": кожен з видавців може опублікувати безліч книг, проте кожна книга публікується лише одним видавцем.

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

У MicrosoftAccess сторона зв'язку "один до багатьом", якій відповідає первинний ключ, позначається символом ключа. Сторона зв'язку, якому відповідає зовнішній ключ, позначається символом нескінченності.

Зв'язки "багато до багатьом"

При встановленні зв'язку "багато до багатьом" кожному рядку таблиці А може відповідати безліч рядків таблиці б і навпаки. Такий зв'язок створюється за допомогою третьої таблиці, званої сполучної, первинний ключ якої складається із зовнішніх ключів, пов'язаних з таблицями А і Б. Наприклад, між таблицями "Автори" і "Книги" встановлений зв'язок виду "багато до багатьом", що задається за допомогою зв'язків виду "один до багатьом" між кожною з цих таблиць і таблицею "АвторыКниг". Первинний ключ таблиці "АвторыКниг" - це поєднання стовпців "ИД_автора"(первинного ключа таблиці авторів) і "ИД_книги"(первинного ключа таблиці заголовків).

Зв'язки "один до одного"

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

Цей вид зв'язку використовується рідко, оскільки в такій ситуації зв'язувані дані зазвичай можна зберігати в одній таблиці. Використати зв'язок виду "один до одного" можна у вказаних нижче случаях.- Щоб розділити таблицю, що містить надто багато столбцов.- Щоб ізолювати частину таблиці з міркувань безопасности.- Для зберігання даних короткочасного використання, видалити які найпростіше шляхом очищення таблицы.- Для зберігання даних, що мають відношення тільки до підмножини основної таблиці.УMicrosoftAccess сторона зв'язку "один до одного", якій відповідає первинний ключ, позначається символом ключа. Сторона зв'язку, якому відповідає зовнішній ключ, також позначається символом ключа.

Створення зв'язків між таблицями

При встановленні зв'язку між таблицями пов'язані поля не обов'язково повинні мати однакові назви. При цьому у них має бути один і той же тип даних, якщо тільки поле, що є первинним ключем, не відноситься до типу "Лічильник". Полі типу "Лічильник" можна зв'язати з полем типу "Числової" тільки у тому випадку, якщо для властивості FieldSize(розмір поля) кожного з них задано одне і те ж значення. Наприклад, можна зв'язати стовпці типів "Лічильник" і "Числовий", якщо для властивості FieldSize кожного з них встановлено значення "Довге ціле". Навіть якщо обидва зв'язувані стовпці відносяться до типу "Числовою", значення властивості FieldSize для обох полів має бути однаковим.

Створення зв'язків "один до багатьом" або "один до одного"

Щоб створити зв'язок виду "один до багатьом" або "один до одного", скористайтеся приведеною нижче послідовністю дій:

1. Закрийте усі відкриті таблиці. Створювати або змінювати зв'язки між відкритими таблицями не можна.

2. У Access версій 2002 або 2003 виконаєте вказані нижче дії.

a. Натисніть клавішу F11, щоб перейти у вікно бази даних.

b. У меню Сервіс виберіть команду Зв'язки.

У Access 2007 натисніть кнопку Зв'язки в групі Показати або приховати вкладки Інструменти для баз даних.

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

4. Двічі клацніть назви таблиць, які необхідно зв'язати, після чого закрийте діалогове вікно Додавання таблиці. Щоб зв'язати таблицю з самою собою, додайте її двічі.

5. Перетягніть зв'язуване поле з однієї таблиці на зв'язуване поле в іншій. Щоб перетягнути декілька полів, натисніть клавішу CTRL, клацніть кожне поле, а потім перетягнете їх.

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

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

При необхідності задайте параметри зв'язку. Якщо потрібно відомості про конкретний елемент вікна Зміна зв'язків, натисніть кнопку зі знаком питання, а потім клацніть відповідний елемент. Ці параметри будуть детально описані нижче.

7. Щоб встановити зв'язок, натисніть кнопку Створити.

8. Повторіть дії з 5 по 8 для кожної пари зв'язуваних таблиць.

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

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

Створення зв'язків "багато до багатьом"

Щоб створити зв'язок виду "багато до багатьом", виконаєте вказані нижче дії.

1. Створіть дві таблиці, які необхідно зв'язати відношенням "багато до багатьом".

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

3. Задайте первинний ключ цієї таблиці так, щоб він включав поля первинних ключів обох основних таблиць. Наприклад, первинний ключ сполучної таблиці "АвторыКниг" складатиметься з полів "ИД_замовлення" і "ИД_продукту".

Примітка. Щоб створити первинний ключ, виконаєте вказані нижче дії.

a. Відкрийте таблицю в режимі конструктора.

b. Виберіть одне або декілька полів, які необхідно визначити в якості первинного ключа. Щоб вибрати одне поле, клацніть знак вибору рядка для потрібного поля.

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

c. У Access версій 2002 або 2003 натисніть кнопку Первинний ключ на панелі інструментів.

У Access 2007 натисніть кнопку Первинний ключ в групі Сервіс вкладки Структура.

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

4. Встановіть зв'язок виду "один до багатьом" між кожною з двох головних таблиць і сполучною таблицею.

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

 

• Зв'язуване поле з головної таблиці є первинним ключем або має однозначний індекс.

• Зв'язувані поля повинні мати однаковий тип даних. Існує два виключення. Полі типу "Лічильник" може бути пов'язаний з числовим полем, якщо для властивості FieldSize у нього встановлено значення "Довге ціле"; крім того, можна зв'язати поле "Лічильник" з числовим полем, якщо у них обох для властивості FieldSize задано значення "Код реплікації".

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

 

При забезпеченні цілісності даних використовуються вказані нижче правила.

 

• Неможливо присвоїти полю зовнішнього ключа пов'язаної таблиці значення, відсутнє в списку значень первинного ключа головної таблиці. При цьому можна задати для зовнішнього ключа порожнє значення(Null), вказавши, що записи не пов'язані. Наприклад, не можна створити замовлення для неіснуючого клієнта, але можна створити замовлення, не присвоєне жодному з клієнтів, задавши для поля "Клієнт" порожнє значення.

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

• Неможливо змінити значення первинного ключа в головній таблиці, якщо з цим записом пов'язані інші записи. Наприклад, не можна змінити ИД співробітника в таблиці "Співробітники", якщо йому призначені замовлення в таблиці "Замовлення".

Каскадні оновлення і видалення

 

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

Якщо в процесі створенні зв'язку встановити прапорець каскадне оновлення пов'язаних полів, то при будь-якій зміні значення первинного ключа запису в головній таблиці MicrosoftAccess автоматично відновить значення відповідного поля в усіх пов'язаних записах. Наприклад, при зміні ИД клієнта в таблиці "Клієнти" поле "Клієнт" в таблиці "Замовлення" автоматично оновиться для усіх замовлень цього клієнта, щоб зберегти зв'язок. MicrosoftAccess виконає каскадне оновлення без виведення додаткових повідомлень.

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

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

Типи з'єднань

Нижче перераховані існуючі типи з'єднань.

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

Варіант 2 - ліве зовнішнє з'єднання. Ліве зовнішнє з'єднання - це з'єднання, при якому усі записи таблиці ліворуч від оператора LEFT JOIN(ліве об'єднання) інструкції SQL потрапляють в результати запиту навіть у тому випадку, якщо в пов'язаному полі з правої таблиці відсутні відповідні значення.

Варіант 3 - праве зовнішнє з'єднання. Праве зовнішнє з'єднання - це з'єднання, при якому усі записи таблиці праворуч від оператора RIGHT JOIN(праве об'єднання) інструкції SQL потрапляють в результати запиту навіть у тому випадку, якщо в пов'язаному полі з лівої таблиці відсутні відповідні значення.

Приклад

БД міститьнаступнівідносини:

Первинніключі, Зовнішніключі

Фільм (КФ, Назва, КР, КК, ріквипуску)

Режисер (КР, Режисер, Інформація)

Кінокомпанія (КК, Компанія, інформація)

Типи зв'язків:

Фільм – Режисер («1: ¥»);

Кінокомпанія-Фільм («1: ¥»).

 



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 229; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.109.30 (0.044 с.)