zinet home
home home
home ИНТЕЛЛЕКТ-ПОРТАЛ
home Стартовал прием материалов в сборник XХХIX-й научной конференции. Требования к публикациям - в разделе "Объявления".

На главную | Объявления | Отчеты предыдущих конференций | История Украины | Контакты

РЕСУРСЫ ПОРТАЛА:

Тридцать восьмая научно-практическая конференция
(23 - 28 мая 2016 г.)


Тридцать седьмая научно-практическая конференция
(19 - 22 апреля 2016 г.)


Тридцать шестая научно-практическая конференция
(29 декабря 2015 - 5 января 2016 г.)


Тридцать пятая научно-практическая конференция
(24-27 ноября 2015 г.)


Тридцать четвертая научно-практическая конференция
(13-17 октября 2015 г.)


Тридцать третья научно-практическая конференция
(20-27 мая 2015 г.)


Тридцать вторая научно-практическая конференция
(2-7 апреля 2015 г.)


Тридцать первая научно-практическая конференция
(25 февраля - 1 марта 2015 г.)


Тридцатая научно-практическая конференция
(19-25 января 2015 г.)


Двадцать девятая международная научно-практическая конференция
(19-25 ноября 2014 г.)


Двадцать восьмая международная научно-практическая конференция
(08-13 октября 2014 г.)


Двадцать седьмая научно-практическая конференция
(20-25 мая 2014 г.)


Двадцать шестая научно-практическая конференция
(7-11 апреля 2014 г.)


Двадцать пятая юбилейная научно-практическая конференция
(3-7 марта 2014 г.)


Двадцать четвертая научно-практическая конференция
(20-25 января 2014 г.)


Двадцать третья научно-практическая конференция
(10-15 декабя 2013 г.)


Двадцать вторая научно-практическая конференция
(4-9 ноябя 2013 г.)


Первая международная научно-практическая конференция
(14-18 мая 2013 г.)


Двадцать первая научно-практическая конференция
(14-18 мая 2013 г.)


Двадцатая научно-практическая конференция
(20-28 апреля 2013 г.)


Девятнадцатая научно-практическая конференция
(26 февряля - 3 марта 2013 г.)


Восемнадцатая научно-практическая конференция
(22-26 декабря 2012 г.)


Семнадцатая научно-практическая конференция
(22-26 октября 2012 г.)


Шестнадцатая научно-практическая конференция
(09-14 апреля 2012 г.)


Пятнадцатая научно-практическая конференция
(01 - 07 марта 2012 г.)


Четырнадцатая научно-практическая конференция
(12-20 декабря 2011 г.)


Тринадцатая научно-практическая конференция
(28 октября - 09 ноября 2011 г.)


Двенадцатая научно-практическая конференция
(28 мая - 06 июня 2011 г.)


Одинадцатая научно-практическая конференция
(26 апреля - 04 мая 2011 г.)


Десятая научно-практическая конференция
(15-23 марта 2011 г.)


Девятая научно-практическая конференция
(27-31 декабря 2010 г.)


Восьмая научно-практическая конференция
(05-12 декабря 2010 г.)


Седьмая научно-практическая конференция
(28 мая - 7 июня 2010 г.)


Шестая научно-практическая конференция
(1-15 апреля 2010 г.)


Пятая научно-практическая конференция
(20-27 мая 2009 г.)


Четвертая научно-практическая конференция
(10-17 апреля 2009 г.)


Третья научно-практическая конференция
(20-27 декабря 2008 г.)


Вторая научно-практическая конференция
(1-7 ноября 2008 г.)


Первая научно-практическая конференция
(10-15 мая 2008 г.)



НАШИ ПАРТНЕРЫ:

Студия веб-дизайна www.zinet.info



Студия ландшафтного дизайна Флора-МК


Уникальное предложение!



Сайт-визитка - теперь
всего за 200 грн!

подробнее>>>



ОБ’ЄКТНО-РЕЛЯЦІЙНЕ ВІДОБРАЖЕННЯ НА ОСНОВІ ДИНАМІЧНОЇ КОДОГЕНЕРАЦІЇ

 

Стасюк А.В.

Україна, м. Київ

Національний технічний університет України

«Київський політехнічний інститут»

 

This paper concerns the task of accessing data storages for purpose of providing information about business processes to clients, modifying this information and sending it back to storage. The research concentrates on relational databases as on one of the most popular approach in the modern computer systems. We also consider data storages in conjunction with client software which interacts with them. The main subject of our research is minimization of amount of source code needed to be written to implement all functional requirements in the field of data access.

 

Реляційні бази даних на сьогодні є дуже популярною технологією зберігання даних. Існуючі реалізації СУБД підтримують транзакційність та розподілені обчислення і можуть зберігати й обробляти дуже великі обсяги інформації.

Забезпечення зручного доступу до реляційних СУБД вимагає створення спеціалізованого програмного забезпечення, яке повинне проводити обмін інформацією зі сховищем, постійно конвертуючи дані формату СУБД у придатний для обробки формат та навпаки. Складність цього питання полягає в тому, що реляційна модель та обчислювальні моделі, які використовуються сучасними мовами програмування (не важливо – процедурними, функціональними або об’єктно-орієнтованими) істотно відрізняються, а тому виникає гостра необхідність створення засобів для автоматизації процесу відображення реляційної моделі на відповідну обчислювальну модель. В ряді робіт [1, 2] запропоновані рішення даної задачі, але такі рішення мають певні недоліки, про що буде сказано далі.

На сьогодні, великою популярністю користуються інструменти об’єктно-реляційного відображення (Hibernate, Entity Framework тощо). Однак основним їх недоліком є статична генерація програмного коду. Такий підхід потенційно приводить до значних ускладнень під час розробки та підтримки продукту. По-перше, незважаючи на те, що статичний програмний код генерується автоматично, його компіляція відбувається так само як і написаного вручну, тобто поведінку готової програми можна змінити лише повністю перекомпілювавши її. Це не є великою проблемою якщо система реалізує автоматичне оновлення своїх компонентів, однак у разі відсутності такого механізму випуск нових версій продукту приводитиме до значних витрат. По-друге, у випадках, коли необхідно додати деякі нестандартні функціональні можливості у статично згенерований код, вони будуть втрачені під час повторної статичної генерації. По-третє, статична генерація коду може значно збільшити загальний обсяг початкового коду продукту, що в свою чергу веде до зростання часу компіляції та ускладнює його подальшу підтримку.

Отже, зважаючи на популярність реляційних баз даних і об’єктно-орієнтованих мов, а також на вказані недоліки існуючих інструментів об’єктно-реляційного відображення, можна вважати задачу заміни статичної кодогенерації на динамічну актуальною на сьогодні.

Постановка задачі

Основною задачею дослідження є зменшення кількості програмного коду, що відповідає за доступ до даних, необхідного для реалізації функціональних вимог деякої інформаційної системи.

Принципова можливість вирішення поставленої задачі випливає з того, що реляційна модель СУБД та обчислювальна модель деякої мови програмування залишаються незмінними, незалежно від конкретної прикладної області їх застосування.

В даному випадку існує уніфіковане відображення реляційної моделі на об’єктно-орієнтовану. Це означає, що усі необхідні класи можуть бути створені автоматично на основі деякої початкової конфігурації. Саме цим шляхом ідуть усі сучасні інструменти об’єктно-реляційного відображення. В даній роботі досліджуються методи створення класів на етапі виконання, тобто початковий програмний код у текстовому вигляді не генерується та не компілюється. Це забезпечує суттєве зменшення кількості програмного коду та більш просте внесення змін до уже існуючої системи.

Модель дослідження

Нехай показником, який покращується, буде сумарний обсяг початкового коду та додаткової конфігурації, необхідної для коректного налаштування об’єктно-реляційного відображення. Для спрощення розрахунків вважатимемо, що об’єм тексту файлів програм та конфігураційних файлів визначається кількістю рядків у ньому. Окрім цього, знехтуємо розмірами секцій імпорту зовнішніх залежностей (кожна мова програмування в тому чи іншому вигляді надає такі інструменти).

Позначимо як  розмір конфігурації для динамічної кодогенерації,  – для статичної. Нехай кількість рядків статично згенерованого коду – . Тоді показником ефективності методу динамічної кодогенерації буде коефіцієнт оптимізації , який розраховується за наступною формулою:

Коефіцієнт оптимізації показує, у скільки разів зменшується об’єм статичного тексту, необхідного для забезпечення доступу до даних. Метод динамічної кодогенерації буде ефективним за умови .

Спробуємо приблизно розрахувати величини ,  та . Для цього зробимо наступні припущення. Нехай деяка реляційна БД містить  сутностей. Середня кількість атрибутів (полів) сутності –  атрибутів (полів). Нехай кожна сутність потребує  рядків конфігурації для статичної кодогенерації та  – для динамічної, а також  рядків програмного коду. Кожен атрибут вимагає рядків конфігурації для статичної кодогенерації та  – для динамічної, а також  рядків програмного коду.

Тоді, виходячи із позначень, введених вище, можемо записати такі співвідношення:

Підставивши ці вирази у формулу для обчислення коефіцієнта оптимізації отримуємо:

Таким чином, ми отримали спосіб розрахунку коефіцієнта оптимізації до реалізації конкретного проекту.

Приблизний розрахунок ефективності методу

Для перевірки ефективності запропонованого методу спробуємо провести деякі спрощені розрахунки потенційного значення коефіцієнта оптимізації, яку можна отримати в результаті впровадження методу динамічної кодогенерації.

Припустимо, що обидва інструменти (динамічний та статичний) використовують однакову конфігурацію. Нехай тоді , . Окрім цього, покладемо =5, . Вказані значення приблизно відповідають реальним значенням для мови програмування C# та інструмента NHibernate. Проведемо розрахунки коефіцієнтів оптимізації (табл. 1).

 

Таблиця 1

Середня кількість полів

Коеф. оптимізації

1

5

3,077

2

10

3,261

3

15

3,333

 

Відповідно до табл. 1, з ростом середньої кількості полів коефіцієнт оптимізації також зростає, що означає зростання ефективності методу із ускладненням цільової бази даних.

Висновки

В даній роботі був досліджений метод використання динамічної кодогенерації для об’єктно-реляційного відображення, а саме була обґрунтована актуальність задачі та визначені недоліки існуючих інструментів. Також була запропонована спрощена модель дослідження то проведені приблизні розрахунки, які доводять ефективність запропонованого методу.

 

Література

1.     Макфадден Ф. Р., Прескот М. Б., Хоффер Дж. А. Управління сучасними базами даних – Бостон: Едісон-Веслі Лонгман, 2006. – 622с.

2.     Elizabeth J. O’Neil. Object/relational mapping: hibernate and the entity data model – University of Massachusetts, Boston, 2008.



Первая научно-практическая конференция
"Инновационный потенциал украинской науки - ХХI век"
(10-15 мая 2008 г.)


(отчет)
Вторая научно-практическая конференция
"Инновационный потенциал украинской науки - ХХI век"
(1-7 ноября 2008 г.)
(отчет)
Третья научно-практическая конференция
"Инновационный потенциал украинской науки - ХХI век"
(20-27 декабря 2008 г.)
(отчет)
Четвертая научно-практическая конференция
(10-17 апреля 2009 г.)
(отчет)
Пятая научно-практическая конференция
(20-27 мая 2009 г.)
(отчет)
Шестая научно-практическая конференция
(1-15 апреля 2010 г.)
(отчет)
Седьмая научно-практическая конференция
(28 мая - 7 июня 2010 г.)
(отчет)
Восьмая научно-практическая конференция
(05-12 декабря 2010 г.)
(отчет)
Девятая научно-практическая конференция
(27-31 декабря 2010 г.)
(отчет)
Десятая научно-практическая конференция
(15-23 марта 2011 г.)
(отчет)
Одинадцатая научно-практическая конференция
(26 апреля 04 мая 2011 г.)
(отчет)
Двенадцатая научно-практическая конференция
(28 мая - 06 июня 2011 г.)
(отчет)
Тринадцатая научно-практическая конференция
(28 октября - 09 ноября 2011 г.)
(отчет)
Четырнадцатая научно-практическая конференция
(12-20 декабря 2011 г.)
(отчет)
Пятнадцатая научно-практическая конференция
(01-07 марта 2012 г.)
(отчет)
Шестнадцатая научно-практическая конференция
(09-14 апреля 2012 г.)
(отчет)
Семнадцатая научно-практическая конференция
(22-26 октября 2012 г.)
(отчет)
Восемнадцатая научно-практическая конференция
(22-26 декабря 2012 г.)
(отчет)
Девятнадцатая научно-практическая конференция
(26 февраля - 3 марта 2013 г.)
(отчет)
Двадцатая научно-практическая конференция
(20-28 апреля 2013 г.)
(отчет)
Двадцать первая научно-практическая конференция
(13-18 мая 2013 г.)
(отчет)
Первая международная научно-практическая конференция
"Перспективные направления отечественной науки - ХХI век"
(13-18 мая 2013 г.)
(отчет)
Двадцать вторая научно-практическая конференция
(4-9 ноября 2013 г.)
(отчет)
Двадцать третья научно-практическая конференция
(10-15 декабря 2013 г.)
(отчет)
Двадцать четвертая научно-практическая конференция
(20-25 января 2014 г.)
(отчет)
Двадцать пятая юбилейная научно-практическая конференция
(3-7 марта 2014 г.)
(отчет)
Двадцать шестая научно-практическая конференция
(7-11 апреля 2014 г.)
(отчет)
Двадцать седьмая научно-практическая конференция
(20-25 мая 2014 г.)
(отчет)
Двадцать восьмая научно-практическая конференция
(08-13 октября 2014 г.)
(отчет)
Двадцать девятая научно-практическая конференция"
(19-25 ноября 2014 г.)
(отчет)
Тридцатая научно-практическая конференция
(19-25 января 2015 г.)
(отчет)
Тридцать первая научно-практическая конференция
(25 февраля - 1 марта 2015 г.)
(отчет)
Тридцать вторая научно-практическая конференция
(2 - 7 апреля 2015 г.)
(отчет)
Тридцать третья научно-практическая конференция
(20 - 27 мая 2015 г.)
(отчет)
Тридцать четвертая научно-практическая конференция
(13 - 17 октября 2015 г.)
(отчет)
Тридцать пятая научно-практическая конференция
(24 - 27 ноября 2015 г.)
(отчет)
Тридцать шестая научно-практическая конференция
(29 декабря 2015 - 5 января 2016 г.)
(отчет)
Тридцать седьмая научно-практическая конференция
(19 - 22 апреля 2016 г.)
(отчет)
Тридцать восьмая научно-практическая конференция
(23 - 25 мая 2016 г.)
(отчет)

На главную | Объявления | Отчеты предыдущих конференций | История Украины | Контакты

Copyright © Zinet.info. Разработка и поддержка сайта - Студия веб-дизайна Zinet.info