- •1. Інформаційні технології та інформаційні системи
- •1. Інструментальні засоби розробки інформаційних технологій, case-технології
- •1. Інформаційні технології та інформаційні системи
- •2. Критерії надійності та якості інформаційних систем.
- •1. Інформаційні технології та інформаційні системи
- •3. Застосування інформаційних технологій у виробництві
- •Управленческий учет и отчетность
- •Автоматизированные информационные системы
- •1. Інформаційні технології та інформаційні системи
- •4. Застосування інформаційних технологій у банківській та фінансовій справі
- •1. Інформаційні технології та інформаційні системи
- •5. Безпека функціонування інформаційних систем
- •1. Інформаційні технології та інформаційні системи
- •6. Засоби моделювання автоматизованих інформаційних систем
- •1. Інформаційні технології та інформаційні системи
- •7. Моделі життєвого циклу програмних засобів.
- •Waterfall («водоспад», каскадна модель)
- •Прототипування
- •Ітераційна модель
- •Життєвий цикл «спіраль»
- •1. Інформаційні технології та інформаційні системи
- •1. Інформаційні технології та інформаційні системи
- •9. Класифікація запитів
- •1. Інформаційні технології та інформаційні системи
- •10. Реляційна модель Кодда. Реляційна алгебра
- •1. Інформаційні технології та інформаційні системи
- •11. Функціонально повна залежність. 2-нормальна форма (2нф).
- •1. Інформаційні технології та інформаційні системи
- •12. Мінімальна структура функціональних залежностей
- •1. Інформаційні технології та інформаційні системи
- •13. Аксіоми Армстронга
- •1. Інформаційні технології та інформаційні системи
- •14. Третя нормальна форма та третя нормальна форма Бойса-Кодда
- •1. Інформаційні технології та інформаційні системи
- •15. Багатозначні залежності. 4-нормальна форма
- •1. Інформаційні технології та інформаційні системи
- •16. Стратегії розподілу даних в розподілених базах даних
- •1. Централізація.
- •2. Розчленування.
- •3. Дублювання.
- •4. Змішана.
- •2. Системне програмування
- •1. Поняття мовного процесора. Типи мовних процесорів. Основні фази мовного процесора.
- •2. Системне програмування
- •2. Скінченні автомати. Методика побудови лексичного аналізатора на основі скінченного автомата.
- •2. Системне програмування
- •3. Регулярні множини та регулярні вирази, їх звязок із скінченними автоматами. Основні тотожності в алгебрі регулярних виразів.
- •2. Системне програмування
- •4. Вивід у граматиці. Дерево виводу. Лівостороння та правостороння стратегії виводу.
- •2. Системне програмування
- •5. Ll(k)-граматики. Перевірка ll(1)-умови для довільної кв- граматики
- •2. Системне програмування
- •6. Побудова ll(1)-таблиці для управління ll(1)-синтаксичним аналізатором
- •2. Системне програмування
- •7. Атрибутний метод визначення семантики програм. Синтезовані та успадковані атрибути. Порядок та правила обчислення атрибутів.
- •2. Системне програмування
- •8. Машинно-орієнтовані мови програмування. Асемблери. Структура асемблера, перегляди тексту програми та відповідні бази даних.
- •3. Архітектура еом, комп’ютерні та інформаційні мережі
- •1. Розподіл оперативної пам’яті, поняття сегменту та зсуву. Сторінкова організація пам’яті.
- •3. Архітектура еом, комп’ютерні та інформаційні мережі
- •2. Канали та порти вводу-виводу
- •3. Архітектура еом, комп’ютерні та інформаційні мережі
- •3. Поняття про переривання та їх класифікація
- •3. Архітектура еом, комп’ютерні та інформаційні мережі
- •4. Поняття про відеосистему. Режими роботи відеосистеми
- •3. Архітектура еом, комп’ютерні та інформаційні мережі
- •5. Структура таблиці розміщення файлів на магнітних дисках. Фізичний та логічний формати магнітних дисків. Коренева директорія.
- •3. Архітектура еом, комп’ютерні та інформаційні мережі
- •6. Системи телеобробки даних. Функціональне середовище для взаємодії систем телеобробки. Етапи у взаємодії систем телеобробки.
- •3. Архітектура еом, комп’ютерні та інформаційні мережі
- •7. Модель відкритої системи, стек протоколів. Концепція еталонної моделі osi.
- •3. Архітектура еом, комп’ютерні та інформаційні мережі
- •8. Стек протоколів tcp/ip: топологічні особливості, функції рівнів.
- •3. Архітектура еом, комп’ютерні та інформаційні мережі
- •9. Архітектура мережевої телеобробки: однорангова, клієнт/сервер, трирівнева
- •3. Архітектура еом, комп’ютерні та інформаційні мережі
- •10. Надійність систем телеобробки та комп’ютерних мереж. Класи безпеки. Міжмережеві екрани. Proxy-сервери, брандмауери.
- •3. Архітектура еом, комп’ютерні та інформаційні мережі
- •11. Мультиплексування цифрових каналів з розділенням у часі (tdm). Плезіохронні та синхронні цифрові ієрархії. Широкосмугові канали зв’язку.
- •3. Архітектура еом, комп’ютерні та інформаційні мережі
- •12. Повторювачі, мости, маршрутизатори, шлюзи та їх місце в профілі osi
- •3. Архітектура еом, комп’ютерні та інформаційні мережі
- •13. Поняття мереж комутації: пакетів, каналів, повідомлень. Контроль перевантажень в мережах комутації пакетів.
- •3. Архітектура еом, комп’ютерні та інформаційні мережі
- •14. Інформаційна глобальна мережа internet
- •3. Архітектура еом, комп’ютерні та інформаційні мережі
- •15. Система доменних імен глобальної мережі internet
- •3. Архітектура еом, комп’ютерні та інформаційні мережі
- •16. Система електронної пошти глобальної системи internet
- •3. Архітектура еом, комп’ютерні та інформаційні мережі
- •17. Поняття універсального вказівника ресурсу. Основні типи ресурсів
- •3. Архітектура еом, комп’ютерні та інформаційні мережі
- •18. Поняття раутінгу в мережах tcp/ip
- •3. Архітектура еом, комп’ютерні та інформаційні мережі
- •19. Технології, що забезпечують відмовостійкість мереж tcp/ip
- •3. Архітектура еом, комп’ютерні та інформаційні мережі
- •20. Класифікація комп’ютерних мереж.
- •4. Теорія програмування та обчислень
- •1. Основні аспекти програм
- •4. Теорія програмування та обчислень
- •2. Основні поняття програмування
- •4. Теорія програмування та обчислень
- •3. Методи подання синтаксису мов програмування
- •4. Теорія програмування та обчислень
- •4. Класифікація породжувальних граматик
- •4. Теорія програмування та обчислень
- •5. Автоматна характеристика основних класів мов
- •4. Теорія програмування та обчислень
- •6. Метод нерухомої точки
- •4. Теорія програмування та обчислень
- •7. Методи формальної семантики
- •4. Теорія програмування та обчислень
- •8. Формальні методи програмування
- •4. Теорія програмування та обчислень
- •9. Функції складності (сигналізуючі) за часом та за пам’яттю. Теорема про прискорення.
- •4. Теорія програмування та обчислень
- •10. Функції, елементарні за Кальмаром
- •4. Теорія програмування та обчислень
- •11. Співвідношення між класами примітивно рекурсивних та елементарних функцій
- •4. Теорія програмування та обчислень
- •12. Техніка слідів. Лема про заміщення
- •4. Теорія програмування та обчислень
- •13. Функції, обчислювані за реальний час
- •5. Системи штучного інтелекту
- •1. Знання. Класифікація знань
- •5. Системи штучного інтелекту
- •2. Фреймова модель задання знань
- •5. Системи штучного інтелекту
- •3. Семантичні мережі
- •5. Системи штучного інтелекту
- •4. Продукційна модель задання знань
- •5. Системи штучного інтелекту
- •5. Розпізнавання образів
- •5. Системи штучного інтелекту
- •6. Поняття діалогової системи та її компоненти
- •5. Системи штучного інтелекту
- •7. Теорія ігор. Експліцитні та імпліцитні дерева гри
- •5. Системи штучного інтелекту
- •8. Метод резолюцій як основа логічного виведення
- •5. Системи штучного інтелекту
- •9. Мова функціонального програмування лісп
- •5. Системи штучного інтелекту
- •10. Мова логічного програмування пролог
- •6. Обчислювальна геометрія, комп’ютерна графіка та комп’ютерна алгебра
- •1. Складність алгоритмів, зведення задач, нижні оцінки складності задач
- •6. Обчислювальна геометрія, комп’ютерна графіка та комп’ютерна алгебра
- •7. Означення та властивості діаграми Вороного. Побудова діаграми Вороного.
- •6. Обчислювальна геометрія, комп’ютерна графіка та комп’ютерна алгебра
- •11. Кільце остач від ділення на многочлен над скінченним полем
1. Інформаційні технології та інформаційні системи
9. Класифікація запитів
За складністю запити поділяються на найпростіші, прості та складні. Зауважимо, що множина складних запитів може бути класифікована більш детально. Для класифікації найпростіших запитів введемо основну форму:
А ( O ) = V,
де А - ім'я атрибута або властивості, відносно якої формується запит, O - специфікація об'єкта запиту, V - значення, яке може набути атрибут об'єкта; замість знака "=" може бути використаний будь-який із знаків бінарних предикатів, що визначені для значень даної властивості об'єкта, наприклад: {<, >, =>, ...}.
Прості запити можна отримати з найпростіших (а також і простих) за допомогою логічних зв'язок ("або", "і", "ні"). Для побудови складних типів запитів необхідне використання кванторів існування та узагальнення.
Спочатку зробимо класифікацію найпростіших запитів. Для цього використаємо основну форму A(E) Q V, де Q = { }, A – атрибут, V –значення, Q – бінарний предикат, E – сам об’єкт, ключ.
Для прикладів використаємо таку модель: нехай є кілька кіосків, і в кожному місяці вони мають певний прибуток.
A – номер місяця.
E – номер кіоску.
V – значення прибутку кіоску за певний місяць (на перетині № кіоску і № місяця).
Прямий запит
A(E) = ? – відомий атрибут, відомий ключ. “Який прибуток був у кіоску №7 у березні?”. Результат – одне значення.
Інвертований запит
A(?) = V – відомий атрибут і відоме значення. “Знайти номери кіосків, у яких у березні був прибуток 8 тисяч”. Результат – множина.
?(E) = V. “У якому місяці кіоск №17 мав прибуток 8 тисяч?”. Результат – множина.
?(E) = ? (річний звіт). “Видати інформацію за рік по кіоску №17”.
A(?) = ?. “Видати інформацію по всім кіоскам за березень”.
?(?) = V. “Видати інформацію про кіоски і місяці з прибутком 8 тисяч”.
?(?) = ?. Повна інформація про все.
З найпростіших запитів формуються прості та складні запити. Прості запити – це найпростіші, що з’єднанні логічними зв’язками { }. Складні запити – це найпростіші, що з’єднанні зв’язками { }.
Більш формально:
Найпростіші запити часто включають селекцію і проекцію над єдиним відношенням, тобто специфікується деяка умова, якій повинні відповідати кортежі.
При простих запитах необхідно отримати природне з’єднання, з’єднання загального вигляду або декартів добуток декількох відношень, здійснити селекцію кортежів з побудованого відношення.
При складних запитах використовується деякий еквівалент квантору “для всіх”, який використовується для узагальнення простих запитів.
1. Інформаційні технології та інформаційні системи
10. Реляційна модель Кодда. Реляційна алгебра
12 правил Кодда. Ці правила є напів-офіційним визначенням поняття реляційна база даних:
правило 0: Основное правило (Foundation Rule): Реляционная СУБД должна быть способна полностью управлять базой данных, используя связи между данными.:
правило 1: Явное представление данных. Информация должна быть представлена в виде данных, хранящихся в ячейках. Данные, хранящиеся в ячейках, должны быть атомарны. Порядок строк в реляционной таблице не должен влиять на смысл данных.
правило 2: Гарантированный доступ к данным. Доступ к данным должен быть свободен от двусмысленности. К каждому элементу данных должен быть гарантирован доступ с помощью комбинации имени таблицы, первичного ключа строки и имени столбца.
правило 3: Полная обработка неизвестных значений: Неизвестные значения NULL, отличные от любого известного значения, должны поддерживаться для всех типов данных при выполнении любых операций.
правило 4: Доступ к словарю данных в терминах реляционной модели. Словарь данных должен сохраняться в форме реляционных таблиц, и СУБД должна поддерживать доступ к нему при помощи стандартных языковых средств.
правило 5: Полнота подмножества языка: Система управления реляционными базами данных должна поддерживать хотя бы один реляционный язык, который
(а) имеет линейный синтаксис,
(б) может использоваться как интерактивно, так и в прикладных программах,
(в) поддерживает операции определения данных, определения представлений, манипулирования данными (интерактивные и программные), ограничители целостности, управления доступом и операции управления транзакциями (begin, commit и rollback).
правило 6: Возможность модификации представлений: Каждое представление должно поддерживать операции манипулирования данными: операции выборки, вставки, модификации и удаления данных.
правило 7: Наличие высокоуровневых операций управления данными. Операции вставки, модификации и удаления данных должны поддерживаться не только по отношению к одной строке реляционной таблицы, но по отношению к любому множеству строк.
правило 8: Физическая независимость данных: Приложения не должны зависеть от способов хранения данных, аппаратного обеспечения компьютеров, на которых находится реляционная база данных.
правило 9: Логическая независимость данных: Представление данных в приложении не должно зависеть от структуры реляционных таблиц.
правило 10: Независимость контроля целостности: Вся информация, необходимая для поддержания целостности, должна находиться в словаре данных. Язык для работы с данными должен выполнять проверку входных данных и автоматически поддерживать целостность данных.
правило 11: Дистрибутивная независимость: База данных может быть распределённой, может находиться на нескольких компьютерах, и это не должно оказывать влияние на приложения..
правило 12: Согласование языковых уровней: Если используется низкоуровневый язык доступа к данным, он не должен игнорировать правила безопасности и правила целостности, которые поддерживаются языком более высокого уровня.
Теоретичні основи реляційної моделі баз даних були закладені Е.Коддом на початку 70-х років Введемо поняття реляції.
Нехай V – основний алфавіт, тобто деяка скінченна множина. - деякий виділений елемент; V.
Позначимо через D1, D2, … Dn V* ; де V* - множина всіх слів в алфавіті V.
Домени визначаються як Di = Di {};
Множину імен атрибутів позначимо . І введемо однозначне, але не обов’язково ін’єктивне відображення N: {D1, D2, … Dn}, яке іменує домени. Кожен домен може мати кілька імен, позначимо і = N-1(Dі) – множину всіх імен домена Dі. Очевидно, що ці множини мають такі властивості: і j = ; (i=1 n) і = ;
Атрибутом називається (А,Dі) – де А і ,
Нехай (Аі1,D1)(Аі2,D2)…(Аік,Dк) – відношення над декартовим добутком атрибутів. Введемо над множиною так визначених відношень розбиття на класи еквівалентності: до одного класу віднесемо ті відношення, які відрізняються тільки порядком компонент у декартовому добутку. Представник такого класу називається реляцією R((Аі1,D1),(Аі2,D2),…,(Аік,Dк)).
Схемою реляції R(А1,А2,…,Ак) називають відповідну реляційну таблицю без даних. ЧерезR будемо позначати множину імен атрибутів реляції R.
Реляційна алгебра – алгебра в строгому розумінні. Елементи основної множини – реляції.
Сигнатура складається з 8-ми операцій.
Теоретико-множинні операції ,,\ – частково визначені (визначені тільки для сумісних реляцій з однаковою структурою).
Реляції R1(A1, … , An) і R2(B1, … , Bk) називаються сумісними, якщо у них однакова кількість атрибутів; та кожному атрибуту першої реляції можна поставити у взаємно однозначну відповідність атрибут другої реляції.
Об’єднання. R1R2: в результуючу реляцію попадають всі кортежі першої і другої реляції без дублів.
Перетин. R1R2: в результуючу реляцію попадають кортежі, присутні і в першій, і в другій реляції.
Різниця. R1\R2: в результуючу реляцію попадають кортежі з R1, яких немає в R2.
Декартів добуток. R1R2 – визначається для будь-яких реляцій.
R1R2 = {(r1, … , rk, rk+1, … , rk+n) | (r1, … , rk) R1, (rk+1, … , rk+n) R2}.
Ця операція може різко збільшити об’єм результату.
Проекція. Реляція S(B1, … , Bn) узгоджена з R(A1, … , Ak), якщо f : S R, N(f(Bi)) = N(Ai), i = 1 n.
Відображення f однозначне, але, взагалі кажучи, не взаємно однозначне.
Проекцією реляції R на схему S відносно узгодження f будемо називати реляцію
T = R[S] таку, що: T = {(r[Ai1], r[Ai2], … , r[Ain])} та T = R[Ai1, Ai2, … , Ain,]
Операція - з’єднання ( - join).
Введемо поняття - порівнюваності для кортежів.
На двох реляціях R(A1, … , Ak) і S(B1, … , Bn) візьмемо відповідно два підкортежі:
r1 = (d1, d2, … , dm), r2 = (d1|, d2|, … , dm|);
Нехай = {=, , <, , >, , …}; Два кортежі r1 і r2 - порівнювані:
r1r2 di di|, i = 1,m; (m k, m n);
Нехай в реляції R виділений список атрибутів M1 = {A1, … , Am}, а в реляції S список атрибутів M2 = {B1, … , Bm}, причому відповідні атрибути співпадають по доменам, тобто N(Ai) = N(Bi), i = 1,m;
Операція - з’єднання реляції R з реляцією S по спискам M1 і M2 : R[M1 M2]S = {t R S | t[M1] t[M2]}.
Операція - обмеження.
Нехай задана реляція R(R), де R - множина імен атрибутів;
M1 = {A1, … , Am} R; і
M2 = {B1, … , Bm} R - списки атрибутів з властивістю N(Ai) = N(Bi); i = 1,m;
- обмеження реляції R по спискам M1 і M2 : R[M1 M2] = {r | (r R) &(r[M1] r[M2])}.
Операція ділення.
Нехай задана реляція R(A1, … , Ak) і два взаємнодоповнюючі списки атрибутів
M1 = {A1, … , An}; M2 = {An+1, … , Ak}
Нехай є С1 = D1…Dn; С2 = Dn+1…Dk; де Di = N(Ai), i = 1,k;
Якщо візьмемо деякий елемент x С1, то образом x по реляції R буде називатись множина підкортежів :
imRx = {y С2 | (x, y) R}
Розглянемо реляції R(R), S(S) і списки атрибутів {A1, … , An}R ; {B1, … , Bn}S;
Необхідно, щоб реляції R[A1, … , An] і S[B1, … , Bn] були сумісними, тоді операція R[A B]S називається діленням R на S по спискам {A1, … , An} і {B1, … , Bn}
Результатом є множина підкортежів по атрибутам, що доповнюють список {A1, … , An}.
R[A B]S = {r[An+1, … , Ak] | (r R) & (S[B1, … , Bn] imR(r[An+1, … , Ak]))}
Приклад використання операції ділення.
Нехай задана таблиця R з двома атрибутами (мова програмування і прізвище програміста, який цією мовою володіє)
Знайти прізвища програмістів, які знають мови А і Ф одночасно. Для виконання такого запиту утворимо допоміжну реляцію S з одним атрибутом і двома кортежами з відповідними значеннями кодів мов програмування {А,Ф}.
R[мова мв]S
R |
Мова |
Прізв |
|
S |
мв |
|
А |
І |
|
|
А |
|
А |
П |
|
|
Ф |
|
ПЛ |
С |
|
|
|
|
Ф |
Ф |
|
|
|
|
Ф |
І |
|
|
|
|
Ф |
С |
|
|
|
|
ПЛ |
П |
|
|
|
|
П |
Ф |
|
|
|
|
П |
І |
|
|
|
Образом І буде {А, Ф, П}, що є надмножиною відносно{А, Ф}, тому І проходить у результуючу таблицю; а П, С, Ф – не проходять у результуючу таблицю, бо їх образи не накривають {А, Ф}. Це означає, що програміст І знає мови {А,Ф} (можливо ще щось), а інші не знають цих мов одночасно.