Зберігання ієрархічних структур в реляційних базах даних
Розгляд методу моделювання ієрархічних структур даних у вигляді списків суміжності та таблиці зв’язків. Розгляд для кожного методу прикладів написання запитів для розв’язання типових завдань, які зустрічаються під час роботи з деревовидними структурами.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | украинский |
Дата добавления | 05.04.2023 |
Размер файла | 1,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Волинський національний університет імені Лесі Українки
ЗБЕРІГАННЯ ІЄРАРХІЧИХ СТРУКТУР В РЕЛЯЦІЙНИХ БАЗАХ ДАНИХ
Маркітан Володимир Олегович,
Вотяк Микола Андрійович,
Булатецька Леся Віталіївна,
Булатецький Віталій Вікторович
Луцьк
Анотація
ієрархічний структура суміжність моделювання
Системи управління реляційними базами даних і сама мова SQL не мають жодних вбудованих механізмів для зберігання та управління ієрархічними структурами. Існує кілька різних способів представлення дерев в реляційних базах даних. В роботі розглянуто метод моделювання ієрархічних структур даних у вигляді списків суміжності (Adjacency List) та таблиці зв'язків (Closure Table). Для кожного методу, подано приклади написання запитів для розв'язання типових завдань, які зустрічаються під час роботи з деревовидними структурами: пошук всіх дочірніх вузлів, всіх нащадків та предків заданого вузла, переміщення вузла до іншого батьківського вузла, видалення вузлів з усіма його нащадками. Розглянуто можливість використання рекурсивних запитів при відображення всього дерева в моделі списків суміжності. У випадку, якщо глибина дерева не відома, або не відомо на якому рівні знаходиться заданий елемент, то запит не може бути побудований стандартними засобами оператора SELECT, тоді потрібно створювати рекурсивну процедуру, або писати рекурсивний запит. Для того, щоб уникнути рекурсії при виведенні всього дерева, всіх вузлів піддерева та пошук шляху від певного місця до кореня, моделювання ієрархічних структур даних виконують у вигляді таблиці зв'язків (Closure Table). При цьому ускладнюється процес додавання нового вузла, переміщення вузла до іншого батьківського вузла. В такому випадку для спрощення написання запитів пропонується створювати тригери, які будуть будувати, або перебудовувати зв'язки. Враховуючи те, що іноді виникає потреба збереження залежних, зокрема ієрархічних структур в реляційній базі даних, потрібно вміти орати модель збереження таких даних. На вибір методу, для розв'язання конкретної задачі, впливає швидкість виконання основних операцій з деревами. Дослідження різних варіантів організації деревоподібних структур SQL дозволить зрозуміти та обрати самий оптимальний спосіб побудови такої структури в реляційній базі даних для конкретної задачі. Усі, наведені в даній роботі SQL запити, створювалися та тестувалися для реляційних баз даних Oracle.
Ключові слова: база даних; ієрархічні структури даних; дерево; модель суміжних списків; модель таблиці зв'язків.
Annotation
Volodymyr O. Markitan Student of the Faculty of Informations Technologies and Mathematics Lesya Ukrainka Volyn National University, Lutsk, Ukraine
Mykola A. Vozniak Student of the Faculty of Informations Technologies and Mathematics Lesya Ukrainka Volyn National University, Lutsk, Ukraine
Lesia V. Bulatetska PhD, Associate Professor, Associate Professor at the Department of Computer Science and Cybersecurity Lesya Ukrainka Volyn National University, Lutsk, Ukraine
Vitalii V. Bulatetskyi PhD, Associate Professor, Associate Professor at the Department of Computer Science and Cybersecurity Lesya Ukrainka Volyn National University, Lutsk, Ukraine
PRESERVATION OF HIERARCHY STRUCTURES IN RELATIVE DATABASES
Relational database management systems and the SQL language itself do not have any built-in mechanisms for storing and managing hierarchical structures. There are several different ways to represent trees in relational databases. This paper considers the method of modeling hierarchical data structures in the form of Adjacency Lists and Closure Tables. For each method, there are examples of writing queries to solve typical problems encountered when working with tree structures: finding all descendant leaves, all descendants and ancestors of a given leaf, moving a leaf to another ancestor leaf, and deleting leaves with all its descendants. The possibility of using recursive queries when displaying the entire tree in the Adjacency List model is considered. If the depth of the tree is not known, or it is not known at what level the specified element is, the query can not be built by standard means of the SELECT statement, then you need to create a recursive procedure, or write a recursive query. In order to avoid recursion when outputting the whole tree, all nodes of the subtree, and finding the path from a certain place to the root, the modeling of hierarchical data structures is performed in the form of a connection table (Closure Table). This complicates the process of adding a new leaf and moving the leaf to another ancestor leaf. In this case, to simplify the writing of queries, it is suggested to create triggers that will build or rebuild the links. Given the fact that sometimes there is a need to preserve dependent, in particular hierarchical structures in a relational database, you need to be able to plow the model of preservation of such data. The choice of method for solving a specific problem is influenced by the speed of basic operations with trees. Exploring different options for organizing SQL tree structures will allow you to understand and choose the best way to build such a structure in a relational database for a specific task. All SQL queries in this paper were created and tested for Oracle relational databases.
Key words: database, hierarchical data structure, tree, adjacency list model, closure table model.
Постановка проблеми
Реляційні бази даних орієнтовані на організацію зберігання інформації у вигляді таблиці, де кожен рядок містить дані про один окремий об'єкт, а кожен стовпець - характеристики цих об'єктів. При такій організації, рядки є незалежними один від одного. Однак дуже часто виникає потреба збереження залежних, зокрема деревоподібних структур в базі даних. Деревом називається зв'язний неорієнтований граф, що не містить циклів, тобто петель із замкнутих шляхів [1, 2]. Дерева застосовуються практично в кожній галузі програмування. Зазвичай за допомогою дерев зображають ієрархію даних: представлення структури каталогів і файлів на жорсткому диску, подання структури підрозділів і співробітників компаній, структуру сторінок вебсайту і т.п. Зберігання ієрархічних структур у базі даних, не є таким простим, оскільки система управління реляційними базами даних і сама мова SQL не мають жодних вбудованих механізмів для зберігання та управління такими структурами [3].
Аналіз останніх досліджень і публікацій
Деревовидні структури в реляційних базах даних можна зберігати декількома способами. На вибір методу, для розв'язання конкретної задачі, впливає швидкість виконання основних операцій. Типові завдання, які зустрічаються під час роботи з деревовидними структурами:
- знайти всі дочірні елементи;
- знайти батьківський елемент;
- знайти всіх нащадків (дітей та їхніх дітей) елемента;
- знайти всіх предків елемента (батько, його батько, і так далі)
- перемістити елемент (і його нащадків) від одного батьківського елемента до іншого;
- видалити елемент із таблиці (з усіма нащадками).
У роботах [4, 5] розглянуто метод моделювання ієрархічних структур даних у вигляді списків суміжності. Наведено приклади таких списків та їхні типи. Розглянуто можливості мови SQL по формулюванню рекурсивних запитів при зверненні до ієрархічних структур даних та наведено приклади таких запитів. Задано формальну семантику рекурсивних загальних табличних виразів. Рекурсивні запити при роботі з ієрархічними структурами, дозволяють створювати складні запити, зберігаючи набагато простіший синтаксис. Приклади написання рекурсивних запитів та їх різновиди, розглядаються в роботах [6,7]. Інший спосіб представлення дерев - подати їх як вкладені множини. Оскільки SQL є мовою, орієнтованою на множини, ця модель є кращою, ніж звичайний підхід до списку суміжності, який зустрічається більшості підручників. У роботі [8] розглядаються проблеми, які виникають в моделі списку суміжності і розглядаються способи вирішення даних проблем для моделі вкладених множин. В роботі [9] розроблено додаток, для тестування методів роботи з різними деревоподібними структурами в SQL. Для визначення оптимального методу проводився аналіз швидкості роботи, складності вставки нового вузла, переміщення вузла в структурі, підтримка цілісності даних, видалення вузла. В роботі [ 10] Розглянуто задачу збереження, модифікації та видобування ієрархічних даних у реляційних базах даних MS SQL Server. Проведено аналіз ефективності ієрархічних структур на підставі списку суміжних вершин і модифікованої моделі вкладених множин. У роботі [11] детально описано створення та використання ключів упорядкування вузлів дерева в одній таблиці реляційної бази даних. Ключі для кожного вузла обчислюються з ключів його батьківського вузла таким чином, що порядок сортування розміщує кожен вузол у дереві перед усіма його нащадками і після всіх братів і сестер, які мають нижчий індекс.
Метою статті є розглянути задачу побудови, збереження, модифікації та видобування ієрархічних даних на прикладі моделей списку суміжних вершин (Adjacency List) і таблиці зв'язків (Closure Table) у реляційних базах даних Oracle.
Результати дослідження
Одним із найпоширеніших способів побудови дерева в реляційній базі даних є моделювання ієрархічних структур даних у вигляді списків суміжності (Adjacency List). При такому моделюванні, кожен запис в таблиці відповідає вузлу дерева і зберігає його унікальний ідентифікатор (поле id, яке являється первинним ключем) та посилання на батьківський вузол (поле parent_id, яке описується як зовнішній ключ, що посилається на первинний ключ цієї ж таблиці). Якщо вузол немає батьківського елемента, тобто він є коренем дерева, то атрибут parent_id має особливе значення NULL. Такі ієрархічні відношення ще називають відношеннями предок-нащадок. Подання ієрархічної структури у вигляді списку суміжності демонструє найпростіший або базовий тип ієрархії, коли кожний нащадок має тільки одного предка. В загальному випадку у кожного нащадка може існувати декілька предків. У теорії графів списку суміжності з кількістю нащадків не більше ніж n відповідає орієнтований ациклічний граф з валентністю вершин не більше n 1. Для вищенаведеного прикладу валентність вершин не перевищує одиницю [1].
SQL запит на створення таблиці CATEGORY, яка представляє описану деревовидну структуру для бази даних Oracle, можна записати наступним чином:
Використання зовнішніх ключів забезпечує збереження посилкової цілісності бази даних при зміні та видаленні записів, тому виникає проблема при видаленні вузла дерева, яке має нащадків, що пов'язані з даним вузлом зовнішніми ключами. При видаленні вузла такого дерева, для забезпечення автоматичного видалення всього піддерева потрібно використати правило ON DELETE CASCADE.
За допомогою наступного запиту можна побудувати дерево з елементами від A до L, які зберігаються в полі title (рис. 1). Для цього в створену таблицю додаємо записи:
В результаті отримаємо ієрархічну структуру подану в таблиці CATEGORY (рис.1).
Рис. 1 Дерево з елементами від A до L, які зберігаються в таблиці CATEGORY
Щоб знайти всі листки дерева, потрібно виконати SQL-запит, який шукає всі елементи дерева, які не мають дітей. Цей запит є універсальним для будь-якого дерева, незалежно від його розміру, рівнів чи западин. Звичайно, для великих дерев це виконання буде масивнішим.
Рис. 2 Знаходження всіх листків дерева
Вибірку дочірніх елементів батьківського вузла можна здійснити маючи значення parent_id (рис. 3).
Рис. 3 Вибірка дочірніх елементів батьківського вузла Н
Виведення нащадків нащадка батьківського вузла здіснюється шляхом з'єднання таблиці самої на себе. Відображення всього дерева є досить складним, оскільки ми повинні об'єднати таблицю саму з собою, стільки разів, скільки рівнів має наше дерево (рис. 4).
Рис. 4 Відображення всього дерева, якщо відома його глибина
Щоб знайти шлях від певного місця дерева до кореня, необхідно запустити запит, побудований так само, як і запит, який відображає все дерево. В якості умови ми вказуємо елемент від якого і до якого ми шукаємо, тобто діапазон пошуку (рис.5).
Рис. 5 Пошук шляху від певного місця до кореня
Запити на відображення всього дерева і відображення шляху від певного місця дерева до кореня не є універсальними, так, як кожен раз, коли змінюється кількість рівнів дерева, цей запит потрібно буде налаштовувати. Якщо ж глибина дерева не відома, або не відомо на якому рівні знаходиться заданий елемент, то запит не може бути побудований стандартними засобами оператора SELECT, потрібно створювати рекурсивну процедуру, або писати рекурсивний запит [1](рис. 6).
Рис. 6 Рекурсивні запити на відображення всього дерева (а, б) та шляху від певного місця до кореня (в)
Додавання нового вузла, відбувається з використанням простої команди SQL на додавання (INSERT). Для цього потрібно додати новий запис до таблиці CATEGORY, де як parent_id ми передаємо ідентифікатор батьківського елемента.
Наприклад, щоб додати елементи «М» і «N», ми виконуємо відповідні запити INSERT (рис. 7). Для переміщення вузла до іншого батьківського вузла слід виконати команду UPDATE (рис. 8). Додатковою перевагою є можливість переміщення всієї гілки, переміщаючи тільки один елемент. Це пов'язано з тим, що кожен елемент знає тільки свого батька, і тому при переміщенні будь-якого елемента дерево не втрачає узгодженості.
Рис. 7 Дерево з новими елементами
Рис. 8 Переміщенні елемента «Н» разом з усіма нащадками до батьківського вузла «Е»
При видаленні будь-якого вузла, враховуючи правило ON DELETE CASCADE буде видалено все піддерево (рис. 9).
Рис. 9 Видалення вузла «Н» дерева з усіма його нащадками
Маючи для кожного вузла лише ідентифікатор батьківського вузла, ми змушені використовувати рекурсію для обходу всього дерева. Для того, щоб уникнути рекурсії при виведенні всього дерева, моделювання ієрархічних структур даних виконують у вигляді таблиці зв'язків (Closure Table). При такому моделюванні список вузлів можна зберігати в одній таблиці, а зв'язки в іншій, (рис. 9).
Перша таблиці зберігає тільки назви вузлів в полі title та ідентифікатор вузла:
Друга таблиця зберігатиме зв'язки між кожним вузлом дерева і вузлами, що знаходяться на шляху від нього до вершини, включаючи саму вершину дерева. Зв'язок задається трьома числами: ідентифікатором вузла, від якого починається шлях, ідентифікатором кінцевого вузла на шляху та відстанню - цілим числом, що дорівнює кількості дуг між ними. Тобто, відстань між нащадком і батьком дорівнює 1, між нащадком і батьком батька дорівнює 2 і т.д. аж до самого кореня.
Рис. Подання дерева у вигляді таблиці зв 'язків
При такій організації даних, виведення всіх вузлів піддерева та пошук шляху від певного місця до кореня не потребує рекурсії (рис.10, 11), але ускладнюється процес додавання нового вузла, переміщення вузла до іншого батьківського вузла. Для додавання даних потрібно буде добавляти дані в дві таблиці (рис. 12). Замість запиту на заповнення другої таблиці (рис.12), можна створити тригер, який буде створювати зв'язки між доданим вузлом і батьківським вузлом та з усіма вузлами, що знаходяться вище батьківського. При побудові такого тригера, в тіло тригера потрібно передавати параметр, вузол батьківського елемента. Важливо пам'ятати, що тригер спрацьовує при настанні DML події на об'єкті бази даних, на якому визначено тригер. Цю подію не
Рис. 10 Виведення всіх вузлів піддерева з вершиною «D»
Рис. 11 Пошук шляху від 11 елемента до кореня
Рис. 12 Запит на давання вузла «М» в дерево з вершиною «E»
можна викликати явно, єдиний спосіб - виконати запит DML. Передача параметрів не є частиною визначення тригера. Одним з найпростіших рішень, це передати параметри у змінній сесії, але змінна сесії повинна бути встановлена до настання події DML. Для цього потрібно створити пакет в якій описати тільки одну змінну, яку ми будемо передавати в тригер. Тоді процес додавання вузла в дерево буде відбуватися наступним чином: спочатку за допомогою пакета, задаємо значення батьківського вузла до якого ми будемо додавати новий елемент; додаємо вузол в таблицю CATEGORY, на яку спрацьовує тригер, що заповнює таблицю CATEGORY_link (рис. 13). При написанні тригера, потрібно враховувати те, що тригер може призвести до виконання операторів SQL, які запускають ще один або декілька тригерів.
Операція видалення вузла виконується за допомогою операції DELETE, при цьому всі його нащадки стають нащадками видаленого батьківського вузла. Наприклад видалення вузла з ідентифікатором рівним 3 виконується за допомогою запиту:
Рис. 13 Додавання вузла в дерево з вершиною «D», використовуючи тригер
При цьому, його нащадки, вузли з ідентифікаторами 6 і 7, стануть нащадками вузла 1, але ще потрібно змінити відстань між новим батьківським вузлом і нащадками. Тому пропонується перед тим, як видаляти вузол виконати оновлення відстаней (поле dictance) для нащадків. Для цього потрібно створити відповідний тригер (для цього потрібно враховувати те, що при створенні таблиць на обмеження зовнішнього ключа, додано правило ON DELETE CASCADE), або написати запит на оновлення.
Наприклад, для вузла 3:
Для того, щоб видалити все піддерево вузла з ідентифікатором рівним 3 з усіма його нащадками потрібно виконати наступний запит:
Враховуючи використання правила ON DELETE CASCADE в таблиці CATEGORY_link будуть видалені всі зв'язки вузлів піддерева.
Недоліком такої організації є велика кількість записів у таблиці CATEGORY_link через необхідність зберігати зв'язки кожного елемента дерева з усіма його предками.
Чим глибше в дереві знаходиться вузол, тим більше буде потрібно записів для опису зв'язків (рис. 9).
Висновки та перспективи подальших досліджень
В даній роботі розглянута побудова ієрархічних структур в реляційних базах даних, що використовує модель суміжних списків і таблиці зв'язків. Подано приклади написання запитів для розв'язання типових завдань, які зустрічаються під час роботи з деревовидними структурами: пошук всіх дочірніх вузлів, всіх нащадків та предків заданого вузла, переміщення вузла до іншого батьківського вузла, видалення вузлів з усіма його нащадками. Дослідження різних варіантів організації деревоподібних структур SQL дозволить зрозуміти та обрати самий оптимальний спосіб побудови такої структури в реляційній базі даних для конкретної задачі.
Список використаних джерел
1. Wirth, N. (1986). Algorithms and data structures. Prentice-Hall.
2. Narasimha Karumanchi. (2017). Data Structures And Algorithms Made Easy. CareerMonk.
3. Joe Celko's Trees and Hierarchies in SQL for Smarties. (2004). Elsevier. https://doi.org/10.1016/b978-155860-920-4.x5000-4
4. Буй, Д., & Поляков, С. (2010). Рекурсивні запити в SQL-подібних мовах: приклади, змістова і формальна семантика. Проблеми програмування, (2-3).
5. Буй, Д., & Поляков, С. (2010). Композиційна семантика рекурсивних виразів та їхніх узагальнень в SQL-подібних мовах. Наукові записки НаУКМА. Комп'ютерні науки., 112, 21-26.
6. Резниченко, В. (2010). Рекурсивный SQL. Інженерія програмного забезпечення, (4), 63-81.
7. Sarmiento, E. (2008, June 16). Recursive Queries using Common Table Expressions (CTE) in SQL Server. SQL Server Tips, Techniques and Articles. https://www.mssaltips.com/salservertip/1520/recursiveaueries-using-common-table-expressions-cte-in-sal-server/
8. Trees in SQL. Joe Celko. (n.d.). Firebird, InterBase, HQbird: replication, monitoring, technical support. http://www.ibase.ru/files/articles/programming/dbmstrees/saltrees.html.
9. Шрамченко, Б. Л., & Ахматов, В. В. (2021). Обробка ієрархічних даних у реляційній базі даних. In нформаційні технології в науці, виробництві та підприємництві (pp. 152-155). Освіта України.
10. Голуб, В. (2010). Ієрархічна модель вкладених множин у реляційних базах даних. ВІСНИК ЛЬВІВ. УН-ТУ. Серія прикл. матем. інформ., (16), 106-113.
11. Hazel, D. (2008). Using rational numbers to key nested sets. Article DocSetlD311997. https://doi.org/10.48550/arXiv.0806.3115
References
1. Wirth, N. (1986). Algorithms and data structures. Prentice-Hall.
2. Narasimha Karumanchi. (2017). Data Structures And Algorithms Made Easy. CareerMonk.
3. Joe Celko's Trees and Hierarchies in SQL for Smarties. (2004). Elsevier. https://doi.org/10.1016/b978-155860-920-4.x5000-4
4. Bui D., & Poliakov S. (2010). Rekursyvni zapyty v SQL-podibnykh movakh: pryklady, zmistova i formalna semantyka. Problemyprohramuvannia. 2010. (2-3).
5. Bui D., & Poliakov S. (2010). Kompozytsiina semantyka rekursyvnykh vyraziv ta yikhnikh uzahalnen v SQL-podibnykh movakh. Naukovi zapysky NaUKMA. Kompiuterni nauky. 112. 21-26.
6. Reznychenko V. (2010) Rekursyvnyi SQL. Inzheneriia prohramnoho zabezpechennia, (4), 63-81.
7. Sarmiento, E. (2008, June 16). Recursive Queries using Common Table Expressions (CTE) in SQL Server. SQL Server Tips, Techniques and Articles. https://www.mssqltips.com/sqlservertip/1520/recursivequeries-using-common-table-expressions-cte-in-sql-server/
8. Trees in SQL. Joe Celko. (n.d.). Firebird, InterBase, HQbird: replication, monitoring, technical support. http://www.ibase.ru/files/articles/programming/dbmstrees/sqltrees.html.
9. Shramchenko B. L., & Akhmatov V. V. (2021). Obrobka iierarkhichnykh danykh u reliatsiinii bazi danykh. Informatsiini tekhnolohii v nautsi, vyrobnytstvi ta pidpryiemnytstvi (pp. 152-155). Osvita Ukrainy.
10. Holub V. (2010). Iierarkhichna model vkladenykh mnozhyn u reliatsiinykh bazakh danykh. VISNYK LVIV. UN-TU. Seriiaprykl. matem. inform. (16), 106-113.
11. Hazel, D. (2008). Using rational numbers to key nested sets. Article DocSetID311997. https://doi.org/10.48550/arXiv.0806.3115
Размещено на Allbest.ru
...Подобные документы
SQL як стандартна мова для роботи з реляційними базами даних, стандартні типи даних, які можна використовувати. Числа з плаваючою комою, текстові та спеціальні типи даних. Типи та розміри полів таблиці, обмеження з метою забезпечення цілісності таблиці.
реферат [24,8 K], добавлен 20.06.2010Метод розв’язків рівнянь більш високих порядків. Вибір методу розв'язання задачі Коші. Методи розв'язання крайових задач розглядаються на прикладі звичайного диференціального рівняння другого порядку. Вибір методу інструментальних засобів вирішення задач.
курсовая работа [132,0 K], добавлен 03.12.2009Теорія реляційних баз даних. Реальні системи управління базами даних. Поняття таблиці і відношення, розходження між ними. Ідентифікація рядків таблиці. Потенційні, альтернативні, зовнішні, індексні, вторинні ключі та ключі шифрування і розшифрування.
реферат [292,3 K], добавлен 02.12.2011Системи автоматичного керування. Описання методу стикування розв'язків на основі теореми по n-інтервалів. Застосування методу динамічного програмування (рівняння Р. Белмана). Моделювання задачі синтезу та аналізу на електронній обчислювальній машині.
контрольная работа [632,5 K], добавлен 31.03.2014Розгляд процесу автоматизації бази даних для довідника астронома. Основи реляційних баз даних для проектування інформаційних систем. Застосування тригерів для забезпечення цілісності даних і реалізації складної бізнес–логіки в системних процедурах.
курсовая работа [22,3 K], добавлен 12.03.2019Система управління базами даних, ієрархічна модель даних, її проектування та створення. Інтерфейс Microsoft Access, створення структури таблиці, запитів, форм, звітів, макросів. Аналіз зв'язків між таблицями, що описують поняття проблемного середовища.
курсовая работа [2,7 M], добавлен 10.11.2010Проектування бази даних, що реалізує звіти про графік робіт на об’єктах впродовж місяця. Графічне зображення нагромаджувачів даних. Побудова діаграм потоків даних і переходів станів, таблиць у вигляді двовимірного масиву, запитів. Створення бази даних.
курсовая работа [1,2 M], добавлен 29.02.2012Методологія застосування можливостей середовища MySQL для роботи з базами даних. Реляційна основа та інтерактивні запити. Динамічне визначення даних. Вигляд таблиць після заповнення. Встановлення зв’язків, проектування схеми. Створення запитів та форм.
курсовая работа [2,0 M], добавлен 10.04.2015Задача на пошук найкоротшої відстані, маршруту і шляху холостого пробігу машин. Обгрунтування вибору методу та алгоритм розв'язання задачі. Опис математичної моделі задачі. Інтерфейс та лістинг программи. Заповнення таблиці суміжності для заданого графу.
курсовая работа [315,5 K], добавлен 26.05.2015Порівняльна характеристика систем зберігання даних MaxTronik i Qsan, дослідження їх структури й принципу роботи. Типи носіїв даних. Інтерфейси систем зберігання даних та причини їх втрати. Технологія та рівні RAID. Особливості продуктів MaxTronic та Qsan.
курсовая работа [1,6 M], добавлен 20.11.2014Розробка інформаційної системи зберігання, обробки і моделювання алгоритмів обчислення статистичних даних для спортивний змагань. Характеристика предметної області, архітектури бази даних, установки і запуску системи, основних етапів роботи користувача.
курсовая работа [2,0 M], добавлен 26.12.2011Мова VHDL. Створення проекту для моделювання цифрових і аналогових схем. Синтез і моделювання комбінаційних пристроїв, заданих в табличній формі, за допомогою системи Active-HDL 6.1. Створення ієрархічних структур при проектуванні складних пристроїв.
реферат [287,3 K], добавлен 14.02.2009Використання баз даних та інформаційних систем у сучасному житті. Основні відомості про реляційні бази даних. Зв'язування відносин. Структурована мова запитів SQL. Сутність та загальний опис бази даних "Архітектурна компанія". Приклад створення таблиці.
курсовая работа [320,7 K], добавлен 19.06.2015Розробка структури бази даних. ER-моделі предметної області. Проектування нормалізованих відношень. Розробка форм, запитів, звітів бази даних "Автосалон". Тестування роботи бази даних. Демонстрація коректної роботи форми "Додавання даних про покупців".
курсовая работа [4,0 M], добавлен 02.12.2014Специфікація вимог для кожного з двох користувачів. Концептуальне проектування бази даних. Визначення типів сутностей та зв’язків, доменів. Перетворення концептуальної моделі даних у логічну, визначення набору відношень, підтримки цілісності даних.
курсовая работа [55,1 K], добавлен 15.03.2015Загальні відомості про БД: базові визначення, операції. Характеристика зв'язків і мова моделювання. Технологія вибіркового використання даних БД у Excel: фільтрація, пошук даних, реалізація запитів. Побудова зведених таблиць, звітів.
курсовая работа [200,7 K], добавлен 15.01.2003Опис вхідних та вихідних повідомлень, процедури перетворення даних. Розробка інфологічної моделі, інформаційні об’єкти та їх характеристика. Автоматизація даталогічного проектування. Опис структур таблиць бази даних на фізичному рівні, реалізація запитів.
курсовая работа [2,5 M], добавлен 02.01.2014Види запитів в інформаційній системі. Концептуальна модель бази даних: закази на житловий будинок, лікарню та школу, мости та дороги, графік зведення, матеріали та інші таблиці. Фізична модель бази даних. Створення таблиць та зв'язків у системі.
контрольная работа [25,7 K], добавлен 20.12.2010Розгляд та аналіз основних способів розв’язання звичайних диференціальних рівнянь за методом Рунге-Кутта з автоматичним вибором кроку. Способи оцінки погрішності і збіжності методу Рунге-кутти четвертого порядку з автоматичним вибором довжини кроку.
контрольная работа [31,0 K], добавлен 18.01.2013Можливості застосування середовища MySQL для роботи з базами даних. Завдання системи SQL Server. Розробка концептуальної моделі бази даних "Сервісний центр". Створення таблиць phpmyadmin, заповнення їх даними. Створення запитів і зв’язків у phpmyadmin.
курсовая работа [2,3 M], добавлен 27.05.2015