Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных.docx
Скачиваний:
16
Добавлен:
11.11.2019
Размер:
6.47 Mб
Скачать

Частина 2

"ВИВЧЕННЯ ТЕХНОЛОГІЇ СТВОРЕННЯ ТАБЛИЦЬ РЕЛЯЦІЙНОЇ БАЗИ ДАНИХ СУБД MS ACCESS"

Ціль роботи: вивчення методів створення таблиць і зв'язків між ними в реляційній базі даних, яка створюється за допомогою СУБД MS Access.

Завдання на проведення лабораторної роботи

1. Ознайомитися з наведеним методичним матеріалом по створенню бази даних і таблиць на прикладі реляційної бази даних «Навчальний процес» СУБД MS Access.

2. Використовуючи СУБД MS Access, створити свій файл бази даних.

3. Cтворити таблиці БД «Навчальний процес», що описані в методичному матеріалі. Первинний ключ потрібно вибирати так, як описано в методичному матеріалі, не допускаючи використання первинним ключем типу даних Счетчик, що пропонується автоматично, якщо розроблювач забув створити первинний ключ.

4. Провести перевірку створених індексів. Індекси повинні створюватися автоматично тільки для первинних ключів. Інші індекси виникають через некоректний спосіб завдання параметрів і їх необхідно видалити.

5. Створити схему даних, забезпечивши цілісність БД і можливість каскадних операцій.

Зміст звіту і демонстрація результатів

1. Результат перевірки умов нормалізації таблиць БД «Навчальний процес». Докладно обґрунтуйте Ваш висновок про тім, у якій нормальній формі знаходиться кожна таблиця.

2. Схема даних, що повинна містити створені таблиці Студенти, Викладачі, Оцінки, Дисципліни.

3. Продемонструвати викладачу свій варіант таблиць і схеми даних на комп'ютері, а також підтвердити можливість каскадних операцій.

Теоретичні відомості

Створення нової бази даних

Створення нової реляційної бази даних у MS Ассеss здійснюється відповідно до її структури, яка отримана в результаті проектування. Структура реляційної бази даних визначається складом таблиць і їхніх взаємозв'язків. Взаємозв'язки між двома таблицями типу один-до-багатьох чи один-до-одного реалізуються через ключ зв'язку, що входить до складу полів таблиць, що зв'язуються.

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

При створенні БД важливо задати параметри, відповідно до яких MS Ассеss буде автоматично підтримувати цілісність даних. Для цього при визначенні структури таблиць повинні бути зазначені обмеження на припустимі значення даних, а при створенні схеми даних на основі таблиць повинні бути задані параметри підтримки цілісності зв'язків бази даних.

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

  • Створення файлу бази даних MS Ассеss

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

Для створення файлу нової БД треба у вікні Создание файла вибрати вкладку Новая база данных. В списку Папка, вікна Файл новой базы данных (мал.2.1) потрібно вибрати каталог, у якому буде розміщений файл, задати ім'я файлу нової бази даних і натиснути кнопку Создать. У результаті відкривається вікно нової бази даних «ім'я БД»: база даних.

Рис.2.1. Вікно створення файлу нової бази даних

Задаючи ім'я файлу бази даних, варто мати на увазі, що його гранична довжина складає 255 символів, включаючи пробіли. Імена файлів не повинні містити наступних символів: \ /?:*?"<> | .

Тип файлу за замовчуванням має значення Бази даних MS Ассеss (розширення *.mdb), що приводить до створення файлу бази даних, що має розширення .mdb. Це розширення є зареєстрованим у Windows для даного типу файлів і зв'язується з програмою Ассеss.

Вікно файлу нової бази даних

У результаті виконання команди Создать відкривається вікно нової бази даних «ім'я БД»: база даних. Причому «ім'я БД» відповідає заданому у вікні Файл нової бази даних.

У вікні нової бази даних у розділі Объекты вертикальним рядом кнопок представлені всі об'єкти, що можуть бути створені в БД: таблиці, запити, звіти, сторінки, макроси і модулі. При натисканні кнопки в робочому полі вікна відображається список імен об'єктів даного типу. При створенні нової бази даних список для будь-якого обраного типу об'єкта відсутній. (мал.2.2).

Рис.2.2. Вікно файлу нової бази даних

Об'єкти різних типів можуть поєднуватися в групи, що представлені в розділі Группы. Группы дозволяють у великих БД об'єднати об'єкти однієї теми.

Створення таблиці бази даних

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

Для створення нової таблиці треба у вікні бази даних вибрати об'єкт Таблицы і натиснути кнопку Создать. У вікні Новая таблица, що відкрилося, потрібно вибрати один з режимів створення таблиці (рис. 2.3). У MS Ассеss основні перші три режими винесені в робоче поле, що призначене для відображення списку таблиць. Це дозволяє відразу перейти в потрібний режим створення таблиці, скоротивши число виконуваних користувачем операцій.

Рис. 2.3. Діалогове вікно для вибору режиму створення таблиці

Рядок Создание таблицы в режиме конструктора в робочому полі вікна бази даних чи Конструктор у вікні Новая таблица визначає вибір основного способу створення нової таблиці, при якому створення таблиці починається з визначення її структури в режимі конструктора таблиць. У режимі конструктора користувач може сам установити параметри всіх елементів структури таблиці.

Визначення структури нової таблиці в режимі конструктора

При виборі режиму конструктора таблиць з'являється вікно Таблица1:Таблица, у якому визначається структура таблиці бази даних (мал. 2.4).

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

Рис. 2.4. Вікно визначення структури нової таблиці в режимі конструктора

Визначення полів таблиці

Для визначення поля у вікні Таблица (див. рис.2.4) задаються Имя поля, Тип данных, Описание  короткий коментар, а також властивості поля в розділі Свойства поля. На вкладці Общие представлені рядки властивостей поля, у тому числі максимальний розмір, підпис, що виводиться в заголовку стовпця, значення за замовчуванням і інші. На вкладці Подстановка вибирається тип елемента упрвління: поле, список, чи поле зі списком.

Імена полів і тип даних

Имя поля. Кожне поле в таблиці повинне мати унікальне ім'я, що задовольняє вимогам про імена об'єктів в Ассеss. Воно є комбінацією з букв, цифр, пробілів і спеціальних символів, за винятком символів «.» «!» «"» «[» «]» . Ім'я не може починатися з пробілу. Максимальна довжина імені 64 символу.

Тип данных. Тип даних визначається значеннями, які передбачається вводити в поле, і операціями, що будуть виконуватися з цими значеннями. У MS Ассеss допускається використання дев'яти типів даних. Список можливих типів даних викликається натисканням кнопки списку при виборі типу даних кожного поля:

Текстовый  тип даних за замовчуванням. Текст чи цифри, що не беруть участь у розрахунках. Число символів у полі не повинне перевищувати 255. Максимальне число символів, яке можна ввести в поле, задається у властивості Размер поля.. Порожні символи в невикористовуваній частині поля не зберігаються.

• Поле МЕМО. Великий текст, наприклад, деякий опис чи примітка. Максимальна довжина 64 000 символів

Числовой. Числові дані, що використовуються в математичних обчисленнях. Конкретні варіанти числового типу і їхня довжина задаються у властивості Размер поля.. Для проведення грошових розрахунків визначений інший тип даних  Денежный.

Денежный. Грошові значення і числові дані, що використовуються в розрахунках, з точністю до 15 знаків у цілій і до 4 знаків у дробовій частині. Довжина поля 8 байт. При обробці числових значень із грошових полів виконуються обчислення з фіксованою крапкою більш швидкі, ніж обчислення для полів із крапкою, що плаває, крім того, при обчисленнях запобігається округлення. З огляду на ці обставини, рекомендується для полів, у яких планується зберігати числові значення з зазначеною точністю, використовувати грошовий тип даних.

Дата/время. Значення дати чи часу, що відносяться до років з 100 по 9999 включно. Довжина поля 8 байт.

Счетчик. Тип даних поля, у яке для кожного нового запису автоматично вводяться унікальні цілі, послідовно зростаючі (на 1), чи випадкові числа. Значення цього поля не можна змінити чи видалити. Довжина поля 4 байти для довгого цілого, для коду реплікації − 128 байт. За замовчуванням у поле вводяться послідовні значення. У таблиці не може бути більш одного поля цього типу. Використовується для визначення унікального ключа таблиці.

Логический. Логічні дані, що можуть мати одне з двох можливих значень Так/Ні; Істина/Неправда; Вкл./Викл; Yes/No. Довжина поля 1 біт.

Поле объекта OLE. Об'єкт (наприклад, електронна таблиця Ехсеl, документ Word, малюнок, звукозапис чи інші дані в двійковому форматі), зв'язаний чи впроваджений у таблицю Ассеss. Довжина поля  до 1 Гігабайта (обмежується обсягом диска). Для полів типу OLE і МЕМО не допускається сортування й індексування.

Гиперссылка. В якості гіперпосилання можна вказувати шлях до файлу на жорсткому диску. Якщо натиснути мишею на поле гіперпосилання, Ассеss виконає перехід на відповідний об'єкт, документ, сторінку WEB чи інше місце призначення. Максимальна довжина 64 000 символів.

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

Загальні властивості поля

Загальні властивості задаються для кожного поля на вкладці Общие і залежать від обраного типу даних. Для відображення властивостей поля необхідно установити курсор на рядку відповідного поля (див. рис.2.4). Приведемо властивості полів, найбільш важливі на першому етапі вивчення баз даних:

Размер поля задає максимальний розмір даних, що зберігаються в поле.

Для поля з типом даних Текстовый задається розмір від 1 до 255 байтів (за замовчуванням 50 байт).

Для поля з типом даних Счетчик можна задати:

Длинное Целое  4 байти;

Код репликации  128 байт;

Для поля з типом даних Числовой можна задати:

Байт для цілих чисел від 0 до 255, довжина поля 1 байт;

Целое для цілих чисел від -32.768 до + 32.767, займає 2 байти;

Длинное целое для цілих чисел від -2.147.483.648 до +2.147.483.647, займає 4 байти;

Дробные с плавающей точкой 4 байта для чисел від -3,4х1038 до + 3,4х1038 з точністю до 7 знаків;

Дробные с плавающей точкой 8 байт для чисел від -1,797х10308 до +1,797х10308 з точністю до 15 знаків;

Действительное для цілих чисел від -1038 до 1038 і від -1028 до 1028 з точністю до 28 знаків, займає 12 байт;

Код репликации. Глобальний унікальний ідентифікатор, займає 16 байт. Поля такого типу використовуються Ассеss для створення системних унікальних ідентифікаторів реплік, наборів реплік, таблиць, записів і інших об'єктів при реплікації баз даних.

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

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

Формат поля є форматом відображення заданого типу даних і задає правила представлення даних при виведенні їх на екран чи друку.

У MS Ассеss визначені убудовані стандартні формати відображення для полів з типами даних Числовой, Дата/время, Логический і Денежный. Для задання конкретного формату відображення необхідно вибрати в списку, що розкривається, одне зі значень властивості Формат поля. Формат поля використовується для відображення даних у режимі таблиці, а також застосовується в формі чи звіті при відображенні цих полів.

Число десятичных знаков задає для числового і грошового типів даних число знаків після коми. Можна задати число від 0 до 15. Властивість Число десятичных знаков впливає тільки на кількість десяткових знаків, що відображуються на екрані, і не впливає на число десяткових знаків, що зберігаються. Для зміни числа знаків, що зберігаються, потрібно змінити властивість Размер поля.

Подпись поля задає текст, що виводиться в таблицях, формах, звітах.

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

Визначення первинного ключа

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

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

Збереження таблиці

Після визначення структури таблиці її треба зберегти. Для цього використовується команда Файл→ Сохранить чи кнопка панелі інструментів конструктора Сохранить. У вікні Сохранение вводиться ім'я таблиці (рис. 2.5.).

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

Рис. 2.5. Вікно введення імені таблиці і її збереження

Після збереження таблиці стає доступним режим, що дозволяє перейти до другого етапу створення таблиці  створенню записів. Перехід у цей режим, називається режимом таблиці, можливий тільки після збереження структури таблиці і здійснюється натисканням кнопки Вид на панелі інструментів конструктора таблиць чи вибором цього режиму при відкритті списку на цій кнопці (рис. 2.6).

Рис. 2.6. Вибір режиму представлення таблиці

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

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

Створення нової таблиці в режимі таблиці здійснюється вибором рядка Создание таблицы путем ввода данных у робочому полі вікна бази даних чи рядка Режим таблицы у вікні Новая таблица.

Після вибору цього режиму відразу відкривається порожня таблиця, у яку можна ввести дані. При збереженні цієї таблиці Асееss проаналізує дані й автоматично привласнить відповідний тип даних кожному полю, тобто автоматично створить структуру таблиці. Таблиця, запропонована Ассеss у розглянутому режимі для заповнення даними, представлена на рис. 2.7.

Таблиця має 10 стовпців і 21 рядок. Полям таблиці за замовчуванням привласнюються імена Поле1, Поле2 і т.д.

Будь-яке поле цієї таблиці можна перейменувати відповідно до вимог користувача, безпосередньо редагуючи імена в заголовку стовпців. Для цього потрібно двічі натиснути мишею на області виділення стовпця, що містить його ім'я. Можна також виконати команду Формат/ Переименовать столбец. У результаті курсор встановиться на найменуванні поля і відкриється можливість його перейменування. Для збереження нового імені треба натиснути мишею в будь-якому місці таблиці.

Рис.2.7. Вікно створення таблиці без попереднього визначення її структури

Якщо потрібно створити таблицю, що містить більше ніж 20 полів, то можна вставити нові стовпці. Для цього варто перейти в стовпець, ліворуч від якого потрібно вставити новий стовпець, і виконати команду Вставка→Столбец.

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

У кожен стовпець вводяться дані визначеного типу. При введенні даних, для яких визначені стандартні формати, необхідно використовувати формати з установленого для цього типу списку. Це дозволяє Ассеss автоматично визначити тип даних. Властивість Формат поля залишається порожнім і при відображенні даних використовується формат за замовчуванням. Усі стовпці, що залишені порожніми, будуть вилучені при збереженні таблиці.

Створення таблиці за допомогою майстра таблиць

Майстер створення таблиць автоматично створює таблицю по одному із шаблонів. Почати роботу майстра можна, вибравши рядок Создание таблицы с помощью мастера в робочому полі об'єкта Таблицы окна базы данных (рис. 2.8) Для створення таблиці за допомогою майстра можна також вибрати Мастер таблиц у вікні Новая таблица. Майстер автоматично створює таблицю по одному із шаблонів. Користувачу пропонується для вибору більш 50 зразків таблиць, призначених для використання в різних цілях. Кожна таблиця шаблона містить відповідний набір полів, з яких користувач може вибрати потрібні для включення в створювану таблицю.

Рис. 2.8. Вікно майстра створення таблиць

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

  • Схема даних у MS Ассеss

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

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

При створенні в Асcеss схеми даних у ній визначаються і запам'ятовуються зв'язки між таблицями. Це дозволяє системі автоматично використовувати зв'язки, один раз визначені в схемі даних, при створенні форм, запитів, звітів на основі взаємозалежних таблиць, а користувач звільняється від необхідності вказувати ці зв'язки при конструюванні цих об'єктів. Схема даних бази графічно відображається у своєму вікні, де таблиці представлені списками полів, а зв'язки  лініями між полями різних таблиць.

Взаємозв'язки таблиць

Перед розробкою інформаційно-логічної моделі реляційної бази даних розглянемо, з яких інформаційних об'єктів повинна складатися ця база даних. Можна виділити три об'єкти, що не будуть мати надмірність, Студенти, Дисципліни і Викладачі. Представимо склад реквізитів цих об'єктів у вигляді "назва об'єкта (перелік реквізитів)": Студенти (код студента, прізвище, ім'я, по батькові, номер групи, дата народження, стипендія, оцінки). Дисципліни (код дисципліни, назва дисципліни), Викладачі (код викладача, прізвище, ім'я, по батькові, дата народження, телефон, заробітна плата).

Розглянемо зв'язок між об'єктами Студенти і Дисципліни. Студент вивчає кілька дисциплін, що відповідає багатозначному зв'язку і відбите на рис.8 подвійною стрілкою. Зрозуміло, що кожна дисципліна вивчається безліччю студентів. Це теж багатозначний зв'язок, що позначається подвійною стрілкою (зв'язок "один" позначений одинарною стрілкою). Таким чином, зв'язок між об'єктами Студенти і Дисципліни Багато-до-багатьох (М : N).

Рис. 2.9. Типи зв'язків між об'єктами Студенти, Дисципліни і Викладачі.

Множинні зв'язки ускладнюють управління базою даних, наприклад, при множинних зв'язках не можна використовувати механізм каскадного відновлення. Тому використовувати такі зв'язки небажано і потрібно будувати реляційну модель, що не містить зв'язків типу Багато-до-багатьох. У MS Access для контролю цілісності даних з можливістю каскадного відновлення і видалення даних необхідно створити допоміжний об'єкт зв'язку, що складається з ключових реквізитів об'єктів, що зв'язуються, і який може бути доповнений описовими реквізитами. У нашому випадку таким новим об'єктом для зв'язку служить об'єкт Оцінки, реквізитами якого є код студента, код дисципліни й оцінки. Кожен студент має оцінки по декількох дисциплінах, тому зв'язок між об'єктами Студенти й Оцінки буде Один-до-багатьох (1:М). Кожну дисципліну здає безліч студентів, тому зв'язок між об'єктами Дисципліни й Оцінки також буде Один-до-багатьох (1:М) (рис.2.10). У результаті одержуємо інформаційно-логічну модель бази даних, приведену на рис. 2.11.

Рис. 2.10. Типи зв'язків між об'єктами Студенти,Оцінки, Дисципліни і Викладачі.

Рис. 2.11. Інформаційно-логічна модель реляційної бази даних

У реляційній базі даних в якості об'єктів розглядаються відносини, які можна представити у вигляді таблиць. Таблиці між собою зв'язуються за допомогою загальних полів, тобто однакових по форматах і, як правило, за назвою, що є в обох таблицях. Розглянемо, які загальні поля треба ввести в таблиці для забезпечення зв‘язку між даними. У таблицях Студенти й Оцінки таким полем буде "Код студента", у таблицях Дисципліни й Оцінки "Код дисципліни", у таблицях Викладачі і Дисципліни "Код дисципліни".

Вибір цифрових кодів замість прізвищ чи назв дисциплін обумовлений меншим обсягом інформації в таких полях: наприклад, число "2". по кількості символів значно менше слова "математика". Відповідно до цим логічна модель бази даних представлена на рис.2.12, де жирними буквами виділені ключові поля.

Рис. 2.12. Логічна модель бази даних

  • Технологія створення таблиць і схеми даних на прикладі бази даних "Навчальний процес"

Розглянемо послідовність необхідних дій при створенні файлу і таблиць бази даних на прикладі проекту бази даних "Навчальний процес".