Funkcjonalność relacyjnej i obiektowej bazy danych po usunięciu z modelu atrybutów przyjmujących wartości Null



Podobne dokumenty
Baza danych. Baza danych to:

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Paweł Kurzawa, Delfina Kongo

Wykład 2. Relacyjny model danych

Bazy danych - wykład wstępny

Oracle11g: Wprowadzenie do SQL

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Relacyjne bazy danych. Podstawy SQL

Wykład I. Wprowadzenie do baz danych

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Systemy baz danych. mgr inż. Sylwia Glińska

WPROWADZENIE DO BAZ DANYCH

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

PRZEWODNIK PO PRZEDMIOCIE

1 Wstęp do modelu relacyjnego

Technologia informacyjna

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Oracle PL/SQL. Paweł Rajba.

Przykładowa baza danych BIBLIOTEKA

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Relacyjne bazy danych. Podstawy SQL

Wprowadzenie do baz danych

Bazy danych Wykład zerowy. P. F. Góra

Autor: Joanna Karwowska

Tworzenie projektu bazy danych z kreatorem odnośników - Filmoteka. Projekt tabel dla bazy Filmoteka

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Programowanie obiektowe

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

WPROWADZENIE DO BAZ DANYCH

PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

Relacyjne bazy danych

Programowanie obiektowe

Model relacyjny. Wykład II

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Normalizacja baz danych

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Model relacyjny. Wykład II

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Podstawowe zagadnienia z zakresu baz danych

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

SIECI KOMPUTEROWE I BAZY DANYCH

BAZY DANYCH NORMALIZACJA BAZ DANYCH. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Baza danych. Modele danych

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

PRZEWODNIK PO PRZEDMIOCIE

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Relacyjny model baz danych, model związków encji, normalizacje

Struktura drzewa w MySQL. Michał Tyszczenko

Transformacja modelu ER do modelu relacyjnego

Programowanie obiektowe

Sylabus do programu kształcenia obowiązującego od roku akademickiego 2014/15

Pojęcie bazy danych. Funkcje i możliwości.

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Programowanie obiektowe

Relacyjne bazy danych. Normalizacja i problem nadmierności danych.

K1A_W11, K1A_W18. Egzamin. wykonanie ćwiczenia lab., sprawdzian po zakończeniu ćwiczeń, egzamin, K1A_W11, K1A_W18 KARTA PRZEDMIOTU

3. Podzapytania, łączenie tabel i zapytań

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM, regulski@metal.agh.edu.pl

Alicja Marszałek Różne rodzaje baz danych

Autor: Joanna Karwowska

Wrocławska Wyższa Szkoła Informatyki Stosowanej. Bazy danych. Dr hab. inż. Krzysztof Pieczarka.

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

Baza danych sql. 1. Wprowadzenie

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

Język SQL, zajęcia nr 1

Normalizacja. Pojęcie klucza. Cel normalizacji

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Agnieszka Ptaszek Michał Chojecki

Bazy danych. Dr inż. Paweł Kasprowski

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Wykład 8. SQL praca z tabelami 5

Wprowadzenie do baz danych

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Systemy GIS Tworzenie zapytań w bazach danych

BAZY DANYCH Podstawowe pojęcia

Uzupełnij pola tabeli zgodnie z przykładem poniżej,

Technologie baz danych

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

BAZY DANYCH NORMALIZACJA BAZ DANYCH. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Wykład 6. SQL praca z tabelami 3

PODSTAWY BAZ DANYCH. 5. Modelowanie danych. 2009/ Notatki do wykładu "Podstawy baz danych"

Przestrzenne bazy danych Podstawy języka SQL

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

SIECI KOMPUTEROWE I BAZY DANYCH

Transkrypt:

Funkcjonalność relacyjnej i obiektowej bazy danych po usunięciu z modelu atrybutów przyjmujących wartości Null Dariusz Put Akademia Ekonomiczna w Krakowie Streszczenie: Jedną z cech dobrego projektu bazy danych jest niewystępowanie wartości pustych (Null) w żadnym z atrybutów. Aby ten postulat był spełniony, należy niekiedy dokonać korekty w projekcie, co jest inaczej realizowane w modelu relacyjnym a inaczej w obiektowym. W artykule podjęto próbę porównania wybranych aspektów obiektowej i relacyjnej bazy danych zaprojektowanych tak, aby atrybuty nie przyjmowały wartości Null. Abstract: One of the features of a good database project is that there are no null values in any of the attributes. To obtain such a database it is sometimes necessary to change the project. The process of such changes is different in relational and object-oriented models. The article presents an attempt to compare selected aspects of object-oriented and relational database in which there are no null values in attributes.

I. Wstęp Bazy danych są wykorzystywane do trwałego przechowywania danych. Stanowią podstawę większości aplikacji, które używają danych zapisanych na trwałe w pamięci komputera. Prawidłowy projekt bazy danych ma decydujące znaczenie dla efektywności, szybkości i poprawności działania całego systemu. Po opublikowaniu przez E. F. Codda w 1970 roku teoretycznych podstaw relacyjnego modelu danych zaczęły powstawać systemy zarządzania bazami danych (SZBD) oparte na tym modelu. E. F. Codd zdefiniował pojęcie krotki jako jednostki służącej do przechowywania danych oraz relacji jako zbioru krotek. Krytycy modelu relacyjnego wskazują na szereg jego ograniczeń, zwracając szczególną uwagę na: niewielką liczbę typów danych, spłaszczenie rzeczywistości dane są przechowywane w relacjach będących zbiorem jednorodnych krotek, nieadekwatność reprezentacja istniejących obiektów i zachodzących zdarzeń w bazie danych musi być poprzedzona dostosowaniem zapisywanych danych do założeń modelu, złożona składnia zapytań wybierających. Niedogodności te spowodowały, że wielu badaczy podjęło prace nad stworzeniem modelu, który bardziej adekwatnie odzwierciedlałby rzeczywistość. Powstanie i szybki rozwój obiektowych języków programowania przyczyniły się do skierowania poszukiwań w kierunku modelu obiektowego, który z jednej strony ma lepiej odzwierciedlać rzeczywistość i być łatwiejszy w implementacji i eksploatacji, z drugiej ma wychodzić naprzeciw technologii obiektowej i być zgodny z obiektowymi językami programowania, co z kolei ma ułatwić integrację aplikacji bazodanowych z tymi językami. Obecnie istnieją na rynku SZBD oparte zarówno na modelu relacyjnym jak i obiektowym 1. Jednym z elementów procesu projektowania systemu informacyjnego jest stworzenie bazy danych, która będzie przechowywała dane o istniejących obiektach i zachodzących zdarzeniach, umożliwi rejestrację tych obiektów i zdarzeń oraz pozwoli na efektywną manipulację danymi, ich wyszukiwanie i prezentację. W procesie projektowania relacyjnej bazy danych wykorzystywane są najczęściej zasady normalizacji każda kolejna wersja bazy danych powinna być zgodna z wyższą postacią normalną 2. W modelu obiektowym stosowane są mechanizmy znane z obiektowych języków programowania: klasy i obiekty, dziedziczenie, enkapsulacja, specyfikacja, agregacja, itp. Niezależnie od tego, czy baza danych zostanie stworzona w oparciu o model obiektowy, czy relacyjny, musi być w pełni funkcjonalna. Jedną z zasad, którymi należy się kierować podczas tworzenia projektu bazy danych jest, aby żaden z atrybutów nie przyjmował wartości pustej (Null). Jeśli na pewnym etapie projektu okaże się, że ze względu na specyfikę przechowywanych wartości dla niektórych obiektów lub zdarzeń część atrybutów przyjmuje wartość Null, należy dokonać takich zmian w projekcie aby był on nadal adekwatny do modelowanej rzeczywistości ale wolny od takich anomalii. Aby usunąć z projektu relacyjnej bazy danych atrybuty, które mogłyby przyjmować wartości puste, należy utworzyć dwie tabele: podstawową oraz tabelę-podzbiór zawierającą atrybuty opisujące bardziej szczegółowo temat tabeli podstawowej. Tabele te należy połączyć relacją jeden-do-jednego, gdzie tabela-podzbiór otrzyma status tabeli związanej, i przenieść do tabeli-podzbioru atrybuty, w których występowałyby wartości puste, gdyby tabela ta nie istniała, oraz pozostawić w tabeli podstawowej atrybuty, które są charakterystyczne dla wszystkich obiektów lub zdarzeń. W modelu obiektowym do rozwiązywania tej klasy problemów wykorzystywany jest mechanizm dziedziczenia. Tworzy się klasę nadrzędną z atrybutami, które występują we 1 Są także systemy obiektowo-relacyjne łączące w sobie elementy modelu relacyjnego i obiektowego. 2 W teorii relacyjnych baz danych wyróżnia się sześć postaci normalnych.

wszystkich obiektach oraz klasę potomną dziedziczącą atrybuty klasy nadrzędnej i zawierającą dodatkowe atrybuty, które ze względu na ich specyfikę w przypadku niektórych obiektów bądź zdarzeń przyjmowałyby wartość pustą. W artykule dokonana zostanie próba analizy porównawczej funkcjonalności modelu relacyjnego i obiektowego po dokonaniu modyfikacji bazy danych wymuszonej potrzebą uniknięcia występowania wartości pustych niektórych atrybutów. Porównane zostaną wszystkie aspekty bazy danych, tzn.: projekt fizyczny, manipulowanie danymi (dodawanie, usuwanie, modyfikowanie), wyszukiwanie danych. W bazie danych rejestrowane są obiekty i zdarzenia występujące w świecie rzeczywistym. W modelu obiektowym pojęcie obiektu jest używane w odniesieniu do instancji klasy. Aby uniknąć niejednoznaczności, w dalszej części artykułu będzie mowa o faktach, które mają być rejestrowane w bazie danych oraz o obiektach jako instancjach klasy. W relacyjnym modelu danych termin relacja jest stosowany dwojako: w znaczeniu zbioru krotek oraz jako połączenie między tabelami. Ponieważ funkcjonuje także pojęcie tabeli, które pod pewnymi warunkami jest tożsame z relacją rozumianą jako zbiór krotek, w dalszej części artykułu termin relacja będzie używany w znaczeniu połączenia między tabelami, a dla określenia zbioru krotek będzie używane pojęcie tabeli. II. Projekt fizyczny bazy danych Załóżmy, że fakty są reprezentowane przez m atrybutów. Ze względu na specyfikę przechowywanych wartości k spośród m atrybutów istnieje w przypadku każdego faktu, pozostałe l atrybutów występuje tylko dla niektórych, przy czym k+l=m. Aby zapobiec występowaniu wartości pustych w bazie danych, w modelu relacyjnym należy utworzyć dwie tabele: podstawową (nazwijmy ją A), zawierającą k atrybutów oraz tabelę-podzbiór (B) zawierającą pozostałe l atrybutów. Tabele te należy połączyć relacją jeden-do-jednego. A będzie tabelą podstawową z kluczem podstawowym o nazwie AKP, B będzie tabelą związaną z kluczem podstawowym BKP. Kluczem obcym będzie pole BKP występujące w tabeli B. Fizyczny model relacyjny przedstawia się następująco: CREATE TABLE A ( AKP typ_pola atrybuty_pola PRIMARY KEY, k atrybutów istniejących dla wszystkich faktów); CREATE TABLE B ( BKP typ_pola atrybuty_pola PRIMARY KEY, l atrybutów istniejących dla niektórych faktów, FOREIGN KEY BKP REFERENCES A(AKP)); W przypadku modelu obiektowego należy utworzyć klasę macierzystą (A) z k atrybutami, które istnieją dla każdego faktu i klasę potomną B, która będzie zawierać l atrybutów istniejących tylko dla niektórych faktów oraz będzie dziedziczyć wszystkie atrybuty klasy A. Fizyczny model obiektowy 3 : CLASS A TYPE TUPLE (k atrybutów istniejących dla wszystkich faktów) END; CLASS B INHERIT A TYPE TUPLE (l atrybutów istniejących dla niektórych faktów) END; 3 Wykorzystano składnię języka definicji używaną w systemie O 2.

Porównując obydwa rozwiązania należy zauważyć, że model obiektowy jest bardziej intuicyjny w implementacji: nie wymaga tworzenia kluczy podstawowych oraz łączenia tabel i ustalania atrybutów tak utworzonej relacji. Baza danych oparta jest na dwóch klasach, z których jedna jest nadrzędna a druga potomna i dziedziczy atrybuty klasy nadrzędnej. III. Manipulowanie danymi Dane w tabelach (w modelu obiektowym w obiektach) A i B są powiązane. Należy więc rozpatrzyć problem funkcjonalności opisywanego fragmentu bazy danych pod kątem możliwości manipulowania danymi, czyli dopisywania, usuwania i modyfikacji. 1. Dopisywanie danych W rozważanej sytuacji mogą istnieć dwa rodzaje faktów: takie, które są opisywane wyłącznie przez atrybuty k i dla których nie występują atrybuty l oraz takie, które są opisywane zarówno przez atrybuty k jak i l. Zauważmy, że nie może wystąpić sytuacja, że fakt jest opisywany wyłącznie przez atrybuty l. W modelu relacyjnym fakt charakteryzujący się wszystkimi m atrybutami zostanie zarejestrowany w postaci dwóch rekordów: jednego w tabeli A oraz odpowiadającego mu rekordu w tabeli B. Obydwa będą miały tę samą wartość w polach będących kluczami podstawowymi tabel (czyli w AKP i w BKP), co będzie jednoznacznie wskazywać, że są ze sobą powiązane i dotyczą tego samego faktu. Jeśli fakt będzie opisywany wyłącznie przez k atrybutów, zostanie zarejestrowany w postaci rekordu w tabeli A. W modelu obiektowym rejestracja faktu posiadającego wyłącznie k atrybutów wymagać będzie utworzenia obiektu klasy macierzystej (A), natomiast faktu opisywanego przez wszystkie m atrybutów utworzenia obiektu klasy potomnej (B). 2. Usuwanie danych W modelu relacyjnym usunięcie faktu opisywanego przez m atrybutów wymaga skasowania rekordu w tabeli podstawowej i odpowiadającego mu rekordu w tabeli-podzbiorze. Jeśli w relacji zostanie ustawiona kaskadowa reguła usuwania, operacja będzie jednostopniowa usunięcie rekordu z tabeli podstawowej pociągnie za sobą automatyczne skasowanie odpowiadającego mu rekordu z tabeli-podzbioru. Jeśli ze względów bezpieczeństwa w relacji ustawiona zostanie restrykcyjna metoda usuwania, operacja kasowania danych będzie dwustopniowa: najpierw wymagać będzie usunięcia rekordu z tabeli-podzbioru a potem z tabeli podstawowej. Usunięcie danych o fakcie opisywanym przez k atrybutów będzie polegało na skasowaniu jednego rekordu z tabeli A. W przypadku faktu opisywanego przez m atrybutów usuwanie danych w modelu obiektowym jest mniej złożone niż w relacyjnym. Operacja polega na usunięciu obiektu klasy potomnej. Jeśli natomiast fakt jest opisywany przez k atrybutów, należy usunąć obiekt klasy macierzystej. 3. Modyfikacja danych Można wyróżnić dwa rodzaje modyfikacji danych zapisanych w rozważanym fragmencie w bazie danych: zmiana wartości jednego bądź kilku atrybutów istniejącego faktu, zmiana przynależności faktu, który z opisywanego przez m atrybutów może się stać opisywanym przez k atrybutów lub na odwrót. W pierwszym przypadku operacja zostanie wykonana tak samo dla każdego z modeli. Drugi wymaga odrębnej analizy. W modelu relacyjnym, niezależnie od tego, którego typu jest to fakt, najpierw musi zostać zarejestrowany w tabeli A (k atrybutów). Jeśli jego typ zmieni się na taki, który ma być opisywany przez m atrybutów, operacja będzie wymagać dodania nowego rekordu do tabeli B i wypełnienia go dodatkowymi l atrybutami. Jeśli fakt zmieni własności z opisywanego przez m atrybutów stając się k-atrybutowym, operacja będzie polegała na usunięciu odpowiedniego

rekordu z tabeli B. W modelu relacyjnym zmiana rodzaju faktu jest więc wykonywana na tabeli-podzbiorze i polega na dodaniu bądź usunięciu rekordu odpowiadającego faktowi zarejestrowanemu w tabeli podstawowej. W modelu obiektowym fakt opisywany przez m atrybutów jest obiektem klasy potomnej, a opisywany przez k atrybutów obiektem klasy macierzystej. Zmiana własności faktu z opisywanego przez m atrybutów na opisywany przez k atrybutów może być zarejestrowana dwojako: poprzez przypisanie wartości pustej l atrybutom w obiekcie klasy potomnej, do której obiekt należy takie rozwiązanie jest nie do zaakceptowania, gdyż oznacza, iż w bazie danych będą występowały wartości puste, poprzez usunięcie obiektu klasy potomnej i utworzenie obiektu klasy macierzystej z przepisaniem k atrybutów opisujących fakt po zmianie operacja taka będzie więc dwustopniowa. Zmiana właściwości faktu w drugą stronę (z opisywanego przez k atrybutów na opisywany przez m atrybutów) wymaga wykonania podobnej operacji: usunięcia obiektu klasy macierzystej i utworzenia obiektu klasy potomnej z jednoczesnym przepisaniem usuniętych k i dopisaniem nowych l atrybutów. Wykonanie tej operacji tylko na obiekcie klasy potomnej bez usunięcia obiektu klasy macierzystej doprowadziłoby do niejednoznaczności w bazie danych istniałyby dwa obiekty reprezentujące ten sam fakt: jeden klasy macierzystej, drugi potomnej. Można wskazać dwie sytuacje, w których opisywane zdarzenie może zaistnieć w rzeczywistości: typ każdego faktu jest znany podczas jego rejestracji i nie zmienia się dopóki fakt istnieje w bazie danych fakt jest zapisywany w odpowiedniej tabeli (lub tabelach) lub tworzony jest obiekt odpowiedniej klasy, typ faktów może ulegać zmianie i w takiej sytuacji modyfikacja jest bardziej złożona w modelu obiektowym niż w relacyjnym. IV. Wyszukiwanie danych Zakładając, że fakt opisywany przez l atrybutów musi być także opisywany przez k atrybutów można wyróżnić następujące sytuacje w zakresie wyszukiwania danych 4 : wyszukiwanie faktów opisywanych przez wszystkie m atrybutów, wyszukiwanie faktów opisywanych tylko przez k atrybutów, wyszukiwanie wszystkich faktów (tych opisywanych przez m atrybutów łącznie z tymi opisywanymi tylko przez k atrybutów). W obydwu modelach do uzyskania danych odpowiadających powyższym założeniom należy utworzyć zapytanie wybierające w języku SQL. Tworząc kwerendę w modelu relacyjnym należy użyć podzapytania albo złączeń: wewnętrznego (do wybrania faktów opisywanych przez m atrybutów) lub zewnętrznego (do wybrania wszystkich faktów). Odpowiednie zapytania w języku SQL przedstawiają się następująco 5 : wyszukiwanie faktów opisywanych przez wszystkie m atrybutów połączenie wewnętrzne pomija rekordy z tabeli podstawowej, które nie mają odpowiedników w tabeli związanej: FROM A INNER JOIN B ON A.AKP=B.BKP; wyszukiwanie faktów opisywanych tylko przez k atrybutów podzapytanie wybiera wszystkie rekordy z tabeli B, klauzula NOT IN pozostawia tylko te rekordy z tabeli A, które nie mają odpowiedników w tabeli B: 4 W rozważaniach pominięto problem selekcji danych. 5 Zapytania napisano w standardzie SQL-92.

FROM A WHERE AKP NOT IN (SELECT BKP FROM B); wyszukiwanie wszystkich faktów połączenie zewnętrzne wybiera wszystkie rekordy z tabeli A wraz z odpowiadającymi im rekordami z tabeli B: FROM A LEFT JOIN B ON A.AKP=B.BKP; W modelu obiektowym odpowiedź na powyższe pytania można uzyskać wybierając obiekty należące do klasy macierzystej lub potomnej albo używając klauzuli ONLY dla tabeli macierzystej. Zapytanie do obiektów klasy macierzystej można tak skonstruować, aby uzyskać wszystkie obiekty tej klasy oraz klas potomnych lub tylko obiekty klasy macierzystej. Z drugiej strony zapytanie o obiekty klasy potomnej nigdy nie zwróci obiektów klasy macierzystej. Zapytania wybierające dane opisane powyżej przedstawiają się następująco: wyszukiwanie faktów opisywanych przez wszystkie m atrybutów zapytanie wybierające obiekty należące do klasy potomnej nie uwzględnia obiektów klasy macierzystej: FROM B; wyszukiwanie faktów opisywanych tylko przez k atrybutów zapytanie wybierające tylko obiekty klasy A i pomijające obiekty klasy potomnej B: FROM ONLY A; wyszukiwanie wszystkich faktów zapytanie wybierające obiekty należące zarówno do klasy A, jak i jej klasy potomnej B: FROM A; Należy zauważyć, że w modelu obiektowym zapytanie wybierające dane o wszystkich faktach zwraca niepełne dane dla faktów opisywanych przez m atrybutów zapytanie zwróci tylko k a nie uwzględni pozostałych l. W modelu relacyjnym tabela będąca wynikiem zapytania będzie zawierała wszystkie atrybuty a dla faktów opisywanych tylko przez k atrybutów kolumny dotyczące pozostałych l zostaną wypełnione wartościami pustymi. V. Wnioski W artykule podjęto próbę porównania funkcjonalności relacyjnego i obiektowego modelu bazy danych po wyeliminowaniu wartości pustych, które mogłyby wystąpić ze względu na istnienie faktów opisywanych przez różną liczbę atrybutów. Z przeprowadzonej analizy wynika, iż: 1. Obydwa modele są w pełni funkcjonalne w opisywanym zakresie: istnieje możliwość utworzenie bazy danych, dowolnej modyfikacji danych oraz wyszukiwania. 2. Fizyczny model danych jest prostszy pod względem semantyki w przypadku modelu obiektowego. Oprócz większej zwięzłości zapisu, nie występują tu relacje i klucze, dzięki czemu reprezentacja rzeczywistości jest bardziej naturalna. 3. Sposób rejestracji nowych danych jest równie prosty w przypadku obydwu modeli i sprowadza się do utworzenia jednego lub dwóch rekordów w modelu relacyjnym albo utworzenia obiektu klasy macierzystej lub potomnej w modelu obiektowym. 4. Jeśli stan faktów ulega zmianie po ich zapisaniu w bazie danych, rejestracja jest mniej złożona w modelu relacyjnym polega na dodaniu bądź usunięciu jednego rekordu w tabeli-podzbiorze. W modelu obiektowym operacja wymaga usunięcia obiektu klasy potomnej (macierzystej), utworzenia obiektu klasy macierzystej (potomnej) i przepisania części atrybutów z usuwanego do tworzonego obiektu.

5. Usuwanie faktów jest równie proste w obydwu przypadkach, przy czym w modelu relacyjnym poprzez ustawienie odpowiedniej reguły usuwania operacja może być dwustopniowa, co zmniejsza ryzyko przypadkowego usunięcia istotnych danych. 6. Konstruowanie zapytań do bazy danych jest łatwiejsze w modelu obiektowym. Semantyka zapytań wymaga odwołania albo do obiektów klasy macierzystej albo potomnej. W modelu relacyjnym zapytania są bardziej złożone i wymagają użycia złączeń albo podzapytań. 7. Niektóre zapytania w modelu obiektowym nie są w pełni funkcjonalne. Kwerendy wybierające dane o wszystkich faktach nie uwzględniają atrybutów charakterystycznych tylko dla niektórych. Pod tym względem model relacyjny jest bardziej funkcjonalny jedną kwerendą można uzyskać wszystkie dane znajdujące się w omawianym fragmencie bazy danych. 8. W świetle przytoczonych rozważań nie można jednoznacznie stwierdzić, iż jeden z modeli lepiej nadaje się do implementacji opisywanego fragmentu rzeczywistości. Literatura [1] Beynon-Davies P., Systemy baz danych, WNT, Warszawa, 2003 [2] Date C. J., Wprowadzenie do systemów baz danych, WNT, Warszawa, 2000 [3] Ladanyi H., SQL. Księga eksperta, Helion, Gliwice, 2000 [4] Lausen G., Vossen G., Obiektowe bazy danych, WNT, Warszawa, 2000