ня даних і спрощену підтримку дуже великих таблиць;
- виконання онлайнових операцій над індексами;
- гранульовані операції резервного копіювання/відновлення;
- швидка ініціалізація файлів.
Основною перевагою за яке була обрана дана СУБД, звичайно ж є його висока надійність і швидкодію. Крім іншого так само планується використовувати деякі додаткові можливості, такі наприклад, як побудова схеми бази даних [20].
1.2.5.2Вибор засобів реалізації програми
Мова програмування. У першу чергу слід зазначити, що мова програмування повинен бути об'єктно-орієнтованим. У даній області існує кілька мов програмування найвідомішими з яких можна назвати ObjectPascalі C ++. Щоб визначитися з вибором можна спробувати розглянути відмінності даних мов в ключових моментах об'єктів-орієнтованого програмування.
Виділимо ці ключові моменти.
Перша риса ООП - це визначення класів, абстрактних типів даних, які інкапсулюють своє утримання і роблять доступними деякі операції або методи. Класи зазвичай є базисом модульності, інкапсуляції і абстракцій даних в мовах ООП.
Друга ключова риса - успадкування, спосіб визначення нового типу, наслідуючи елементи (зміст і методи) існуючого і модифікуючи або розширюючи їх. Це сприяє вираженню спеціалізації і генералізації. Третя риса, відома як поліморфізм, дозволяє вам посилатися на об'єкти різних класів (зазвичай усередині деякої ієрархії) однорідним чином. Це робить класи ще більш зручними і робить програми, засновані на них, легше для розширення і підтримки.
Класи, спадкування і поліморфізм - фундаментальні властивості, що вимагаються від мови, що претендує називатися об'єктно-орієнтованим.
Мови програмування можна оцінити по тому, наскільки вони суворі до типам. Контроль типів включає перевірку існування викликаються методів, типів їх параметрів, перевірку кордонів масивів і т.д. C ++ і Object pascal воліють широкий контроль під час компіляції. С ++, можливо, найменш точний у цьому відношенні, тоді як ObjectPascal використовує перевірку типів найбільш широко. Причина цього полягає в тому, що С ++ забезпечує сумісність з С-мовами, які підтримують слабку форму перевірки типів під час компіляції. Наприклад, C і C ++ вважають, що всі арифметичні типи сумісні (хоча привласнення float цілої змінної викличе попередження компілятора). У Object pascal логічне значення не ціла, а символ - ще один відмінний і несумісний тип.
ИC ++ і Object Pascalгібрідние мови з різними об'єктними моделями. Мови з простою об'єктною моделлю, такі як C ++, дозволяють програмістам створювати об'єкти в стеку, в купі (у хіпі - heap) або в статичної пам'яті. У цих мовах змінна типу клас відповідає об'єкту в пам'яті. У посилально-об'єктної моделі кожен об'єкт динамічно розміщується в купі, а змінна типу клас фактично є посиланням або хендлом об'єкта в пам'яті (технічно це щось на зразок покажчика). Object pascal обидва використовують цю посилальну модель. Це означає, що необхідно не забути виділити пам'ять для об'єкта.
НД ++, якщо у нас є клас myclass з методом mymethod, створення об'єкта буде відбуватися таким чином:
obj ;. mymethod ();
Пам'ять для об'єкта класу myclass з ім'ям obj виділяється в стеку, з можливістю відразу почати використовувати об'єкт, як це зроблено у другому рядку.
ВOobject pascal перш ніж використовувати об'єкт, ви повинні викликати create для виділення під нього пам'яті:
var: myclass ;:=myclass. create;
obj. mymethod;
Слід звернути увагу на те, що ВС ++ ви часто повинні використовувати покажчики і посилання на об'єкти. Тільки використовуючи покажчики і посилання, ви можете добитися поліморфізму. Посилально-об'єктна модель ж, навпаки, робить використання покажчиків імовірною, приховуючи від програміста складність цього підходу.
Після створення і використання об'єкта, необхідно його знищити, щоб не займати невживану пам'ять.
У C ++ знищити об'єкт, розташований в стеку, досить просто. З іншого боку, знищення об'єктів, створених динамічно, часто є складною проблемою. Є багато рішень, включаючи підрахунок посилань і інтелектуальні покажчики, але не одне з них не дає простого рішення.
Компоненти Object pascal підтримують ідею власника (owner) об'єкта: власник стає відповідальним за знищення всіх об'єктів, якими він володіє.
Це робить управління знищенням об'єкта дуже простим і прямим. Delphi також використовує механізм підрахунку посилань для р...