субота, 28 квітня 2018 р.

Проектування Бази даних

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

 Проаналізуємо ті дані, які зберігаються у бібліотеці в паперовому вигляді. Інформація про книжки, журнали, газети і т.п.. Таким чином ми виділяємо множину "Література". Кожна бібліотека створена для того, щоб надати можливість відвідувачам (читачам) отримати доступ до літератури. Отже, виділяємо ще одну множину – "Читачі". Зрозуміло, що читачі читають літературу і цей процес повинен бути зафіксований в обліку, тому утворюємо нову множину даних "Облік читання". Дана структура БД є дуже грубою, тому що потрібно враховувати типи, жанри, видання, авторів та інші підмножини даних.
На основі цього поверхневого аналізу даних отримуємо наступну структуру БД:
Проектування бази даних СКБД MS Access 2010
Створення БД (створення таблиць, встановлення зв'язків та введення даних)

Визначені множини даних пов’язані між собою, їх відношення в реляційній моделі даних можуть бути:
  • один до одного,
  • один до багатьох,
  • багато до багатьох.
Якщо проаналізувати зв’язок множин "Література" та "Облік читання" очевидним є відношення один до багатьох, що можна розуміти так: одну книгу можуть читати багато разів, або багато читачів. Аналогічний зв’язок і між множинами "Читачі" та "Облік читання", один читач може багато разів відвідувати бібліотеку, або читати багато книжок. Виникає питання, яке відношення між множинами "Література" та "Читачі"? В даному випадку відношення між цими множинами, розглядається з обох боків: одну книгу може брати багато читачів та один читач може читати багато книжок. Таким чином відношення: багато до багатьох.
Насправді система керування базами даних (СКБД) не може аналізувати назви наших множин та з цих назв самостійно складати відношення. Відношення автоматично визначаються при встановленні зв’язків між множинами (таблицями). Напрклад, в СКБД Microsoft Access при встановлені зв’язків у схемі даних ми перетягуємо маніпулятором поля з одної таблицю в іншу. Для створення зв’язку СКБД аналізує такі факти:
  • однотипність полів (інакше встановити зв’язок неможливо);
  • ключове поле (дані у полі не повторюються).
Якщо зв’язок допустимий, тобто поля однотипні, СКБД визначає тип відношення. Ключове поле з не ключовим – відношення один до багатьох, ключове з ключовим – один до одного, не ключове з не ключовим – невизначене відношення. Але іноді в таблиці ключових полів може бути декілька, тоді це означає що дані в одному з ключових полів можуть повторюватися, а ось одночасно у всіх ключових полях повтори не допускаються. В такому випадку зв’язок з одним з таких ключових полів розглядається як з не ключовим полем і відповідно тип відношення визначається або один до багатьох або невизначений.
Повернемося до нашої предметної області та визначимо структуру таблиць:
Таблиця "Література"



КлючПолеТип
*Код літературичисловий
 Назватекстовий
 Автортекстовий
 Кількість сторінокчисловий
 Видавництвотекстовий
 Рік виданнячисловий
 ОбкладинкаOLE
 ОписMEMO
Таблиця "Облік читання"
КлючПолеТип
 Номер читацького квиткаЧисловий
 Код літературиЧисловий
 Дата видачіДата/Час
 Дата поверненняДата/Час
 Строк (днів)Числовий
 ПриміткаТекстовий
Таблиця "Читачі"
КлючПолеТип
*Номер читацького квиткаЧисловий
 Дата запису до бібліотекиДата/Час
 Прізвище Ім`я По батьковіТекстовий
 СтатьТекстовий
 Дата народженняДата/Час
 Адреса проживанняТекстовий
 ТелефонТекстовий
 Місце роботи/навчанняТекстовий
 ПосадаТекстовий
Наведемо приклад загальної облікової таблиці з даними. З цієї таблиці дані потрібно буде розподілити по трьом таблицям. Здебільшого з таких таблиць і починають розподіл структур даних.

Дата видачіДата поверненняПІБАвтор, назваСтрокПримітка
10.01.201418.01.2014Андрушко І.К.Білінський В., Країна Моксель або Московія10 днів 
12.01.201415.01.2014Багрі́й С.О.Орвел Дж., Колгосп тваринтиждень 
13.01.201415.01.2014Білик В.А.Гакслі О., Прекрасний новий світ2 дні 
22.02.201405.03.2014Шпичко В.В.Дяченко М., Дяченко С., Мідний король10 днів 
27.02.201410.03.2014Кордиш О.М.Кідрук М., Бот12 днів 
03.03.201412.03.2014Багрі́й С.О.Білінський В., Країна Моксель або Московія5 днівпеня
08.03.201415.03.2014Білик В.А.Кідрук М., Бот10 днів 
11.03.201412.03.2014Шпичко В.В.Сіменон Дж., Справа Сен-Ф'якрів1 день 
11.03.201417.03.2014Андрушко І.К.Браун Д., Точка обману5 днівпеня
11.03.201413.03.2014Кордиш О.М.Білінський В., Країна Моксель або Московія3 дні 
15.03.201424.03.2014Багрі́й С.О.Кідрук М. Боттижденьпеня

З загальної таблиці обліку видно, що деякі читачі відвідували бібліотеку декілька разів та деякі книги читалися кількома читачами. Але це не означає, що читачів потрібно заповнювати стільки разів, скільки книг вони читали, а достатньо внести їх в БД один раз, а запис із вказівкою на читача про читання кожної книги повинен весь час додаватися. Із загальної таблиці обліку читання видно, що читачів в БД 5 чоловік, а найменувань книжок 7. Таким чином при заповненні БД у таблиці "Література" утворюємо 6 записів, у таблиці "Читачі" 5 записів, а у таблиці "Облік читання" 11 записів.
Заповнена таблиця "Література"
кодназваавторсторіноквидавництворікобкладинкаопис
1Країна Моксель або МосковіяБілінський В.374ім О. Теліги2008«Країна Моксель, або Московія» — історично-документальне публіцистичне дослідження Володимира Білінського у трьох томах, де на основі російських та закордонних історичних джерел автор викладає історію Росії. В. Білінський заперечує тезу деяких російських і радянських істориків, нібито Київська Русь — це колиска трьох слов'янських народів, і доводить, що походження російської нації не пов'язане зі слов'янською, що це насамперед — угро-фінські та тюркські народи.
2Колгосп тваринОрвел Дж.321Прометей1947Сатирична антиутопія є критичним підходом до подій в Росії 1917 року та їх наслідків. У книзі показано життя тварин, та еволюцію їх відносин після того як їх вигнали із ферми, де власником був жорстокий містер Джонс. Суть твору можна досить точно передати цитатою з роману «Всі тварини рівні, але є такі, які «рівніші» за інших»
3Прекрасний новий світГакслі О.134Всесвіт1994Олдос Хакслі - відомий письменник, класик англійської літератури XX століття, один з творців так званого «інтелектуального роману». У цьому виданні увазі читачів пропонується блискучий роман-антиутопія «Прекрасний новий світ», створений Хакслі в 1932 році і який по праву займає почесне місце в одному ряду з такими літературними шедеврами минулого століття, як романи «Ми» Є. Замятіна і «1984» Дж. Орвелла
4Мідний корольДяченко М., Дяченко С.480Фоліо2008Як буде діяти людина якою знехтували? Буде боротись і намагатиметься відновити статус кво чи змириться і залишить усе так як є? Ця книга це суцільний пошук відповідей на питання які цікавлять кожну, без винятку, людину.
5БотКідрук М.408Клуб Сімейного Дозвілля2012Захоплюючий технотриллер, переповнений новими технологіями та різноманітними неординарними психологічними персонажами.
6Справа Сен-Ф'якрівСіменон Дж.360Рад.письменник1969«Справа Сен-Ф'якрів» — розповідь про підступні й злочинні дії цілої зграї аристократичних авантюристів, які намагаються загарбати чуже добро.
7Точка обмануБраун Д.528Клуб Сімейного Дозвілля2010Вірогідна історія з блискавичним сюжетом, переконливим описом місця дії та необхідною пропорцією позитивних і негативних персонажів. Приголомшлива суміш дії та інтриги. Браун провів власне дослідження, вдаючись до наукових і військових подробиць, що піднесло сюжет вище від будь-яких стандартів. Історія розслідування дивного явища, на місці падіння метеорита знаходять сліди живих організмів, що може слугувати доказом позаземного життя. Що це правда чи фальсифікація, це має вияснити Рейчел Секстон.
Заповнена таблиця "Читачі"
№ чит квиткадата записуПІБстатьдата нарадресателефонмісце роботинавчанняпосада
110.01.2014Андрушко І.К.ж11.04.1989Озерна0972084538ТОВ "Крок"інженер
212.01.2014Багрі́й С.О.ж04.05.2000Ракове0673671827НВК10 
313.01.2014Білик В.А.ж21.07.1999Дубове0689297756СЗОШ21 
422.02.2014Шпичко В.В.ч27.11.1996Лезніво0972959482гімназія №2 
527.02.2014Кордиш О.М.ч30.03.1996Виставка0675482267гімназія №2 
Заповнена таблиця "Облік читання"
№ чит квиткакод літературидата видачідата поверненнястрокпримітка
1110.01.201418.01.201410 
2212.01.201415.01.20147 
3313.01.201415.01.20142 
4422.02.201405.03.201410 
5527.02.201410.03.201412 
2103.03.201412.03.20145пеня
3508.03.201415.03.201410 
4611.03.201412.03.20141 
1711.03.201417.03.2014 5пеня
5111.03.2014 13.03.20143 
2515.03.201424.03.20147пеня

Немає коментарів:

Дописати коментар