Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
rektorska_pi.docx
Скачиваний:
20
Добавлен:
14.09.2019
Размер:
1.16 Mб
Скачать

18.Критерії вибору первинного ключа.

Для забезпечення унікальності у таблиці виділяють одне поле, що гарантовано є унікальним для таблиці і фактично визначає рядок. Це поле називають первинним ключем (primary key).

У багатьох випадках для таблиці важко або неможливо виділити первинний ключ із інформаційних полів. Як приклад можна розглянути базу даних співробітників якоїсь установи – якщо таблиця містить Ф.І.П. робітника, дату народження, відділ, спеціальність, то яке б поле ми не брали, воно не є гарантовано унікальним – цілком можливо, що у одному відділі будуть працювати двоє людей з однаковими даними. В такому випадку рядку таблиці присвоюють ідентифікатор – деяке число, унікальне для таблиці і роблять його первинним ключем.

19.Логічне проектування.

Логічне проектування бази даних - це процес створення моделі використовуваної на підприємстві інформації на основі обраної моделі організації даних, але без врахування типу цільової СУБД і інших фізичних аспектів реалізації.

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

Логічна модель даних враховує особливості обраної моделі організації даних в цільової СУБД (наприклад, реляційна модель).

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

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

20.Індексація в базах даних.

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

Деякі СУБД розширюють можливості індексів введенням можливості створення індексів по стовпцях уявлень  або індексів за виразами.  Наприклад, індекс може бути створений за висловом upper(last_name) і відповідно буде зберігати посилання, ключем до яких буде значення поля last_name у верхньому регістрі. Крім того, індекси можуть бути оголошені як унікальні і як не унікальні. Унікальний індекс реалізує обмеження цілісності на таблиці, виключаючи можливість вставки повторюваних значень.

1. Архітектура

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

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

Рідкісний індекс ( англ. sparse index ) В базах даних - це файл з послідовністю пар ключів і покажчиків.  Кожен ключ в рідкісному індексі, на відміну від щільного індексу, асоціюється з певним дороговказом на блок в сортувати файли даних. Ідея використання індексів прийшла через те, що сучасні бази даних занадто масивні і не поміщаються в основну пам'ять. Ми зазвичай ділимо дані на блоки і розміщуємо дані в пам'яті поблочно. Проте пошук запису в БД може зайняти багато часу. З іншого боку, файл індексів або блок індексів набагато менше блоку даних і може поміститися в буфері основної пам'яті що збільшує швидкість пошуку запису. Оскільки ключі відсортовані, можна скористатися бінарним пошуком. У кластерних індексах з дубльованими ключами рідкісний індекс вказує на найменший ключ в кожному блоці.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]