
- •Т_т Питання (бд) т_т
- •1. Інформація, дані, знання, аспекти роботи з даними. 1.1. Інформація, дані, знання
- •1.2. Аспекти роботи з даними
- •2. Поняття про інформаційні технології.
- •1.3. Поняття про інформаційні технології
- •3. Особливості та завдання іс.
- •1.4. Особливості та завдання іс Особливості інформаційних систем
- •Завдання інформаційних систем
- •4. Файлові інформаційні системи (фіс).
- •1.6. Файлові інформаційні системи (фіс)
- •5. Ідея скбд, відміни від фіс.
- •1.7. Ідея скбд, відміни від фіс
- •6. Визначення банку даних. Вимоги до БнД.
- •1.8. Визначення банку даних (БнД). Вимоги до БнД
- •7. Переваги централізації керування даними.
- •1.9. Переваги централізації керування даними
- •8. Життєвий цикл інженерного виробу.
- •2.1. Життєвий цикл інженерного виробу
- •9. Моделі життєвого циклу розробки іс (задачна модель, каскадна модель, спіральна модель).
- •2.2. Моделі життєвого циклу розробки іс
- •2.3. Задачна модель
- •2.4. Каскадна модель
- •2.5. Спіральна модель
- •10. Загальна технологія створення іс та ас.
- •2.6. Загальна технологія створення іс та ас
- •11. Основи побудови банків даних БнД.
- •2.7. Основи побудови банків даних БнД
- •Архітектура БнД
- •12. Підприємство як відкрита система. Метаболізм підприємства.
- •3.1. Підприємство як відкрита система. Метаболізм підприємства
- •13. Моделювання за допомогою діаграм потоків даних та подій (Data Flow Diagrams).
- •3.2. Моделювання за допомогою діаграм потоків даних та подій (Data Flow Diagrams)
- •Зовнішні сутності
- •Системи і підсистеми. Процеси
- •Накопичувачі даних
- •Потоки даних
- •Побудова ієрархії діаграм потоків даних Діаграма потоків даних dfd0
- •Діаграма потоків даних dfd1
- •Діаграма потоків даних dfd2
- •14. Матриці подій.
- •3.3. Матриці подій
- •15. Історичний розвиток технології sadt.
- •4.1. Історичний розвиток технології sadt
- •16. Склад функціональної моделі, ієрархія діаграм, типи зв’язків між функціями.
- •4.2. Склад функціональної моделі
- •4.3. Ієрархія діаграм
- •4.4. Типи зв'язків між функціями
- •(0) Тип випадкової зв'язності
- •(1) Тип логічної зв'язності
- •(2) Тип тимчасової зв'язності
- •(4) Тип комунікаційної зв'язності
- •(5) Тип послідовної зв'язності
- •(6) Тип функціональної зв'язності
- •17. Поняття моделі даних (мд). Сильно і слабкоструктуровані мд.
- •5.1. Поняття моделі даних (мд). Сильно і слабкоструктуровані мд
- •18. Модель «сутність-зв’язок».
- •5.2. Модель «Сутність - зв'язок»
- •19. Типи зв’язків.
- •5.3. Типи зв'язків
- •20. Степені зв’язку, залежність по коду.
- •5.4. Степені зв’язку, залежність по коду
- •Залежність за кодом
- •22. Композиція зв’язків.
- •5.6. Композиція зв'язків
- •23. Типи і підтипи (ролі).
- •5.7. Типи і підтипи
- •24. Поняття життєвого циклу об’єкта (екземпляр сутності). Початок, кінець, координація жц.
- •5.8. Поняття життєвого циклу об'єкта (екземпляр сутності). Початок, кінець, координація жц
- •25. Обмеження цілісності, бізнес-правила.
- •5.9. Обмеження цілісності. Бізнес-правила
- •Бізнес-правила
- •26. Локальні інфологічні моделі.
- •5.10. Локальні інфологічні моделі
- •27. Побудова глобальної інфологічної моделі.
- •5.11. Побудова глобальної інфологічної моделі
- •28. Базові поняття реляційних баз даних.
- •6.1. Базові поняття реляційних баз даних
- •Тип даних
- •Кортеж, відношення
- •Фундаментальні властивості відношень
- •29. Реляційна модель даних.
- •6.2. Реляційна модель даних
- •Цілісність сутності та посилань
- •Базисні засоби маніпулювання реляційними даними
- •30. Реляційна алгебра та її операції.
- •6.3. Реляційна алгебра та її операції
- •Загальна інтерпретація реляційних операцій
- •Замкнутість реляційної алгебри і операція перейменування Особливості теоретико-множинних операцій реляційної алгебри
- •Спеціальні реляційні операції
- •Операція обмеження
- •Операція взяття проекції
- •Операція з'єднання відношень
- •Операція поділу відношень
- •31. Реляційне числення на кортежах.
- •6.4. Реляційне числення на кортежах
- •Кортежні змінні та правильно побудовані формули
- •Цільові списки і вирази реляційного обчислення
- •32. Реляційне числення на доменах.
- •6.5. Реляційне числення на доменах
- •33. Аномалії та їх види.
- •7.2. Аномалії та їх види
- •Аномалія вставки (insert)
- •Аномалія оновлення (update)
- •Аномалія видалення (delete)
- •Перша нормальна форма
- •Друга нормальна форма
- •Третя нормальна форма
- •Нормальна форма Бойса-Кодда
- •Четверта нормальна форма
- •П'ята нормальна форма
- •36. Ієрархічна мд.
- •8.1. Ієрархічна мд
- •Ієрархічна структура даних
- •Операції над ієрархічною структурою
- •Вибирання даних
- •Маніпулювання даними
- •Переваги та недоліки ієрархічної моделі
- •37. Мережна мд.
- •8.2. Мережна мд
- •Мережна структура даних
- •Операції над мережною структурою
- •Переваги та недоліки мережної моделі
- •38. Визначення банку даних (БнД).
- •9.1. Визначення банку даних (БнД)
- •39. Вимоги до БнД.
- •9.2. Вимоги до БнД
- •40. БнД як автоматизована система. Види забезпечення.
- •9.3. БнД як автоматизована система. Види забезпечення
- •41. Архітектура БнД.
- •9.4. Архітектура БнД
- •42. Адміністратор бд і його функції.
- •9.5. Адміністратор бд і його функції
- •43. Довідник даних.
- •9.6. Довідник даних
- •45. Централізація і децентралізація процесів обробки даних.
- •9.8. Централізація і децентралізація процесів обробки даних
- •46. Історія, роль та значення мови sql.
- •10.1. Історія, роль та значення мови sql
- •47. Мови опису даних і маніпулювання даними.
- •10.2. Мови опису даних і маніпулювання даними
- •Мова визначення даних
- •Мова маніпулювання даними
- •Мова керування даними
- •48. Реляційні операції, як команди мови маніпулювання даними.
- •10.3. Реляційні операції, як команди мови маніпулювання даними
- •Операція вибірки (обмеження)
- •Операція проекції
- •Операція з'єднання
- •Операція об'єднання
- •Операція перетину
- •Операція різниці
- •Операція поділу
- •Операція декартового добутку
- •Оператор rename
- •49. Віртуальні атрибути і таблиці.
- •10.4. Віртуальні атрибути і таблиці
- •50. Приклади використання операторів Insert, Update та Delete.
- •10.5. Приклади використання операторів Insert, Update та Delete
- •Insert - вставка рядків у таблицю
- •Update - оновлення рядків у таблиці
- •Delete - видалення рядків в таблиці
- •51. Тригери та цілісність посилання.
- •13.1. Тригери та цілісність посилання
- •Доступ до старих і нових значень рядків
- •Тригери й транзакції
- •Вкладеність тригерів
- •Тригер для View
- •52. Збереженні процедури.
- •13.2. Збереженні процедури
- •53. Використання курсорів.
- •13.3. Використання курсорів
- •54. Usability, значення і міфи.
- •17.1. Usability, значення і міфи
- •55. Проблеми проектування інтерфейсів користувача (ік).
- •17.2. Проблеми проектування інтерфейсів користувача (ік)
- •Методологічні основи ік
- •Узагальнена структура інформації для проектування інтерфейсу ас:
- •Хто може проектувати ік
- •Нормативно-технічна база – стандарти ік
- •Стилі інтерфейсу
- •56. Вимоги до ік. Принципи реалізації інтерфейсу.
- •17.3. Вимоги до ік. Принципи реалізації інтерфейсу
- •57. Етапи проектування ік.
- •17.4. Етапи проектування ік
- •Аналіз діяльності користувача
- •Поопераційний аналіз ефективності ік
- •58. Методи і критерії оцінки ік.
- •17.5. Методи і критерії оцінки ік
- •Цілі та критерії оцінки користувацького інтерфейсу
- •10 Правил по проектуванню якісних ік (по David f. Kelly):
- •59. Структура зовнішньої пам’яті.
- •18.1. Структура зовнішньої пам’яті Особливості реляційних скбд
- •Набір базових структур
- •60. Зберігання таблиць.
- •18.2. Зберігання таблиць
- •61. Індекси та в-дерева.
- •18.3. Індекси та в-дерева
- •Інвертовані списки
61. Індекси та в-дерева.
18.3. Індекси та в-дерева
Як би не були організовані індекси в конкретній СКБД, їх основне призначення полягає в забезпеченні ефективного прямого доступу до рядку таблиці по ключу. Індекс визначається для однієї таблиці, та ключем (можливо, складеного) є значення стовпця (або стовпців). Якщо ключем індексу є можливий ключ таблиці, тоді індекс повинен мати властивість унікальності, тобто не містити дублікатів ключа. На практиці ситуація виглядає зазвичай так: при оголошенні первинного ключа таблиці автоматично створюється унікальний індекс, а єдиним способом оголошення можливого ключа, відмінного від первинного, є явне створення унікального індексу. Це пов'язано з тим, що для перевірки збереження властивості унікальності можливого ключа, так чи інакше, потрібна індексна підтримка.
Оскільки при виконанні багатьох операцій мовного рівня потрібне сортування таблиць у відповідності зі значеннями деяких стовпців, корисною властивістю індексу є забезпечення послідовного перегляду рядків таблиці в діапазоні значень індексу в порядку зростання або зменшення значень. Нарешті, одним із способів оптимізації виконання еквіз’єднання таблиць (найбільш поширена з числа дорогих операцій) є організація так званих мультиіндексів для декількох таблиць, які мають однакові стовпці. Будь-який з цих стовпців (або їх набір) може виступати в якості ключа мультиіндекса. Значенням ключа зіставляється набір рядків всіх пов'язаних мультиіндексом таблиць, значення виділених стовпців яких збігаються зі значенням ключа.
Існують різні види індексів:
лінійні (наприклад, інвертовані списки);
нелінійні (наприклад, B-дерева).
Загальною ідеєю будь-якої організації індексу, що підтримує прямий доступ по ключу і послідовний перегляд в порядку зростання або зменшення значень ключа є зберігання впорядкованого списку значень ключа з прив'язкою до кожного значення ключа списку ідентифікаторів рядків. Одна організація індексу відрізняється від іншої головним чином в способі пошуку ключа із заданим значенням.
Інвертовані списки
Інвертований список будується за схемою таблиці з двома полями (табл. 18.1.):
значення поля, яке індексується;
номери записів.
Таблиця 18.1. Інвертований список
Рік народження |
Номери записів |
1991 |
11, 28, 91 |
1994 |
5, 16, 77 |
1995 |
18, 42 |
1997 |
1, 4, 17, 40, 167, 169 |
1998 |
3 |
2000 |
6, 9, 89 |
2001 |
19, 30, 44 |
2003 |
20 |
Інвертовані списки найчастіше застосовуються для індексації полів, значення яких у різних записах можуть повторюватися. Особливо ефективні вони, якщо значення поля, яке індексується, повторюючись, утворюють рівномірні по потужності групи.
B-дерева
Мабуть, найбільш популярним підходом до організації індексів у базах даних є використання техніки B-дерев. З точки зору зовнішнього логічного представлення B-дерево - це збалансоване сильно гіллясте дерево у зовнішній пам'яті (рис. 18.3.).
Для дерев використовується наступна термінологія:
предки і нащадки;
брати;
внутрішні вершини;
корінь;
листя;
рівні ієрархії;
висота дерева;
ступінь дерева;
гіллястість дерева;
збалансованість дерева;
збалансованість по висоті;
збалансованість за ступенем вершин;
арність дерева;
операції обходу;
включення і виключення запису.
Збалансованість означає, що довжина шляху від кореня дерева до будь його листу одна і та ж.
Гіллястість дерева - це властивість кожного вузла дерева посилатися на велику кількість вузлів-нащадків.
Рис. 18.3. B-дерево
З точки зору фізичної організації B-дерево представляється як мультиспискова структура сторінок зовнішньої пам'яті, тобто кожному вузлу дерева відповідає блок (сторінка) зовнішньої пам'яті. Внутрішні та листові сторінки зазвичай мають різну структуру.
Пошук в B-дереві - це проходження від кореня до листа у відповідності з заданим значенням ключа. Зауважимо, що оскільки дерева сильно гіллясті та збалансовані, то для виконання пошуку по будь-якому значенню ключа буде потрібно одне і те ж (і звичайно невелике) число обмінів із зовнішньою пам'яттю. Більш точно, в збалансованому дереві, де довжини всіх шляхів від кореня до листа одні й ті ж, якщо у внутрішній сторінці поміщається n ключів, то при зберіганні m записів потрібно дерево глибиною logn (m), де logn обчислює логарифм за основою n. Якщо n досить велике (звичайний випадок), то глибина дерева невелика, і виконується швидкий пошук.
Основною характерною рисою B-дерев є автоматична підтримка властивості збалансованості.
62. Хеш-функція.
18.4. Хеш-функція
Альтернативою до організації індексів дерев’яному підходу є використання техніки хешування. "To hash" – нарізати, кришити - рівномірно перетворювати ключі в адреса (номера) записів. Загальною ідеєю методів хешування є застосування до значення ключа деякої функції гомоморфного відображення в адресу - згортки (хеш-функції), що виробляє значення меншого розміру. Згортка значення ключа потім використовується для доступу до запису. Найбільш часто в основі хеш-згортки лежить операція ділення по модулю.
У самому простому, класичному випадку, згортка ключа використовується як адреса в таблиці, що містить ключі та записи. Основною вимогою до хеш-функції є рівномірний розподіл значення згортки. При виникненні колізій (одна і та ж згортка для декількох значень ключа (синонімів)) утворюються ланцюжки переповнення, або необхідне додаткове перетворення ключів. Головним обмеженням цього методу є фіксований розмір таблиці. Якщо таблиця заповнена занадто сильно або переповнена, тоді виникне занадто багато ланцюжків переповнення, і головна перевага хешування - доступ до запису майже завжди за одне звернення до таблиці - буде втрачено. Розширення таблиці вимагає її повної перебудови на основі нової хеш-функції (зі значенням згортки більшого розміру).
У разі баз даних такі дії є абсолютно неприйнятними. Тому зазвичай вводять проміжні таблиці-довідники, що містять значення ключів і адреси записів, а самі записи зберігаються окремо. Тоді при переповненні довідника потрібно тільки його переробка, що викликає менше накладних витрат.
Внутрішня схема даних зазвичай прихована від користувачів ІС (за винятком установки індексації полів). Використання індексів та хешування, яке «прозоре» для прикладних програм користувачів, критично впливають на ефективність обробки даних в ІС, тому повинні враховуватися проектувальниками. В цілому методи B-дерев і хешування все більше зближуються.