ею. Але, оскільки кожна таблиця пов'язана хоча б з однією таблицею в базі даних, можна стверджувати, що всі таблиці в базі мають прямі або непрямі відносини один з одним. Ми встановили, які поля будуть включені в базу даних. Наступний етап полягає в розділенні їх на таблиці.
Наявність повторюваної інформації призведе до невиправданого збільшення розміру бази даних. У результаті знизиться швидкість виконання запитів. При багаторазовому введенні повторюваних даних зросте ймовірність помилки.
Про граматичних помилках і варіантах з номером будинку, комами і крапками в адресі дозволю собі промовчати. Яку інформаційно-пошукову систему ми отримаємо в результаті? Швидше за все, шукати можна - знайти можна! Вашій увазі - кілька порад по включенню полів у таблиці.
§ Включайте поля, що відносяться тільки до предметної області таблиці. Поле, що представляє факт з іншої предметної області, має належати іншій таблиці. Пізніше, при встановленні відносин між таблицями, ви побачите, як можна об'єднати дані декількох полів з різних таблиць. А на цьому етапі переконайтеся, що кожне поле таблиці описує тільки одну предметну область. Якщо ви виявите, що в різних таблицях зустрічається однотипна інформація, значить, якісь таблиці містять зайві поля.
§ Не вмикайте похідні або обчислювані дані. У більшості випадків вам немає необхідності зберігати результати обчислень в таблиці. За допомогою Microsoft Access ви завжди зможете виконати дані обчислення в потрібний момент. Не має сенсу зберігати підсумкові поля в таблиці.
§ Увімкніть всю необхідну інформацію. Досить легко упустити важливі дані. Поверніться до зібраних на першій стадії проектування матеріалами. Уважно розгляньте бланки та звіти і переконайтеся в тому, що вся цікавить вас інформація може бути витягнута або обчислена з таблиць. Подумайте про питання, які ви будете формулювати до бази даних. Чи зможете ви отримати на них відповідь, використовуючи дані з ваших таблиць? Включили ви поля, в яких будуть зберігатися унікальні дані типу коду клієнта? Які таблиці містять інформацію, обов'язкову для створення звіту або форми?
§ Розділіть інформацію на найменші логічні одиниці. Вам може здатися, що зручно мати одне поле для зберігання повного імені клієнта або одне поле для назви і опису продукту. Це помилка. Якщо ви поєднуєте більше однієї категорії інформації в одному полі, потім вам буде дуже не просто виділити з нього окремі факти. Постарайтеся розбити інформацію на найменші логічні частини.
Скористаємося практичними рекомендаціями теорії нормалізації для розробки на підставі таблиці Нерухомість багатотабличного бази даних Real Estate. На рис. 1.1 ви бачите те, що у вас повинно вийти після всіх маніпуляцій, коротко викладених вище і передбачених теорією нормалізації. Практичний же шлях до цього результату дивіться на наступних півтора десятках сторінок.
У даній частині всі назви таблиць бази даних призначені у відповідності зі змістом розміщеної в них інформації. У частині II до назв таблиць додана приставка tbl raquo ;. Це зроблено для того, щоб відрізнити їх від запитів, які отримали там же приставку qwr .
Рис. 1.1
1.2.1 Перша нормальна форма
Таблиця знаходиться в першій нормальній формі, якщо значення всіх її полів атомарні, і в ній відсутні повторювані групи полів.
На зорі існування реляційних баз даних на кількість полів у записі накладалися певні обмеження. Як наслідок, розробники об'єднували кілька передбачуваних полів в одне, щоб всі потрібні дані помістити в одну запис. Відомо, що якщо поле містить кілька значень, то істотно ускладнюються формування відносин між полями, зчитування даних і виконання інших операцій, а необхідність виконання пошуку подстрок і синтаксичного аналізу полів значною мірою сповільнює роботу програми. На щастя, зараз всі обмеження на кількість полів у записі зняті.
. 2.2 Друга нормальна форма
Таблиця знаходиться в другій нормальній формі, якщо вона задовольняє умовам першої нормальної форми і будь-яка не ключове поле однозначно ідентифікується повним набором ключових полів.
Настав час поговорити про ключові полях. Міць реляційних баз даних, таких як Microsoft Access, спирається на їх здатність швидко знайти і зв'язати дані з різних таблиць за допомогою запитів, форм і звітів. Для цього кожна таблиця повинна містити одне або кілька полів, однозначно визначають кожен запис в таблиці. Такі поля називають первинними ключами таблиць. Якщо для таблиці визначений первинний ключ, то Microsoft Access запобігає дублюванню значень полів або введення значень Null в ці поля. У Microsoft Access можна виділи...