КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Створення таблиць
1.1 Проектування моделі реальною БД на прикладі створення БД «Школа».
Ми створюватимемо працюючу БД зі всіма основними об'єктами: таблицями, формами, запитами і звітами, використовуючи всім нам добре знайому наочну область – школу. Школа – це складна структура з безліччю об'єктів. Перерахуємо ці об'єкти: учні, вчителі, класи, адміністрація, предмети, що вивчаються, оцінки по цих предметах, бібліотека, їдальня, гуртки, батьківський комітет, зарплата вчителів, шкільні меблі і устаткування, ремонт приміщень тощо. Створити БД, яка повністю охоплювала б усі ці об'єкти і взаємозв'язки між ними, ми ніяк не встигнемо в рамках тих годин, які виділяються нам на вивчення цієї теми. Тому виділимо лише найосновніші і добре знайомі учням.
Логічна структура:
Рис.1.1
1 – 4 : Основні об'єкти БД 5 – 8 : Об'єкти, за допомогою яких здійснюється зв'язок основних об'єктів один з одним, 5 - 6 : Зв'язки між об'єктами, які реалізуються за допомогою додаткових таблиць, 7 - 8 : Зв'язки між об'єктами, які реалізуються за допомогою прямих зв'язків між таблицями. На рис. 1.1 стрілки, що сполучають об'єкти БД, помічені значками 1 і ¥. Це означає вигляд зв'язку один-до-багатьох. Наприклад, в одному класі вчаться багато учнів, або один учень отримує багато оцінок. Відношення багато-до-багатьох (¥ і ¥) може застосовуватися в такій ситуації: один і той же вчитель читає в різних класах та один і той самий предмет читають різні вчителі. Наприклад, на англійську мову клас ділитися на групи і в цих групах працюють різні вчителі або математику в різних класах читають різні вчителі тощо. А зв'язок один-до-одного позначає точний збіг кількості записів в таблицях.
1.2 Розробка структури таблиць і типів полів в БД «Школа»
Таблиця. 1.1
1.3 Допустимі дані для таблиць БД «Школа»
Хоча ми і так досить сильно скоротили кількість об'єктів в нашій БД «Школа», але якщо ми вноситимемо до таблиць реальну кількість класів в школі (10-40), учнів в них (30), предметів, що вивчаються, і вчителів, що читають ці предмети, то наша БД стане дуже велика і весь час доведеться витратити лише на введення даних в неї. Тому ми і тут скоротимо свою працю до мінімуму. У нашій школі буде 3 класи: 11-а, 11-б і 11-в (у вашій можуть бути абсолютно інші класи, наприклад, 5-Е). У кожному класі вчиться по 5 учнів, в школі працює 6 вчителів (3 класних керівника і 3 вчителя-предметника) та діти вивчають в кожному класі по 5 предметів. Один і той же предмет в різних класах можуть вести різні вчителі і один той самий вчитель може читати різні предмети. Для того, щоб ми знали, які конкретно дані вводити в таблиці БД, складемо списки предметів (таблиця. 1.2), які читатимуться в різних класах (у нас навчання профільне і в різних класах читаються різні предмети, а у вас це можуть бути просто різні класи – 5, 7, 10)
Таблиця. 1.2 1.4 Створення таблиць БД «Школа» і зв'язків між ними
Відкриємо програму Ms ACCESS, виберемо місце на диску, де зберігатиметься наша БД, назвемо її Школа.mdb і приступимо до створення таблиць. Спочатку створюватимемо таблиці, при побудові яких не використовується Майстер підстановки (табл.1.1). Це таблиці Вчителі і Предмет. У головному вікні БД вибираємо Створення таблиці в режимі конструктора (рис.1.2) і робимо такі поля для таблиці Вчителі (рис.1.3):
Поле №_учителя робимо ключовим – виділяємо його і натискуємо кнопку Ключове поле на панелі інструментів (ПІ). Значення для цього поля вводяться автоматично при заповненні таблиці і не повторюються, навіть якщо якийсь запис буде видалений. Тип поля Класне_керівництво встановлюємо Логічний, значення – «Так». При введенні даних досить поставити галочку в цьому полі. Для того, щоб уникнути «нез'ясовних» помилок при створенні запитів і звітів, в імені полів не можна використовувати пропуск, його краще замінити знаком підкреслення «_». Таблицю Вчителі можна відразу заповнити даними, аби продемонструвати потім роботу Майстра підстановки. Переходимо з режиму конструктора в режим таблиці і вносимо дані (рис.1.4): Рис.1.4
Аналогічно створюємо таблицю Предмет (рис.1.5 і 1.6). Назви предметів беремо з таблиці 1.2. Рис.1.5
Р Рис.1.6 Тепер створимо таблицю Клас. Теж в головному вікні БД вибираємо Створення таблиці в режимі конструктора і робимо такі поля (Рис.1.7): Рис.1.7 Що таке Майстер підстановки? Це дуже корисна можливість, яка використовується для того, щоб брати вже готові дані з таблиці-джерела і одним клацанням миші вводити їх в дану таблицю. Це дозволяє, по-перше, значно прискорити заповнення таблиць даними, а по-друге, уникнути звичайних і друкарських помилок. Наприклад, при введенні назви класу можна написати: 11А, 11-а, 11 а тощо. Для нас це один і той же 11-а клас, а для БД – це різні дані. Аби уникнути такого різночитання і використовується Майстер підстановки. Порядок дій: 1. У списку типів полів вибираємо Майстер підстановки (рис.1.7) 2. У вікні, що з'явилося, перемикач встановлюємо в позицію Об'єкт «стовпець підстановки» використовуватиме значення з таблиці або запиту. (рис.1.8) Рис.1.8 3. У вікні (рис.1.9) вибираємо таблицю, з якої братимемо дані. Зараз це таблиця – Вчителі. Рис.1.9 4. У наступному вікні вибираємо поля для підстановки. Для того, щоб нам надалі було зручно заповнювати базу даними, виберемо ключовий стовпець і стовпець з прізвищем вчителя. Тут ще можна вибрати стовпець Класне_керівництво, аби було відразу видно, хто з вчителів є класним керівником, аби вчителеві-предметнику не «нав'язати» ще і класне керівництво! Програма ACCESS зберігатиме в таблиці Клас номер вчителя, а на екран при роботі з цією таблицею виведе прізвище. Рис.1.10 5. На рис. 1.10 видно, як виглядатиме наш стовпець підстановки. 6. Натискуємо кнопку Готово, переходимо в режим таблиці і дивимося, як це працює (рис.1.11 і 1.12):
Рис.1.12
Рис.1.11 Тепер сформуємо і останні таблиці. Дані в них можна внести і після того, як створимо всі таблиці. Таблиця Учні. Для полегшення подальшого введення даних в неї, в полях Дата_народження і Телефон застосуємо шаблони – формат поля і маску введення (див. Примітки на стор.46) (Мал. 1.13 і 1.14):
Рис.1.13
Ось готова таблиця Учні (рис.1.15):
Тепер займемося таблицею Викладає. Ця таблиця не містить ключового поля і всі значення в ній визначаються Майстром підстановки для полів №_учителя, №_предмета і Клас (табл.1.1). Ось заповнена таблиця Викладає з сортуванням даних по класах (рис.1.16) і по вчителях (рис.1.17):
Тепер приступимо до найбільшої таблиці – Отримує. Ця таблиця повинна містити таку кількість записів: 225= кількість учнів * кількість предметів в класі * кількість періодів навчання Період навчання – 1 семестр, 2 семестр, рік. Таким чином, в нашій БД знаходитимуться лише семестрові і річні оцінки учнів по всіх предметах. Поля №_учня і №_предмету формуються за допомогою Майстра підстановки так само, як і в попередніх таблицях. А ось для полів Період і Оцінки, ми створимо фіксовані набори даних: 1. У стовпці Тип даних Конструктора таблиці вибираємо Майстер підстановки. 2. У вікні (мал. 1.18), що відкрилося, перемикач встановлюємо біля «Буде введений фіксований набір значень»
3. У наступному вікні (рис.1.19) заповнюємо потрібні нам дані і отримаємо «внутрішній» для цієї таблиці стовпець підстановки. Аналогічно можна поступити і з полем Оцінки. Зверніть увагу, що в демонстраційній БД, яку Ви отримали разом з цією книгою використовується 5-ти бальна система оцінок. Вчителям в Україні оцінки потрібно поміняти на 12-ти бальну систему. Коли почнемо вводити інформацію в таблицю, то в полі Період з’явиться список, що розкривається, з періодами навчання (рис.1.20): Рис. 1.20
При заповненні цієї таблиці потрібно звірятися з даними в таблиці 1.2, аби виставляти дітям оцінки по тих предметах, які читаються у них в класі, інакше ми не зможемо створити потім коректні запити. А ось приклад заповненої таблиці для першого учня (рис.1.21): Рис.1.21
Ще 15 разів по стільки – і золотий ключик у вас в кишені! :) - Діти, якщо ви добре не будете вчитися, то вам все життя доведеться заповнювати БД! На найпершому етапі роботи над БД «Школа» потрібно просто створити ці таблиці. Заповнювати дані краще після того, як встановлені і налагоджені всі зв'язки в таблицях.
1.5 Схема даних БД «Школа»
Перейдемо в головне вікно БД і в ПІ натискуватимемо кнопку Схему даних З'явиться відповідне вікно (рис.1.22). Якщо в процесі створення таблиць ми використовували Майстер підстановки, то Ms ACCESS самостійно встановить потрібні зв'язки між полями в таблицях. Розташування таблиць у вікні може бути інше. Ви можете для зручності порівняння з малюнком перетягнути їх, вхопившись за заголовок таблиці. Якщо на вашій схемі з'явилося менше 6 таблиць, то решта таблиць потрібно додати. Натискуйте праву кнопку миші усередині вікна схеми даних і виберіть команду Додати. Якщо ж у вас з'явилися зайві таблиці з іменами Класс1 або Викладає3, то їх потрібно видалити, оскільки вони не дадуть нам побудувати запити. Для видалення зайвої таблиці, потрібно спочатку видалити зв'язки, які у неї є з іншими таблицями. Натискуємо праву кнопку миші на лінії зв'язку і вибираємо команду Видалити. Якщо ж між таблицями немає ліній зв'язку, то ви не використали майстер підстановки. Зв'язки можна встановити і у вікні Схема даних. Виділимо потрібне поле в потрібній таблиці і перетягуємо його на іншу таблицю. Рис. 1.22 Тепер змінимо властивості зв'язків в БД. Поглянемо на рис. 1.1. Там на стрілках стоять значки 1 і ¥. Такі ж значки потрібно встановити і в схемі даних. Для цього: 1. На кожній лінії зв'язку натискуємо праву кнопку миші і вибираємо команду Змінити зв'язок (мал. 1.23)
2. У вікні (мал. 1.24), що з'явилося, ставимо прапорець Забезпечення цілісності даних і тиснемо ОК. 3. Отримуємо результат (мал. 1.25) - в одному класі вчитися багато учнів. Таблиця, біля якої стоїть 1, вважається головною, оскільки вона зв'язується по ключовому полю, яке в ній не повторюється. Таблиця із знаком ¥ називається підпорядкованою. У головній таблиці ми не можемо видалити запис, поки в підлеглій таблиці є хоч один запис з таким значенням. Аналогічним чином встановлюємо всі властивості зв'язків між таблицями, окрім зв'язку Вчитель – Клас. Хоча в одному класі може бути лише один класний керівник, і один вчитель може бути класним керівником теж лише в одному класі, цей тип зв'язку між таблицям Вчитель і Клас ми встановити не можемо, оскільки є ще і вчителі-предметники. Тому не може бути збігу кількості записів в таблицях Клас і Вчитель. В результаті повинна вийти така картинка (рис. 1.26): Рис.1.26 Всю основну роботу по проектуванню і створенню таблиць БД «Школа» ми зробили, а заповнювати таблиці можна у міру наявності вільного часу!
|