Wykład 8 Wojciech Pieprzyca

Slides:



Advertisements
Podobne prezentacje
C++ wykład 2 ( ) Klasy i obiekty.
Advertisements

Programowanie obiektowe
Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
Programowanie obiektowe
Programowanie obiektowe
Projektowanie bazy danych
Skrypty, procedury przechowywane i wyzwalane
Zaawansowane metody programowania – Wykład V
Dziedziczenie. Po co nam dziedziczenie? class osoba { char * imie, char * imie, * nazwisko; * nazwisko;public: void wypisz_imie(); void wypisz_imie();
Wprowadzenie do języka skryptowego PHP – cz. 2
25/08/2001 Bazy danych II 1 Piotr Górczyński Wstęp do SQL.
PySBQL Język zapytań dla obiektowych baz danych. Aplikacje bazodanowe Główny nurt budowania aplikacji opiera się na połączeniu: SQL JDBC Java Jak wyświetlić
Metody autoryzacji użytkowników wymaga integracji z systemem operacyjnym nie wymaga logowania mała pewność mechanizmu wymaga logowania duża pewność mechanizmu.
Zsbd Obiektowe Bazy danych
Bezpieczeństwo Procedury składowane Funkcje i Wyzwalacze
C++ wykład 2 ( ) Klasy i obiekty.
Zasady zaliczenia Warunki uzyskania zaliczenia:
Pakiety i ATD 1 Definicja. Pakietem albo jednostką programową nazywamy grupę logicznie powiązanych elementów, które mogą być typami, podtypami, obiektami.
Wykład 5 Wojciech Pieprzyca
Wstęp do programowania obiektowego
Projektowanie i programowanie obiektowe II - Wykład IV
Modele baz danych - spojrzenie na poziom fizyczny
Język SQL (Structured Query Language) DDL (Data Definition Language)
Bezpieczeństwo baz danych
Teoria relacyjnych baz danych
SQL – Structured Query Language (3)
T: Różnice pomiędzy programowaniem strukturalnym a obiektowym
Źródła: podręcznikopracował: A. Jędryczkowski.
Bazy danych podstawowe pojęcia
Jakub Wołczko W obiektowym świecie… Jakub Wołczko
SQL - Structured Query Language
Programowanie obiektowe Wykład 7 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Dariusz Wardowski.
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
Aplikacje bazodanowe ADO.NET PHP i MySQL
Rozwiązanie zadań do zaliczenia I0G1S4 // indeks
Wybrane zagadnienia relacyjnych baz danych
Programowanie obiektowe – język C++
Programowanie obiektowe 2013/2014
Komendy SQL do pracy z tabelami i bazami
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
dr Łukasz Murowaniecki T-109
1 Każdy obiekt jest scharakteryzowany poprzez: tożsamość – daje się jednoznacznie wyróżnić; stan; zachowanie. W analizie obiektowej podstawową strukturą
Bazy danych Microsoft access 2007.
Programowanie w języku C++
Temat 1: Strukturalny język zapytań SQL
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Programowanie strukturalne i obiektowe C++
Model obiektowy bazy danych
System Zarządzania Bazą Danych
Systemy informatyczne
Autor: Damian Urbańczyk
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.
Komendy SQL do pracy z danymi
Informatyka Stosowana – ROK II / III
Hibernate Podstawy.
XML w bazach danych.
Odwzorowania relacyjno-obiektowe Hibernate Podstawy.
Projektowanie bazy danych z użyciem diagramów UML Obiektowe projektowanie relacyjnej bazy danych Paweł Jarecki.
Waldemar Bartyna 1 Programowanie zaawansowane LINQ to XML.
.NET i Bazy Danych Projekt: Wadim Grasza.
Partnerstwo dla Przyszłości 1 Lekcja 27 Klasy i obiekty.
Object-relational mapping (aka O/RM, ORM, and O/R mapping)
BAZY DANYCH Microsoft Access Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i.
Partnerstwo dla Przyszłości 1 Lekcja 28 Dziedziczenie i rodzaje dziedziczenia.
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Programowanie Obiektowe – Wykład 6
Programowanie Obiektowe – Wykład 2
Strukturalny język zapytań SQL - historia
Technologie Informacyjne Bazy danych
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Wykład 8 Wojciech Pieprzyca Systemy Baz Danych Wykład 8 Wojciech Pieprzyca

Model relacyjny Dane umieszczone są w tabelach w postaci wierszy, które składają się z się z określonej ilości pól. Można korzystać tylko z typów predefiniowanych – wbudowanych w dany SZBD. Zalety: Model ten jest dokładnie zbadany i opiera się na rozbudowanych podstawach teoretycznych, Wykorzystanie języka SQL pozwala na budowę złożonych zapytań z grupowaniem i agregowaniem danych włącznie, Model ten jest niezależny od jakiegokolwiek języka programowania

Model relacyjny Wady: Modelowanie bardziej złożonych elementów rzeczywistości wymaga zaprojektowania i używania dużej liczby tabel, Brak możliwości definiowania własnych typów danych, Nienaturalna współpraca z językami programowania wysokiego poziomu, które obecnie w większości opierają się na obiektowym paradygmacie programowania. Trudności w modelowaniu związków wiele do wielu (N:M). Konieczność ich rozłożenia na związki jeden do wielu 1:N.

Model obiektowy Obiektowe bazy danych łączą własności obiektowości i obiektowych języków programowania z możliwościami systemów bazodanowych. Model danych wykorzystujący takie elementy jak klasy, atrybuty, metody. Zakłada hermetyzacje danych oraz metod, a także możliwość dziedziczenia. Język obiektowy jest językiem służącym zarówno do programowania jak i operowania na bazie danych, zapewniając możliwość powiązania danych z obiektami w projektowanej aplikacji.

Model obiektowy Obiekt w bazie reprezentuje obiekt w świecie rzeczywistym. W modelu tym istnieje możliwość definiowania własnych, złożonych typów danych oraz pisania procedury (metod) i operatorów do manipulowania tymi danymi w sposób obiektowy.

Model obiektowy Zalety: generalnie wszystkie zalety modelu obiektowego, bezpośrednie odzwierciedlenie obiektów modelowanej rzeczywistości, możliwość definiowania własnych typów danych, łatwość działania na złożonych obiektach, reprezentacja złożonych zależności pomiędzy obiektami, ujednolicone podejście do analizy, projektowania i implementacji systemów bazodanowych i aplikacji.

Model obiektowy Wady: brak jednego, akceptowanego języka zapytań, problemy z optymalizacją zapytań, brak szerokiego wykorzystania dla celów komercyjnych, niepewność co do skali zastosowań w przyszłości.

Model OMDG Model OMDG (Object Database Management Group) został przedstawiony jako standard definiowania i operowania na obiektowych bazach danych. Standard ten składa się z 4 części: Opis modelu obiektowego – słowny opis właściwości i pojęć modelu obiektowej bazy danych, ODL (Object Definition Language) – język definicji schematu obiektowej bazy danych, służy do definiowania klas (atrybutów, relacji, metod) i interfejsów obiektowej bazy danych, OQL (Object Query Language) – język zapytań do obiektowej bazy danych, OML (Object Manipulation Language) – zawiera instrukcje modyfikacji danych, znajdujących się w postaci obiektowej

ODL class nazwa { //definicje atrybutów //definicje relacji //definicje metod } Definicje atrybutów – określają nazwę i typ atrybutu. Typ może być: prosty (np. liczba Integer, ciąg znaków String, itp.) attribute String nazwisko; złożony – składający się z grupy obiektów np. zbiór attribute set<Float> pensje;

ODL Definicje relacji - określa nazwę związku, typ związku oraz odwołanie do związku zwrotnego (występującego w klasie do której tworzone jest połączenie). class pracownik { attribute String nazwisko; attribute String imie; attribute set<Float> pensje; attribute struct Adres{String ulica, String miasto} adres; relationship set<Firma> pracujeW inverse Firma::jestPracownikiem } Definicje metod – standardowa definicja znana z języków obiekt. void dodaj (in Firma f) { … }

OQL OQL jest językiem deklaratywnym opartym na standardzie SQL92 umożliwiającym zadawanie zapytań do obiektowej bazy danych. W poleceniu select określa się strukturę oczekiwanego wyniku, nazwy klas obiektów z których pobierane są wyniki oraz ewentualne warunki ograniczające po kluzuli where. select struct(imie:p.imie, nazwisko:p.nazwisko, ulica:p.adres.ulica, miasto:p.adres.miasto ) from p in Pracownicy where p.wiek()>30 Złączenia strukturalne (wynikające ze związków określonych w klasach) select struct(imie:p.imie, nazwisko:p.nazwisko, nazwa:f.nazwa, miasto:f.miasto) from p in Pracownicy, f in p.pracujeW

DB4O System zarządzania bazą danych DB4O dostarcza zawiera biblioteki umożliwiające tworzenie i operowanie na obiektowych bazach danych. Możliwe jest tworzenie aplikacji dwojakiego rodzaju: jednostanowiskowych – baza danych znajduje się w pliku i jest wykorzystywana w danym czasie tylko przez jednego użytkownika, wielostanowiskowych – baza danych jest udostępniona na zasadach architektury klient-serwer, możliwy jest współbieżny dostęp wielu użytkowników jednocześnie.

Obiektowo-relacyjne bazy danych Bazy obiektowo-relacyjne wywodzą się z baz czysto relacyjnych, które stopniowo były uzupełniane o elementy obiektowości takie jak: - możliwość tworzenia procedur, możliwość definiowania własnych typów danych, dziedziczenie typów danych, definiowanie złożonych struktur danych. SZBD umożliwiające wykorzystanie elementów obiektowych to np. Oracle, PostgreSQL.

Obiektowo-relacyjne bazy danych Definiowanie typów danych create type Point as object //nowy typ danych (x int, y int, member procedure move(dx int, dy int)); create type body Point as //definicja procedury move member procedure move(dx int, dy int) is begin self.x := self.x + dx; self.y := self.y + dy; end move; end;

Obiektowo-relacyjne bazy danych Dziedziczenie typów danych create type Figure as object (type varchar(20), not instantiable member function area return Float;) not instantiable not final; //typ abstrakcyjny, bazowy Klasa Figure będzie typem bazowym dla dalej zdefiniowanego typu pochodnego Triangle. Typ pochodny dziedziczy atrybuty oraz procedury zdefiniowane w typie bazowym oraz umożliwia zdefiniowanie nowych atrybutów i procedur/funkcji, a także definiowanie kodu odziedziczonych procedur/funkcji abstrakcyjnych.

Obiektowo-relacyjne bazy danych Dziedziczenie typów danych create type Triangle under Figure ( p1 Point, p2 Point, p3 Point, overriding member function area return Float ); Typ Triangle jest typem pochodnym wobec typu bazowego Figure. W ramach typu Triangle zaimplementowano definicję funkcji area odziedziczonej po typie triangle (powyżej przedstawiono jedynie nagłówek tej funkcji).

Obiektowo-relacyjne bazy danych Tabele przechowujące obiekty //utworzenie tabeli przechowującej obiekty typu Triangle create table Triangle of Triangle; //wstawienie obiektu do tabeli insert into Triangle values (new Triangle(new Point(0,0), new Point (0,10), new Point(10,10))); Powyżej wywoływany jest konstruktor typu danych Triangle, który zawiera zagnieżdżone wywołania konstruktora obiektu składowego Point.