|
|||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Індекси
InterBase (як і інші реляційні СУБД) зберігають записи в таблицях в невпорядкованому вигляді. Записи, що додавалась в таблицю одна за одною, не обов’язково опиняться "поряд". Дані, що вибираються з таблиці, також не мають будь-якого порядку, крім того, який явно вказано в запиті на вибірку інформації. Індекс - це впорядкований вказівник на записи таблиці. Індекс складається з пар значень "значення поля" - "фізичне розташування запису", тому по значенню поля (або полів), що входять до індексу, за допомогою індексу можна швидко знайти місце в таблиці, де розташовується запис, що містить це значення. Будова індексів на фізичному рівні для нас зовсім не має значення. Важливо тільки знати, що створення індексів може призвести до значного прискорення процесів пошуку та сортування. He слід створювати індекс на поля з обмеженим набором значень - наприклад, на поле, що зберігає стать людини, і містить тільки два значення - "ч" и "ж". Використання індексів має два негативних наслідки: 1. Для індексів додатково виділяється дисковий простір. 2. Наявність індексів уповільнює модифікацію даних в таблиці. Індекси створюються за допомогою команди CREATE INDEX. Синтаксис оператора створення індекса: CREATE [UNIQUE] [ASC[ENDING] | DESC[ENGING]] INDEX Имя_Индекса ON Таблица(Поле [, Поле...]); Індекс може бути або зростаючим (ASC [ENDING]), або спадаючим (DESC [ENGING]). Якщо при створенні індекса вказати UNIQUE, то можна буде заносити в таблицю тільки унікальні значення індексованих полів. Приклад створення індекса: -- і ндекс по прізвищу людини: CREATE INDEX Index_Person_Name ON Person(Pr_LastName); По мірі зміни даних в таблиці продуктивність індексу зменшується. Періодично потрібно перестворювати індекс, щоб відновити його продуктивність. Щоб перестворити індекс, можна використати наступні способи: 1. Перебудувати індекс з допомогою команди ALTER INDEX. Для цього треба послідовно виконати дві команди: ALTER INDEX Ім’я_Індекса INACTIVE; ALTER INDEX Ім’я_Індекса ACTIVE; 2. Видалити індекс (командою DROP INDEX), а потім повторно створити його. 3. Виконати резервне копіювання та відновлення бази даних. Індекс характеризується числом в межах від 0 до 1, яке називається статистикою. Це число залежить від числа різних значень поля в таблиці. Оптимізатор запитів InterBase використовує це число для визначення ефективності застосування індексу в запиті. Статистика визначається при створенні та перебудові індексу, а також по команді перерахування статистики. Коли кількість записів в таблиці змінюється, перерахунок статистики може покращити продуктивність. Перерахунок статистики не перебудовує індекс, а тільки визначає статистику. Команда перерахунку статистики індексу: SET STATISTICS INDEX Ім’я Індексу; Дії по створенню таблиць та індексів за допомогою команд сценарію не потребують пояснень, тому що повністю відповідають діям, виконаним раніше при виконанні попередніх лабораторних робіт. Для створення таблиці в діалоговому режимі, натисніть у вікні "Database Explorer" праву клавішу «миші» на вузлі "Tables" або на одній з наявних таблиць і у меню, що відкрилось виберіть команду "New Table... (Ctrl+N)" (рис. 3.1). В результаті відкриється вікно створення таблиці (рис. 3.2).
Рис. 3.2.Вікно формування таблиці в діалоговому режимі В верхній частині цього вікна вводиться ім’я створюваної таблиці (в наведеному випадку - "TESTDIALOG"). Сітка в середній частині вікна містить відомості про поля таблиці. Щоб додати поле в таблицю, слід натиснути клавішу [Insert] або [Стрілка вниз]. В стовпці "Field Name" вводиться ім’я створюваного поля, в стовпці "Field Type" вибирається тип даних, або в стовпці "Domain"- створений раніше домен. Для текстових полів (CHAR та VARCHAR) в стовпці "Size" вводиться розмір поля. Щоб задати полю обмеження "NOT NULL" достатньо встановити відмітку в стовпці "Not Null". В нижній частині вікна на вкладці "Field description" можна вводити для кожного поля пояснюючі коментарі. Після введення даних про всі поля таблиці, слід натиснути кнопку [Compile] (Ctrl+F9).
В результаті цього відкриється діалогове вікно "Creating Table Ім’я_Таблиці.." (рис.3.3), в якому треба підтвердити (кнопка [Commit]) або відмінити (кнопка [Rollback]) виконання операції. Рис. 3.3. Діалогове вікно створення таблиці
Тепер з’явиться можливість додати до таблиці індекси. Для цього перейдіть на вкладку "Indices" (рис. 3.5).
Рис. 3.5.Вікно перегляду та редагування індексів Сітка на цій вкладці дозволяє переглядати, редагувати, створювати та видаляти індекси. Для створення індексу виконайте наступні дії: 1. Натисніть в цій сітці клавішу [Insert]. В результаті буде вставлений новий рядок. 2. Задайте в стовпці "Index" ім’я індексу. Натисніть кнопку в стовпці "On field". В результаті відкриється вікно з двома списками (рис. 3.5). В лівому списку "Available fields" будуть знаходитися поля, які можна додати до індексу, в правому списку "Included fields" будуть знаходитися поля, які вже включені в список. Для формування переліку полів, які будуть входити в індекс, перемістіть потрібні поля з лівого списку в правий. 4. Якщо створюється унікальний індекс, встановіть відмітку в колонці "Unique". 5. Щоб активізувати індекс встановіть відмітку в колонці "Active". 6. В колонці "Sorting" виберіть спосіб сортування. 7. Щоб створити індекс натисніть кнопку [Compile] (Ctrl+F9). 8. В результаті відкриється діалогове вікно (рис. 3.6), в якому треба підтвердити (кнопка [Commit]) або відмінити (кнопка [Rollback]) виконання операції. Після створення індексу, його можна в будь-який момент змінити, якщо змінити параметри індексу и знову натиснути кнопку [Compile]. Рис. 3.6. Діалог створення індексу Обмеження бази даних - це правила, які перевіряються при збереженні інформації в базі даних. Головною перевагою використання обмежень є можливість реалізації перевірки даних, а значить частини бізнес-логіки додатку, на рівні бази даних, тобто централізувати її. Це суттєво спрощує розробку додатків баз даних. В InterBase для забезпечення цілісності бази даних використовуються чотири види обмежень (CONSTRAINTS): 1. Обмеження первинного ключа (Primary key). 2. Обмеження унікальності (Unique). 3. Обмеження зовнішнього ключа (Foreign keys). 4. Контрольні обмеження (Checks). Всі чотири види обмежень можуть створюватися двома способами: 1. На основі одного поля таблиці (одночасно при створенні цього поля). 2. На основі декількох полів (без одночасного створення поля). Обмеження задаються або при створенні таблиці в операторі CREATE TABLE, або додаються пізніше в операторі ALTER TABLE. Видалити обмеження можна в операторі ALTER TABLE. Спрощений синтаксис задання обмежень при створенні поля наведено нижче (використання елемента <обмеження поля> пояснюється нижче). <обмеження поля> = [CONSTRAINT Назва_Обмеження] <опис обмеження поля> [<обмеження поля>...] <опис обмеження поля> = { PRIMARY KEY| UNIQUE | REFERENCES Інша-Таблица[(Поле [, Поле...])] | CHECK (Умова,_що перевіряється) } Спрощений синтаксис задання обмежень на основі декількох полів таблиці або без одночасного створення поля має наступний вигляд: <обмеження> = [CONSTRAINT Імя_Обмеження] <опис обмеження> [<обмеження>...] <Опис обмеження> = { {PRIMARY KEY | UNIQUE} (Поле [, Поле...]) | FOREIGN KEY (Поле [, Поле...]) REFERENCES Інша_Таблиця[(Поле [, Поле...])] | CHECK (Умова, що перевіряється) } Як видно з синтаксису задання обмежень, кожне обмеження може мати ім’я, що записується після ключового слова CONSTRAINT. Всі обмеження в базі даних повинні мати унікальні імена. Якщо при заданні обмеження не задати його імені, то воно буде призначене сервером СУБД автоматично. При виконанні лабораторних робіт необхідно кожному обмеженню обов’язково давати ім’я. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.) |