Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Katedra Informatyki. Kierunek studiów: Informatyka Specjalność: Systemy komputerowe

Wielkość: px
Rozpocząć pokaz od strony:

Download "Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Katedra Informatyki. Kierunek studiów: Informatyka Specjalność: Systemy komputerowe"

Transkrypt

1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Katedra Informatyki Kierunek studiów: Informatyka Specjalność: Systemy komputerowe Praca Dyplomowa Obiektowe bazy danych przegląd i analiza rozwiązań Promotor: prof. dr hab. inż. Antoni Ligęza Autorzy: Paweł Józwik Maciej Mazur Kraków 2002

2 Podziękowania Pragniemy złożyć serdeczne podziękowania dla Promotora naszej pracy, prof. dr hab. inż. Antoniego Ligęzy. Praca ta powstała z jego inicjatywy, a jej zrealizowanie było możliwe dzięki jego wsparciu i życzliwości. Paweł Józwik Maciej Mazur 2

3 Spis treści 1 WSTĘP CEL PRACY ZAWARTOŚĆ PRACY TEORIA DEFINICJE DOTYCZĄCE OBIEKTOWOŚCI Obiekt Identyfikator obiektu Tożsamość obiektu Klasa Atrybut Metoda Komunikat Hermetyzacja Hierarchia klas i dziedziczenie Pojęcia wykraczające poza model podstawowy ALGEBRA OBIEKTOWA Składnia Typ parametrów Równość Operatory Operatory zbiorowe Operatory wielozbiorowe Operatory innych typów ROZWÓJ BAZ DANYCH RYS HISTORYCZNY Przetwarzanie płaskich plików BDAM Podstawowa metoda bezpośredniego dostępu ISAM Metoda indeksowanego dostępu sekwencyjnego Mankamenty płaskich plików Początek formalnego zarządzania bazami danych Hierarchiczny model danych Sieciowy model CODASYL Relacyjne bazy danych Manifesty baz danych OBIEKTOWE BAZY DANYCH Trwałość obiektu Architektura Obiektowo-relacyjne bazy danych PORÓWNANIE RELACYJNYCH I OBIEKTOWYCH BAZ DANYCH STANDARDY JĘZYK SQL: Rozwój standardu Cechy relacyjne Nowe typy danych Nowe predykaty Nowa semantyka Dodatkowe bezpieczeństwo Aktywność bazy danych Cechy obiektowe Strukturalne typy definiowane przez użytkownika Metody a funkcje Zapis funkcjonalny i kropkowy Obiekty oraz typ REF Opinie o standardzie STANDARD ODMG

4 4.2.1 Powstanie grupy ODMG Cele Architektura Model obiektu Języki programowania ODL OIF OML OQL Wiązania do języków programowania Wiązanie do języka C Wiązanie do języka Smalltalk Wiązanie do języka Java JAVA DATA OBJECTS Rozwój standardu Architektura JDO Schemat bazy danych Trwałe obiekty w Javie - interfejs PersistenceCapable Modyfikator kodu binarnego JDO Enhancer Dostęp do bazy danych - język JDOQL Java Data Objects a Enterprise Java Beans Ziarna typu Entity Beans Ziarna typu Session Beans PORÓWNANIE STANDARDÓW ROZSZERZENIA OBIEKTOWE W RELACYJNYCH BAZACH DANYCH ORACLE Kluczowe cechy obiektowe modelu relacyjno-obiektowego w Oracle Dziedziczenie typów Modyfikacje typów Mechanizm obiektowej perspektywy Rozszerzenia obiektowe SQL a Rozszerzenia obiektowe PL/SQL a Java a obiektowość w bazie Oracle Zewnętrzne procedury Translator typów obiektowych Podręczny zbiór obiektów po stronie klienta Oracle Call Interface Object Extensions Rozszerzenia obiektowe Pro*C/C Rozszerzenia obiektowe OO4O Koncepcja obiektowości w bazie danych Oracle Typy obiektowe Dziedziczenie typów obiektowych Obiekty Metody Tabele obiektowe Typ bazodanowy REF Kolekcje Użycie rozszerzeń obiektowych w bazie danych Oracle9i Definiowanie klas oraz typów kolekcji Metody Dziedziczenie Dodatkowe narzędzia ułatwiające obsługę rozszerzeń obiektowych Business Components for Java (BC4J) JPublisher JDeveloper Import/Eksport typów obiektowych SQL*Loader POSTGRESQL Wielkie Obiekty Interfejs JDBC Przechowywanie danych binarnych Rozszerzanie języka SQL Funkcje Typy

5 6 OBIEKTOWE BAZY DANYCH W PRAKTYCE BAZY DANYCH DOSTĘPNE NA RYNKU excelon (dawniej Object Design) produkt ObjectStore Historia firmy w skrócie Ogólne informacje Przegląd produktów z rodziny ObjectStore Objectivity produkt Objectivity/DB Historia firmy w skrócie Ogólne informacje o produkcie Przegląd produktów z rodziny Objectivity Versant produkt Versant Historia firmy w skrócie Ogólne informacje o produkcie Przegląd produktów z rodziny Versant Developer Suite Poet Software produkt FastObjects Historia firmy w skrócie Ogólne informacje o produkcie Przegląd produktów z rodziny FastObjects GemStone produkty: GemStone/J, GemStone/S Historia firmy w skrócie Ogólne informacje o produktach Cechy produktów Fresher Information Software produkt Matisse Historia produktu w skrócie Ogólne informacje o produkcie Cechy produktów Wśród obsługiwanych platform znajdują się: Computer Association oraz Fujitsu produkt Jasmine Historia produktu w skrócie Ogólne informacje Przegląd produktów Uniwersytet Moskiewski produkt GOODS Ogólne informacje o produkcie Micro Database Systems produkt Titanium Historia firmy w skrócie Ogólne informacje Orient Technologies produkt Orient Historia produktu w skrócie Ogólne informacje o produkcie Sysra Informatique produkt EyeDB Ogólne informacje Historia projektu w skrócie Cechy produktu Zastosowanie PODSUMOWANIE I WNIOSKI OGÓLNE PERSPEKTYWY ROZBUDOWY PRACY LITERATURA

6 1 Wstęp Obiektowe bazy danych spotyka się obecnie coraz częściej w rozmaitych zastosowaniach. Zdobywają one coraz to nowe obszary, gdzie ich właściwości dają im przewagę nad systemami relacyjnymi. Dużym atutem obiektowych baz danych jest struktura, która naturalnie odpowiada strukturze modelującej rzeczywiste zjawiska i która jest z powodzeniem stosowana w obecnych językach programowania. Badania nad modelem obiektowym w bazach danych są obecnie prowadzone intensywnie w wielu ośrodkach naukowych; rozwijane są również komercyjne implementacje. 1.1 Cel pracy W chwili obecnej brak jest w literaturze pozycji, która obejmowałaby tematykę obiektowych baz danych w sposób całościowy, z uwzględnieniem najnowszych tendencji zarówno jeżeli chodzi o podstawy teoretyczne i przegląd istniejących standardów, jak i o systemy działające w praktyce. Niniejsza praca ma za zadanie wypełnić tę lukę. W kolejnych rozdziałach będziemy starali się przybliżyć problematykę obiektowych baz danych. W pierwszej części pracy zostaną omówione teoretyczne podstawy obiektowości oraz algebry obiektowej. Później zostanie zaprezentowany rys historyczny rozwoju baz danych, zaczynając od płaskich plików, poprzez modele hierarchiczne, sieciowe, relacyjne, aż po obiektowe. W następnej części pracy zostaną omówione istniejące standardy obiektowych baz danych. W niniejszej pracy zostaną przedstawione przede wszystkim trzy główne standardy, czyli SQL:1999, ODMG oraz JDO. Praca ma w zamierzeniach przedstawić problematykę obiektowych baz danych w sposób kompleksowy, tak aby osoba będąca nawet laikiem w tej dziedzinie mogła wyrobić sobie ogólny pogląd w tym temacie oraz poznać najbardziej rozpowszechnione obecnie standardy. Praca ta ma również na celu propagować zagadnienia związane z obiektowymi bazami danych. Zastanawiając się, dlaczego obiektowe bazy danych tak trudno torują sobie drogę na rynku zdominowanym przez relacyjne bazy, można dojść do wniosku, że jednym z powodów na pewno jest niedoinformowanie. Wynikiem tego jest stosowanie 6

7 produktów innych niż obiektowe bazy danych w zastosowaniach, gdzie właśnie obiektowe bazy danych byłyby najwłaściwszym rozwiązaniem. Bez rzetelnej informacji na temat tych produktów niewielu inżynierów uwierzy, iż bardziej korzystne może być zainwestowanie w obiektowe bazy danych. Tymczasem zostało wielokrotnie dowiedzione, że na przykład do zastosowań związanych ze składowaniem multimediów obiektowe bazy danych nadają się lepiej niż na przykład relacyjne. Również czas tworzenia aplikacji jest krótszy gdy nie ma potrzeby mapowania modelu obiektowego, wykorzystywanego w procesie projektowania i programowania aplikacji, do modelu relacyjnego w jakim dane są najczęściej przechowywane w bazach. Niniejsza praca przedstawia ogólne omówienie problematyki obiektowych baz danych. Może ona posłużyć jako podstawa do dalszych studiów związanych z wybranym aspektem, bądź konkretnym produktem. 1.2 Zawartość pracy Rozdział drugi ma na celu przedstawienie teoretycznych podstaw obiektowości i algebry obiektowej. Omówione zostały podstawowe pojęcia obiektowości, takie jak: obiekt, identyfikator obiektu, tożsamość obiektu, klasa, atrybut, metoda, komunikat, hermetyzacja, hierarchia klas i dziedziczenie. W rozdziale tym porównane zostały różne definicje pojawiające się w literaturze. Dodatkowo przedstawiono wybrane pojęcia wykraczające poza model podstawowy, takie jak: polimorfizm, obiekty złożone oraz zarządzanie wersjami. W związku z tym, iż nie istnieje jedna ogólnie przyjęta algebra obiektowa, w pracy skupiono się na propozycji algebry obiektowej określonej mianem AQUA. Jej autorami są dobrze znani na tym polu naukowcy, co pozwala uważać tę algebrę za w dużym stopniu reprezentatywną. W pracy przedstawiono składnię oraz podstawowe operatory algebry. Kolejny rozdział omawia etapy w rozwoju baz danych. Przegląd rozpoczęto od najstarszych systemów przechowywania danych, działających w oparciu o przetwarzanie płaskich plików. Następnie przybliżono działanie baz danych opartych na hierarchicznym modelu danych, potem na modelu sieciowym CODASYL, aby wreszcie 7

8 zaprezentować najpopularniejsze obecnie relacyjne bazy danych. Ostatecznie przedstawiono obiektowe bazy danych, będące tematem niniejszej pracy. Rozdział ten zawiera także prezentację systemów będących swoistym pomostem pomiędzy relacyjnymi a obiektowymi bazami danych, czyli obiektowo-relacyjnych baz danych. Zaprezentowane zostało także porównanie relacyjnych i obiektowych baz danych. Następny rozdział zawiera prezentację standardów w zakresie obiektowych baz danych. Omówione zostały trzy najważniejsze obecnie standardy. Pierwszym z nich jest SQL:1999 (SQL3), rozwinięcie standardu relacyjnego języka SQL, efekt współpracy organizacji ANSI oraz ISO. Następnie omówiono propozycje standaryzacyjne ODMG (Object Database Management Group). Jest to grupa, której głównym celem jest opracowywanie standardów dla obiektowych baz danych, które to standardy bardzo często są implementowane w produktach komercyjnych. Ostatnim przedstawionym standardem jest JDO (Java Data Object). Jest to najnowsza propozycja, stworzona i promowana przez firmę Sun Microsystems, będąca interfejsem Javy do baz danych. W kolejnym rozdziale przedstawione zostały rozszerzenia obiektowe wprowadzone w relacyjnych bazach danych: Oracle oraz PostgreSQL. Baza danych Oracle to bardzo zaawansowana i najbardziej ceniona baza na świecie. Natomiast PostgreSQL jest bardzo popularnym, niekomercyjnym systemem zarządzania bazą danych. Wprowadzone rozszerzenia pozwalają zaliczyć opisywane systemy do rodziny obiektowo-relacyjnych baz danych, jednakże ich rdzeń nadal stanowi model relacyjny. Następny rozdział stanowi przegląd dostępnych obecnie na rynku najbardziej popularnych systemów obiektowych baz danych. Przedstawione zostały następujące produkty: ObjectStore, Objectivity/DB, Versant, FastObjects, GemStone/J, GemStone/S, Matisse, Jasmine, GOODS, Titanium, Orient oraz EyeDB. Przy każdym z tych produktów zaprezentowano jego historię, budowę, udostępniane usługi i możliwości zastosowań. 8

9 2 Teoria 2.1 Definicje dotyczące obiektowości Zagadnienie obiektowych baz danych powstało jako efekt prac w wielu dziedzinach. Wpływ na jego rozwój miały nowe tendencje, jakie pojawiały się w obiektowych językach programowania, inżynierii oprogramowania, a także w pracach dotyczących systemów rozproszonych, systemów multimedialnych oraz komunikacji przez WWW. Nowe kierunki rozwoju zarysowały się również w technologii tradycyjnych, relacyjnych baz danych. Obecnie występuje pewnego rodzaju zamieszanie związane ze znaczeniem obiektowości w ogóle, a znaczeniem obiektowych baz danych w szczególności. Wiele osób traktuje termin zorientowany obiektowo jako rodzaj modnego sformułowania, mieszczącego w sobie wiele znaczeń. Wielu ekspertów stara się określić silne, techniczne kryteria związane z terminem obiektowości, aby umożliwić rozróżnienie systemów zorientowanych obiektowo od pozostałych. Co przemawia za wykorzystaniem obiektowości w bazach danych? Istnieje kilka koncepcji. Najbardziej popularna mówi, iż bazy danych składają się raczej z obiektów niż relacji, tabel czy innych struktur. Pojęcie obiektu jest rodzajem metafory, odnoszącej się do ludzkiej psychiki, sposobu w jaki ludzie myślą i postrzegają świat rzeczywisty. Ewolucja wykształciła w umysłach ludzkich mechanizmy umożliwiające nam wyodrębnianie obiektów w naszym środowisku, nazywanie ich i przyporządkowywanie im pewnych cech i zachowań. Obiektowość w technologii komputerowej, z psychologicznego punktu widzenia, jest więc oparta na wrodzonych mechanizmach ludzkiego umysłu. Kolejnym zagadnieniem jest potrzeba obiektowości w technologii komputerowej. Przez wiele lat eksperci wskazywali na negatywny syndrom, określany mianem kryzysu oprogramowania (ang. software crisis). Kryzys oprogramowania może być przedstawiany jako efekt wzrastających kosztów produkcji oprogramowania i jego utrzymania, problemów związanych z oprogramowaniem spadkowym (ang. legacy 9

10 software), ogromnym ryzykiem związanym z niepowodzeniem projektów informatycznych, niedojrzałością metod projektowania i konstrukcji oprogramowania, brakiem niezawodności, różnego rodzaju frustracjami projektantów oprogramowania i programistów i wielu tym podobnych czynników. Jednocześnie wraz z przedstawionymi zagrożeniami stale wzrasta rola systemów informatycznych jako czynników krytycznych w misji konkretnego przedsiębiorstwa. Kryzys oprogramowania jest więc powodowany przez skomplikowanie oprogramowania i złożoność metod jego wytwarzania. Obiektowość, będąca próbą naśladowania naturalnej psychiki człowieka, jest postrzegana jako sposób na zmniejszenie złożoności oprogramowania, a w efekcie na zredukowanie negatywnych zjawisk związanych z kryzysem oprogramowania. Ma to zostać uczynione poprzez skrócenie dystansu pomiędzy ludzkim postrzeganiem dziedziny problemu, abstrakcyjnym modelem konceptualnym dziedziny problemu (wyrażonym przykładowo za pomocą diagramu klas), a podejściem programisty zorientowanym na struktury danych i operacje. Zmniejszenie dystansu pomiędzy postrzeganiem problemu przez projektantów, a myśleniem programistów, jest uważane za najważniejszy czynnik zmniejszający złożoność analizy, projektowania, konstrukcji i utrzymania oprogramowania. Obiektowe modele dostarczają pojęć umożliwiających analitykom i projektantom lepsze odwzorowanie problemu w abstrakcyjny schemat konceptualny. W skład tych pojęć wchodzą między innymi: złożone obiekty, klasy, dziedziczenie, kontrola typów, metody powiązane z klasami, hermetyzacja i polimorfizm. Istnieje kilka notacji i metodologii (przykładowo OMT, UML, OPEN), które pozwalają na wydajne odwzorowywanie problemu w zorientowany obiektowo model konceptualny. Z drugiej strony, systemy obiektowych baz danych oferują podobne pojęcia odnośnie struktur danych, tak więc odwzorowywanie pomiędzy modelem konceptualnym a strukturami danych jest dużo łatwiejsze, niż w przypadku tradycyjnych systemów relacyjnych. Model obiektowy przede wszystkim dostarcza wyższego poziomu abstrakcji w sposób bardziej skuteczny, konsekwentny i jednorodny. Dotyczy on głównie struktur danych przechowywanych w obiektowej bazie danych. Wyznacza intelektualną i 10

11 ideologiczną bazę pozwalającą na budowę modeli obiektowych struktur danych oraz na komunikację. Jest on spójnym zestawem własności, pojęć, terminologii, notacji i formalizmów służących do: porozumiewania się profesjonalistów, uczenia i objaśniania metod i technik obiektowych, budowy języków, systemów, interfejsów, budowy i objaśniania zasad analizy i projektowania obiektowego. W stosunku do modelu relacyjnego, obiektowość wprowadza znacznie więcej pojęć, często o niezbyt precyzyjnej semantyce. Z jednej strony obiektowość stara się uogólnić i rozszerzyć ideologiczne założenia modelu danych, z drugiej strony stara się objąć nimi te pojęcia, które w modelu relacyjnym nie dały się wyrazić. W chwili obecnej nie istnieje jeden, ogólnie przyjęty, standard jednoznacznie definiujący pojęcia obiektowe. Trwają prace nad ustandaryzowaniem pojęć obiektowych w dziedzinie baz danych, prowadzone między innymi przez ODMG. Brak powszechnie akceptowalnych definicji modelu obiektowego w dziedzinie baz danych wynika z faktu, iż rozwój podejścia obiektowego następował w trzech różnych obszarach: językach programowania, sztucznej inteligencji, bazach danych. W różnych językach programowania i reprezentacji wiedzy przyjęto różne interpretacje pojęć obiektowych. Jednak mimo to, obiektowe języki programowania i reprezentacji wiedzy zawierają wiele spójnych pojęć obiektowych, na podstawie których można stworzyć podstawowy, obiektowy model danych. Przedstawione poniżej pojęcia są podstawowymi dla obiektowości i według [Kim 1996] wchodzą w skład podstawowego modelu obiektowego: obiekt, identyfikator obiektu, 11

12 tożsamość obiektu, klasa, atrybut, metoda, komunikat, hermetyzacja, hierarchia klas i dziedziczenie. W kolejnych rozdziałach pracy zostaną przybliżone przedstawione powyżej pojęcia Obiekt Obiekt (ang. object) jest podstawowym pojęciem dla obiektowości. W pracy [Subieta 1999a] obiekt jest definiowany jako abstrakcyjny byt, reprezentujący lub opisujący pewną rzecz lub pojęcie obserwowane w świecie rzeczywistym. Obiekt jest odróżnialny od innych obiektów, ma nazwę i dobrze określone granice. Obiektem może być także pewna abstrakcja programistyczna. Mogą istnieć obiekty programistyczne, które nie posiadają swoich odpowiedników w świecie rzeczywistym. Obiektem może być pewien zamknięty fragment oprogramowania (dana, procedura, moduł itp.), którymi programista może operować jak pewną zwartą bryłą. Obiektom przypisuje się cechy takie jak: tożsamość, stan i operacje. Obiekt posiada nazwę, jednoznaczną identyfikację, określone granice, atrybuty i inne własności. Tenże autor uważa, iż wiele prac nie różnicuje pojęcia obiektu jako pewnej abstrakcji pojęciowej lub informacyjnej, struktury danych określanej jako obiekt przechowywanej wewnątrz komputera oraz konkretnego obiektu istniejącego w świecie rzeczywistym. Stwierdza on jednak, iż z metodologicznego punktu widzenia takie rozróżnienie jest konieczne i wynika zwykle z kontekstu. Przykładami obiektów ze świata rzeczywistego są: miasto Kraków, faktura, konkretna osoba czy model samochodu. Obiektami nie są przykładowo: śnieg, woda, piasek. 1 1 W literaturze istnieje pojęcie nieobiektu (ang. non-object). W pracy [Subieta 1999a] jest ono przedstawione jako coś, co nie jest obiektem. Autor ten stwierdza, iż nieobiektowość w informatyce wciąż czeka na swego odkrywcę, ideologa i guru. 12

13 RYSUNEK 2.1. GRAFICZNA PREZENTACJA OBIEKTU Identyfikator obiektu Opierając się na definicji przedstawionej przez [Subieta 1999a], identyfikator obiektu (ang. object identifier) jest to unikalna wewnętrzna nazwa obiektu, nadawana automatycznie przez system i nie posiadająca znaczenia w świecie zewnętrznym. Służy on do odróżnienia obiektu od innych obiektów oraz do budowy odwołań prowadzących do obiektu. [Lausen 2000] stwierdza, iż identyfikator przypisany do obiektu pozostaje niezmienny w całym cyklu jego życia. W konsekwencji identyfikator obiektu jest różny od jego wartości, która może ulegać zmianom. W pracy [Subieta 1999a] poruszony jest także problem unikalności identyfikatorów. Autor uważa, iż pojęcie unikalnego identyfikatora obiektu staje się dość trudne w przypadku istnienia wielu kopii tego samego obiektu, lub w przypadku istnienia wielu wersji obiektu. Istnienie unikalnych identyfikatorów obiektów czyni w zasadzie zbędnym pojęcie klucza 2, występujące w modelu relacyjnym. Zdarza się, że identyfikator obiektu jest związany logicznie z adresem miejsca przechowywania obiektu. Jednakże związek tego rodzaju jest uważany za niekorzystny jeśli chodzi o elastyczność w zakresie ulokowania obiektu, z drugiej jednak strony bywa konieczny z uwagi na wymaganą wydajność. 2 Klucz jest atrybutem, bądź zestawem atrybutów, których wartości są wykorzystywane w celu unikalnej identyfikacji. Jest to zbiór minimalny. 13

14 [Ludwikowska 2000] dodaje, iż identyfikator obiektu jest ważnym elementem semantyki języków dostępu i manipulacji obiektami. W praktyce nie występuje bezpośrednie posługiwanie się wartością identyfikatora obiektu, lecz wykorzystywane jest pewne oznaczenie symboliczne, przykładowo nazwa obiektu, które następnie w procesie wiązania jest zmieniane na jego identyfikator Tożsamość obiektu Tożsamość obiektu (ang. identity) jest pojęciem ściśle wiążącym się ze zdefiniowanym wcześniej pojęciem identyfikatora obiektu. Oznacza ono, iż obiekt istnieje i jest odróżnialny od innych obiektów niezależnie od jego aktualnego stanu, który może się zmieniać. Tożsamość obiektu jest kategorią filozoficzną, która nie jest wiązana z jakimkolwiek zestawem atrybutów obiektu lub jego aktualnym stanem. Dopuszczalne jest istnienie dwóch różnych obiektów o identycznych wartościach atrybutów. W praktyce tożsamość oznacza istnienie unikalnego wewnętrznego identyfikatora, nie ulegającego zmianom w trakcie życia obiektu. Tożsamość obiektu jest niezależna od jego lokacji w świecie rzeczywistym lub w przestrzeni adresowej komputera [Subieta 1999a] Klasa Wszystkie obiekty mające ten sam zbiór atrybutów i metod, mogą zostać zgrupowane w jednej klasie. Obiekt należy do klasy jako jej instancja (wystąpienie). Klasa stanowi wzorzec dla tworzonego obiektu. Klasa jest również bytem semantycznym, rozumianym jako miejsce przechowywania, specyfikacji i definicji takich cech grupy podobnych obiektów, które są dla nich niezmienne: atrybuty, metody, ograniczenia dostępu, dozwolone operacje na obiektach, wyjątki. W systemach obiektowych klasa jest traktowana jako obiekt klasowy w celu zagwarantowania jednolitego posługiwania się komunikatami. W związku z tym, z klasą mogą być związane atrybuty i metody klasowe (statyczne). W atrybutach takich przechowywane są wartości wspólne dla wszystkich obiektów tej klasy [Ludwikowska 2000]. 14

15 Istnieje wiele rodzajów klas. Do najważniejszych z nich można zaliczyć: klasę abstrakcyjną oraz klasę konkretną. Pojęcie klasy abstrakcyjnej (ang. abstract class) jest uważane za jedno z podstawowych dla obiektowości, wzmacniające zarówno mechanizmy abstrakcji pojęciowej, jak i możliwości ponownego użycia. Klasa abstrakcyjna zawiera własności, które są dziedziczone przez jej podklasy, ale jednocześnie nie posiada bezpośrednich wystąpień obiektów. Stanowi ona wyższy poziom abstrakcji podczas rozpatrywania pewnego zestawu obiektów. Najczęściej wykorzystuje się klasy abstrakcyjne do zdefiniowania wspólnego interfejsu dla pewnej liczby podklas. Klasa abstrakcyjna może posiadać metody, które są wyspecyfikowane w jej wnętrzu, a których implementacja jest oczekiwana w jej bezpośrednich lub pośrednich podklasach. W odróżnieniu od klasy abstrakcyjnej, klasa konkretna (ang. concrete class) może posiadać bezpośrednie wystąpienia obiektów. RYSUNEK 2.2. GRAFICZNA PREZENTACJA KLASY Atrybut Atrybuty (ang. attributes), będące częścią definicji klasy, poprzez przypisywane im wartości tworzą stan obiektu. Atrybuty obiektu są analogiczne do atrybutów (kolumn) krotki relacji w relacyjnych bazach danych. Dziedziną atrybutu może być jakakolwiek klasa, wliczając w to klasy wartości pierwotnych (np. integer, string itp.). Z powyższego faktu wynika zagnieżdżona struktura definicji klasy. Klasa składa się ze zbioru atrybutów, dziedzinami których mogą być inne klasy z ich własnymi zbiorami 15

16 atrybutów, itd. W wyniku tego definicja klasy określa skierowany graf klas o korzeniu w tej klasie [Kim 1996]. W literaturze pojawia się wiele rodzajów atrybutów. Wśród nich można wyróżnić [Subieta 1999a]: atrybut prosty (ang. simple attribute, atomic attribute) przechowuje dokładnie jedną wartość, będącą z punktu widzenia użytkownika wartością niepodzielną (atomową). atrybut złożony (ang. complex attribute, composite attribute) przechowuje wiele wartości niepodzielnych (atomowych). Atrybut taki może posiadać strukturę hierarchiczną. atrybut klasowy (ang. class attribute) nazywany także statycznym. Nazwa i wartość takiego atrybutu jest wspólna dla wszystkich wystąpień danej klasy. atrybut powtarzalny (ang. repeating attribute) przechowuje zestaw wartości o nieokreślonej i zmiennej w czasie liczbie elementów. atrybut pochodny (ang. derived attribute) nazywany także wyliczalnym. Przechowuje wartość, która jest wyliczana na podstawie innych atrybutów, bądź też innych danych. atrybut wskaźnikowy (ang. pointer attribute) atrybut, którego wartością jest wskaźnik prowadzący zwykle do pewnego obiektu. atrybut opcyjny (ang. optional attribute) atrybut, którego wartość może być pusta, lub który może być nieobecny w konkretnym wystąpieniu obiektu. Opcyjność może dotyczyć atrybutu dowolnego rodzaju. Atrybut ten można uważać za specjalny przypadek atrybutu powtarzalnego, w którym liczba elementów zestawu wartości wynosi zero lub jeden. atrybut domyślny (ang. default attribute) atrybut ten wiąże się pojęciowo z przedstawionym wcześniej atrybutem opcyjnym. Oznacza on wartość przyjmowaną domyślnie, o ile nie została wstawiona żadna inna wartość Metoda Metoda (ang. method) to procedura, funkcja lub operacja przypisana do klasy obiektów i dziedziczona przez jej podklasy. Identyfikacja stanu obiektu oraz 16

17 identyfikacja zmiany stanu obiektu są możliwe dzięki metodom związanym z danym obiektem. W przypadku idealnym, metody zdefiniowane przez programistę powinny być jedynym sposobem dostępu do obiektu. Metoda jest abstrakcją programistyczną tej samej kategorii co procedura lub procedura funkcyjna. Metoda, w przeciwieństwie do procedury, działa w środowisku obiektu po wysłaniu do niego komunikatu zawierającego nazwę tej metody. Metoda wykorzystuje wewnętrzne informacje tego obiektu, jakimi są przede wszystkim wartości atrybutów. Z koncepcyjnego punktu widzenia miejscem przechowywania metody jest odpowiednia klasa. Oznacza to, że metoda takowa może zostać zastosowana do dowolnego obiektu będącego instancją tej klasy. Istnieje kilka charakterystycznych metod posiadających odrębne nazewnictwo. Zaliczyć do nich można następujące rodzaje metod: metoda abstrakcyjna (ang. abstract method) jest to metoda, której specyfikacja znajduje się w danej klasie, ale której implementacje znajdują się w podklasach. metoda fabrykująca (ang. factory method) nazywana inaczej konstruktorem. Służy do tworzenia nowych obiektów. metoda klasowa (ang. class method) metoda ta nie działa na pojedynczych wystąpieniach danej klasy (obiektach), lecz na całej ekstensji klasy Komunikat Komunikat (ang. message) jest sygnałem skierowanym do obiektu, wywołującym określoną metodę lub operację, którą należy wykonać na obiekcie. Nazwa użyta w komunikacie jest nazwą wywoływanej metody. Źródłem komunikatu jest działający aktualnie program, w szczególności może to być wykonywana aktualnie metoda. Komunikat może posiadać parametry; zwykle jest ich co najwyżej kilka, w każdym razie parametry komunikatu nie służą do przenoszenia większej ilości informacji. Obiekt otrzymujący komunikat wykonuje odpowiednią metodę, która to metoda może zmienić jego stan. W efekcie wykonania metody na obiekcie, który otrzymał komunikat, może zostać zwrócona odpowiedź do nadawcy komunikatu. 17

18 W wielu opracowaniach uważa się, że zarówno komunikat, jak i nazwy występujące w ciele metody są dynamicznie wiązane, w związku z czym ten sam komunikat może zostać wysłany do różnych obiektów i może wywołać różne metody. Fakt ten posiada istotne znaczenie dla metod oraz technik projektowania i programowania [Subieta 1999a] Hermetyzacja Hermetyzacja (ang. encapsulation) polega na grupowaniu elementów składowych w obrębie jednej bryły i umożliwieniu manipulowania tą bryłą jako całością. Hermetyzacja wiąże się z ukrywaniem pewnych informacji dotyczących struktury i implementacji wnętrza tej bryły [Ludwikowska 2000]. Hermetyzacja jest podstawową techniką abstrakcji, czyli ukrycia wszelkich szczegółów danego przedmiotu lub bytu programistycznego, które na danym etapie rozpatrywania (analizy, projektowania, programowania) nie stanowią jego istotnej charakterystyki [Subieta 1999a]. Pojęcie hermetyzacji, jako jedna z zasad inżynierii oprogramowania, zostało sformułowane przez D. Parnasa w roku Można wyróżnić dwie koncepcje hermetyzacji: hermetyzacja ortodoksyjna oraz hermetyzacja ortogonalna. Pierwsza z nich, hermetyzacja ortodoksyjna, jest dość popularnym stereotypem w obiektowości. Ten rodzaj hermetyzacji został zaimplementowany między innymi w języku Smalltalk. W tym podejściu wszelkie operacje, jakie można wykonać na obiekcie, są określone przez metody do niego przypisane (znajdujące się w jego klasie i nadklasach). Bezpośredni dostęp do atrybutów obiektu jest niemożliwy. Drugim rodzajem jest hermetyzacja ortogonalna, zaimplementowana między innymi w językach C++ i Eiffel. W tym przypadku dowolny atrybut i metoda obiektu mogą być prywatne (czyli niedostępne z zewnątrz), bądź też publiczne Hierarchia klas i dziedziczenie Klasy w systemie tworzą hierarchię klas (ang. class hierarchy). Oznacza to, że dla pewnej klasy A może istnieć inna klasa (jedna lub więcej) B, znajdująca się na 18

19 niższym poziomie, która jest uszczegółowieniem (specjalizacją) klasy B. Natomiast klasa A, będąca na wyższym poziomie w hierarchii, jest uogólnieniem (generalizacją) klasy (klas) B. Klasa B dziedziczy wszystkie atrybuty i metody klasy A, mogąc jednocześnie posiadać własne atrybuty i metody. Określone dla klasy A atrybuty i metody są rekurencyjnie dziedziczone przez wszystkie jej podklasy (rys. 2.3). Większość systemów obiektowych posiada predefiniowaną przez system klasę, stanowiącą jedyny korzeń dla wszystkich klas w systemie. Hierarchia klas jest spójna, co oznacza, że nie istnieją odizolowane węzły, natomiast do każdego węzła (klasy) istnieje dostęp z korzenia. RYSUNEK 2.3. HIERARCHIA KLAS I DZIEDZICZENIE. Cechą wspólną dla wszystkich bez wyjątku systemów obiektowych jest to, że klasa może posiadać dowolną liczbę podklas. Jednakże w pewnych systemach klasy mogą mieć tylko jedną nadklasę, natomiast w innych klasy mogą mieć dowolną liczbę nadklas. 19

20 Pierwszy przypadek, kiedy klasa dziedziczy atrybuty i metody od tylko jednej klasy, nazywany jest dziedziczeniem pojedynczym (ang. single inheritance). W sytuacji takiej każda klasa ma co najwyżej jedną nadklasę. Drugi przypadek dotyczy klasy, która dziedziczy atrybuty i metody od więcej niż jednej nadklasy. Sytuacja taka nosi nazwę dziedziczenia wielokrotnego (ang. multiple inheritance). Jeżeli system umożliwia wielokrotne dziedziczenie, wówczas klasy tworzą zakorzeniony spójny skierowany graf acykliczny, nazywany czasem kratą klas. Nie ma porozumienia odnośnie tego, czy wielokrotne dziedziczenie jest naprawdę konieczne. Jednakże pomimo tego, iż ten rodzaj dziedziczenia komplikuje model danych, wydaje się, że jest ono potrzebne i jego zaakceptowanie jest nieuniknione [Kim 1996]. Metody odziedziczone mogą zostać przeciążone. Oznacza to, iż podklasa może zmodyfikować działanie odziedziczonej metody nie zmieniając jej nazwy. Pojęcie dziedziczenia stwarza pewne problemy, takie jak: konflikty nazw, zasięg dziedziczenia, naruszenia hermetyzacji. Są to jednak sytuacje charakterystyczne dla programowania obiektowego, dlatego nie należy ich traktować jako wady rzutujące negatywnie na decyzje, czy stosować dziedziczenie Pojęcia wykraczające poza model podstawowy Przedstawione powyżej pojęcia wchodzące w skład podstawowego modelu obiektowego w większości przypadków zaspokajają podstawowe wymagania dotyczące modelowania danych. Istnieje jednak wiele ważnych pojęć, które są istotne w wielu przypadkach, ale które nie należą do pojęć podstawowych. W tym rozdziale postaramy się przedstawić trzy z takich pojęć. Są to: polimorfizm, obiekty złożone oraz zarządzanie wersjami. Polimorfizm (ang. polymorphism) w terminologii obiektowej oznacza możliwość istnienia wielu metod o takiej samej nazwie, powiązaną z możliwością wyboru konkretnej metody podczas czasu wykonania (dynamicznego wiązania). Wybór nazwy jest określany wyłącznie jej zewnętrznym, pojęciowym znaczeniem w ramach danej klasy obiektów. Wybór ten nie jest uwarunkowany własnościami lub 20

Paweł Kurzawa, Delfina Kongo

Paweł Kurzawa, Delfina Kongo Paweł Kurzawa, Delfina Kongo Pierwsze prace nad standaryzacją Obiektowych baz danych zaczęły się w roku 1991. Stworzona została grupa do prac nad standardem, została ona nazwana Object Database Management

Bardziej szczegółowo

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki

Bardziej szczegółowo

Programowanie obiektowe - 1.

Programowanie obiektowe - 1. Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego

Bardziej szczegółowo

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja

Bardziej szczegółowo

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

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Systemy baz danych w zarządzaniu przedsiębiorstwem W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Proces zarządzania danymi Zarządzanie danymi obejmuje czynności: gromadzenie

Bardziej szczegółowo

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language) Zagadnienia (1/3) Rola modelu systemu w procesie analizy wymagań (inżynierii wymagań) Prezentacja różnego rodzaju informacji o systemie w zależności od rodzaju modelu. Budowanie pełnego obrazu systemu

Bardziej szczegółowo

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

Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych Baza danych to: zbiór informacji zapisanych według ściśle określonych reguł, w strukturach odpowiadających założonemu modelowi danych, zbiór

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

Technologie obiektowe

Technologie obiektowe WYKŁAD dr inż. Paweł Jarosz Instytut Informatyki Politechnika Krakowska mail: pjarosz@pk.edu.pl LABORATORIUM dr inż. Paweł Jarosz (3 grupy) mgr inż. Piotr Szuster (3 grupy) warunki zaliczenia Obecność

Bardziej szczegółowo

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym konceptualnym modelem danych jest tzw. model związków encji (ERM

Bardziej szczegółowo

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Modelowanie danych, projektowanie systemu informatycznego

Modelowanie danych, projektowanie systemu informatycznego Modelowanie danych, projektowanie systemu informatycznego Modelowanie odwzorowanie rzeczywistych obiektów świata rzeczywistego w systemie informatycznym Modele - konceptualne reprezentacja obiektów w uniwersalnym

Bardziej szczegółowo

Baza danych. Modele danych

Baza danych. Modele danych Rola baz danych Systemy informatyczne stosowane w obsłudze działalności gospodarczej pełnią funkcję polegającą na gromadzeniu i przetwarzaniu danych. Typowe operacje wykonywane na danych w systemach ewidencyjno-sprawozdawczych

Bardziej szczegółowo

Baza danych. Baza danych to:

Baza danych. Baza danych to: Baza danych Baza danych to: zbiór danych o określonej strukturze, zapisany na zewnętrznym nośniku (najczęściej dysku twardym komputera), mogący zaspokoić potrzeby wielu użytkowników korzystających z niego

Bardziej szczegółowo

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD Projektowanie systemów informatycznych Roman Simiński roman.siminski@us.edu.pl siminskionline.pl Modelowanie danych Diagramy ERD Modelowanie danych dlaczego? Od biznesowego gadania do magazynu na biznesowe

Bardziej szczegółowo

Spis treści. Przedmowa

Spis treści. Przedmowa Spis treści Przedmowa V 1 SQL - podstawowe konstrukcje 1 Streszczenie 1 1.1 Bazy danych 1 1.2 Relacyjny model danych 2 1.3 Historia języka SQL 5 1.4 Definiowanie danych 7 1.5 Wprowadzanie zmian w tabelach

Bardziej szczegółowo

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut. Dziedziczenie Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasy Student oraz Pracownik: class Student class Pracownik

Bardziej szczegółowo

1 Projektowanie systemu informatycznego

1 Projektowanie systemu informatycznego Plan wykładu Spis treści 1 Projektowanie systemu informatycznego 1 2 Modelowanie pojęciowe 4 2.1 Encja....................................... 5 2.2 Własności.................................... 6 2.3 Związki.....................................

Bardziej szczegółowo

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

Systemy baz danych. mgr inż. Sylwia Glińska Systemy baz danych Wykład 1 mgr inż. Sylwia Glińska Baza danych Baza danych to uporządkowany zbiór danych z określonej dziedziny tematycznej, zorganizowany w sposób ułatwiający do nich dostęp. System zarządzania

Bardziej szczegółowo

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

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38 Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem zajęcia 1 dr Jakub Boratyński pok. A38 Program zajęć Bazy danych jako podstawowy element systemów informatycznych wykorzystywanych

Bardziej szczegółowo

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4 Utrwalanie danych zastosowanie obiektowego modelu danych warstwy biznesowej do generowania schematu relacyjnej bazy danych Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4 1. Relacyjne

Bardziej szczegółowo

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni Akademia Morska w Gdyni Gdynia 2004 1. Podstawowe definicje Baza danych to uporządkowany zbiór danych umożliwiający łatwe przeszukiwanie i aktualizację. System zarządzania bazą danych (DBMS) to oprogramowanie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 13 Marcin Młotkowski 27 maja 2015 Plan wykładu Trwałość obiektów 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 2 / 29 Trwałość (persistence) Definicja Cecha

Bardziej szczegółowo

SBQL. język zapytań dla obiektowych baz danych. Kamil Adamczyk. Uniwersytet Warszawski 20.IV.2009

SBQL. język zapytań dla obiektowych baz danych. Kamil Adamczyk. Uniwersytet Warszawski 20.IV.2009 SBQL język zapytań dla obiektowych baz danych Kamil Adamczyk Uniwersytet Warszawski 20.IV.2009 Spis treści 1. Wstęp 2. Obiektowe bazy danych Model danych Języki zapytań Dostępne produkty 3. Sbql Główne

Bardziej szczegółowo

010 BAZY DANYCH. Prof. dr hab. Marek Wisła

010 BAZY DANYCH. Prof. dr hab. Marek Wisła 010 BAZY DANYCH Prof. dr hab. Marek Wisła Baza danych pojęcie sięgające wieków Dane pewien zasób ludzie od zawsze próbują gromadzić dane i wnioskować (uzyskiwać informacje) na ich podstawie komputery tylko

Bardziej szczegółowo

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

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła 030 PROJEKTOWANIE BAZ DANYCH Prof. dr hab. Marek Wisła Elementy procesu projektowania bazy danych Badanie zależności funkcyjnych Normalizacja Projektowanie bazy danych Model ER, diagramy ERD Encje, atrybuty,

Bardziej szczegółowo

Rysunek 1: Przykłady graficznej prezentacji klas.

Rysunek 1: Przykłady graficznej prezentacji klas. 4 DIAGRAMY KLAS. 4 Diagramy klas. 4.1 Wprowadzenie. Diagram klas - w ujednoliconym języku modelowania jest to statyczny diagram strukturalny, przedstawiający strukturę systemu w modelach obiektowych przez

Bardziej szczegółowo

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

Bazy danych Wykład zerowy. P. F. Góra Bazy danych Wykład zerowy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012 Patron? Św. Izydor z Sewilli (VI wiek), biskup, patron Internetu (sic!), stworzył pierwszy katalog Copyright c 2011-12 P.

Bardziej szczegółowo

Alicja Marszałek Różne rodzaje baz danych

Alicja Marszałek Różne rodzaje baz danych Alicja Marszałek Różne rodzaje baz danych Rodzaje baz danych Bazy danych można podzielić wg struktur organizacji danych, których używają. Można podzielić je na: Bazy proste Bazy złożone Bazy proste Bazy

Bardziej szczegółowo

1. Mapowanie diagramu klas na model relacyjny.

1. Mapowanie diagramu klas na model relacyjny. Rafał Drozd 1. Mapowanie diagramu klas na model relacyjny. 1.1 Asocjacje Wpływ na sposób przedstawienia asocjacji w podejściu relacyjnym ma przede wszystkim jej liczność (jeden-do-jednego, jeden-do-wielu,

Bardziej szczegółowo

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM,

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM, Bazy Danych Bazy Danych i SQL Podstawowe informacje o bazach danych Krzysztof Regulski WIMiIP, KISiM, regulski@metal.agh.edu.pl Oczekiwania? 2 3 Bazy danych Jak przechowywać informacje? Jak opisać rzeczywistość?

Bardziej szczegółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

Bardziej szczegółowo

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Modelowanie hierarchicznych struktur w relacyjnych bazach danych Modelowanie hierarchicznych struktur w relacyjnych bazach danych Wiktor Warmus (wiktorwarmus@gmail.com) Kamil Witecki (kamil@witecki.net.pl) 5 maja 2010 Motywacje Teoria relacyjnych baz danych Do czego

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.

Bardziej szczegółowo

Technologia informacyjna (IT - Information Technology) dziedzina wiedzy obejmująca:

Technologia informacyjna (IT - Information Technology) dziedzina wiedzy obejmująca: 1.1. Podstawowe pojęcia Technologia informacyjna (IT - Information Technology) dziedzina wiedzy obejmująca: informatykę (włącznie ze sprzętem komputerowym oraz oprogramowaniem używanym do tworzenia, przesyłania,

Bardziej szczegółowo

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

WPROWADZENIE DO BAZ DANYCH

WPROWADZENIE DO BAZ DANYCH WPROWADZENIE DO BAZ DANYCH Pojęcie danych i baz danych Dane to wszystkie informacje jakie przechowujemy, aby w każdej chwili mieć do nich dostęp. Baza danych (data base) to uporządkowany zbiór danych z

Bardziej szczegółowo

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Krzysztof Kadowski. PL-E3579, PL-EA0312, Krzysztof Kadowski PL-E3579, PL-EA0312, kadowski@jkk.edu.pl Bazą danych nazywamy zbiór informacji w postaci tabel oraz narzędzi stosowanych do gromadzenia, przekształcania oraz wyszukiwania danych. Baza

Bardziej szczegółowo

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

Program wykładu. zastosowanie w aplikacjach i PL/SQL; Program wykładu 1 Model relacyjny (10 godz.): podstawowe pojęcia, języki zapytań (algebra relacji, relacyjny rachunek krotek, relacyjny rachunek dziedzin), zależności funkcyjne i postaci normalne (BCNF,

Bardziej szczegółowo

Transformacja wiedzy w budowie i eksploatacji maszyn

Transformacja wiedzy w budowie i eksploatacji maszyn Uniwersytet Technologiczno Przyrodniczy im. Jana i Jędrzeja Śniadeckich w Bydgoszczy Wydział Mechaniczny Transformacja wiedzy w budowie i eksploatacji maszyn Bogdan ŻÓŁTOWSKI W pracy przedstawiono proces

Bardziej szczegółowo

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych Laboratorium Technologii Informacyjnych Projektowanie Baz Danych Komputerowe bazy danych są obecne podstawowym narzędziem służącym przechowywaniu, przetwarzaniu i analizie danych. Gromadzone są dane w

Bardziej szczegółowo

2017/2018 WGGiOS AGH. LibreOffice Base

2017/2018 WGGiOS AGH. LibreOffice Base 1. Baza danych LibreOffice Base Jest to zbiór danych zapisanych zgodnie z określonymi regułami. W węższym znaczeniu obejmuje dane cyfrowe gromadzone zgodnie z zasadami przyjętymi dla danego programu komputerowego,

Bardziej szczegółowo

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

Relacyjny model baz danych, model związków encji, normalizacje Relacyjny model baz danych, model związków encji, normalizacje Wyklad 3 mgr inż. Maciej Lasota mgr inż. Karol Wieczorek Politechnika Świętokrzyska Katedra Informatyki Kielce, 2009 Definicje Operacje na

Bardziej szczegółowo

Podstawowe zagadnienia z zakresu baz danych

Podstawowe zagadnienia z zakresu baz danych Podstawowe zagadnienia z zakresu baz danych Jednym z najważniejszych współczesnych zastosowań komputerów we wszelkich dziedzinach życia jest gromadzenie, wyszukiwanie i udostępnianie informacji. Specjalizowane

Bardziej szczegółowo

Wykład 2. Relacyjny model danych

Wykład 2. Relacyjny model danych Wykład 2 Relacyjny model danych Wymagania stawiane modelowi danych Unikanie nadmiarowości danych (redundancji) jedna informacja powinna być wpisana do bazy danych tylko jeden raz Problem powtarzających

Bardziej szczegółowo

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

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000 Bazy Danych LITERATURA C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000 J. D. Ullman, Systemy baz danych, WNT - W-wa, 1998 J. D. Ullman, J. Widom, Podstawowy

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ (INT) Inżynieria internetowa 1. Tryby komunikacji między procesami w standardzie Message Passing Interface 2. HTML DOM i XHTML cel i charakterystyka 3. Asynchroniczna komunikacja serwerem HTTP w technologii

Bardziej szczegółowo

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle EFEKTY KSZTAŁCENIA Wiedza Absolwent tej specjalności

Bardziej szczegółowo

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL Podstawy baz danych: Rysunek 1. Tradycyjne systemy danych 1- Obsługa wejścia 2- Przechowywanie danych 3- Funkcje użytkowe 4- Obsługa wyjścia Ewolucja baz danych: Fragment świata rzeczywistego System przetwarzania

Bardziej szczegółowo

Technologie i usługi internetowe cz. 2

Technologie i usługi internetowe cz. 2 Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,

Bardziej szczegółowo

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

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko Podstawowe pojęcia dotyczące relacyjnych baz danych mgr inż. Krzysztof Szałajko Czym jest baza danych? Co rozumiemy przez dane? Czym jest system zarządzania bazą danych? 2 / 25 Baza danych Baza danych

Bardziej szczegółowo

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Bazy danych Wykład 3: Model związków encji. dr inż. Magdalena Krakowiak makrakowiak@wi.zut.edu.pl Co to jest model związków encji? Model związków

Bardziej szczegółowo

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Modelowanie diagramów klas w języku UML Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Czym jest UML - Unified Modeling Language - Rodzina języków modelowania graficznego - Powstanie na przełomie lat 80

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 8 Wprowadzenie Definiowanie typu obiektowego Porównywanie obiektów Tabele z obiektami Operacje DML na obiektach Dziedziczenie -

Bardziej szczegółowo

Porównanie systemów zarządzania relacyjnymi bazami danych

Porównanie systemów zarządzania relacyjnymi bazami danych Jarosław Gołębiowski 12615 08-07-2013 Porównanie systemów zarządzania relacyjnymi bazami danych Podstawowa terminologia związana z tematem systemów zarządzania bazami danych Baza danych jest to zbiór danych

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 03 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas abstrakcyjnych i interfejsów. Wprowadzenie

Bardziej szczegółowo

Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design

Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design Projektowanie Zorientowane na Dziedzinę ang. Domain Driven Design 2 Projektowanie Stan posiadania Przypadki użycia Model dziedziny Operacje systemowe Kontrakty dla operacji systemowych Problemy do rozwiązania

Bardziej szczegółowo

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ (INT) Inżynieria internetowa 1.Tryby komunikacji między procesami w standardzie Message Passing Interface. 2. HTML DOM i XHTML cel i charakterystyka. 3. Asynchroniczna komunikacja serwerem HTTP w technologii

Bardziej szczegółowo

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Cel zajęć. Celem zajęć jest zapoznanie się ze sposobem działania popularnych kolekcji. Wprowadzenie teoretyczne. Rozważana w ramach niniejszych

Bardziej szczegółowo

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia ZP/ITS/11/2012 Załącznik nr 1a do SIWZ ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia Przedmiotem zamówienia jest: Przygotowanie zajęć dydaktycznych w postaci kursów e-learningowych przeznaczonych

Bardziej szczegółowo

Wprowadzenie do systemów informacyjnych

Wprowadzenie do systemów informacyjnych Uwagi ogólne: Wprowadzenie do systemów informacyjnych Projektowanie obiektowe Obiektowość jest nową ideologią, która zmienia myślenie realizatorów SI z zorientowanego na maszynę na zorientowane na człowieka.

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

Technologia informacyjna

Technologia informacyjna Technologia informacyjna Pracownia nr 9 (studia stacjonarne) - 05.12.2008 - Rok akademicki 2008/2009 2/16 Bazy danych - Plan zajęć Podstawowe pojęcia: baza danych, system zarządzania bazą danych tabela,

Bardziej szczegółowo

Grupy pytań na egzamin inżynierski na kierunku Informatyka

Grupy pytań na egzamin inżynierski na kierunku Informatyka Grupy pytań na egzamin inżynierski na kierunku Informatyka Dla studentów studiów dziennych Należy wybrać dwie grupy pytań. Na egzaminie zadane zostaną 3 pytania, każde z innego przedmiotu, pochodzącego

Bardziej szczegółowo

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego: Typy klasowe (klasy) 1. Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która definiuje programy za pomocą obiektów

Bardziej szczegółowo

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo

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

2010-10-21 PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA PLAN WYKŁADU Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna BAZY DANYCH Wykład 2 dr inż. Agnieszka Bołtuć MODEL DANYCH Model danych jest zbiorem ogólnych zasad posługiwania

Bardziej szczegółowo

Wybrane problemy z dziedziny modelowania i wdrażania baz danych przestrzennych w aspekcie dydaktyki. Artur Krawczyk AGH Akademia Górniczo Hutnicza

Wybrane problemy z dziedziny modelowania i wdrażania baz danych przestrzennych w aspekcie dydaktyki. Artur Krawczyk AGH Akademia Górniczo Hutnicza Wybrane problemy z dziedziny modelowania i wdrażania baz danych przestrzennych w aspekcie dydaktyki Artur Krawczyk AGH Akademia Górniczo Hutnicza Problem modelowania tekstowego opisu elementu geometrycznego

Bardziej szczegółowo

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie warstwy danych Zagadnienia Sposoby zapisu danych zewnętrznych Odwzorowanie dziedziny problemu w dziedzinę danych Normalizacja relacyjnej

Bardziej szczegółowo

1 Wstęp do modelu relacyjnego

1 Wstęp do modelu relacyjnego Plan wykładu Model relacyjny Obiekty relacyjne Integralność danych relacyjnych Algebra relacyjna 1 Wstęp do modelu relacyjnego Od tego się zaczęło... E. F. Codd, A Relational Model of Data for Large Shared

Bardziej szczegółowo

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1 Bazy danych wprowadzenie teoretyczne Piotr Prekurat 1 Baza danych Jest to zbiór danych lub jakichkolwiek innych materiałów i elementów zgromadzonych według określonej systematyki lub metody. Zatem jest

Bardziej szczegółowo

Paradygmaty programowania

Paradygmaty programowania Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów

Bardziej szczegółowo

Spis treści. Analiza i modelowanie_nowicki, Chomiak_Księga1.indb :03:08

Spis treści. Analiza i modelowanie_nowicki, Chomiak_Księga1.indb :03:08 Spis treści Wstęp.............................................................. 7 Część I Podstawy analizy i modelowania systemów 1. Charakterystyka systemów informacyjnych....................... 13 1.1.

Bardziej szczegółowo

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Zasady transformacji modelu DOZ do projektu tabel bazy danych Zasady transformacji modelu DOZ do projektu tabel bazy danych A. Obiekty proste B. Obiekty z podtypami C. Związki rozłączne GHJ 1 A. Projektowanie - obiekty proste TRASA # * numer POZYCJA o planowana godzina

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

poziom: Core wersja: 2.6 moduł: B : Wytwarzanie SYLLABUS

poziom: Core wersja: 2.6 moduł: B : Wytwarzanie SYLLABUS poziom: Core wersja: 2.6 moduł: B : Wytwarzanie SYLLABUS Niniejszy dokument jest syllabusem obowiązującym dla certyfikatu EUCIP ver. 2.6. Prezentuje obszary wiedzy, których znajomość jest niezbędna do

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej. Efekty dla studiów pierwszego stopnia profil ogólnoakademicki na kierunku Informatyka w języku polskim i w języku angielskim (Computer Science) na Wydziale Matematyki i Nauk Informacyjnych, gdzie: * Odniesienie-

Bardziej szczegółowo

UML w Visual Studio. Michał Ciećwierz

UML w Visual Studio. Michał Ciećwierz UML w Visual Studio Michał Ciećwierz UNIFIED MODELING LANGUAGE (Zunifikowany język modelowania) Pozwala tworzyć wiele systemów (np. informatycznych) Pozwala obrazować, specyfikować, tworzyć i dokumentować

Bardziej szczegółowo

Obiektowe bazy danych

Obiektowe bazy danych Obiektowe bazy Obiektowy model Wykład prowadzi: Tomasz Koszlajda Plan wykładu Przesłanki dla nowej generacji systemów baz Podstawowe elementy obiektowego modelu Konstruktory złożonych typów Abstrakcyjne

Bardziej szczegółowo

Świat rzeczywisty i jego model

Świat rzeczywisty i jego model 2 Świat rzeczywisty i jego model Świat rzeczywisty (dziedzina problemu) Świat obiektów (model dziedziny) Dom Samochód Osoba Modelowanie 3 Byty i obiekty Byt - element świata rzeczywistego (dziedziny problemu),

Bardziej szczegółowo

Projektowanie relacyjnych baz danych

Projektowanie relacyjnych baz danych Mam nadzieję, że do tej pory przyzwyczaiłeś się do tabelarycznego układu danych i poznałeś sposoby odczytywania i modyfikowania tak zapisanych danych. W tym odcinku poznasz nieco teorii relacyjnych baz

Bardziej szczegółowo

Bazy danych TERMINOLOGIA

Bazy danych TERMINOLOGIA Bazy danych TERMINOLOGIA Dane Dane są wartościami przechowywanymi w bazie danych. Dane są statyczne w tym sensie, że zachowują swój stan aż do zmodyfikowania ich ręcznie lub przez jakiś automatyczny proces.

Bardziej szczegółowo

Technologia informacyjna

Technologia informacyjna Technologia informacyjna Bazy danych Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2016 Plan wykładu Wstęp do baz danych Modele baz danych Relacyjne bazy danych Język SQL Rodzaje

Bardziej szczegółowo

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych Mariusz Trzaska Modelowanie i implementacja systemów informatycznych Notka biograficzna Dr inż. Mariusz Trzaska jest adiunktem w Polsko-Japońskiej Wyższej Szkole Technik Komputerowych, gdzie zajmuje się

Bardziej szczegółowo

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1 Charakterystyka oprogramowania obiektowego 1. Definicja systemu informatycznego 2. Model procesu wytwarzania oprogramowania - model cyklu życia oprogramowania 3. Wymagania 4. Problemy z podejściem nieobiektowym

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

Obiektowość BD Powtórka Czas odpowiedzi. Bazy Danych i Systemy informacyjne Wykład 14. Piotr Syga

Obiektowość BD Powtórka Czas odpowiedzi. Bazy Danych i Systemy informacyjne Wykład 14. Piotr Syga Bazy Danych i Systemy informacyjne Wykład 14 Piotr Syga 18.01.2019 Motywacja Ograniczenia relacyjnych baz danych proste typu i struktury klucze (w tym sztuczne) relacje między tabelami uwzględniane w triggerach

Bardziej szczegółowo

INFORMATYKA Pytania ogólne na egzamin dyplomowy

INFORMATYKA Pytania ogólne na egzamin dyplomowy INFORMATYKA Pytania ogólne na egzamin dyplomowy 1. Wyjaśnić pojęcia problem, algorytm. 2. Podać definicję złożoności czasowej. 3. Podać definicję złożoności pamięciowej. 4. Typy danych w języku C. 5. Instrukcja

Bardziej szczegółowo

Procesowa specyfikacja systemów IT

Procesowa specyfikacja systemów IT Procesowa specyfikacja systemów IT BOC Group BOC Information Technologies Consulting Sp. z o.o. e-mail: boc@boc-pl.com Tel.: (+48 22) 628 00 15, 696 69 26 Fax: (+48 22) 621 66 88 BOC Management Office

Bardziej szczegółowo

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS UNIWERSYTET ZIELONOGÓRSKI INSTYTUT INFORMATYKI I ELEKTROTECHNIKI ZAKŁAD INŻYNIERII KOMPUTEROWEJ Przygotowali: mgr inż. Arkadiusz Bukowiec mgr inż. Remigiusz Wiśniewski LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 03 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas abstrakcyjnych i interfejsów. Wprowadzenie teoretyczne. Rozważana

Bardziej szczegółowo

Projektowanie struktury danych

Projektowanie struktury danych Jarosław aw Kuchta Rozproszonych Projektowanie qhta@eti.pg.gda.pl J.Kuchta@eti.pg.gda.pl Zagadnienia Sposoby zapisu danych zewnętrznych Odwzorowanie dziedziny problemu w dziedzinę danych Normalizacja relacyjnej

Bardziej szczegółowo

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? 1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie

Bardziej szczegółowo