Приклад проектування бази даних - студопедія

Перш ніж приступати до створення бази даних, необхідно витратити якийсь час на її проектування.

Основна мета проектування баз даних (БД) - це скорочення надмірності збережених даних, а отже, економія обсягу використовуваної пам'яті, зменшення витрат на багаторазові операції оновлення надлишкових копій і усунення можливості виникнення протиріч через зберігання в різних місцях відомостей про одне й те ж об'єкті . Так званий, «чистий» проект БД ( «кожен факт в одному місці») можна створити, використовуючи методологію нормалізації відносин. Нормалізація повинна використовуватися на завершальній перевірочної стадії проектування БД.

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

1. Визначення призначення бази даних.

2. Прийняття рішення про те, які вихідні дані база даних повинна містити.

3. Визначення вихідних таблиць бази даних.

4. Визначення полів, які будуть входити в таблиці, і вибір полів, що містять унікальні значення.

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

7. Створення форм, звітів і запитів для операцій з введеними даними.

Визначення призначення бази даних

Розробка кожної бази даних починається з вивчення проблеми, яку вона повинна дозволити, або потреби, яку вона повинна задовольнити.

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

Вибір інформації, що включається в базу

2. Назва книги.

3. Місце видання (місто).

4. Видавництво (назва видавництва).

До атрибутів, що дозволяє охарактеризувати місця зберігання окремих екземплярів книг, можна віднести:

1. Номер кімнати (приміщення для зберігання книг).

2. Номер стелажа в кімнаті.

3. Номер полиці на стелажі.

4. Номер (інвентарний номер книги).

5. Дата придбання.

6. Дата розміщення конкретної книги на конкретному місці.

7. Дата вилучення книги з встановленого місця.

До атрибутів, що дозволяє охарактеризувати Новомосковсктелей, можна віднести:

1. Номер Новомосковсктельского квитка (формуляра).

2. Прізвище Новомосковсктеля.

4. По батькові Новомосковсктеля.

7. Дата видачі Новомосковсктелю конкретної книги.

8. Термін, на який конкретна книга видана Новомосковсктелю.

9. Дата повернення книги.

Визначення вихідних таблиць

Аналіз визначених вище об'єктів і атрибутів дозволяє визначити для проектованої бази даних наступні таблиці для побудови бази даних:

2. Книги. Таблиця призначена для зберігання відомостей про книгах.

3. Видавництва .Таблиця призначена для зберігання відомостей про видавництва.

4. Місце. Таблиця призначена для опису місця зберігання книг.

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

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

Вибір необхідних полів таблиць

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

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

· Код книги - числове поле, призначене для однозначного визначення кожної конкретної книги в базі даних;

· Назва книги - символьне поле, не більше 256 символів;

· Анотація - текстове поле;

· Дата надходження в бібліотеку;

· місце зберігання .
Видавництва:

· Код видавництва - числове поле, призначене для однозначного визначення кожного конкретного видавництва в базі даних;

· Назва видавництва - символьне поле, не більше 256 символів;

· Місто, де розташовано видавництво - символьне поле, не більше 25 символів.

· Код місця - числове поле, призначене для однозначного визначення кожної конкретної полки в базі даних;

· Номер кімнати - числове поле;

· Номер стелажа - числове поле;

· Номер полки - числове поле.

· Код видачі - числове поле, призначене для однозначного визначення кожної конкретної видачі в базі даних;

· Номер виданої книги - числове поле;

· Код Новомосковсктеля - числове поле;

· Термін видачі (кількість днів);

· Номер Новомосковсктельского квитка - числове поле, призначене для однозначного визначення кожного конкретного Новомосковсктеля в базі даних;

· Прізвище - символьне поле, не більше 50 символів;

· Ім'я - символьне поле, не більше 50 символів;

· По батькові - символьне поле, не більше 50 символів;

Вибір унікальних полів

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

Для нашої бази даних первинними ключами є такі поля:

· Книги - код книги.

· Видавництва - код видавництва.

· Сховище - код місця.

· Видача - код видачі.

· Новомосковсктелі-номер квитка.

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

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

· Один-до-одного - кожен запис таблиці А не може бути пов'язана більш ніж з одним записом таблиці Б;

· Один-ко-многим - одна запис в таблиці А може бути пов'язана з багатьма записами таблиці Б (наприклад, в кожному класі може бути багато учнів);

· Багато-до-багатьох - кожен запис в таблиці А може бути пов'язана з багатьма записами в таблиці Б, а кожен запис в таблиці Б - з багатьма записами в таблиці А (наприклад, у кожного учня може бути кілька викладачів, а у кожного викладача може бути багато учнів).

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

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

В нашій базі даних встановимо наступні типи зв'язків між таблицями:

2. Книги - Видавництва. Тут зв'язок багато-до-багатьох. будь-яка книга може бути видана кількома видавництвами і будь-яке видавництво видає не одну книгу. Тому вводимо ще одну допоміжну таблицю «Книги-видавництва» з наступними полями:

3. Сховище - Книги. Тут зв'язок один-ко-многим. на одній полиці можна розставити безліч книг, але будь-яка книга може бути тільки на одній полиці в сховище. Тому поле «Місце зберігання» в таблиці «Книги» визначаємо як зовнішній ключ, і пов'язуємо таблиці «Сховище» і «Книги» первинним ключем «Код місця» і зовнішнім ключем «Місце зберігання».

4. Книги - Видача. Тут зв'язок один-ко-многим. тобто одна і та ж книга може бути видана кілька разів на різні дати різним Новомосковсктелям. Тому поле «Номер виданої книги» в таблиці «Видача» визначаємо як зовнішній ключ, і пов'язуємо таблиці «Книги» і «Видача» первинним ключем «Код книги» і зовнішнім ключем «Номер виданої книги».

5. Новомосковсктелі - Видача. Тут зв'язок один-ко-многим. тобто одна і та ж книга може бути видана кілька разів різним Новомосковсктелям в різні терміни. Тому поле «Код Новомосковсктеля» в таблиці «Видача» визначаємо як зовнішній ключ, і пов'язуємо таблиці «Читачі» і «Видача» первинним ключем «Номер Новомосковсктельского квитка» і зовнішнім ключем «Код Новомосковсктеля».

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

Правило 1: кожне поле таблиці має представляти унікальний тип інформації.

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

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

Правило 3: для кожного значення первинного ключа значення в стовпцях даних повинні ставитися до об'єкта таблиці і повністю його описувати.

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

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

Наповнення бази даних, створення форм і звітів

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

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

Отримана схема даних розробленої БД в MS Access представлена ​​на рис. 4.1.

Мал. 4.1. Схема даних розробленої БД в Microsoft Access

1. Дайте визначення інформаційної системи.

2. Поясніть поняття бази даних.

3. Що таке предметна область?

4. Дайте визначення СУБД.

5. Що таке модель даних?

6. Поясніть основні принципи реляційної моделі даних.

7. Поясніть особливості СУБД Microsoft Access.

8. Які основні об'єкти бази даних Access?

9. Поясніть структуру таблиці Access.

10. Поясніть поняття: запит, форма, звіт, сторінка доступу до даних, макрос, модуль.

11. Які основні етапи проектування бази даних?

12. Яким чином здійснюється вибір інформації, що включається в базу даних?

13. Поясніть поняття: первинний ключ, зовнішній ключ.

14. Яке призначення зв'язків між таблицями?

15. Поясніть основні типи зв'язків між таблицями.

16. У чому полягає нормалізація відносин бази даних?