Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 5_Бази даних.doc
Скачиваний:
89
Добавлен:
08.06.2015
Размер:
2.88 Mб
Скачать

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

Для організації складних і ефективних моделей даних окремі таблиці, що входять до бази даних, зв’язуються між собою співвідношенням “один до багатьох”. Принцип зв’язування таблиць співвідношенням “один до багатьох” полягає в можливості співставляти одному запису в першій таблиці будь-яку (багато) кількість записів другої таблиці. Принцип побудови зв’язку між таблицями продемонструємо на прикладі двох об’єктів “Задачі автоматизації діяльності навчальної частини по управлінню навчальним процесом”. Щоб записати повну модель об’єкта Навчальний план необхідно використати 3 таблиці:Навчальний план, Дисципліна, Дисципліни_Навчального_плану. Перші дві таблиці несуть загальну інформацію про прості об’єктиНавчальний план іДисципліна, третя таблиця показує, з яких саме дисциплін складається конкретний навчальний план. Тобто третя таблиця дозволяє вказати, що до одногоНавчального плану можуть входити багатоДисциплін. Так само, як одна дисципліна може входити до багатьохНавчальних планів.

Рисунок 3.1

Об’єднання таблиць зображується на схемі даних за допомогою стрілок, які зв’язують між собою дві таблиці (рис.3.1). Цифра 1 на зв’язку стоїть завжди з сторони поля первинного ключа, символ нескінченість з сторони поля, що забезпечує зв’язок. Так в таблиці Дисципліна кожне значення Код_навчальної_дисципліни може з’явитися лише один раз, а в таблиці Дисципліни Навчального плану у полі Код_навчальної_дисципліни може з’являтися будь-яку кількість разів. Теж саме стосується і поля Код_навчального_плану.

Фактично, інформацію трьох вказаних таблиць може бути об’єднана в єдину таблицю, в який об’єднуються поля таблиць Дисципліна і Навчальний_план і при цьому об’єднуються лише ті рядки двох таблиць, для яких конкретні значення Код_навчального_плану і Код_навчальної_дисципліни зустрічаються в таблиці Дисципліни навчального плану. Але такий спосіб організації даних є малоєфективним за рахунок значного дублювання інформації при її зберіганні, а також значних обсягів роботи по редагуванню інформації. Наприклад, якщо треба змінити значення поля Годин_лекційних для однієї дисципліни, то для першого способу організації даних це треба зробити лише один раз, а для другого - стільки разів, скільки ця дисципліна фігурує в різних навчальних планах.

Створення схеми даних

Для створення схеми даних необхідно:

  1. Виконати команду СервисСхема даних, або скористатися відповідною піктограмою команди.

  2. У вікні з назвою Схема даних правою кнопкою миші визвати контекстне меню у якому обрати команду Добавить таблицу. Після цього додати всі таблиць з вікна Добавление таблицы, які повинні фігурувати у схемі даних.

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

  • У підпорядковану таблицю, що знаходиться з сторони “багато” не можна додати запис із неіснуючим у головній таблиці значенням поля первинного ключа.

  • У головній таблиці неможливо вилучити запис, якщо не вилучені зв’язані з ним записи у підпорядкованій таблиці.

  • Змінити значення первинного ключа у головній таблиці неможливо, якщо у підпорядкованій таблиці є зв’язані з ним записи.

  1. Поряд з параметром Обеспечение целостности данных можна задати параметри Каскадное обновление связных полей и Каскадное удаление связных записей В режимі каскадного видалення зв’язних записів при видаленні запису в головній таблиці автоматично видаляються всі зв’язані записи підпорядкованих таблиць.В режимі каскадного оновлення зв’язаних полів при зміні значення поля первинного ключа в головній таблиці автоматично змінюється значення цього поля в записах підпорядкованих таблиць.

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

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

  • Об’єднання тільки тих записів у яких значення зв’язаних полів збігаються.

  • Об’єднання всіх записів першої таблиці і тільки тих записів другої зв’язані поля у яких збігаються.

  • Об’єднання всіх записів другої таблиці і тільки тих записів першої зв’язані поля у яких збігаються.

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

Використовують декілька основних типів запитів: запити на вибірку, запити з параметрами, перехресні запити, запити на зміну: створення таблиці, знищення, оновлення, додавання записів. Запити на вибірку можуть бути представлені у наступних режимах: у режимі конструктора, у режимі перегляду результатів запиту у режимі таблиці, у вигляді SQL(Structured Query Language).

Найпростіший тип запиту – вибірка на базі однієї таблиці.