MAS dr. Inż. Mariusz Trzaska

Podobne dokumenty
MSI dr. Inż. Mariusz Trzaska. obiektowych językach programowania

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

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

1. Mapowanie diagramu klas na model relacyjny.

Baza danych. Modele danych

Model relacyjny bazy danych

Zasady transformacji modelu DOZ do projektu tabel bazy danych

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

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

MAS dr. Inż. Mariusz Trzaska

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

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

MAS dr. Inż. Mariusz Trzaska. Realizacja różnych modeli dziedziczenia w obiektowych językach programowania

Podejście obiektowe do relacyjnych baz danych Hibernate.

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Plan wykładu: Relacyjny model danych: opis modelu, podstawowe pojęcia, ograniczenia, więzy.

Baza danych. Baza danych to:

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych

Wykład 2. Relacyjny model danych

Transformacja modelu ER do modelu relacyjnego

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

Paweł Kurzawa, Delfina Kongo

Projektowanie struktury danych

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

WPROWADZENIE DO BAZ DANYCH

Utwórz klucz podstawowy relacji na podstawie unikalnego identyfikatora encji. podstawie kluczy podstawowych wiązanych relacji.

PLAN WYKŁADU BAZY DANYCH GŁÓWNE ETAPY PROJEKTOWANIA BAZY MODELOWANIE LOGICZNE

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

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Autor: Joanna Karwowska

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

Projektowanie warstwy danych

FUNKCJE SZBD. ZSE - Systemy baz danych 1

Technologia informacyjna

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

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Technologie baz danych

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

Programowanie obiektowe

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

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

TRANSFORMACJA MODELU ER DO MODELU RELACYJNEGO

Rysunek 1: Przykłady graficznej prezentacji klas.

Zaawansowane Modelowanie I Analiza Systemów Informatycznych

Technologia informacyjna

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Wprowadzenie do baz danych

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Bazy danych - wykład wstępny

Pierwsza postać normalna

Transformacja modelu ER do modelu relacyjnego

Alicja Marszałek Różne rodzaje baz danych

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

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

Model relacyjny. Wykład II

WPROWADZENIE DO BAZ DANYCH

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

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

Diagramy klas. dr Jarosław Skaruz

Bazy Danych i Systemy informacyjne Wykład 7. Piotr Syga

SIECI KOMPUTEROWE I BAZY DANYCH

1 Wstęp do modelu relacyjnego

Hurtownie danych wykład 5

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

PODSTAWOWE POJĘCIA BAZ DANYCH

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

2017/2018 WGGiOS AGH. LibreOffice Base

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

Informatyka I BAZY DANYCH. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2017

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

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

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

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Programowanie wielowarstwowe i komponentowe

Programowanie w języku Java. Bazy danych SQLite w Javie

Wykład II Encja, atrybuty, klucze Związki encji. Opracowano na podstawie: Podstawowy Wykład z Systemów Baz Danych, J.D.Ullman, J.

JAVA bazy danych. na bazie: Język Java - Podstawy Programowania - Jacek Rumiński

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

Bazy danych TERMINOLOGIA

MAS dr. Inż. Mariusz Trzaska. Realizacja asocjacji w obiektowych językach

Pierwsza postać normalna

Modelowanie danych, projektowanie systemu informatycznego

Metody dostępu do danych

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

Teoretyczne podstawy informatyki

Język SQL, zajęcia nr 1

Transformacja modelu EER do postaci relacyjnego modelu danych. Zbyszko Królikowski

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

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Projektowanie obiektowe oprogramowania Wykład 9 Wzorce architektury aplikacji (1) Wiktor Zychla 2014

Diagramy związków encji ERD Ćwiczenia w modelowaniu danych

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Bazy danych. Wykład 4: Model SERM. dr inż. Magdalena Krakowiak

Podstawowe zagadnienia z zakresu baz danych

Przykłady normalizacji

INTERNETOWY KURS PODSTAW IT

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

Bazy danych. Algebra relacji

Bazy Danych. Model Relacyjny. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Transkrypt:

MAS dr. Inż. Mariusz Trzaska Wykład 9 Wykorzystanie modelu relacyjnego w obiektowych językach programowania

o Model relacyjny Zagadnienia o Przyczyny popularności relacyjnych baz danych. o Mapowanie poszczególnych konstrukcji z obiektowości Klasy, Asocjacje, Dziedziczenie. o Relacyjne bazy danych w obiektowych językach programowania (m. in. JDBC). Wykorzystano fragmenty wykładu Relacyjne Bazy Danych opracowanego przez L. Banachowski, J. Wierzbicki. Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 2

Model relacyjny o Twórca: Edgar Codd (1970) o Pojęcia Tabele Relacje Klucze Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 3

o Tabele Model relacyjny (2) Liczba kolumn jest z góry ustalona. Z każdą kolumną jest związana jej nazwa oraz dziedzina, określająca zbiór wartości, jakie mogą wystąpić w kolumnie. Na przecięciu wiersza i kolumny znajduje się pojedyncza (atomowa) wartość należąca do dziedziny kolumny. Wiersz reprezentuje jeden rekord informacji np. osobę. W modelu relacyjnym abstrahujemy od kolejności wierszy (rekordów) i kolumn (pól w rekordzie). Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 4

o Tabele c. d. Model relacyjny (3) IdWykładowcy Imię Nazwisko Tytuł 237 Jan Kowalski Doktor 3245 Maciej Jankowski Docent 8976 Artur Malinowski Profesor NazwaPrzedmiotu Kod IdWykładowcy Bazy danych BDA 1237 Projektowanie systemów informacyjnych PSI 3245 Technologie internetowe TIN 3245 Programowanie obiektowe POB 8976 Systemy decyzyjne SDE 1237 Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 5

Model relacyjny (4) o Znaczenie kolumny IdWykladowcy Jej wartość nie opisuje cechy wykładu. Reprezentuje związek danego przedmiotu z wykładowcą, o którym informacja znajduje się w innej tabeli i tylko korzystając z identyfikatora możemy rozpoznać w innej tabeli wiersz właściwego wykładowcy i odczytać o nim informacje. Istotne jest więc, aby identyfikator ten jednoznacznie określał danego wykładowcę - w modelu relacyjnym nie ma innej możliwości identyfikacji wiersza tylko poprzez wartości kolumn, które jednoznacznie identyfikują wiersz. Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 6

o Klucz Model relacyjny (5) Główny.. Jedna lub więcej kolumn, w których wartości jednoznacznie identyfikują cały wiersz. Obcy Klucz obcy jest to jedna lub więcej kolumn, których wartości występują jako wartości ustalonego klucza głównego w tej lub innej tabeli i są interpretowane jako wskaźniki do wierszy w tej drugiej tabeli. Przykład: w tabeli Przedmioty kluczem obcym jest IdWykładowcy,, którego wartości pochodzą z kolumny IdWykładowcy w tabeli Wykładowcy. Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 7

o Wartość Null Model relacyjny (6) Dziedziny kolumn (dopuszczalne wartości) są rozszerzane o specjalny obiekt Null - oznaczający brak wartości. Brak ten może być chwilowy, wynikający z dziedziny biznesowej. NULL jest czymś innym niż 0 lub o Indeks Umożliwia błyskawiczne wyszukiwanie wartości w kolumnach objętych indeksem. Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 8

Popularność modelu relacyjnego o Popularność modelu relacyjnego, czy raczej popularność baz danych? o Rola systemów spadkowych (legacy) o Termin baza danych kojarzony jest głównie z relacyjną bazą danych. o Prawdopodobnie w przyszłości ulegnie to zmianie. Biblioteki zapewniające m. in. trwałość danych, np. Hibernate. Obiektowe bazy danych. Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 9

Bazy danych o Główne powody korzystania z baz danych: Język zapytań, Szybkość działania, Bezpieczeństwo danych, Bezpieczeństwo dostępu do danych, I oczywiście zdolność do przechowywania dużej ilości informacji. o Wady relacyjnych baz danych model relacyjny Inne Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 10

Wykorzystanie baz danych o Przykrą konsekwencją wykorzystywania relacyjnych baz danych z poziomu obiektowych języków programowania jest niezgodność impedancji. o Polega na konieczności dopasowania do siebie dwóch różnych światów : Relacyjnego, Obiektowego. Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 11

Wykorzystanie baz danych (2) o Niezgodność impedancji * -jest rodzicem -Nazwa gatunku -Imię {unique} -Płeć -/Wiek +getwiek {abstract}() Foka -jest dzieckiem * {Urodzenie} Przebywanie Foka ur. na W -Współrzędne znalezienia -Data znalezienia -Szacunkowa data urodzenia -Identyfikator[0..1] +getwiek() Basen -Objętość -Data ostatniej wymiany -Minimalny okres wymiany +getobjetoscwody() -Dokładna data urodzenia +getwiek() * 1 Foka ur. w F przebywa w 0..9 Foka fokariowa... -Data ostatniego badania -Waga -Długość {Co najmniej dwoma rodzajami. Jednorazowa zmiana < 10%} * * * * jest karmiona Karma -Nazwa {unique} -Rodzaj -Opis jest karmiona -Od -Do -Dawka B. pobytowy -Objętość wysp {< 10%} +getobjetoscwody() B. rehabilitacyjny -Sprzęt rehabilitacyjny [1..*] +getobjetoscwody() 1..3 Stanowisko obserwacyjne -Typ {...} -Maks. liczba osób Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 12

Przejście z modelu obiektowego na relacyjny o Klasy Atrybuty, proste i złożone wymagane i opcjonalne pojedyncze i powtarzalne obiektu i klasowe wyliczalne Metody obiektu, klasowe, przesłonięcie i przeciążenie. Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 13

Przejście z modelu obiektowego na relacyjny (2) o Asocjacje binarne, z atrybutem, kwalifikowane, n-arne, agregacje, kompozycje. Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 14

Przejście z modelu obiektowego na relacyjny (3) o Dziedziczenie overlapping, complete, incomplete, multi-inheritance, multi-aspect, dynamic. Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 15

Mapowanie klas o Klasy zastępujemy tabelami. o Każdy atrybut jest przechowywany w oddzielnej kolumnie. o Dla każdej tabeli dodajemy specjalny atrybut klucz jednoznacznie identyfikujący obiekt. Raczej nie wykorzystujemy atrybutów biznesowych. o Specjalne rodzaje atrybutów wymagane i opcjonalne pojedyncze i powtarzalne obiektu i klasowe wyliczalne Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 16

Mapowanie klas (2) o Specjalne rodzaje atrybutów Prosty Kolumna w tabeli, np. Nazwisko. Złożony Jako jeden spłaszczony atrybut, np. adres: ul. Marszałkowska 12, 03-333333 Warszawa, Polska Jako jeden atrybut, ale z użyciem specjalnej notacji np. XML <Adres> </Adres> <Ulica>Marszałkowska</Ulica> <NrDomu>12</NrDomu> <KodPocztowy>03-333</KodPocztowy> <Kraj>Polska</Kraj> Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 17

Mapowanie klas (3) o Specjalne rodzaje atrybutów Złożony c. d. Stworzenie oddzielnej tabeli Adres i połączenie jej z główną IdAdres Ulica NrDomu KodPoczto wy Kraj 328 Marszałkowska 12 03-333 Polska Opcjonalny Kolumna musi dopuszczać wartości null. Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 18

Mapowanie klas (4) o Specjalne rodzaje atrybutów Powtarzalny Jako jedna kolumna ze specjalną składnią. Poszczególne wartości oddzielone np. przecinkami lub wykorzystanie XML podobnie jak przy atrybucie złożonym. Stworzenie oddzielnej tabeli i połączenie jej z główną. Klasowy Utworzenie specjalnej tabeli zawierającej wartości atrybutów klasowych z różnych klas. Zapamiętanie go poza bazą danych, np. w kodzie programu. Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 19

Mapowanie klas (5) o Specjalne rodzaje atrybutów Wyliczalny Utworzenie dedykowanej: Perspektywy (jeżeli system zarządzania bazą danych na to pozwala), Metody w języku programowania bazy danych, np. w SQL, Metody w języku programowania (poza bazą danych). Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 20

o Asocjacje binarne Liczność 1 1, 1 - * Pracownik -Imię i nazwisko Mapowanie asocjacji składa się * należy do Grupa -Nazwa Zastępujemy je relacjami. Dodajemy klucz obcy do odpowiedniej klasy. 1 PK Pracownik IDPracownik PK Grupa IDGrupa FK1 Imię i nazwisko IDGrupa Nazwa Aby odnaleźć pracowników należących do określonej grupy, trzeba przejrzeć wszystkich. Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 21

o Asocjacje binarne Liczność * - * Mapowanie asocjacji (2) Pracownik składa się należy do Grupa -Imię i nazwisko -Nazwa * * Wprowadzamy klasę pośredniczącą (nowe nazwy ról?). Dzięki temu zamiast jednej asocjacji * - * mamy dwie asocjacje 1 - *. Pracownik składa się należy do PracownikGrupa -składa się -należy do Grupa -Imię i nazwisko -Nazwa 1 * * 1 Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 22

o Asocjacje binarne Mapowanie asocjacji (3) Liczność * - * - c. d. Trzy klasy mapujemy na trzy tabele. W środkowej tabeli umieszczamy klucze obce. Pracownik PracownikGrupa Grupa PK IDPracownik PK IDPracownikGrupa PK IDGrupa Imię i nazwisko FK1 FK2 IDGrupa IDPracownik Nazwa Niestety aby znaleźć Pracowników należących do danej grupy, Grupy do których należy konkretny pracownik musimy przejrzeć wszystkie krotki z tabeli Pracownikgrupa. Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 23

Mapowanie asocjacji (4) o Asocjacje z atrybutem (klasą asocjacji) Pracownik składa się należy do Grupa -Imię i nazwisko -Nazwa * * -DataOd -DataDo Postępujemy analogicznie jak w przypadku asocjacji * - * Klasa pośrednicząca z atrybutami pochodzącymi z klasy asocjacji. Pracownik -Imię i nazwisko składa się 1 należy do * PracownikGrupa -DataOd -DataDo -składa się * -należy do 1 Grupa -Nazwa Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 24

Mapowanie asocjacji (5) o Asocjacje z atrybutem (klasą asocjacji) c. d. Liczność * - * - c. d. Trzy klasy mapujemy na trzy tabele. W środkowej tabeli umieszczamy klucze obce oraz atrybuty pochodzące z klasy pośredniczącej (klasy asocjacji). PK Pracownik IDPracownik Imię i nazwisko PK FK1 FK2 PracownikGrupa IDPracownikGrupa IDGrupa IDPracownik DataOd DataDo PK Grupa IDGrupa Nazwa Wady podobne jak dla asocjacji * - *. Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 25

Mapowanie asocjacji (6) o Asocjacje kwalifikowane Brak odpowiednika w modelu relacyjnym. Częściowo można je symulować stosując jako klucz obcy kwalifikator. Pracownik -Imię i nazwisko NazwaGrupy * 1 Grupa -NazwaGrupy PK Pracownik1 IDPracownik PK Grupa1 NazwaGrupy FK1 Imię i nazwisko NazwaGrupy Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 26

* o Asocjacje n-arne Mapowanie asocjacji (7) Wprowadzamy dodatkową klasę pośredniczącą Pracownik * * Wykonanie -Od -Do -Wynagrodzenie * * Projekt * * wykonuje Od Do Wynagrodzenie Zadanie Pracownik * * Projekt Zadanie Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 27

Mapowanie asocjacji (8) o Asocjacje n-arne c. d. Cztery klasy (n = 3) mapujemy na cztery tabele. W środkowej tabeli umieszczamy klucze obce oraz ewentualnie atrybuty pochodzące z klasy pośredniczącej (klasy asocjacji). Nie uwzględniono tabel pośredniczących. PK Pracownik IDPracownik PK FK1 FK2 FK3 PracProZad PracProZad IDProjekt IDPracownik IDZadanie PK Projekt IDProjekt Zadanie PK IDZadanie Wady podobne jak dla asocjacji * - *. Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 28

o Agregacje Mapowanie asocjacji (9) Analogicznie jak w przypadku przejścia z modelu pojęciowego na implementacyjny, agregacje realizujemy tak samo jak asocjacje. o Kompozycje Jeżeli system zarządzania bazą danych umożliwia to: Tworzymy odpowiednią perspektywę, Stosujemy specyficzne więzy integralności (np. kaskadowe usuwanie). Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 29

Mapowanie dziedziczenia o W tradycyjnych relacyjnych bazach danych dziedziczenie nie występuje. o W nowszych systemach, dziedziczenie występuje (przeważnie najprostsze: rozłączne, pojedyncze). o Oczywiście, w przypadku jego braku, można próbować różnych konstrukcji, które problem obchodzą. Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 30

Mapowanie dziedziczenia (2) o Można powiedzieć, że sposoby obejścia braku dziedziczenia w RBD są zbliżone do tych wykorzystywanych przy przejściu z modelu pojęciowego do implementacyjnego. Wykorzystanie relacji (asocjacji) do opisania zależności pomiędzy tabelami (klasami), Spłaszczenie hierarchii. Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 31

Mapowanie dziedziczenia (3) (1) (2) Osoba -Nazwisko Osoba -Nazwisko Student -Nr indeksu Pracownik -Pensja Osoba -Nazwisko Student -Nr indeksu Pracownik -Pensja Table Per Hierarchy (TPH) Table Per Concrete Class (TPC) Table Per Type (TPT) Student -Nr indeksu (3) Pracownik -Pensja Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 32

Mapowanie dziedziczenia (4) o Sposób nr 1 (TPH - Table Per Hierarchy) Całą zawartość wszystkich klas hierarchii dziedziczenia umieszczamy w jednej tabeli. Dodajemy kolumnę określającą typ krotki ( do jakiej klasy należy obiekt ) Wady i zalety. Student -Nr indeksu Osoba -Nazwisko Pracownik -Pensja Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 33

Mapowanie dziedziczenia (5) o Sposób nr 2 (TPC - Table Per Concrete Class) Tworzymy jedną tabelę dla każdej z podklas. W każdej tabeli będą znajdowały się elementy z nadklasy. Wady i zalety. W celu połączenia wyników można skorzystać z Union (SQL). Osoba -Nazwisko Student -Nr indeksu Pracownik -Pensja Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 34

Mapowanie dziedziczenia (6) o Sposób nr 3 (TPT - Table Per Type) Każda klasa ma swoją własną tabelę. Dziedziczenie zastępujemy agregacjami, czyli w przypadku RBD, relacjami pomiędzy tabelami. Dodajemy odpowiednie klucze główne i obce. Wady i zalety. Osoba -Nazwisko Student -Nr indeksu Pracownik -Pensja Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 35

Relacyjne bazy danych w obiektowych językach programowania o Każdy z popularnych języków programowania udostępnia biblioteki do obsługi RBD. o Java JDBC Natywne rozwiązania dla konkretnych baz, o Microsoft C# ADO, o C++ ADO (MS), ODBC. Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 36

RBD w języku Java o Najpopularniejszym sposobem łączenia się z bazą danych w języku Java jest wykorzystanie funkcjonalności udostępnianej przez JDBC. // Próba wczytania driver a try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); } catch (ClassNotFoundException cnfe) { // Błąd System.err.println ("Blad: " + cnfe); System.exit(0); } String url = "jdbc:odbc:" + args[0]; Connection db_connection = DriverManager.getConnection (url, "dba", "sql"); Statement db_statement = db_connection.createstatement(); db_statement.executeupdate("create table employee { int id, char(50) name };"); db_statement.executeupdate("insert into employee values (1, 'Jan Kowlski');"); db_connection.commit(); http://www.javacoffeebreak.com/articles/jdbc/ Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 37

o JDBC c. d. // [...] RBD w języku Java (2) // Wykonaj zapytanie ResultSet result = db_statement.executequery("select * from employee"); // Przetwarzanie wynikow while (result.next() ) { System.out.println ("ID : " + result.getint("id")); } System.out.println ("Name : " + result.getstring("name")); System.out.println (); http://www.javacoffeebreak.com/articles/jdbc/ o Jak widać nie jest to najłatwiejszy sposób pracy z danymi. o Szczególnie gdy porównamy go z podejściem obiektowym, np. ObjectPlus. Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 38

Ciąg dalszy na następnym wykładzie Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 9 39