Przewale wszystko 1.0 Autorzy: Piotr Wilk (piotrwilk86@gmail.com) Piotr Zegar (me@piotrzegar.pl) Marek Prząda Kamil Walkowicz AGH 2010 1/43
Spis treści Wizja...4 Wstęp...4 Słownik...4 Opis problemu...4 Opis produktu...5 Wymagania funkcjonalne i ich priorytety...5 Wymagania jakościowe...5 Inne wymagania...5 Wymagania stawiane dokumentacji...5 Wstępna analiza ryzyka...5 Projekt...5 Podział pracy...5 Harmonogram pracy...6 Projekt bazy danych...6 Diagram...6 Tabele...7 Projekt parsera...7 Interfejsy...7 ParserServiceLocal...7 Klasy:...7 GPW...7 Indeksy...8 Oferta...8 Waluty...8 Projekt aplikacji web...8 Moduły...8 Makler Base Objects...8 Makler Iservices...9 Makler Parser EJB...9 Makler Services EJB...9 Makler Webapp...9 Makler JavaEE6 Asembly...9 Interfejsy...9 UserServiceLocal...9 DataServiceLocal...9 Projekt aplikacji mobilnej...10 Klasy:...10 LoginWebService...10 Implementacja...10 Implementacja bazy danych...10 SQL...10 Diagram zaleznosci modulu...21 Implementacja parsera...21 Opis...21 Diagram zaleznosci modulu...22 Implementacja aplikacji web...23 Diagram zaleznosci dla modulu IServices...23 Diagram zaleznosci dla modulu Services...23 Diagram zaleznosci dla modulu Webapp...24 2/43
Implementacja aplikacji androida...25 Testy...25 Instrukcja...25 Instrukcja instalacji...25 Rzut poglądowy na aplikacje webowa...26 Rzut poglądowy na aplikacje androida...28 3/43
Wizja Wstęp Celem projektu jest stworzenie oprogramowania, które realizowałoby podstawowe możliwości maklera/broker giełdowego. Czyli sprzedaż, kupno, śledzenie akcji notowań giełdowych. Akcję będą wirtualne, jednak ich cena będzie identyczna z kursami giełdowymi. Słownik Pojęcie Makler Giełda Akcja Obligacja Waluta Indeks Kupno Sprzedaż Definicja Osoba grająca akcjami na giełdzie Organizowane w ustalonym miejscu i czasie spotkania handlowe, na których są sprzedawane ściśle określone towary po cenach ogłoszonych w codziennych notowaniach papier wartościowy łączący w sobie prawa o charakterze majątkowym i niemajątkowym, wynikające z uczestnictwa akcjonariusza w spółce akcyjnej. papier wartościowy, w którym emitent stwierdza, że jest dłużnikiem obligatariusza i zobowiązuje się wobec niego do spełnienia określonego świadczenia pojęcie używane zamiennie z pojęciem pieniądz. Jednak nazwę waluta stosuje się przede wszystkim w kontekście wymiany międzynarodowej. Waluta jest wtedy środkiem rozliczeniowym (czyli miernikiem wartości) oraz środkiem regulowania płatności (należności i zobowiązań) w transakcjach międzynarodowych wartość obliczona na podstawie wyceny akcji wybranych spółek giełdowych. Umożliwia syntetyczne przedstawienie koniunktury na giełdzie lub stanu jakiegoś sektora spółek. Aby stać się posiadaczem np. akcji, inwestujący powinien złożyć zlecenie kupna. Zakupu można dokonać: osobiście w biurze maklerskim, telefonicznie lub za pośrednictwem Internetu Aby sprzedać np. akcje należy złożyć zlecenie sprzedaży. Sprzedaż zostanie sfinalizowana, gdy znajdzie się kupiec. Opis problemu Ogólny opis rozwiązywanego problemu np. w następującej formie: Problem - Jaki problem ma być rozwiązany przez wdrożenie produktu? Duża część społeczeństwa boi się grać na giełdzie gdyż nie mają możliwości sprawdzenia swoich umiejętności. Przyczyna - Jaka jest przyczyna powstania powyższego problemu? Zaliczenie przedmiotu. Rozwiązanie - Co wniesie wdrożenie produktu, aby powyższy problem rozwiązać? Dzięki wdrożeniu projektu wielu ludzie będzie miało możliwość sprawdzenie swoich umiejętności gry na giełdzie. 4/43
Opis produktu Produkt w głównej mierzę będzie składał się z witryny internetowej realizującej wymagane cele, oraz aplikacji mobilnych, które będą miały podobną funkcjonalność, co strona. Wymagania funkcjonalne i ich priorytety Wymagania funkcjonalne (co system,,robi'') w formie wyliczenia. Kupno akcji, obligacji i walut. Sprzedaż akcji, obligacji i walut. Śledzenie akcji, obligacji i walut. Wykresy przedstawiające historie walut, obligacji, indeksów i akcji Przeglądanie archiwalnych wartości akcji, obligacji i walut. Wymagania jakościowe Szybki dostęp do listy posiadanych akcji i ich statusu. Dostęp mobilny do systemu. Intuicyjne działanie systemu. Inne wymagania Stosowane standardy - Zgodność z JSR 299, JSR318, JSR316, JSR314, JSR317 Wymagania systemowe i technologiczne Wdrożenie: serwer GlassFish 3, Android 2.2 Platformy: Java EE6, Java SE6 Technologie: JUnit, JSF, JPA, EJB, PrimeFaces, WebServices Bazy danych: DB2, PostgreSQL Wymagania stawiane dokumentacji Podręcznik użytkownika rzut poglądowy na system. Podręcznik instalacji i konfiguracji. Dokumentacja techniczna Diagramy, JavaDoc Wstępna analiza ryzyka Ryzyko związane z działaniem aplikacji rozproszonej możliwość zerwania komunikacji, Prawdopodobieństwo 1, Skutki 8. Problem implementacyj-ny związany z implementacja aplikacji rozproszonej, Prawdopodobieństwo 5, Skutki 10. Brak znajomości technologii mobilnych developerów. Prawdopodobieństwo 10, Skutki 3. Problem obciążenia bazy danych. Prawdopodobieństwo 3, Skutki 5. Projekt Podział pracy Projekt/Implementacja bazy danych Kamil Walkowicz Projekt/Implementacja parsera notowań giełdowych Marek Prząda Projekt/Implementacja aplikacji web-owej Piotr Zegar Projekt/Implementacja aplikacji mobilnej Piotr Wilk 5/43
Funkcje poszczególnych osób w projekcie Piotr Zegar Technical Leader, Software Design Engineer, Software Engineer, Test Engineer Piotr Wilk - Scrum Master, Software Engineer, Software Design Engineer Marek Prząda - Software Engineer, Software Design Engineer Kamil Walkowicz - Database Design Engineer, Features Manager Harmonogram pracy 6/43
Projekt bazy danych Diagram Nazwa bazy danych: makler System baz danych: PostgreSQL 8.4 Tabele Makcja tabela z podstawowymi informacjami o akcjach makcja_notowanie notowania akcji makcja_obserw ulubione akcje makcja_portfel_kupno historia kupionych akcji makcja_portfel_sprzedaz historia sprzedanych akcji mindex tabela z podstawowymi informacjami o indeksach mindex_notowanie notowania indeksow mindex_obserw ulubione indeksy mobligacja tabela z podstawowymi informacjami o obligacjach mobligacja_notowanie notowania obligacji mobligacja_obserw ulubione obligacje mobligacja_portfel_kupno historia kupionych obligacji mobligacja_portfel_sprzedaz historia sprzedanych obligacji muzytkownik - uzytkownicy mwaluta tabela z podstawowymi informacjami o walutach mwaluta_notowanie notowania walut mwaluta_obserw ulubione waluty mwaluta_portfel_kupno historia kupionych walut mwaluta_portfel_sprzedaz historia sprzedanych walut 7/43
Projekt parsera Parser odpowiada za pobranie, przetworzenie a następnie zapisanie w bazie danych o notowaniach. Notowania będą pobierane co 10 min. Interfejsy ParserServiceLocal Usluga dostepu do bazy danych. public interface ParserServiceLocal { public int dodajindeksy(final Vector<Indeksy> lista); public int dodajakcje(final Vector<GPW> lista); public int dodajobligacje(final Vector<GPW> lista); public int dodajwaluty(final Vector<Waluty> lista); } Klasy: GPW Pojemnik na dane o akcjach i obligacjach. public class GPW { public Date DataNotowania = new Date(); //dzien i godzina notowania public String Nazwa = ""; //nazwa spolki/firmy public String Skrot = ""; //skrot nazwy public float KursOdn = 0; //kurs odnotowany public float TKO = 0; //Teoretycznego Kursu Otwarcia, moze nie miec wartosci public float KursOtwarcia = 0; //kurs otwarcia public float KursMin = 0; // kurs minimalny public float KursMax = 0; //kurs maksymalny public float KursOstTrans = 0; //kurs ostatniej transakcji public float ZmDoOdn = 0; //zmiana do odnotowania w % public Oferta NajlepszaOfertaKupna = new Oferta(); //liczba zlecen, wolumen i limit dla najlepszej oferty kupna public Oferta NajlepszaOfertaSprzedazy = new Oferta(); //liczba zlecen, wolumen i limit dla najlepszej oferty sprzedazy public int WolumenOstTrans = 0; //wolumen ostatniej transakcji public int WolumenObr = 0; //wolumen obrotow public float WartObr = 0; //wartosc obrotow } Indeksy Pojemnik na notowania indeksow. public class Indeksy { public Date DataNotowania = new Date(); //data notowania public String Skrot = ""; //skrot nazwy public float TWI = 0; public float WartOst = 0; public float ZmDoOdn = 0; //zmiana do odnotowania w % public float ProcOtwPortfela = 0; public float IndeksKupna = 0; public float IndeksSprzedazy = 0; 8/43
public int WartObr = 0; //wartosc obrotow w tys. zl. } Oferta Pojemnik na oferty kupna/sprzedazy. public class Oferta { public int LiczbaZlecen = 0; public int Wolumen = 0; public float Limit = 0; } Waluty Pojemnik na notowania walut. public class Waluty { public Date DataKursSredni = new Date(); //data notowania public Date DataKursKupnoSprzedaz; public String NazwaWaluty = ""; public String Kraj = ""; public String KodWaluty = ""; public float KursSredni = 0; public float KursKupna = 0; public float KursSprzedazy = 0; } Projekt aplikacji web Moduły Makler Base Objects Warstwa aplikacji ilustrujaca warstwe bazy danych. Kazda klasa ilustruje poszczegolna tabele. Calosc w JPA 2.0. Makler Iservices Warstwa aplikacji zawierajaca interfejsy dostepu do bazy danych. Makler Parser EJB Modul EJB zawierajacy parser I jego timer. Parser uruchamiany poprzez Timer. Pobiera notowania akcji, obligacji, walut I indeksow, nastepnie jest przetwarza i zapisuje do bazy danych. Makler Services EJB Modul EJB zawierajacy uslugi pozwalajace na dostep do bazy danych. Makler Webapp Modul WAR aplikacji webowej napisanej przy uzyciu technologi JSF. Webservices. Makler JavaEE6 Asembly Modul pakujacy calosc w jeden plik EAR pozwalajacy na szybki deploy calej aplikacji na serwerze Glassfish v3. Makler Android Aplikacja pod adroida wykonujaca podstawowe operacje na systemie poprzez webservice (soap). 9/43
Interfejsy UserServiceLocal Interfejs dla komponentu EJB zarzadzanie uzytkownikami w bazie danych. public interface UserServiceLocal { public Uzytkownik finduzytkownik(string login, String haslo); public Uzytkownik createuzytkownik(uzytkownik u); public Uzytkownik finduzytkownik(long id); boolean isloginuser(string login); boolean updatepassword(long id, String oldp, String newp); Double GetKasa(Long userid); boolean SetKasa(Long userid, Double kasa); } DataServiceLocal Interfejs dla komponentu EJB zarzadzanie danymi uzyte w module Webapp. public interface DataServiceLocal { public java.util.list<pl.piotrzegar.makler.bo.akcjanotowanie> getakcje(); public java.util.list<pl.piotrzegar.makler.bo.akcjanotowanie> getakcjenotowania(java.lang.long id); public java.util.list<pl.piotrzegar.makler.bo.obligacjanotowanie> getobligacjanotowania(java.lang.long id); public java.util.list<pl.piotrzegar.makler.bo.obligacjanotowanie> getobligacje(); public java.util.list<pl.piotrzegar.makler.bo.indexnotowanie> getindexnotowania(java.lang.long id); public java.util.list<pl.piotrzegar.makler.bo.indexnotowanie> getindexy(); public java.util.list<pl.piotrzegar.makler.bo.walutanotowanie> getwaluty(); public java.util.list<pl.piotrzegar.makler.bo.walutanotowanie> getwalutanotowania(java.lang.long id); public boolean isobserowanawaluta(java.lang.long userid, java.lang.long id); public boolean isobserowanaindex(java.lang.long userid, java.lang.long id); public boolean isobserowanaobligacja(java.lang.long userid, java.lang.long id); public boolean isobserowanaakcja(java.lang.long userid, java.lang.long id); public boolean setobserwowanaindex(java.lang.long userid, java.lang.long id); public boolean setobserwowanaobligacja(java.lang.long userid, java.lang.long id); public boolean setobserwowanaakcja(java.lang.long userid, java.lang.long id); public boolean setobserwowanawaluta(java.lang.long userid, java.lang.long id); public boolean unsetobserwowanawaluta(java.lang.long userid, java.lang.long id); public boolean unsetobserwowanaakcja(java.lang.long userid, java.lang.long id); public boolean unsetobserwowanaobligacja(java.lang.long userid, java.lang.long id); public boolean unsetobserwowanaindex(java.lang.long userid, java.lang.long id); public java.util.list<pl.piotrzegar.makler.bo.walutanotowanie> getobserwowanewaluty(java.lang.long userid); public java.util.list<pl.piotrzegar.makler.bo.indexnotowanie> getobserwowaneindexy(java.lang.long userid); public java.util.list<pl.piotrzegar.makler.bo.obligacjanotowanie> getobserwowaneobligacje(java.lang.long userid); public java.util.list<pl.piotrzegar.makler.bo.akcjanotowanie> getobserwowaneakcje(java.lang.long userid); public boolean KupAkcje(java.lang.Long userid, java.lang.long notowanieid, java.lang.integer ilosc); public boolean KupObligacje(java.lang.Long userid, java.lang.long notowanieid, java.lang.integer ilosc); public boolean KupWaluta(java.lang.Long userid, java.lang.long notowanieid, java.lang.integer ilosc); public pl.piotrzegar.makler.bo.akcjanotowanie getlastakcjanotowanie(java.lang.long akcjaid); public pl.piotrzegar.makler.bo.obligacjanotowanie getlastobligacjanotowanie(java.lang.long obligacjaid); public pl.piotrzegar.makler.bo.indexnotowanie getlastindexnotowanie(java.lang.long indexid); public pl.piotrzegar.makler.bo.walutanotowanie getlastwalutanotowanie(java.lang.long walutaid); public boolean SprzedajAkcje(java.lang.Long userid, java.lang.long notowanieid, java.lang.integer ilosc); public boolean SprzedajObligacje(java.lang.Long userid, java.lang.long notowanieid, java.lang.integer ilosc); public boolean SprzedajWaluta(java.lang.Long userid, java.lang.long notowanieid, java.lang.integer ilosc); public java.util.map<akcjanotowanie, java.lang.integer> GetPortfelAkcje(java.lang.Long userid); public java.util.map<obligacjanotowanie, java.lang.integer> GetPortfelObligacje(java.lang.Long userid); public Map<WalutaNotowanie, java.lang.integer> GetPortfelWaluty(java.lang.Long userid); public java.lang.integer GetPortfelAkcjaCount(java.lang.Long userid, java.lang.long id); public Integer GetPortfelWalutaCount(java.lang.Long userid, java.lang.long id); public Integer GetPortfelObligacjaCount(java.lang.Long userid, java.lang.long id); } 10/43
Projekt aplikacji mobilnej Aplikacja mobilna pisana dla Android 2.2++, która spełnia podstawowe założenia jak przeglądanie danych, logowanie oraz wylogowywanie się. Aplikacja wykorzystuję open sourcowe bilbioteki takie jak ksoap2 (http://sourceforge.net/projects/ksoap2/) oraz kxml (http://sourceforge.net/projects/kxml/), do wymiany danych pomiędzy adnroidem a webservice za pomocą soap. Klasy: LoginWebService WebService pozwalajaca na loczenie się aplikacji mobilnej z aplikacja webowa. @WebService public class LoginWebService { public Uzytkownik finduzytkownik(long id) { public Long finduzytkownikex(string login, String haslo) { public String getakcjeall() public String getobligacjeall() public String getwalutyall() public String getindexyall() public String getakcjeobserwowane(long id) public String getobligacjeobserwowane(long id) public String getindexyobserwowane(long id) public String getwalutyobserwowane(long id) } Implementacja Implementacja bazy danych SQL PostgreSQL 8.4 Kod SQL bazy danych dla PostgreSQL 8.4: - PostgreSQL database dump ostatnia_aktualizacja timestamp without time zone, nazwa character varying(30) NOT NULL, id_last_notowanie bigint ); SET client_encoding = 'UTF8'; SET standard_conforming_strings = off; SET check_function_bodies = false; SET client_min_messages = warning; SET escape_string_warning = off; SET search_path = public, pg_catalog; ALTER TABLE public.makcja OWNER TO clockman; - Name: makcja_id_seq; Type: SEQUENCE; Schema: public; Owner: clockman SET default_tablespace = ''; SET default_with_oids = false; - Name: makcja; Type: TABLE; Schema: public; Owner: clockman; Tablespace: CREATE SEQUENCE makcja_id_seq INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; ALTER TABLE public.makcja_id_seq OWNER TO clockman; CREATE TABLE makcja ( id integer NOT NULL, skrot character varying(10) NOT NULL, 11/43
Name: makcja_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: clockman Name: makcja_obserw_id_seq; Type: SEQUENCE; Schema: public; Owner: clockman ALTER SEQUENCE makcja_id_seq OWNED BY makcja.id; CREATE SEQUENCE makcja_obserw_id_seq INCREMENT BY 1 NO MAXVALUE -NO MINVALUE Name: makcja_notowanie; Type: TABLE; Schema: public; Owner: CACHE 1; clockman; Tablespace: -ALTER TABLE public.makcja_obserw_id_seq OWNER TO CREATE TABLE makcja_notowanie ( clockman; id integer NOT NULL, nk_liczba_wolumen integer, -wart_obr double precision, Name: makcja_obserw_id_seq; Type: SEQUENCE OWNED BY; kurs_odn double precision, Schema: public; Owner: clockman ns_liczba_limit double precision, -zm_do_odn double precision, kurs_max double precision, ALTER SEQUENCE makcja_obserw_id_seq OWNED BY wolumen_obr integer, makcja_obserw.id; kurs_min double precision, tko double precision, ns_liczba_wolumen integer, -kurs_ost_trans double precision, Name: makcja_portfel_kupno; Type: TABLE; Schema: public; kurs_otwarcia double precision, Owner: clockman; Tablespace: ns_liczba_zlecen integer, -data_notowania timestamp without time zone NOT NULL, nk_liczba_zlecen integer, CREATE TABLE makcja_portfel_kupno ( nk_liczba_limit double precision, id integer NOT NULL, wolumen_ost_trans integer, data_kupna timestamp without time zone, id_akcji bigint NOT NULL ilosc integer, ); id_notowanie bigint, id_uzytkownik bigint NOT NULL ); ALTER TABLE public.makcja_notowanie OWNER TO clockman; - Name: makcja_notowanie_id_seq; Type: SEQUENCE; Schema: public; Owner: clockman -CREATE SEQUENCE makcja_notowanie_id_seq INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; ALTER TABLE public.makcja_notowanie_id_seq OWNER TO clockman; - Name: makcja_notowanie_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: clockman -ALTER SEQUENCE makcja_notowanie_id_seq OWNED BY makcja_notowanie.id; - Name: makcja_obserw; Type: TABLE; Schema: public; Owner: clockman; Tablespace: -CREATE TABLE makcja_obserw ( id integer NOT NULL, id_akcja bigint NOT NULL, id_uzytkownik bigint NOT NULL ); ALTER TABLE public.makcja_obserw OWNER TO clockman; ALTER TABLE public.makcja_portfel_kupno OWNER TO clockman; - Name: makcja_portfel_kupno_id_seq; Type: SEQUENCE; Schema: public; Owner: clockman -CREATE SEQUENCE makcja_portfel_kupno_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; ALTER TABLE public.makcja_portfel_kupno_id_seq OWNER TO clockman; - Name: makcja_portfel_kupno_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: clockman -ALTER SEQUENCE makcja_portfel_kupno_id_seq OWNED BY makcja_portfel_kupno.id; - Name: makcja_portfel_sprzedaz; Type: TABLE; Schema: public; Owner: clockman; Tablespace: -CREATE TABLE makcja_portfel_sprzedaz ( id integer NOT NULL, data_sprzedazy timestamp without time zone, ilosc integer, id_uzytkownik bigint NOT NULL, id_notowanie bigint ); 12/43
zm_do_odn double precision, proc_otw_portfela double precision, index_kupna double precision, wart_ost double precision, twi double precision, id_index bigint NOT NULL ALTER TABLE public.makcja_portfel_sprzedaz OWNER TO clockman; - Name: makcja_portfel_sprzedaz_id_seq; Type: SEQUENCE; Schema: public; Owner: clockman -CREATE SEQUENCE makcja_portfel_sprzedaz_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; ALTER TABLE public.makcja_portfel_sprzedaz_id_seq OWNER TO clockman; - Name: makcja_portfel_sprzedaz_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: clockman -ALTER SEQUENCE makcja_portfel_sprzedaz_id_seq OWNED BY makcja_portfel_sprzedaz.id; - Name: mindex; Type: TABLE; Schema: public; Owner: clockman; Tablespace: -CREATE TABLE mindex ( id integer NOT NULL, skrot character varying(10) NOT NULL, ostatnia_aktualizacja timestamp without time zone, id_last_notowanie bigint ); ALTER TABLE public.mindex OWNER TO clockman; - Name: mindex_id_seq; Type: SEQUENCE; Schema: public; Owner: clockman ); ALTER TABLE public.mindex_notowanie OWNER TO clockman; - Name: mindex_notowanie_id_seq; Type: SEQUENCE; Schema: public; Owner: clockman -CREATE SEQUENCE mindex_notowanie_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; ALTER TABLE public.mindex_notowanie_id_seq OWNER TO clockman; - Name: mindex_notowanie_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: clockman -ALTER SEQUENCE mindex_notowanie_id_seq OWNED BY mindex_notowanie.id; - Name: mindex_obserw; Type: TABLE; Schema: public; Owner: clockman; Tablespace: -CREATE TABLE mindex_obserw ( id integer NOT NULL, id_uzytkownik bigint NOT NULL, id_index bigint NOT NULL ); ALTER TABLE public.mindex_obserw OWNER TO clockman; CREATE SEQUENCE mindex_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; - Name: mindex_obserw_id_seq; Type: SEQUENCE; Schema: public; Owner: clockman CREATE SEQUENCE mindex_obserw_id_seq START WITH 1 ALTER TABLE public.mindex_id_seq OWNER TO clockman; INCREMENT BY 1 NO MAXVALUE -NO MINVALUE Name: mindex_id_seq; Type: SEQUENCE OWNED BY; Schema: CACHE 1; public; Owner: clockman -ALTER TABLE public.mindex_obserw_id_seq OWNER TO ALTER SEQUENCE mindex_id_seq OWNED BY mindex.id; clockman; Name: mindex_obserw_id_seq; Type: SEQUENCE OWNED BY; Name: mindex_notowanie; Type: TABLE; Schema: public; Owner: Schema: public; Owner: clockman clockman; Tablespace: ALTER SEQUENCE mindex_obserw_id_seq OWNED BY CREATE TABLE mindex_notowanie ( mindex_obserw.id; id integer NOT NULL, index_sprzedazy double precision, wart_obr integer, -data_notowania timestamp without time zone NOT NULL, 13/43
Name: mobligacja; Type: TABLE; Schema: public; Owner: clockman; Tablespace: -CREATE TABLE mobligacja ( id integer NOT NULL, skrot character varying(10) NOT NULL, ostatnia_aktualizacja timestamp without time zone, nazwa character varying(30) NOT NULL, id_last_notowanie bigint ); ALTER TABLE public.mobligacja_notowanie_id_seq OWNER TO clockman; - Name: mobligacja_notowanie_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: clockman -ALTER SEQUENCE mobligacja_notowanie_id_seq OWNED BY mobligacja_notowanie.id; ALTER TABLE public.mobligacja OWNER TO clockman; - Name: mobligacja_id_seq; Type: SEQUENCE; Schema: public; Owner: clockman -CREATE SEQUENCE mobligacja_id_seq INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; - Name: mobligacja_obserw; Type: TABLE; Schema: public; Owner: clockman; Tablespace: -CREATE TABLE mobligacja_obserw ( id integer NOT NULL, id_obligacja bigint NOT NULL, id_uzytkownik bigint NOT NULL ); ALTER TABLE public.mobligacja_obserw OWNER TO clockman; ALTER TABLE public.mobligacja_id_seq OWNER TO clockman; - Name: mobligacja_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: clockman -ALTER SEQUENCE mobligacja_id_seq OWNED BY mobligacja.id; - Name: mobligacja_notowanie; Type: TABLE; Schema: public; Owner: clockman; Tablespace: -CREATE TABLE mobligacja_notowanie ( id integer NOT NULL, nk_liczba_wolumen integer, wart_obr double precision, kurs_odn double precision, ns_liczba_limit double precision, zm_do_odn double precision, kurs_max double precision, wolumen_obr integer, kurs_min double precision, tko double precision, ns_liczba_wolumen integer, kurs_ost_trans double precision, kurs_otwarcia double precision, ns_liczba_zlecen integer, data_notowania timestamp without time zone NOT NULL, nk_liczba_zlecen integer, nk_liczba_limit double precision, wolumen_ost_trans integer, id_obligacji bigint NOT NULL ); - Name: mobligacja_obserw_id_seq; Type: SEQUENCE; Schema: public; Owner: clockman -CREATE SEQUENCE mobligacja_obserw_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; ALTER TABLE public.mobligacja_obserw_id_seq OWNER TO clockman; - Name: mobligacja_obserw_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: clockman -ALTER SEQUENCE mobligacja_obserw_id_seq OWNED BY mobligacja_obserw.id; - Name: mobligacja_portfel_kupno; Type: TABLE; Schema: public; Owner: clockman; Tablespace: -CREATE TABLE mobligacja_portfel_kupno ( id integer NOT NULL, data_kupna timestamp without time zone, ilosc integer, id_uzytkownik bigint NOT NULL, id_notowanie bigint ); ALTER TABLE public.mobligacja_notowanie OWNER TO clockman; - Name: mobligacja_notowanie_id_seq; Type: SEQUENCE; Schema: public; Owner: clockman -CREATE SEQUENCE mobligacja_notowanie_id_seq INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; ALTER TABLE public.mobligacja_portfel_kupno OWNER TO clockman; - Name: mobligacja_portfel_kupno_id_seq; Type: SEQUENCE; Schema: public; Owner: clockman -CREATE SEQUENCE mobligacja_portfel_kupno_id_seq START WITH 1 14/43
INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; ALTER TABLE public.muzytkownik OWNER TO clockman; - Name: muzytkownik_id_seq; Type: SEQUENCE; Schema: public; ALTER TABLE public.mobligacja_portfel_kupno_id_seq OWNER TO Owner: clockman clockman; Name: mobligacja_portfel_kupno_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: clockman CREATE SEQUENCE muzytkownik_id_seq INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; ALTER SEQUENCE mobligacja_portfel_kupno_id_seq OWNED BY mobligacja_portfel_kupno.id; ALTER TABLE public.muzytkownik_id_seq OWNER TO clockman; - Name: mobligacja_portfel_sprzedaz; Type: TABLE; Schema: public; Owner: clockman; Tablespace: - Name: muzytkownik_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: clockman CREATE TABLE mobligacja_portfel_sprzedaz ( id integer NOT NULL, data_sprzedazy timestamp without time zone, ilosc integer, id_uzytkownik bigint NOT NULL, id_notowanie bigint ); ALTER SEQUENCE muzytkownik_id_seq OWNED BY muzytkownik.id; ALTER TABLE public.mobligacja_portfel_sprzedaz OWNER TO clockman; CREATE TABLE mwaluta ( id integer NOT NULL, ostatnia_aktualizacja timestamp without time zone, nazwa character varying(30) NOT NULL, kraj character varying(30) NOT NULL, kod character varying(10) NOT NULL, id_last_notowanie bigint ); - Name: mobligacja_portfel_sprzedaz_id_seq; Type: SEQUENCE; Schema: public; Owner: clockman -CREATE SEQUENCE mobligacja_portfel_sprzedaz_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; - Name: mwaluta; Type: TABLE; Schema: public; Owner: clockman; Tablespace: ALTER TABLE public.mwaluta OWNER TO clockman; - Name: mwaluta_id_seq; Type: SEQUENCE; Schema: public; Owner: clockman ALTER TABLE public.mobligacja_portfel_sprzedaz_id_seq OWNER TO clockman; CREATE SEQUENCE mwaluta_id_seq INCREMENT BY 1 -NO MAXVALUE Name: mobligacja_portfel_sprzedaz_id_seq; Type: SEQUENCE NO MINVALUE OWNED BY; Schema: public; Owner: clockman CACHE 1; -ALTER SEQUENCE mobligacja_portfel_sprzedaz_id_seq OWNED BY mobligacja_portfel_sprzedaz.id; - Name: muzytkownik; Type: TABLE; Schema: public; Owner: clockman; Tablespace: -CREATE TABLE muzytkownik ( id integer NOT NULL, adres character varying(100), status integer, kasa double precision NOT NULL, data_stworzenia timestamp without time zone, haslo character varying(32) NOT NULL, imie character varying(30), email character varying(50), login character varying(40) NOT NULL, nazwisko character varying(50) ); ALTER TABLE public.mwaluta_id_seq OWNER TO clockman; - Name: mwaluta_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: clockman -ALTER SEQUENCE mwaluta_id_seq OWNED BY mwaluta.id; - Name: mwaluta_notowanie; Type: TABLE; Schema: public; Owner: clockman; Tablespace: -CREATE TABLE mwaluta_notowanie ( id integer NOT NULL, kurs_kupna double precision, data_kurs_sredni timestamp without time zone NOT NULL, kurs_sredni double precision, data_kurs_ks timestamp without time zone NOT NULL, 15/43
kurs_sprzedazy double precision, id_waluta bigint NOT NULL data_kupna timestamp without time zone, ilosc integer, id_notowanie bigint, id_uzytkownik bigint NOT NULL ); ); ALTER TABLE public.mwaluta_notowanie OWNER TO clockman; - Name: mwaluta_notowanie_id_seq; Type: SEQUENCE; Schema: public; Owner: clockman -CREATE SEQUENCE mwaluta_notowanie_id_seq INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; ALTER TABLE public.mwaluta_notowanie_id_seq OWNER TO clockman; - Name: mwaluta_notowanie_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: clockman -ALTER SEQUENCE mwaluta_notowanie_id_seq OWNED BY mwaluta_notowanie.id; - Name: mwaluta_obserw; Type: TABLE; Schema: public; Owner: clockman; Tablespace: -CREATE TABLE mwaluta_obserw ( id integer NOT NULL, id_uzytkownik bigint NOT NULL, id_waluta bigint NOT NULL ); ALTER TABLE public.mwaluta_obserw OWNER TO clockman; - Name: mwaluta_obserw_id_seq; Type: SEQUENCE; Schema: public; Owner: clockman ALTER TABLE public.mwaluta_portfel_kupno OWNER TO clockman; - Name: mwaluta_portfel_kupno_id_seq; Type: SEQUENCE; Schema: public; Owner: clockman -CREATE SEQUENCE mwaluta_portfel_kupno_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; ALTER TABLE public.mwaluta_portfel_kupno_id_seq OWNER TO clockman; - Name: mwaluta_portfel_kupno_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: clockman -ALTER SEQUENCE mwaluta_portfel_kupno_id_seq OWNED BY mwaluta_portfel_kupno.id; - Name: mwaluta_portfel_sprzedaz; Type: TABLE; Schema: public; Owner: clockman; Tablespace: -CREATE TABLE mwaluta_portfel_sprzedaz ( id integer NOT NULL, data_sprzedazy timestamp without time zone, ilosc integer, id_notowanie bigint, id_uzytkownik bigint NOT NULL ); ALTER TABLE public.mwaluta_portfel_sprzedaz OWNER TO clockman; CREATE SEQUENCE mwaluta_obserw_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; - Name: mwaluta_portfel_sprzedaz_id_seq; Type: SEQUENCE; Schema: public; Owner: clockman ALTER TABLE public.mwaluta_obserw_id_seq OWNER TO clockman; CREATE SEQUENCE mwaluta_portfel_sprzedaz_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; - Name: mwaluta_obserw_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: clockman -ALTER TABLE public.mwaluta_portfel_sprzedaz_id_seq OWNER TO clockman; ALTER SEQUENCE mwaluta_obserw_id_seq OWNED BY mwaluta_obserw.id; - Name: mwaluta_portfel_sprzedaz_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: clockman Name: mwaluta_portfel_kupno; Type: TABLE; Schema: public; Owner: clockman; Tablespace: ALTER SEQUENCE mwaluta_portfel_sprzedaz_id_seq OWNED BY -mwaluta_portfel_sprzedaz.id; CREATE TABLE mwaluta_portfel_kupno ( id integer NOT NULL, 16/43
Name: id; Type: DEFAULT; Schema: public; Owner: clockman -ALTER TABLE makcja ALTER COLUMN id SET DEFAULT nextval('makcja_id_seq'::regclass); - Name: id; Type: DEFAULT; Schema: public; Owner: clockman -ALTER TABLE makcja_notowanie ALTER COLUMN id SET DEFAULT nextval('makcja_notowanie_id_seq'::regclass); - Name: id; Type: DEFAULT; Schema: public; Owner: clockman - Name: id; Type: DEFAULT; Schema: public; Owner: clockman -ALTER TABLE mobligacja_obserw ALTER COLUMN id SET DEFAULT nextval('mobligacja_obserw_id_seq'::regclass); - Name: id; Type: DEFAULT; Schema: public; Owner: clockman -ALTER TABLE mobligacja_portfel_kupno ALTER COLUMN id SET DEFAULT nextval('mobligacja_portfel_kupno_id_seq'::regclass); -ALTER TABLE makcja_obserw ALTER COLUMN id SET DEFAULT Name: id; Type: DEFAULT; Schema: public; Owner: clockman nextval('makcja_obserw_id_seq'::regclass); Name: id; Type: DEFAULT; Schema: public; Owner: clockman ALTER TABLE mobligacja_portfel_sprzedaz ALTER COLUMN id SET DEFAULT nextval('mobligacja_portfel_sprzedaz_id_seq'::regclass); ALTER TABLE makcja_portfel_kupno ALTER COLUMN id SET DEFAULT nextval('makcja_portfel_kupno_id_seq'::regclass); - Name: id; Type: DEFAULT; Schema: public; Owner: clockman - Name: id; Type: DEFAULT; Schema: public; Owner: clockman ALTER TABLE muzytkownik ALTER COLUMN id SET DEFAULT nextval('muzytkownik_id_seq'::regclass); ALTER TABLE makcja_portfel_sprzedaz ALTER COLUMN id SET DEFAULT nextval('makcja_portfel_sprzedaz_id_seq'::regclass); - Name: id; Type: DEFAULT; Schema: public; Owner: clockman - Name: id; Type: DEFAULT; Schema: public; Owner: clockman ALTER TABLE mwaluta ALTER COLUMN id SET DEFAULT nextval('mwaluta_id_seq'::regclass); ALTER TABLE mindex ALTER COLUMN id SET DEFAULT nextval('mindex_id_seq'::regclass); - Name: id; Type: DEFAULT; Schema: public; Owner: clockman - Name: id; Type: DEFAULT; Schema: public; Owner: clockman ALTER TABLE mwaluta_notowanie ALTER COLUMN id SET DEFAULT nextval('mwaluta_notowanie_id_seq'::regclass); ALTER TABLE mindex_notowanie ALTER COLUMN id SET DEFAULT nextval('mindex_notowanie_id_seq'::regclass); - Name: id; Type: DEFAULT; Schema: public; Owner: clockman - Name: id; Type: DEFAULT; Schema: public; Owner: clockman ALTER TABLE mwaluta_obserw ALTER COLUMN id SET DEFAULT nextval('mwaluta_obserw_id_seq'::regclass); ALTER TABLE mindex_obserw ALTER COLUMN id SET DEFAULT -nextval('mindex_obserw_id_seq'::regclass); Name: id; Type: DEFAULT; Schema: public; Owner: clockman Name: id; Type: DEFAULT; Schema: public; Owner: clockman ALTER TABLE mwaluta_portfel_kupno ALTER COLUMN id SET DEFAULT nextval('mwaluta_portfel_kupno_id_seq'::regclass); ALTER TABLE mobligacja ALTER COLUMN id SET DEFAULT nextval('mobligacja_id_seq'::regclass); - Name: id; Type: DEFAULT; Schema: public; Owner: clockman - Name: id; Type: DEFAULT; Schema: public; Owner: clockman ALTER TABLE mwaluta_portfel_sprzedaz ALTER COLUMN id SET DEFAULT nextval('mwaluta_portfel_sprzedaz_id_seq'::regclass); ALTER TABLE mobligacja_notowanie ALTER COLUMN id SET DEFAULT nextval('mobligacja_notowanie_id_seq'::regclass); 17/43
Name: makcja_notowanie_pkey; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: ALTER TABLE ONLY mobligacja_notowanie ADD CONSTRAINT mobligacja_notowanie_pkey PRIMARY KEY (id); ALTER TABLE ONLY makcja_notowanie ADD CONSTRAINT makcja_notowanie_pkey PRIMARY KEY (id); - Name: makcja_obserw_pkey; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: - Name: mobligacja_obserw_pkey; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: -ALTER TABLE ONLY mobligacja_obserw ADD CONSTRAINT mobligacja_obserw_pkey PRIMARY KEY (id); ALTER TABLE ONLY makcja_obserw ADD CONSTRAINT makcja_obserw_pkey PRIMARY KEY (id); - Name: makcja_pkey; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: - Name: mobligacja_pkey; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: -ALTER TABLE ONLY mobligacja ADD CONSTRAINT mobligacja_pkey PRIMARY KEY (id); ALTER TABLE ONLY makcja ADD CONSTRAINT makcja_pkey PRIMARY KEY (id); - Name: makcja_portfel_kupno_pkey; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: -ALTER TABLE ONLY makcja_portfel_kupno ADD CONSTRAINT makcja_portfel_kupno_pkey PRIMARY KEY (id); - Name: makcja_portfel_sprzedaz_pkey; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: -ALTER TABLE ONLY makcja_portfel_sprzedaz ADD CONSTRAINT makcja_portfel_sprzedaz_pkey PRIMARY KEY (id); - Name: mindex_notowanie_pkey; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: - Name: mobligacja_portfel_kupno_pkey; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: -ALTER TABLE ONLY mobligacja_portfel_kupno ADD CONSTRAINT mobligacja_portfel_kupno_pkey PRIMARY KEY (id); - Name: mobligacja_portfel_sprzedaz_pkey; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: -ALTER TABLE ONLY mobligacja_portfel_sprzedaz ADD CONSTRAINT mobligacja_portfel_sprzedaz_pkey PRIMARY KEY (id); - Name: muzytkownik_pkey; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: -ALTER TABLE ONLY muzytkownik ADD CONSTRAINT muzytkownik_pkey PRIMARY KEY (id); ALTER TABLE ONLY mindex_notowanie ADD CONSTRAINT mindex_notowanie_pkey PRIMARY KEY (id); - Name: mindex_obserw_pkey; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: -ALTER TABLE ONLY mindex_obserw ADD CONSTRAINT mindex_obserw_pkey PRIMARY KEY (id); - Name: mindex_pkey; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: -ALTER TABLE ONLY mindex ADD CONSTRAINT mindex_pkey PRIMARY KEY (id); - Name: mobligacja_notowanie_pkey; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: - Name: mwaluta_notowanie_pkey; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: -ALTER TABLE ONLY mwaluta_notowanie ADD CONSTRAINT mwaluta_notowanie_pkey PRIMARY KEY (id); - Name: mwaluta_obserw_pkey; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: -ALTER TABLE ONLY mwaluta_obserw ADD CONSTRAINT mwaluta_obserw_pkey PRIMARY KEY (id); - Name: mwaluta_pkey; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: 18/43
ALTER TABLE ONLY mwaluta ADD CONSTRAINT mwaluta_pkey PRIMARY KEY (id); - Name: mwaluta_portfel_kupno_pkey; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: - Name: fk_makcja_id_last_notowanie; Type: FK CONSTRAINT; Schema: public; Owner: clockman -ALTER TABLE ONLY makcja ADD CONSTRAINT fk_makcja_id_last_notowanie (id_last_notowanie) REFERENCES makcja_notowanie(id); ALTER TABLE ONLY mwaluta_portfel_kupno ADD CONSTRAINT mwaluta_portfel_kupno_pkey PRIMARY KEY (id); - Name: fk_makcja_notowanie_id_akcji; Type: FK CONSTRAINT; Schema: public; Owner: clockman Name: mwaluta_portfel_sprzedaz_pkey; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: ALTER TABLE ONLY makcja_notowanie -ADD CONSTRAINT fk_makcja_notowanie_id_akcji FOREIGN KEY (id_akcji) REFERENCES makcja(id); ALTER TABLE ONLY mwaluta_portfel_sprzedaz ADD CONSTRAINT mwaluta_portfel_sprzedaz_pkey PRIMARY KEY (id); - Name: fk_makcja_obserw_id_akcja; Type: FK CONSTRAINT; Schema: public; Owner: clockman Name: unq_makcja_0; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: ALTER TABLE ONLY makcja_obserw -ADD CONSTRAINT fk_makcja_obserw_id_akcja (id_akcja) REFERENCES makcja(id); ALTER TABLE ONLY makcja ADD CONSTRAINT unq_makcja_0 UNIQUE (skrot); - Name: fk_makcja_obserw_id_uzytkownik; Type: FK -CONSTRAINT; Schema: public; Owner: clockman Name: unq_mindex_0; Type: CONSTRAINT; Schema: public; -Owner: clockman; Tablespace: -ALTER TABLE ONLY makcja_obserw ADD CONSTRAINT fk_makcja_obserw_id_uzytkownik FOREIGN ALTER TABLE ONLY mindex KEY (id_uzytkownik) REFERENCES muzytkownik(id); ADD CONSTRAINT unq_mindex_0 UNIQUE (skrot); - Name: unq_mobligacja_0; Type: CONSTRAINT; Schema: public; Owner: clockman; Tablespace: -ALTER TABLE ONLY mobligacja ADD CONSTRAINT unq_mobligacja_0 UNIQUE (skrot); - Name: ix_makcja_unq_makcja_0; Type: INDEX; Schema: public; Owner: clockman; Tablespace: - Name: fk_makcja_portfel_kupno_id_notowanie; Type: FK CONSTRAINT; Schema: public; Owner: clockman -ALTER TABLE ONLY makcja_portfel_kupno ADD CONSTRAINT fk_makcja_portfel_kupno_id_notowanie (id_notowanie) REFERENCES makcja_notowanie(id); - Name: fk_makcja_portfel_kupno_id_uzytkownik; Type: FK CONSTRAINT; Schema: public; Owner: clockman CREATE INDEX ix_makcja_unq_makcja_0 ON makcja USING btree (skrot); ALTER TABLE ONLY makcja_portfel_kupno ADD CONSTRAINT fk_makcja_portfel_kupno_id_uzytkownik (id_uzytkownik) REFERENCES muzytkownik(id); - Name: ix_mindex_unq_mindex_0; Type: INDEX; Schema: public; Owner: clockman; Tablespace: Name: fk_makcja_portfel_sprzedaz_id_notowanie; Type: FK CONSTRAINT; Schema: public; Owner: clockman CREATE INDEX ix_mindex_unq_mindex_0 ON mindex USING btree -(skrot); ALTER TABLE ONLY makcja_portfel_sprzedaz ADD CONSTRAINT fk_makcja_portfel_sprzedaz_id_notowanie - (id_notowanie) REFERENCES Name: ix_mobligacja_unq_mobligacja_0; Type: INDEX; Schema: makcja_notowanie(id); public; Owner: clockman; Tablespace: CREATE INDEX ix_mobligacja_unq_mobligacja_0 ON mobligacja Name: fk_makcja_portfel_sprzedaz_id_uzytkownik; Type: FK USING btree (skrot); CONSTRAINT; Schema: public; Owner: clockman 19/43
ALTER TABLE ONLY makcja_portfel_sprzedaz ADD CONSTRAINT fk_makcja_portfel_sprzedaz_id_uzytkownik (id_uzytkownik) REFERENCES muzytkownik(id); - Name: fk_mindex_id_last_notowanie; Type: FK CONSTRAINT; Schema: public; Owner: clockman Name: fk_mobligacja_obserw_id_uzytkownik; Type: FK CONSTRAINT; Schema: public; Owner: clockman -ALTER TABLE ONLY mobligacja_obserw ADD CONSTRAINT fk_mobligacja_obserw_id_uzytkownik (id_uzytkownik) REFERENCES muzytkownik(id); - Name: fk_mobligacja_portfel_kupno_id_notowanie; Type: FK ALTER TABLE ONLY mindex CONSTRAINT; Schema: public; Owner: clockman ADD CONSTRAINT fk_mindex_id_last_notowanie -(id_last_notowanie) REFERENCES mindex_notowanie(id); ALTER TABLE ONLY mobligacja_portfel_kupno ADD CONSTRAINT fk_mobligacja_portfel_kupno_id_notowanie - (id_notowanie) REFERENCES Name: fk_mindex_notowanie_id_index; Type: FK CONSTRAINT; mobligacja_notowanie(id); Schema: public; Owner: clockman ALTER TABLE ONLY mindex_notowanie Name: fk_mobligacja_portfel_kupno_id_uzytkownik; Type: FK ADD CONSTRAINT fk_mindex_notowanie_id_index FOREIGN CONSTRAINT; Schema: public; Owner: clockman KEY (id_index) REFERENCES mindex(id); Name: fk_mindex_obserw_id_index; Type: FK CONSTRAINT; Schema: public; Owner: clockman -ALTER TABLE ONLY mindex_obserw ADD CONSTRAINT fk_mindex_obserw_id_index (id_index) REFERENCES mindex(id); - Name: fk_mindex_obserw_id_uzytkownik; Type: FK CONSTRAINT; Schema: public; Owner: clockman ALTER TABLE ONLY mobligacja_portfel_kupno ADD CONSTRAINT fk_mobligacja_portfel_kupno_id_uzytkownik (id_uzytkownik) REFERENCES muzytkownik(id); - Name: fk_mobligacja_portfel_sprzedaz_id_notowanie; Type: FK CONSTRAINT; Schema: public; Owner: clockman -ALTER TABLE ONLY mobligacja_portfel_sprzedaz ADD CONSTRAINT fk_mobligacja_portfel_sprzedaz_id_notowanie (id_notowanie) REFERENCES mobligacja_notowanie(id); ALTER TABLE ONLY mindex_obserw -ADD CONSTRAINT fk_mindex_obserw_id_uzytkownik FOREIGN Name: fk_mobligacja_portfel_sprzedaz_id_uzytkownik; Type: FK KEY (id_uzytkownik) REFERENCES muzytkownik(id); CONSTRAINT; Schema: public; Owner: clockman ALTER TABLE ONLY mobligacja_portfel_sprzedaz Name: fk_mobligacja_id_last_notowanie; Type: FK CONSTRAINT; ADD CONSTRAINT Schema: public; Owner: clockman fk_mobligacja_portfel_sprzedaz_id_uzytkownik -(id_uzytkownik) REFERENCES muzytkownik(id); ALTER TABLE ONLY mobligacja ADD CONSTRAINT fk_mobligacja_id_last_notowanie FOREIGN KEY (id_last_notowanie) REFERENCES mobligacja_notowanie(id); - Name: fk_mobligacja_notowanie_id_obligacji; Type: FK CONSTRAINT; Schema: public; Owner: clockman -ALTER TABLE ONLY mobligacja_notowanie ADD CONSTRAINT fk_mobligacja_notowanie_id_obligacji (id_obligacji) REFERENCES mobligacja(id); - Name: fk_mobligacja_obserw_id_obligacja; Type: FK CONSTRAINT; Schema: public; Owner: clockman -ALTER TABLE ONLY mobligacja_obserw ADD CONSTRAINT fk_mobligacja_obserw_id_obligacja (id_obligacja) REFERENCES mobligacja(id); - Name: fk_mwaluta_id_last_notowanie; Type: FK CONSTRAINT; Schema: public; Owner: clockman -ALTER TABLE ONLY mwaluta ADD CONSTRAINT fk_mwaluta_id_last_notowanie FOREIGN KEY (id_last_notowanie) REFERENCES mwaluta_notowanie(id); - Name: fk_mwaluta_notowanie_id_waluta; Type: FK CONSTRAINT; Schema: public; Owner: clockman -ALTER TABLE ONLY mwaluta_notowanie ADD CONSTRAINT fk_mwaluta_notowanie_id_waluta FOREIGN KEY (id_waluta) REFERENCES mwaluta(id); - Name: fk_mwaluta_obserw_id_uzytkownik; Type: FK CONSTRAINT; Schema: public; Owner: clockman 20/43
ALTER TABLE ONLY mwaluta_obserw ADD CONSTRAINT fk_mwaluta_obserw_id_uzytkownik FOREIGN -KEY (id_uzytkownik) REFERENCES muzytkownik(id); Name: fk_mwaluta_portfel_sprzedaz_id_notowanie; Type: FK CONSTRAINT; Schema: public; Owner: clockman Name: fk_mwaluta_obserw_id_waluta; Type: FK CONSTRAINT; ALTER TABLE ONLY mwaluta_portfel_sprzedaz Schema: public; Owner: clockman ADD CONSTRAINT fk_mwaluta_portfel_sprzedaz_id_notowanie - (id_notowanie) REFERENCES mwaluta_notowanie(id); ALTER TABLE ONLY mwaluta_obserw ADD CONSTRAINT fk_mwaluta_obserw_id_waluta FOREIGN KEY (id_waluta) REFERENCES mwaluta(id); - Name: fk_mwaluta_portfel_sprzedaz_id_uzytkownik; Type: FK CONSTRAINT; Schema: public; Owner: clockman Name: fk_mwaluta_portfel_kupno_id_notowanie; Type: FK CONSTRAINT; Schema: public; Owner: clockman ALTER TABLE ONLY mwaluta_portfel_sprzedaz -ADD CONSTRAINT fk_mwaluta_portfel_sprzedaz_id_uzytkownik (id_uzytkownik) REFERENCES muzytkownik(id); ALTER TABLE ONLY mwaluta_portfel_kupno ADD CONSTRAINT fk_mwaluta_portfel_kupno_id_notowanie (id_notowanie) REFERENCES -mwaluta_notowanie(id); Name: public; Type: ACL; Schema: -; Owner: postgres Name: fk_mwaluta_portfel_kupno_id_uzytkownik; Type: FK CONSTRAINT; Schema: public; Owner: clockman -ALTER TABLE ONLY mwaluta_portfel_kupno ADD CONSTRAINT fk_mwaluta_portfel_kupno_id_uzytkownik (id_uzytkownik) REFERENCES muzytkownik(id); REVOKE ALL ON SCHEMA public FROM PUBLIC; REVOKE ALL ON SCHEMA public FROM postgres; GRANT ALL ON SCHEMA public TO postgres; GRANT ALL ON SCHEMA public TO PUBLIC; - PostgreSQL database dump complete SQL IBM DB2 9.7.2 Ten plik CLP został utworzony przy użyciu programu DB2LOOK w wersji "9.7" TRANSFERRATE 0.060000; Datownik: 2010-09-26 09:21:50 Nazwa bazy danych: MAKLER ALTER TABLESPACE TEMPSPACE1 Wersja menedżera baz danych: DB2/NT Version 9.7.2 PREFETCHSIZE AUTOMATIC Strona kodowa bazy danych: 1208 OVERHEAD 7.500000 Kolejno ć zestawiania bazy danych to: SYSTEM_1250 FILE SYSTEM CACHING TRANSFERRATE 0.060000; CONNECT TO MAKLER; ALTER TABLESPACE USERSPACE1 PREFETCHSIZE AUTOMATIC OVERHEAD 7.500000 Imitowanie obszarów tabel NO FILE SYSTEM CACHING AUTORESIZE YES ALTER TABLESPACE SYSCATSPACE TRANSFERRATE 0.060000; PREFETCHSIZE AUTOMATIC OVERHEAD 7.500000 NO FILE SYSTEM CACHING -AUTORESIZE YES Instrukcje DDL dla tabeli "MAKLER "."MAKCJA" 21/43
CREATE TABLE "MAKLER "."MWALUTA_OBSERW" ( CREATE TABLE "MAKLER "."MAKCJA" ( "ID" BIGINT NOT NULL, "ID" BIGINT NOT NULL, "ID_WALUTA" BIGINT NOT NULL, "SKROT" VARCHAR(10) NOT NULL, "ID_UZYTKOWNIK" BIGINT NOT NULL ) "OSTATNIA_AKTUALIZACJA" TIMESTAMP, IN "USERSPACE1" ; "NAZWA" VARCHAR(30) NOT NULL, "ID_LAST_NOTOWANIE" BIGINT ) IN "USERSPACE1" ; Instrukcje DDL dla klucza podstawowego w tabeli "MAKLER "."MWALUTA_OBSERW" ALTER TABLE "MAKLER "."MWALUTA_OBSERW" Instrukcje DDL dla indeksów w tabeli "MAKLER "."MAKCJA" ADD PRIMARY KEY ; CREATE INDEX "MAKLER "."IX_MAKCJA_UNQ_MAKCJA_0" ON "MAKLER "."MAKCJA" ("SKROT" ASC) COMPRESS NO ALLOW REVERSE SCANS; Instrukcje DDL dla ograniczeń przez unikalno ć w tabeli "MAKLER Instrukcje DDL dla tabeli "MAKLER "."MWALUTA" "."MAKCJA" ALTER TABLE "MAKLER "."MAKCJA" CREATE TABLE "MAKLER "."MWALUTA" ( ADD CONSTRAINT "UNQ_MAKCJA_0" UNIQUE "ID" BIGINT NOT NULL, ("SKROT"); "OSTATNIA_AKTUALIZACJA" TIMESTAMP, "NAZWA" VARCHAR(30) NOT NULL, "KRAJ" VARCHAR(30) NOT NULL, Instrukcje DDL dla klucza podstawowego w tabeli "MAKLER "."MAKCJA" "KOD" VARCHAR(10) NOT NULL, "ID_LAST_NOTOWANIE" BIGINT ) ALTER TABLE "MAKLER "."MAKCJA" IN "USERSPACE1" ; ADD PRIMARY KEY ; Instrukcje DDL dla klucza podstawowego w tabeli "MAKLER "."MWALUTA" ALTER TABLE "MAKLER "."MWALUTA" -ADD PRIMARY KEY Instrukcje DDL dla tabeli "MAKLER "."MWALUTA_OBSERW" ; 22/43
Instrukcje DDL dla klucza podstawowego w tabeli "MAKLER "."MAKCJA_PORTFEL_KUPNO" Instrukcje DDL dla tabeli "MAKLER "."MWALUTA_PORTFEL_SPRZEDAZ" ALTER TABLE "MAKLER "."MAKCJA_PORTFEL_KUPNO" -ADD PRIMARY KEY ; CREATE TABLE "MAKLER "."MWALUTA_PORTFEL_SPRZEDAZ" ( "ID" BIGINT NOT NULL, "DATA_SPRZEDAZY" TIMESTAMP, "ILOSC" INTEGER, Instrukcje DDL dla tabeli "MAKLER "."MINDEX" "ID_UZYTKOWNIK" BIGINT NOT NULL, "ID_NOTOWANIE" BIGINT ) IN "USERSPACE1" ; CREATE TABLE "MAKLER "."MINDEX" ( "ID" BIGINT NOT NULL, Instrukcje DDL dla klucza podstawowego w tabeli "MAKLER "."MWALUTA_PORTFEL_SPRZEDAZ" "SKROT" VARCHAR(10) NOT NULL, "OSTATNIA_AKTUALIZACJA" TIMESTAMP, "ID_LAST_NOTOWANIE" BIGINT ) ALTER TABLE "MAKLER "."MWALUTA_PORTFEL_SPRZEDAZ" IN "USERSPACE1" ; ADD PRIMARY KEY ; Instrukcje DDL dla indeksów w tabeli "MAKLER "."MINDEX" - Instrukcje DDL dla tabeli "MAKLER "."MAKCJA_PORTFEL_KUPNO" CREATE INDEX "MAKLER "."IX_MINDEX_UNQ_MINDEX_0" ON "MAKLER "."MINDEX" ("SKROT" ASC) -COMPRESS NO ALLOW REVERSE SCANS; Instrukcje DDL dla ograniczeń przez unikalno ć w tabeli "MAKLER "."MINDEX" CREATE TABLE "MAKLER "."MAKCJA_PORTFEL_KUPNO" ( "ID" BIGINT NOT NULL, "DATA_KUPNA" TIMESTAMP, "ILOSC" INTEGER, "ID_UZYTKOWNIK" BIGINT NOT NULL, ALTER TABLE "MAKLER "."MINDEX" ADD CONSTRAINT "UNQ_MINDEX_0" UNIQUE ("SKROT"); "ID_NOTOWANIE" BIGINT ) IN "USERSPACE1" ; 23/43
Instrukcje DDL dla klucza podstawowego w tabeli "MAKLER "."MINDEX" CREATE TABLE "MAKLER "."MINDEX_NOTOWANIE" ( "ID" BIGINT NOT NULL, "INDEX_SPRZEDAZY" DOUBLE, ALTER TABLE "MAKLER "."MINDEX" "WART_OBR" INTEGER, ADD PRIMARY KEY "DATA_NOTOWANIA" TIMESTAMP NOT NULL ;, "ZM_DO_ODN" DOUBLE, "PROC_OTW_PORTFELA" DOUBLE, "INDEX_KUPNA" DOUBLE, "WART_OST" DOUBLE, Instrukcje DDL dla tabeli "MAKLER "."MWALUTA_NOTOWANIE" "TWI" DOUBLE, "ID_INDEX" BIGINT NOT NULL ) IN "USERSPACE1" ; CREATE TABLE "MAKLER "."MWALUTA_NOTOWANIE" ( "ID" BIGINT NOT NULL, Instrukcje DDL dla klucza podstawowego w tabeli "MAKLER "."MINDEX_NOTOWANIE" "KURS_KUPNA" DOUBLE, "DATA_KURS_SREDNI" TIMESTAMP NOT NULL, ALTER TABLE "MAKLER "."MINDEX_NOTOWANIE" "KURS_SREDNI" DOUBLE, "DATA_KURS_KS" TIMESTAMP NOT NULL, ADD PRIMARY KEY ; "KURS_SPRZEDAZY" DOUBLE, "ID_WALUTA" BIGINT NOT NULL ) IN "USERSPACE1" ; - Instrukcje DDL dla tabeli "MAKLER "."MWALUTA_PORTFEL_KUPNO" Instrukcje DDL dla klucza podstawowego w tabeli "MAKLER "."MWALUTA_NOTOWANIE" ALTER TABLE "MAKLER "."MWALUTA_NOTOWANIE" ADD PRIMARY KEY ; CREATE TABLE "MAKLER "."MWALUTA_PORTFEL_KUPNO" ( "ID" BIGINT NOT NULL, "DATA_KUPNA" TIMESTAMP, "ILOSC" INTEGER, "ID_UZYTKOWNIK" BIGINT NOT NULL, "ID_NOTOWANIE" BIGINT ) Instrukcje DDL dla tabeli "MAKLER "."MINDEX_NOTOWANIE" IN "USERSPACE1" ; 24/43
Instrukcje DDL dla klucza podstawowego w tabeli "MAKLER "."MWALUTA_PORTFEL_KUPNO" ALTER TABLE "MAKLER "."MAKCJA_NOTOWANIE" ADD PRIMARY KEY ALTER TABLE "MAKLER "."MWALUTA_PORTFEL_KUPNO" ; ADD PRIMARY KEY ; - Instrukcje DDL dla tabeli "MAKLER "."MOBLIGACJA" Instrukcje DDL dla tabeli "MAKLER "."MAKCJA_NOTOWANIE" -CREATE TABLE "MAKLER "."MOBLIGACJA" ( "ID" BIGINT NOT NULL, CREATE TABLE "MAKLER "."MAKCJA_NOTOWANIE" ( "SKROT" VARCHAR(10) NOT NULL, "ID" BIGINT NOT NULL, "OSTATNIA_AKTUALIZACJA" TIMESTAMP, "NK_LICZBA_WOLUMEN" INTEGER, "NAZWA" VARCHAR(30) NOT NULL, "WART_OBR" DOUBLE, "ID_LAST_NOTOWANIE" BIGINT ) "KURS_ODN" DOUBLE, IN "USERSPACE1" ; "NS_LICZBA_LIMIT" DOUBLE, "ZM_DO_ODN" DOUBLE, "KURS_MAX" DOUBLE, Instrukcje DDL dla indeksów w tabeli "MAKLER "."MOBLIGACJA" "WOLUMEN_OBR" INTEGER, "KURS_MIN" DOUBLE, "TKO" DOUBLE, CREATE INDEX "MAKLER "."IX_MOBLIGACJA_UNQ_MOBLIGACJA_0" ON "MAKLER "."MOBLIGACJA" "NS_LICZBA_WOLUMEN" INTEGER, ("SKROT" ASC) "KURS_OST_TRANS" DOUBLE, "KURS_OTWARCIA" DOUBLE, COMPRESS NO ALLOW REVERSE SCANS; "NS_LICZBA_ZLECEN" INTEGER, Instrukcje DDL dla ograniczeń przez unikalno ć w tabeli "MAKLER "DATA_NOTOWANIA" TIMESTAMP NOT NULL "."MOBLIGACJA", "NK_LICZBA_ZLECEN" INTEGER, "NK_LICZBA_LIMIT" DOUBLE, ALTER TABLE "MAKLER "."MOBLIGACJA" "WOLUMEN_OST_TRANS" INTEGER, ADD CONSTRAINT "UNQ_MOBLIGACJA_0" UNIQUE "ID_AKCJI" BIGINT NOT NULL ) ("SKROT"); IN "USERSPACE1" ; Instrukcje DDL dla klucza podstawowego w tabeli "MAKLER "."MAKCJA_NOTOWANIE" Instrukcje DDL dla klucza podstawowego w tabeli "MAKLER "."MOBLIGACJA" 25/43