відмовитися від будь-яких властивостей системи).
Під оптимізацією запитів в реляційних СУБД зазвичай мають на увазі такий спосіб обробки запитів, при якому з початкового поданням запиту шляхом його перетворень виробляється оптимальний процедурний план його виконання.
Відповідні перетворення початкового подання запиту виконуються спеціальним компонентом СУБД - оптимізатором, і оптимальність виробленого ним плану виконання запиту носить суб'єктивний характер, оскільки критерій оптимальності закладений розробником в оптимізатор.
Такі інструментальні засоби, що забезпечують автоматизацію побудови компіляторів є, наприклад, в системах DB2, Oracle, Informix.
Загальні поняття об'єктно-орієнтованого підходу:
Напрям об'єктно-орієнтованих баз даних з'являлося в середині 1980-х рр.. Найбільш активно цей напрямок розвивається в останні роки.
Виникнення напрямки ООБД визначається насамперед потребами практики - необхідністю розробки складних інформаційних прикладних систем, для яких технологія попередніх систем БД не була цілком задовільною.
Звичайно, ООБД виникли не на порожньому місці. Відповідний базис забезпечують як попередні роботи в області БД, так і давно розвиваються напрямки мов програмування з абстрактними типами даних і об'єктно-орієнтованих мов програмування.
Що стосується зв'язку з попередніми роботами в області БД, то, на наш погляд, найбільш сильний вплив на роботи в області ООБД надають опрацювання реляційних СУБД і наступне (хронологічно) за ними сімейство БД, в яких підтримується управління складними об'єктами.
Крім того, винятковий вплив на ідеї та концепції ООБД і всього об'єктно-орієнтованого підходу надав підхід до семантичного моделювання даних. Достатній вплив роблять також розвиваються паралельно з ООБД напрямки дедуктивних і активних БД.
У найбільш загальній постановці об'єктно-орієнтований підхід базується на концепціях:
? об'єкту і ідентифікатора об'єкта;
? атрибутів і методів;
? класів;
? ієрархії і спадкування класів.
Будь сутність реального світу в об'єктно-орієнтованих мовах і системах моделюється у вигляді об'єкта. Будь-який об'єкт при своєму створенні отримує генерований системою унікальний ідентифікатор, який пов'язаний з об'єктом весь час його існування і не змінюється при зміні стану об'єкта.
Кожен об'єкт має стан і поведінку. Стан об'єкта - набір значень його атрибутів. Поведінка об'єкта - набір методів (програмний код), що оперують над станом об'єкта. Значення атрибута об'єкта - це теж певний об'єкт чи безліч об'єктів. Стан і поведінка об'єкта інкапсульовані в об'єкті; взаємодіють об'єкти на основі передачі повідомлень і виконання відповідних методів.
Безліч об'єктів з одним і тим же набором атрибутів і методів утворює клас об'єктів. Об'єкт повинен належати тільки одному класу (якщо не враховувати можливості успадкування). Допускається наявність примітивних визначених класів, об'єкти-екземпляри яких не мають атрибутів: цілі, рядка і т.д. Клас, об'єкти якого можуть служити значеннями атрибута об'єктів іншого класу, називається доменом цього атрибута. [9., Стор 230-...