Неефективне використання пам'яті є основним недоліком ненормалізованих таблиць, тому видалення надлишкових полів з таблиць є одним з рішень цієї проблеми.
Висновок. Кожне поле таблиці має представляти унікальний тип інформації.
Це правило означає, що необхідно позбавитися від повторюваних полів і розділити складові поля на окремі елементи даних. З повторюваних даних, слід створити таблиці, в кожному записі яких є ключові поля. через які можна було б встановити зв'язок між новими таблицями і вихідної.
Правило 2: Первинні ключі (поля)
База даних добре спроектована в тому випадку, якщо кожен запис в будь-якій таблиці однозначно ідентифікується. Це означає, що значення деякого поля (або кількох полів) не повторюються ні в одному записі в таблиці. Такий ідентифікатор називається первинним ключем (або просто ключем).
Висновок. Кожна таблиця повинна мати унікальний ідентифікатор, або первинний ключ, який може складатися з одного або декількох полів.
Завжди, коли це можливо, в якості первинного ключа слід використовувати найпростіші дані, що мають «природні» унікальні значення, наприклад код книги.
При створенні нової таблиці Access завжди пропонує визначити для неї первинний ключ. Для багатьох таблиць доводиться створювати штучний первинний ключ. В такому випадку Access додає до кожного запису поле, в яке записується вміст лічильника записів.
Правило 3: Функціональна залежність
Після визначення первинних ключів для кожної таблиці можна перевірити, щоб всі дані, включені до таблиць, ставилися до відповідних об'єктів. Іншими словами, слід переконатися, що кожне поле функціонально залежить від первинного ключа, який ідентифікує вихідний об'єкт таблиці.
Висновок. Для кожного значення первинного ключа (поля, значення якого унікальні) значення в стовпцях даних повинні ставитися до об'єкта таблиці і повністю його описувати.
Правило 4: Незалежність полів
І, нарешті, останнє правило дозволяє перевірити, чи не виникнуть проблеми при зміні даних в таблицях.
Висновок. Потрібно мати можливість змінювати значення будь-якого поля (що не входить в первинний ключ) без впливу на дані інших полів.
Таким чином, застосування четвертого правила просто допомагає визначити зміни, які слід було б внести в проект ще при використанні попередніх правил. Можливо, в деяких випадках це призводить до виділення окремої таблиці.
Описані вище прийоми проектування допоможуть ефективно пов'язувати дані. Можна помітити, що в результаті нормалізації бази даних, як правило, виходить безліч окремих таблиць. До появи реляційних баз даних довелося б при проектуванні таблиць самому відстежувати зв'язки між файлами або таблицями. У реляційних базах таких проблем не виникає. Маючи хороший проект, можна не турбуватися про те, як об'єднати дані в потрібний момент.
Введення в системи управління базами даних (СКБД)
СУБД - комплекс програмних засобів, необхідних для створення баз даних, поповнення та організації пошуку в них необхідної інформації.
СУБД використовуються для створення баз даних в різних прикладних областях.
Можна виділити наступні основні засоби для роботи в сучасних СУБД:
1. Засоби опису структури бази даних (БД).
2. Кошти конструювання екранних форм БД.
3. Засоби створення запитів для вибірки і обробки даних по деяким критеріям.
4. Засоби створення звітів з БД для виведення на друк результатів обробки в зручному для користувача вигляді.
5. Мовні засоби - макроси, вбудовані алгоритмічні мови (наприклад, Visual Basic), мова запитів (QBE - Query by Example SQL - Structured Queries Language).
6. Засоби створення додатків користувача з зручним інтерфейсом (меню, панелі управління і т.д.).
Мова запитів QBE надає можливість користувачеві працювати з допомогою підпрограм - Конструкторів і Майстрів, які дозволяють будувати запити за зразком.
Мова запитів SQL є досить складною мовою програмування високого рівня і використовується, як правило, програмістами.
Можливості сучасних СУБД:
2. Інтеграція даних з різних СУБД.
Класифікувати СУБД можна за різними критеріями. З деякими з них ми познайомимося.
За ступенем універсальності СУБД ділять на два класи: СУБД загального призначення і спеціалізовані СУБД.
СУБД загального призначення не орієнтовані на якусь предметну область або на конкретні інформаційні потреби користувачів. Кожна система такого роду є універсальною і реалізує функціонально надмірне безліч операція над даними. СУБД ОН мають в своєму складі засоби настройки на конкретну предметну область, умови експлуатації та вимоги користувачів. Виробництво цих систем поставлено на широку комерційну основу.
Спеціалізовані СУБД створюються в тих випадках, коли жодна з існуючих СУБД загального призначення не може задовільно вирішити завдання, що стоять перед розробниками, наприклад, не досягається необхідне швидкодія обробки або не забезпечується підтримка необхідного обсягу даних. СУБД призначені для вирішення конкретного завдання, а прийнятні параметри цього рішення досягаються:
· За рахунок знання особливостей конкретної предметної області,
· Шляхом скорочення функціональної повноти системи.
Створення такої СУБД - справа дуже трудомістка, тому для того, щоб вибрати цей шлях, треба мати дійсно вагомі підстави.
За моделлю даних розрізняють ієрархічні, мережеві, реляційні та об'єктно-орієнтовані СУБД.
За методами організації зберігання і обробки даних СУБД ділять на централізовані іраспределённие.
Централізована база даних зберігається на одній ЕОМ, яка є компонентом мережі. Це не означає, що користувач може працювати з БД тільки за цим же комп'ютером: доступ може бути віддаленим. Однак доступ ускладнюється за рахунок одночасності звернення багатьох користувачів до даних і відповідно очікування відповіді.
Розподілена база даних складається з декількох, можливо пересічних або навіть дублюючих один одного, збережених на різних ЕОМ обчислювальної мережі. Робота з такою базою даних ведеться за допомогою СУРБД # 8209; системою управління розподіленої БД (наприклад, Oracle).
Існує безліч альтернатив розподіленої обробки. Найбільш популярна в даний час архітектура клієнт-сервер. Більш розподіленої і більш гнучкою є архітектура типу багато-клієнтів / багато-серверів, коли база даних розміщена на безлічі серверів.
На Російському ринку широко відомі такі системи, як база нормативних документів митного циклу ЗЕД-інфо, інформаційно-правові системи КонсультантПлюс, Кодекс і Гарант.
Кожна з цих систем має свій інтерфейс, свій набір функцій для роботи, однак є загальні функції:
1. Пошук документів за реквізитами (простий і складний)
3. Збереження документів
4. Друк документів.
В даному курсі на практичних заняттях детально розглядається ІПС КонсультантПлюс, яка складається з декількох баз:
· Консультант фінансист і бухгалтер
· Консультант міжнародне право.
Основна ідея полягає в тому, що база даних містить картки з полями такі, як Вид документа, Орган прийняття, Дата прийняття, Назва документа і т.д. за якими можна здійснювати пошук потрібних нормативних документів.
СУБД загального призначення - це дуже складні програмні комплекси, призначені для виконання всієї сукупності функцій по створенню і експлуатації баз даних в будь-якій області. Основні розробки СУБД на світовому ринку належать фірмам Microsoft (FoxPro-DOS / WIN, Access) і Borland (Paradox-DOS / WIN).
Найбільш популярною і широко застосовується в різних областях є СУБД Access з офісного пакету MS Office, тому в даному курсі будуть розглянуті основні поняття і функції MS Access.
База даних, створена за допомогою СУБД MS Access, містить наступні об'єкти: таблиці. форми. запити. звіти. макроси і модулі і зберігається в одному файлі з розширенням .mdb (Microsoft Data Base). Основний структурний елемент БД в СУБД Access - це таблиця.
Як і інші СУБД, Access включає в себе три основних типи функцій:
1. Визначення даних - тип даних і зв'язку, іноді критерії перевірки.
2. Обробка даних - обчислення і інші дії.
3. Управління даними - визначення правил доступу та коригування інформації.
Процес проектування БД в рамках СУБД Access здійснюється за допомогою вбудованих програм: Конструкторів і Майстрів.
Наприклад, формування структури таблиці використовується Конструктор таблиць. для створення запитів - Конструктор запитів. для створення форм - Майстер форм. для створення звітів - Майстер звітів.
Процес формування таблиці включає створення структури, тобто полів з яких буде складатися кожен запис. Визначаються ім'я. тип (текстовий, числовий, логічний, об'єкт OLE і ін.), розмір полів. Крім того СУБД формує записи спеціального типу, що містять унікальні номери - ключі, за допомогою яких можна організовувати зв'язок між таблицями.
У Microsoft Access существуютключі двох типів: первинні і вторинні або зовнішні.
Первинний ключ використовується для зв'язування таблиці з зовнішніми ключами в інших таблицях. Зовнішній (вторинний) ключ містить посилання на поле або поля первинного ключа в іншій таблиці і визначає спосіб об'єднання таблиць.
Можна виділити три типи первинних ключів. лічильник, простий ключ і складовою ключ.
Ключові поля лічильника
Поле лічильника можна задати таким чином, щоб додаванні кожного запису в таблицю в це поле автоматично вносилося порядкове число. Вказівка такого поля в якості ключового є найбільш простим способом створення ключових полів.
Якщо поле містить унікальні значення, такі як коди чи інвентарні номери, то це поле можна визначити як ключове. Якщо вибране поле містить повторювані або порожні значення, то воно не буде визначено як ключове.
У випадках, коли неможливо гарантувати унікальність значень кожного поля, існує можливість створити ключ, що складається з декількох полів. Найчастіше така ситуація виникає для таблиці, використовуваної для скріплення двох таблиць щодо «багато-до-багатьох».
Для обробки даних використовується зручний засіб - запит.
Запит - це механізм вибірки і (або) обробки даних з БД за деяким критерієм.
Запити будуються по-різному, в залежності від потреби. Існує кілька груп запитів:
1. Запит-вибірка. призначений для відбору даних в таблиці, що не змінює ці дані в самій таблиці:
1.1. Запит сортування і за критерієм (статичний критерій).
1.2. Запит з параметром, який дозволяє визначати одне або кілька умов відбору під час виконання запитів (динамічний критерій).
1.3. Запит на обчислення, призначений для організації нового обчислюваного поля або заміни наявного поля обчислюється.
2. Запит-зміна. призначений для зміни або переміщення даних
2.1. Запит на додавання
2.2. Запит на видалення запису
2.3. Запит на оновлення таблиці
3. Підсумкові запити. які можуть виробляти узагальнені обчислення і виводити групові значення полів за допомогою агрегатних функцій.
Для створення зручного для користувача інтерфейсу СУБД Access дає можливість створити за допомогою майстра екранну форму вікна з кнопками, полями для введення.
СУБД Access дозволяє вивести на принтер необхідну інформацію у вигляді звіту, в який можна включити: вибіркову інформацію з таблиці, нову інформацію, інформацію з інших таблиць.
За допомогою макросів і модулів можна змінювати хід виконання програми, шляхом програмування, будь-яких дій, але ці питання не розглядаються в даному курсі.
Функції СУБД Access
Для побудови бази даних в СУБД Access передбачені наступні основні групи функцій:
Ø Функції роботи з файлами-базами (відкриття, збереження і т. Д.)
Ø Функції редагування
Ø Функції форматування
Ø Функції роботи з вікнами
Ø Функції роботи в основних режимах: таблиця, форма, запит, звіт та ін.
Ø Функція довідки.
Основні етапи створення бази даних:
1. Створення структур таблиць (імена, типи полів і т.д.)
2. Введення і редагування даних в таблиці
3. Створення форми (якщо необхідно)
4. Зв'язування таблиць і створення запитів для обробки даних в таблицях
5. Висновок інформації з БД на основі звітів (якщо потрібно).
Дуже важливим є питання зв'язування таблиць. У СУБД Access передбачено два варіанти зв'язування таблиць:
1. Створення з допомогою «Схеми даних» постійного зв'язку междутабліцамі і застосування її при створенні запитів.
2. Створення тимчасової зв'язку між потрібними таблицями в Конструкторі запитів.
Для створення проекту бази даних не потрібно глибокого знання теорії реляційних баз даних і їх додатків, але рішення поставленого завдання в рамках СУБД Access вимагає ретельного опрацювання структур даних і взаємозв'язків між ними.
1. Дайте загальні відомості про СУБД і базах даних.
2. Классифицируйте логічні моделі баз даних. Чим вони відрізняються?
3. Визначте поняття реляційної моделі, в чому її переваги?
4. Визначте основні поняття реляційної моделі: домен, кортеж, атрибут.
5. Визначте і поясніть основні структурні елементи СУБД ACCESS - таблиці, форми, запити, звіти.
6. Перерахуйте чотири типи запитів на вибірку без зміни таблиці.
7. Які запити використовують динамічний критерій?
8. Навіщо потрібні підсумкові запити і яка роль групових операцій?
9. Назвіть Правила нормалізації таблиць і поясніть їх.
10. Які поля можна вибирати в якості первинних?
11. Перерахуйте типи первинних ключів.
12. Що таке зв'язування таблиць, яка роль первинних і вторинних (зовнішніх) ключів.
13. Які види ключів можна створити в СУБД MS Access?