Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Вступ актуальність теми дослідження

Вступ актуальність теми дослідження




Сторінка5/9
Дата конвертації10.03.2017
Розмір1.31 Mb.
1   2   3   4   5   6   7   8   9

2.2 Математична модель побудови розкладу ВНЗ
Виходячи з вище побудованих математичних моделей об’єктів розкладу, розробимо математичну модель побудови розкладу для ВНЗ.

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

- множина аудиторій;

- множина викладачів;

- множина навчальних груп;

- множина дисциплін;

Множина аудиторій являє собою стале значення яке вводиться користувачем вручну і буде використовуватись для всіх навчальних груп. Дана множина розбивається на дві підмножини:

- перша підмножина, аудиторії для проведення лекційних занять;

- друга підмножина, аудиторії пря проведення практичних занять.

A1r A2r - число аудиторій об'єднання множин {A1r} ∩ {A2r}

Множина викладачів вводиться користувачем з урахуванням таких властивостей:

- спеціалізація;

- науковий ступінь;

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

- навантаження;

Кожен викладач протягом тижня повинен провести заняття

Множина навчальних груп N вводиться користувачем з урахуванням спеціалізації і курсу навчання.

Множина дисциплін D вводиться користувачем з урахуванням таких властивостей:

- кількость годин в програмі;

- кількость навчальних занять по дані дисципліні в тиждень;

- викладач спеціалізація якого відповідає вимогам по дані дисципліні;

- навчальна група спеціалізація якої передбачає вивчення даної дисципліни.

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

Се́рвер (англ. server - «служка») - у комп'ютерній термінології термін може стосуватися окремого комп'ютера чи програми. Головною ознакою в обох випадках є здатність машини чи програми переважну кількість часу працювати автономно, без втручання людини, реагуючи на зовнішні події відповідно до встановленого програмного забезпечення.
Також недоліком є те що розклад занять на кожний тиждень буде унікальним, що призведе до нерівномірного навчального навантаження і погіршить координацію студентів.

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

MDі – множина дисциплін для кожної з груп.

MDіСw - кількість навчальних занять по дані дисципліні в тиждень.

MDіСp – кількість навчальних занять по дані дисципліні передбачено в програмі.

ShM – розклад.

Рисунок 2.2 - Побудова розкладу за властивістю «кількість навчальних занять по дані дисципліні в тиждень»


Маючи множину Wkr і і базуючись на математичних моделях об‘єктів розкладу, які були розроблені в розділі 2.1 можна побудувати загальну формулу створення розкладу.

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

- аудиторний фонд;

- викладач спеціалізація якого відповідає вимогам по дані дисципліні;

- загальна формула побудови розкладу.

Також алгоритми, що наведені на рисунках 2.1 та 2.2 дозволяють визначитися з архітектурою основного ядра програмного забезпечення, що буде виконувати відповідні дії.

3. РОЗРОБКА ПРОГРАМНОГО ПРОДУКТУ ФОРМУВАННЯ РОЗКЛАДУ ДЛЯ ВИЩИХ НАВЧАЛЬНИХ ЗАКЛАДІВ

3.1 Вибір мови програмування.
Мо́ва програмува́ння (англ. Programming language) - це штучна мова, створена для передачі команд машинам, зокрема комп'ютерам. Мови програмування використовуються для створення програм, котрі контролюють поведінку машин, та запису алгоритмів.

Огляд мови програмування Ruby on Rails

RoR є безкоштовним фреймворком, необхідним для розробки додатків, які засновані на архітектурі MVC (Model-View-Controller) і базуються на Ruby.

Архітекту́ра (грец. αρχιτεκτονικη - будівництво) - це одночасно наука і мистецтво проектування будівель, а також власне система будівель та споруд, які формують просторове середовище для життя і діяльності людей відповідно до законів краси.
Головною метою вважається спрощення розробки веб-додатків і їх створення в малій кількості коду, ніж в інших фреймворків, з мінімальною конфігурацією. Метапрограмування Ruby якраз таки дозволяє досягти всього цього.

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

Сам же фреймворк Ruby on Rails і його додаткові розширення розповсюджуються за допомогою такої системи, як Ruby Gems, яка стандартизує канали поширення і формат пакетів.

Класи моделей Ruby on Rails засновані на Active Record бібліотеках, що реалізують об'єктно-реляційний вид даних, які зберігаються в базі.

Бібліоте́ка або книгозбі́рня (грец. βιβλιον - книжка і θηκη - сховище, скриня) - культурно-освітній заклад, що здійснює збирання друкованих і рукописних матеріалів, проводить їх опрацювання і відображення у каталогах, організовує відповідне їх зберігання, збереження і обслуговування ними читачів.
Active Record має:

Відображенням асоціацій, колонок, агрегацій

спадкової ієрархією

Автоотраженіем між таблицями і класами, колонками і атрибутами

Транзакційної підтримкою на рівні БД і на рівні уявлення об'єктів

Правилами валідації об'єктних полів

Здатністю уявлень записів у вигляді дерев або списків

агрегацією об'єктів

Здатністю задати дії, які виробляються на різних етапах життя об'єкта як в окремому класі, так і в самій моделі

Абстрагированием від певної СУБД.

Колона (синонім - соха) - (фр. colonne, лат. columna) - архітектурно оброблена вертикальна опора, як правило, кругла в перерізі. Елемент тримальної конструкції споруд та архітектурних ордерів.
Ієра́рхія (грец. ίεράρχίά, від ίερσς - священний, та άρχή - влада) - поділ на вищі й нижчі посади, чини; суворий порядок підлеглості нижчих щодо посади або чину осіб вищим. В ієрархії між її членами діють вертикальні зв'язки - відносини субординації.
Підтримка PostreSQL, MySQL, DB2, SQLServer, Oracle

Спадкуванням класу від класу ActiveRecord :: Base, який в автоматичному режимі показує таблицю з ім'ям, яке відповідає імені класу, вами створеного

Ставленням об'єктів, що підтримуються за допомогою макросів has_one, has_many, belong_to

Для відображення інтерфейсу користувача в Ruby on Rails існує клас, який має назву Action View, який реалізує розвинену систему шаблонів, так схожих на JavaScript, де мовні інструкції Ruby розташовуються усередині таких тегів, як <% =%> або <%%>.

Інтерфе́йс користувача́ (англ. user interface, UI, дружній інтерфейс) - засіб зручної взаємодії користувача з інформаційною системою. Сукупність засобів для обробки та відображення інформації, максимально пристосованих для зручності користувача; у графічних системах інтерфейс користувача реалізовується багатовіконним режимом, змінами кольору, розміру, видимості (прозорість, напівпрозорість, невидимість) вікон, їхнім розташуванням, сортуванням елементів вікон, гнучкими налаштовуваннями як самих вікон, так і окремих їхніх елементів (файли, папки, ярлики, шрифти тощо), доступністю багатокористувацьких налаштувань.
Також тут є функція render (відображення шаблону), що використовується як усередині шаблону і служить для показу подшаблона, так і всередині контролера.

Взаємодіючі класи з користувачем в Ruby on Rails побудовані за принципом класів ActionController. Тут визначаються методи, доступні за URL через веб. Шаблон уявлення за замовчуванням пов'язаний з будь-яким способом. В даному класі визначаються різні допоміжні методи, які необхідні для управління аспектами, взаємодіючими з користувачем і генерації коду, часто використовується. Наприклад, при роботі з БД для операцій CRUD (Create-Remove-Update-Delete).

Огляд мови програмування PHP

PHP- це широко використовувана мова сценаріїв загального призначення з відкритим вихідним кодом.

Говорячи простіше, PHP це мова програмування, спеціально розроблена для написання web-додатків (сценаріїв), що виконуються на Web-сервері.

Абревіатура PHP означає "Hypertext Preprocessor (Препроцесор Гіпертексту)". Синтаксис мови бере початок з C, Java і Perl.

Гіперте́кст (англ. Hypertext) - текст для перегляду на комп'ютері, який містить зв'язки з іншими документами («гіперзв'язки» чи «гіперпосилання»); читач має змогу перейти до пов'язаних документів безпосередньо з вихідного (первинного) тексту, активувавши посилання.
Генерація - покоління, що представлене більш чи менш одноманітними особинами, які змінюються наступним поколінням, яке при диференціації життєвого циклу може істотно відрізнятися від попереднього. Наприклад: при чергуванні поколінь (гетерогонії, метагенезі) у тлі (Aphidoidea), галиць (Cecidomyiidae) та деяких інших комах.
Си́нтаксис (дав.-гр. σύνταξις - "побудова, порядок, складання", від σύν - "з, разом" і ταξις - "впорядкування") - розділ граматики, що вивчає граматичну будову словосполучень та речень у мові.
PHP досить простий для вивчення. Перевагою PHP є надання web-розробникам можливості швидкого створення динамічних web-сторінок.

Важливою перевагою мови PHP перед такими мовами, як мов Perl і C полягає в можливості створення HTML документів із вбудованими командами PHP.

Значною відзнакою PHP від якого-небудь коду, що виконується на стороні клієнта, наприклад, JavaScript, є те, що PHP-скрипти виконуються на стороні сервера. Ви навіть можете конфігурувати свій сервер таким чином, щоб HTML-файли оброблялися процесором PHP, так що клієнти навіть не зможуть дізнатися, чи отримують вони звичайний HTML-файл або результат виконання скрипта.

PHP дозволяє створювати якісні Web-додатки за дуже короткі терміни, отримуючи продукти, що легко модифікуються і підтримуються в майбутньому.

PHP простий для освоєння, і разом з тим здатний задовольнити запити професійних програмістів.

Веб-се́рвер (англ. Web Server) - це сервер, що приймає HTTP-запити від клієнтів, зазвичай веб-браузерів, видає їм HTTP-відповіді, зазвичай разом з HTML-сторінкою, зображенням, файлом, медіа-потоком або іншими даними.
Майбутнє - суб'єктивна з людського погляду й об'єктивна з погляду стороннього спостерігача часова категорія сприйняття реальності, яка характеризується комплексом явищ і подій, що не здійснились і не відбулися відносно об'єкта, який перебуває в більш ранньому часі.
Профе́сія (фах) - відокремлений («окреслений») у рамках суспільного поділу праці комплекс дій та відповідних знань, що вимагає відповідної освіти.

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



Можливості PHP

PHP може все. Головна область застосування PHP - це написання скриптів, що працюють на стороні сервера; таким чином, PHP здатний виконувати все те, що виконує будь-яка інша програма CGI, наприклад, обробляти дані форм, генерувати динамічні сторінки або відсилати й приймати cookies. Але PHP здатний виконувати й багато інших завдань.



Існують три основні області застосування PHP.

Створення скриптів для виконання на стороні сервера. PHP найбільш широко використовується саме таким чином. Все, що вам знадобиться, це інтерпретатор PHP (у вигляді програми CGI або серверного модуля), веб-сервер і браузер.

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

Створення скриптів для виконання в командному рядку. Ви можете створити PHP-скрипт, здатний запускатися незалежно від веб-сервера та броузера. Все, що вам буде потрібно - парсер PHP. Такий спосіб використання PHP ідеально підходить для скриптів, які повинні виконуватися регулярно, наприклад, за допомогою cron (на платформах * nix або Linux) або за допомогою планувальника завдань (Task Scheduler) на платформах Windows. Ці скрипти також можуть бути використані в задачах простої обробки текстів.

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

PHP доступний для більшості операційних систем, включаючи Linux, багато модифікації Unix (такі, як HP-UX, Solaris і OpenBSD), Microsoft Windows, Mac OS X, RISC OS, та багатьох інших.

Операці́йна систе́ма, скорочено ОС (англ. operating system, OS) - це базовий комплекс програм, що виконує управління апаратною складовою комп'ютера або віртуальної машини; забезпечує керування обчислювальним процесом і організовує взаємодію з користувачем.
Windows - узагальнююча назва операційних систем для ЕОМ, розроблених корпорацією Microsoft. Перші версії були не повноцінними операційними системами, а лише оболонками до ОС MS-DOS. На 2014 рік, за даними сайтів NetApplications та GoStats, Microsoft Windows встановлена більш як на 90% персональних комп'ютерів світу.
Також в PHP включена підтримка більшості сучасних веб-серверів, таких, як Apache, Microsoft Internet Information Server, Personal Web Server, серверів Netscape і iPlanet, сервера Oreilly Website Pro, Caudium, Xitami, OmniHTTPd та багатьох інших. Для більшості серверів PHP поставляється в якості модуля, для інших, що підтримують стандарт CGI, PHP може функціонувати як процесор CGI.

Таким чином, вибираючи PHP, ви отримуєте свободу вибору операційної системи і веб-сервера. Крім того, у вас з'являється вибір між використанням процедурного або об'єктно-орієнтованого програмування або ж їх поєднання. Багато бібліотек коду і великі програми (включаючи бібліотеку PEAR) написані тільки з використанням ООП.

PHP здатний генерувати не тільки HTML. Доступно формування зображень, файлів PDF і навіть роликів Flash (з використанням libswf і Ming), що створюються «на льоту». PHP також здатний генерувати будь-які текстові дані, такі, як XHTML та інші XML-файли. PHP може здійснювати автоматичну генерацію таких файлів і зберігати їх у файловій системі вашого сервера замість того, щоб віддавати клієнту, організовуючи, таким чином, кеш динамічного наповнення, розташований на стороні сервера.

Текстові дані (також текстовий формат) - представлення інформації в обчислювальній системі у вигляді послідовності друкованих символів. В MIME закодованим таким чином даними відповідає тип text/plain.
Фа́йлова систе́ма - спосіб організації даних, який використовується операційною системою для збереження інформації у вигляді файлів на носіях інформації. Також цим поняттям позначають сукупність файлів та директорій, які розміщуються на логічному або фізичному пристрої.

Огляд мови програмування Perl

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

Те́кстовий файл - форма подання послідовності символів у комп'ютері, де кожен символ із задіяного набору символів кодується одним байтом чи послідовністю двох, трьох і т. д. байтів. На відміну від терміна «текстовий формат», що характеризує вміст даних, термін «текстовий файл» стосується файлу та характеризує його як контейнер, який зберігає такі дані.
Він також підходить для написання різних системних програм. Perl простий у використанні, ефективний, але про нього важко сказати, що він елегантний і компактний. Він поєднує в собі кращі риси C, sed, awk, і sh, так що люди, знайомі з цими мовами не повинні зазнавати труднощів при роботі з Perl'ом. По синтаксису Perl блізoк C. На відміну від більшості Unix-утиліт, Perl не обмежує обсяг оброблюваних даних - якщо не бракує в пам'яті, Perl може обробити весь файл як одну строку.Рекурсія може бути довільної глибини. І хеш-таблиці, що використовуються асоціативними масивами ростуть у міру необхідності, щоб запобігти зменшення швидкості виконання. Perl використовує складний алгоритм, що дозволяє переглядати великі обсяги даних дуже швидко. Хоча Perl призначений для роботи з текстом, він може також обробляти двійкові дані і може створювати .dbm файли, подібні асоціативним масивів. Perl дозволяє використовувати регулярні вирази, створювати об'єкти, вставляти в програму на С або C шматки коду на Perl-е, а також дозволяє здійснювати доступ до баз даних, в тому числі Oracle.
В програмуванні, регулярний вираз (від англ. regular expression, скорочено regex або regexp, а іноді ще й називають rational expression ) - це рядок, що описує або збігається з множиною рядків, відповідно до набору спеціальних синтаксичних правил.
Якщо ви стикаєтеся з завданнями, для вирішення яких зазвичай використовувалися sed, awk або sh, але вони не забезпечують коштів для її вирішення або необхідно, щоб програма виполняласься трохи швидше, і Ви не хочете писати програму на C, то Perl для вас. Є також транслятори, що перетворюють ваш код на sed і awk в вихідні на Perl'e.
Трансля́тор (англ. translator) - програма або технічний засіб, який виконує перетворення чи іншу обробку текстів програм.

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



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

Опис MVC архітектури

В якості мови програмування був обраний Java, тому що стек технологій JavaEE забезпечує побудову масштабованої, надійної і гнучкої серверної архітектури.

Спочатку єдиним API, доступним в Java для розробки серверних web-додатків, була технологія сервлетів. У сервлетів було багато переваг порівняно зі сценаріями CGI, які раніше були домінуючою технологією. Тим не менш, у сервлетів був один суттєвий недолік. Оскільки код HTML, який буде представлений у вікні оглядача, повинен був вбудовуватися в код Java, то більшу частину коду сервлета було дуже важко підтримувати [22]. Подібний код був не дуже зручний у супроводі.

Один з поширених способів наблизитися до розв'язання цієї проблеми полягає в тому, щоб використовувати шаблон проектування Модель-Представлення-Контроллер (Model-View-Controller). Цей шаблон забезпечує чіткий поділ проблем, надаючи артефакти, які використовуються виключно в якості даних (моделі), в той час як інші артефакти відповідають (використовуються) виключно за відображення (подання) даних, а третій несуть відповідальність за управління даними (контролер) і передають управління необхідному поданням [23]. Базова концепція моделі MVC представлена на рисунку 3.1.

Конце́пція (лат. conceptio - розуміння) - система поглядів, те або інше розуміння явищ і процесів; єдиний, визначальний задум.


базовая концепция модели mvc

Рисунок 3.1 – Базова концепція моделі MVC


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

Реалізація MVC моделі.

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

Протоко́л - (фр. protocole, пізньолат. protocollum з пізньогрец. Πρωτόκολλον (Πρώτο+κολλάω) - перший, передній+приклеюю) - перший лист, приклеєний до звитку папіруса чи нотаріального документа, на якому була написана дата.
При кожній зміні внутрішніх даних в моделі вона повідомлює всі залежні від неї уявлення, і представлення оновлюється. Для цього використовується шаблон "Спостерігач" При обробці реакції користувача він вибирає, залежно від потрібної реакції, потрібний контролер, який забезпечить ту чи інший зв'язок з моделлю. Для цього використовується шаблон "стратегія" або замість цього може бути модифікація з використанням шаблону "грудки". А для можливості однотипного звернення з подоб'ектами складно-складеного ієрархічного виду може використовуватися шаблон "Компоновщик". Крім того, можуть використовуватися й інші шаблони проектування, наприклад, "Фабричний метод" який дозволить задати за замовчуванням тип контролера для відповідного виду [29].

Розрізняють дві основні модифікації моделі MVC [30]:

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

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

Активна модель-модель оповіщає контроллер про те, що в ній відбулися зміни, а представлення, які зацікавлені в оповіщенні, підписуються на ці повідомлення. Це дозволяє зберегти незалежність моделі як від контролера, так і від уявлення.

У даній роботі була обрана активна модель MVC. Для кожного рівня MVC моделі буде обраний фреймворк який реалізує дану задачу.

БД – MySQL

MySQL був розроблений компанією «ТсХ» для підвищення швидкодії обробки великих баз даних. Ця система керування базами даних (СКБД) з відкритим кодом була створена як альтернатива комерційним системам.

Комерційна організація, також Компанія (англ. Company) - юридична особа, що ставить собі за основну мету своєї діяльності одержання прибутку, на відміну від некомерційної організації, яка не має на меті отримання прибутку і не розподіляє отриманий прибуток між учасниками.
Систе́ма керування ба́зами да́них (СКБД) або Систе́ма управлі́ння ба́зами да́них (СУБД) - комплекс програмного забезпечення, що надає можливості створення, збереження, оновлення та пошуку інформації в базах даних з контролем доступу до даних.
MySQL з самого початку була дуже схожою на mSQL, проте з часом вона все розширювалася і зараз MySQL — одна з найпоширеніших систем керування базами даних. Вона використовується, в першу чергу, для створення динамічних веб-сторінок, оскільки має чудову підтримку з боку різноманітних мов програмування.
Динамічна веб-сторінка (англ. dynamic web page) - веб-сторінка, вміст якої може змінюватись. В початковому варіанті гіпертекстова навігація відбувалася між «статичними» документами. Однак з часом до веб-сторінок було додано інтерактивності, і такі сторінки почали називати динамічними.

MySQL виникла як спроба застосувати mSQL до власних розробок компанії: таблиць, для яких використовувалися ISAM — підпрограми низького рівня для індексного доступу до даних. У результаті був вироблений новий SQL-інтерфейс, але API-інтерфейс залишився в спадок від mSQL. Звідки походить назва «MySQL» — достеменно не відомо. Розробники дають два варіанти: або тому, що практично всі напрацювання компанії починалися з префікса My, або на честь дівчинки на ім'я My, дочки Майкла Монті Віденіуса, одного з розробників системи[2].

Логотип MySQL у вигляді дельфіна носить ім'я «Sakila». Він був обраний з великого списку запропонованих користувачами «імен дельфіна». Ім'я «Sakila» було відправлено Open Source-розробником Ambrose Twebaze.

В січні-лютому 2008 Sun Microsystems придбала розробника системи керування базами данних MySQL за $1 млрд. Після поглинання у 2009 році Sun Microsystems компанією Oracle Corporation MySQL стала власністю Oracle.

Oracle (Oracle Corporation) - американська корпорація, найбільший у світі розробник програмного забезпечення для організацій, великий постачальник серверного обладнання. Oracle Corporation (nasdaq ORCL) - одна з найбільших американських компаній, розробників систем керування базами даних, знарядь для розробки баз даних, а також ERP-систем.

За час розвитку під орудою Oracle дедалі більше відокремлює MySQL від спільноти і робить процес розробки все менш прозорим.

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

MySQL — компактний багатопотоковий сервер баз даних. Характеризується високою швидкістю, стійкістю і простотою використання.

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

Можливості сервера MySQL:

простота у встановленні та використанні;

підтримується необмежена кількість користувачів, що одночасно працюють із БД;

кількість рядків у таблицях може досягати 50 млн;

висока швидкість виконання команд;

наявність простої і ефективної системи безпеки.

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

Структура БД

Основними таблицями в базі даних при формувані розкладу занять є :

- викладач

- аудититорії

-предмет


-розклад

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

Семіна́рське заня́ття - форма навчального заняття, при якій викладач організовує дискусію навколо попередньо визначених тем, до котрих студенти готують тези виступів на підставі індивідуально виконаних завдань (рефератів).

На рисунку 3.2 зображена схема бази даних.
e:\6 курс ! _ ! _ !\редагування 1\bd.jpg

Рисунок 3.2 – схема бази даних


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

e:\6 курс ! _ ! _ !\диплом ! ! !\algoritm.png

Рисунок 3.3 – Алгоритм програмної реалізації формування розкладу


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

Рисунок 3.4 - Сформований розклад у вигляді таблиці представленої користувачу


1   2   3   4   5   6   7   8   9



  • 2.3 В исновок
  • 3. РОЗРОБКА ПРОГРАМНОГО ПРОДУКТУ ФОРМУВАННЯ РОЗКЛАДУ ДЛЯ ВИЩИХ НАВЧАЛЬНИХ ЗАКЛАДІВ 3 .1 Вибір мови програмування
  • Гіпертексту )". Синтаксис
  • 3.2 Вибір архітектури побудови програмного забезпечення. Для реалізації програмного забезпечення було прийнято рішеня вибрати MVC