нойменні властивості у об'єктів АБОНЕНТ і КАТАЛОГ. Сенс такої властивості буде визначатися тим об'єктом, в який воно інкапсульоване.
Успадкування, навпаки, поширює область видимості властивості на всіх нащадків об'єкта. Так, всім об'єктам типу КНИГА, що є нащадками об'єкта типу КАТАЛОГ, можна приписати властивості об'єкта - батька: isbn, ІДК, назва і автор. Якщо необхідно розширити дію механізму спадкування на об'єкти, які не є безпосередніми родичами (наприклад, між двома нащадками одного з батьків), то в їх загальному предка визначається абстрактне властивість типу abs. Так, визначення абстрактних властивостей квиток і номер в об'єкті БІБЛІОТЕКА призводить до спадкоємства цих властивостей усіма дочірніми об'єктами АБОНЕНТ, КНИГА і ВИДАЧА. Не випадково тому значення властивості квиток класів АБОНЕНТ і ВИДАЧА, показаних на малюнку, будуть однаковими - 00015. p> Поліморфізм в об'єктно-орієнтованих мовах програмування означає здатність одного і того ж програмного коду працювати з різнотипними даними. Іншими словами, він означає допустимість в об'єктах різних типів мати методи (процедури або функції) з однаковими іменами. Під час виконання об'єктної програми одні й ті ж методи оперують з різними об'єктами в залежності від типу аргументу. Стосовно до нашої об'єктно-орієнтованої БД поліморфізм означає, що об'єкти класу КНИГА, мають різних батьків з класу КАТАЛОГ, можуть мати різний набір властивостей. Отже, програми роботи з об'єктами класу КНИГА можуть містити поліморфний код.
Пошук в об'єктно-орієнтованої БД полягає у з'ясуванні подібності між об'єктом, що задається користувачем, і об'єктами, що зберігаються в БД.
Визначено користувачем об'єкт, званий об'єктом-метою (властивість об'єкта має тип goal ), в загальному випадку може представляти собою підмножина всієї збереженої в БД ієрархії об'єктів. Об'єкт-мета, а також результат виконання запиту можуть зберігатися в самій базі. Приклад запиту про номери читацьких квитків та іменах абонентів, які отримували в бібліотеці хоча б одну книгу, показаний на рис.2.
В
Рис 2. Частковий БД з об'єктом-метою
Основною перевагою об'єктно-орієнтованої моделі даних у порівнянні з реляційною є можливість відображення інформації про складних взаємозв'язках об'єктів. Об'єктно-орієнтована модель даних дозволяє ідентифікувати окрему запис бази даних і визначати функції їх обробки.
Недоліками об'єктно-орієнтованої моделі є висока понятійна складність, незручність обробки даних і низька швидкість виконання запитів.
4. Нормалізація відносин
Важливим критерієм якості розробляється схеми БД є швидкість виконання операцій оновлення даних (вставки, модифікації, видалення записів).
Вибір схеми БД визначає виникнення в процесі її експлуатації тих чи інших аномалій оновлення.
Аномалія оновлення - поява в базі даних неузгодженості даних при виконанні операцій вставки, видалення, модифікації записів.
Аномалії модифікації - виникнення неузгодженості записів у
таблиці при зміні даних у одного запису.
Для відносини "Студент" (ПІБ, Група, Староста), де у стовпці "Група" зберігається повна назва групи, а стовпчик "Староста" містить ПІБ старости групи, зміна значення "Староста" (наприклад, для усунення помилки) може призвести до існування більше одного старости однієї і тієї ж групи.
Аномалії видалення - видалення зайвої інформації при видаленні запису.
Для відносини "Студент" (ПІБ, Група, Староста), видалення студента може призвести до видалення з БД і ПІБ старости групи (у тому випадку, якщо для даної групи запис - єдина). p> Аномалії вставки - додавання зайвої інформації або виникнення суперечать значень в деяких стовпцях при вставці нового запису
Для відносини "Студент" (ПІБ, Група, Староста), де у стовпці "Група" зберігається повне назва групи, а стовпчик "Староста" містить ПІБ старости групи, додавання назви нової групи спричинить обов'язкове визначення ПІБ студента і старости, в той час як ці дані можуть бути поки не відомі. У той же час, при додаванні нового студента значення поля "Староста" в нового запису може не співпадати із значенням даного поля для іншого студента цієї ж групи.
Для збереження коректності БД необхідно усувати дані аномалії, виконуючи додаткові операції з перегляду і модифікації даних.
Втрати в продуктивності, викликані виконанням дій по усуненню аномалій, можуть бути вельми істотними, при цьому дані втрати, в більшості випадків, не є неминучими, а визначаються невдалим вибором схеми БД.
Зазначені аномалії пов'язані з надмірністю (дублюванням) даних в БД.
Визначити дублювання даних у БД, а значить і передбачити можливість виникнення аномалій оновлення можна на етапі проектування структури бази даних.
Одним з ...