- •Інженерія програмного забезпечення
- •Загальні вимоги до програмного забезпечення
- •Процеси життєвого циклу програмного забезпечення
- •Керування процесом проектування програмного забезпечення
- •Прототипування програмних систем.
- •Архітектурне проектування програмних систем
- •Архітектура розподілених систем
- •Проектування систем реального часу
- •Об‘єктно-орієнтоване проектування програмних систем.
- •Візуальне проектування об‘єктно-орієнтованих систем
- •Динамічні моделі об‘єктно-орієнтованих систем
- •Моделі реалізації об‘єктно-орієнтованих програмних систем
- •Проектування інтерфейсу користувача
- •Тестування програм та систем
- •Структурне тестування програмного забезпечення.
- •Методи та засоби автоматизації тестування програмного забезпення
- •Системне програмування
- •Дати оцінку основним правилам автоматичного перетворення типів.
- •Розкрити сутність адресної арифметики при роботі з вказівниками.
- •Обґрунтувати алгоритм та представити програмний код для реалізації програми, що сумує з 0 по 3 біт першого числа та з 3 по 6 біт другого числа.
- •Розкрийте поняття програмна модель мікропроцесора.
- •Проаналізувати типи даних в мові асемблер.
- •Проаналізувати особливості роботи із масивами в мові асемблер.
- •Проаналізувати структуру програми мовами програмування з родини асемблерів(синтаксис ассемблера).
- •Організувати на асемблері ехе-програму, щоб перекодувати символи строки шляхом додавання до літери строки кодів символів таблиці(Код мовою Asembler).
- •Організувати ехе-програму , щоб перекодувати символи з однієї таблиці в іншу(код мовою асемблера).
- •Організація баз даних
- •Моделі даних: ієрархічна, мережева, реляційна, об‘єктно-реляційна, нереляційна.
- •NoSql або постреляційні бази даних
- •Реляційна модель даних. Операції реляційної алгебри.
- •Нормалізація відношень при проектування реляційної моделі.
- •Поняття первинних ключів. Роль функціональних залежностей. Зовнішні та батьківські ключі.
- •Нормалізація відношень: перша, друга та третя нормальні форми
- •Визначення другої нормальної форми. Правило приведення. Повна функціональна залежність.
- •Визначення третьої нормальної форми. Правило приведення. Транзитивна залежність.
- •Семантичне моделювання та когнітивний аспект.
- •Проектування баз даних: концептуальне, логічне, фізичне
- •Модель «сутність-зв‘язок» або er-модель
- •Нормалізація даних в er-моделі
- •Case-засоби проектування баз даних.
- •Мова маніпулювання даними sql. Побудова запитів.
- •Адміністрування даних. Засоби підтримки цілісності баз даних
Організація баз даних
Моделі даних: ієрархічна, мережева, реляційна, об‘єктно-реляційна, нереляційна.
Модель даних – це засіб для визначення логічного зображення фізичних даних, що відносяться до деякого додатку. В процесі розробки засад створення баз даних вибір моделі в основному залежить від об'єкту впровадження (від регіонального представництва до центрального органу управління), а також від етапу впровадження.
Ієрархічна модель даних будується за принципом ієрархії типів об'єктів, тобто один тип об'єктів є головним, а Інші, що знаходяться на нижчих рівнях ієрархії, підпорядкованими. Ієрархічна модель зображується у вигляді дерева. Між головним та підпорядкованими об'єктами встановлюється взаємозв'язок "один до багатьох". Іншими словами, для даного головного типу об'єкта існує декілька підпорядкованих типів об'єктів. У той же час для кожного екземпляра головного об'єкта може бути декілька екземплярів підпорядкованих типів об'єктів.
У мережевій структурі кожен елемент може бути пов'язаний з будь-яким іншим елементом.
Мережева модель даних будується за принципом "головний і підлеглий тип одночасно", тобто будь-який тип даних одночасно може породжувати кілька підлеглих типів (бути власником набору) і бути підлеглим для декількох головних (бути членом набору).
Мережевий підхід до організації даних є розширенням ієрархічного. В ієрархічних структурах запис-нащадок повинна мати в точності одного предка; у мережній структурі даних нащадок може мати будь-яке число предків.
У реляційній моделі об'єкти і зв'язки між ними зображуються за допомогою двомірних таблиць – відношень (від англійського relation – відношення). Ідея реляційної моделі застосовується до зовнішнього та логічного рівня. Кожен рядок, що містить у таблиці такої бази даних, є записом з унікальним ідентифікатором, який називають ключем. Стовпці таблиці мають атрибути даних, а кожен запис зазвичай містить значення для кожного атрибуту, що дозволяє легко встановлювати взаємозв'язок між елементами даних.
Об’єктно-реляційна модель — це комбінація об’єктно-орієнтованої моделі бази даних і моделі реляційної бази даних. Отже, вона підтримує об’єкти, класи, успадкування тощо, як і об’єктно-орієнтовані моделі, а також підтримує типи даних, табличні структури тощо, як реляційна модель даних.
Однією з головних цілей об’єктно-реляційної моделі даних є усунення розриву між реляційними базами даних і об’єктно-орієнтованими практиками, які часто використовуються в багатьох мовах програмування, таких як C++, C#, Java тощо.
Нереляційна модель зберігає дані без чітких зв’язків між собою та без чіткої структури. Замість структурованих таблиць, всередині бази знаходиться безліч різнорідних документів, в тому числі і зображення, відео та навіть публікації у соціальних мережах. На відміну від реляційних БД, NoSQL бази не підтримують SQL запити.
NoSql або постреляційні бази даних
Нереляційна база даних (NoSQL) – зберігає дані без чітких зв’язків між собою та без чіткої структури. Замість структурованих таблиць, всередині бази знаходиться безліч різнорідних документів, в тому числі і зображення, відео та навіть публікації у соціальних мережах. На відміну від реляційних БД, NoSQL бази не підтримують SQL запити.
"Класичні" SQL БД підтримують властивості ACID. Про NoSQL бази кажуть, що ACID в них немає. Оригінальне визначення ACID відноситься до транзакцій. Тобто під "операцією" у визначеннях ACID слід розуміти безліч дрібних CRUD операцій над даними. У NoSQL, як правило, такі "великі" транзакції не підтримуються. Але окремі операції модифікації даних цілком можуть задовольняти деяким властивостям ACID.
Окремим винятком є NewSQL і графові БД. Часто вони декларують підтримку транзакцій, повністю аналогічним таким у SQL базах.
Особливості. На відміну від реляційних, у нереляційних базах даних схема даних є динамічною та може змінюватись у будь який момент часу. До даних складніше отримати доступ. Проте такі СУБД відрізняються швидкістю та продуктивністю. Фізичні об’єкти у NoSQL зазвичай можна зберігати прямо у тому вигляді, у якому з ними потім працює додаток.
Бази даних NoSQL підходять для зберігання великих об’ємів неструктурованої інформації, а також для швидкої розробки та тестування гіпотез.
У них можна зберігати дані будь яких типів та додавати нові в процесі роботи.
Переваги NoSQL:
Здатність обробляти великі дані.
Завдяки відсутності схем та таблиць, досягається високий рівень гнучкості при роботі з моделями даних.
Це недорога база даних, а бази даних NoSQL з відкритим кодом надають дуже доступні рішення для малих підприємств.
Масштабованість. NoSQL бази мають розподілену архітектуру, тому легко масштабуються горизонтально та вирізняються високою продуктивністю. Технології NoSQL можуть автоматично розподіляти дані на різних серверах. Це підвищує швидкість читання даних у розподіленому середовищі.
Відсутність необхідності детального моделювання даних.
Недоліки NoSQL:
Відсутність стандартної мови для виконання запитів NoSQL. Синтаксис, який використовується для запиту даних, відрізняється для різних типів баз даних NoSQL
Нижча ефективність при роботі зі складними запитами. З різноманітністю структур даних, які можна знайти в базах даних NoSQL, запити не такі ефективні. На відміну від баз даних SQL, стандартного інтерфейсу для виконання складних запитів немає
Неузгодженість даних. Розподілений характер баз даних NoSQL дозволяє швидше надавати дані. Однак це також може ускладнити забезпечення узгодженості даних. Запити можуть не завжди повертати оновлені дані, і можна отримати неточну інформацію. Завдяки розподіленому підходу база даних може повертати різні значення одночасно залежно від того, до якого сервера надсилається запит. Це одна з причин, чому NoSQL не досягає відповідності на рівні ACID