Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 4.14 KB | None | 0 0
  1. CREATE TYPE adres AS OBJECT
  2.     ( adres_id        NUMBER(6)
  3.     , kraj            VARCHAR2(20)
  4.     , miejscowosc     VARCHAR2(20)
  5.     , ulica           VARCHAR2(20)
  6.     , nr_domu         VARCHAR2(5)
  7.     , nr_lokalu       VARCHAR2(5)
  8.     ) ;
  9.  
  10.  
  11. CREATE TYPE rezerwacja AS OBJECT
  12.     ( rezerwacja_id         NUMBER(6)
  13.     , data_zameldowania     DATE()
  14.     , data_wymeldowania     DATE()
  15.     , MEMBER FUNCTION oblicz_czas(zameldowanie DATE, wymeldowanie DATE) RETURN NUMBER
  16.     , MEMBER FUNCTION oblicz_koszt(cena NUMBER, czas NUMBER) RETURN NUMBER
  17.     ) ;
  18.  
  19.  
  20. CREATE TYPE typ_pokoju AS OBJECT
  21.     ( typ_pokoju_id      NUMBER(6)
  22.     , nazwa_typu         VARCHAR2(20)
  23.     , grupa_docelowa     VARCHAR2(20)
  24.     ) ;
  25.  
  26. CREATE TYPE BODY rezerwacja IS
  27.     MEMBER FUNCTION oblicz_czas(zameldowanie DATE, wymeldowanie DATE) RETURN NUMBER IS
  28.     BEGIN
  29.         RETURN (wymeldowanie-zameldowanie);
  30.     END;
  31.     MEMBER FUNCTION oblicz_koszt(cena NUMBER, czas NUMBER) RETURN NUMBER  IS
  32.     BEGIN
  33.         RETURN (cena*czas);
  34.     END;
  35. END;
  36. ----------------------------------------------
  37. CREATE TABLE hotel
  38. (
  39.   hotel_id NUMBER(6) NOT NULL,
  40.   nazwa VARCHAR2(50) NOT NULL,
  41.   nr_telefonu VARCHAR2(20) NOT NULL,
  42.   email VARCHAR2(50) NOT NULL,
  43.   adres_hotelu adres NOT NULL,
  44.   CONSTRAINT hotel_pk PRIMARY KEY (hotel_id)
  45. );
  46.  
  47. CREATE TABLE pracownik
  48. (
  49.   pracownik_id NUMBER(6) NOT NULL,
  50.   imie VARCHAR2(30) NOT NULL,
  51.   nazwisko VARCHAR2(30) NOT NULL,
  52.   nr_telefonu VARCHAR2(20) NULL,
  53.   email VARCHAR2(50) NULL,
  54.   adres_pracownika adres NOT NULL,
  55.   data_zatrudnienia DATE NOT NULL,
  56.   wynagrodzenie NUMBER(10) NULL,
  57.   czy_zatrudniony NUMBER(1) NOT NULL,
  58.   hotel_id NUMBER(6) NOT NULL,
  59.   CONSTRAINT pracownik_pk PRIMARY KEY (pracownik_id),
  60.   CONSTRAINT fk_hotel
  61.     FOREIGN KEY (hotel_id)
  62.     REFERENCES hotel(hotel_id)
  63. );
  64.  
  65. CREATE TABLE pokoj
  66. (
  67.   pokoj_id NUMBER(6) NOT NULL,
  68.   nr_pokoju NUMBER(5) NOT NULL,
  69.   cena_za_noc NUMBER(5) NOT NULL,
  70.   pietro NUMBER(3) NOT NULL,
  71.   liczba_miejsc NUMBER(2) NOT NULL,
  72.   hotel_id NUMBER(6) NOT NULL,
  73.   typ_pokoju typ_pokoju NOT NULL,
  74.   CONSTRAINT pokoj_pk PRIMARY KEY (pokoj_id),
  75.   CONSTRAINT fk_hotel_pokoj
  76.     FOREIGN KEY (hotel_id)
  77.     REFERENCES hotel(hotel_id)
  78. );
  79.  
  80.  
  81. CREATE TABLE wyposazenie
  82. (
  83.   wyposazenie_id NUMBER(6) NOT NULL,
  84.   nazwa VARCHAR2(20) NOT NULL,
  85.   CONSTRAINT wyposazenie_pk PRIMARY KEY (wyposazenie_id)
  86. );
  87.  
  88. CREATE TABLE pokoj_wyposazenie
  89. (
  90.   wyposazenie_id NUMBER(6) NOT NULL,
  91.   pokoj_id NUMBER(6) NOT NULL,
  92.   CONSTRAINT pokoj_wyposazenie_pk PRIMARY KEY (wyposazenie_id, pokoj_id),
  93.   CONSTRAINT fk_pokoj
  94.     FOREIGN KEY (pokoj_id)
  95.     REFERENCES pokoj(pokoj_id),
  96.   CONSTRAINT fk_wyposazenie
  97.     FOREIGN KEY (wyposazenie_id)
  98.     REFERENCES wyposazenie(wyposazenie_id)
  99. );
  100.  
  101. CREATE TABLE forma_platnosci
  102. (
  103.   forma_platnosci_id NUMBER(6) NOT NULL,
  104.   nazwa VARCHAR2(20) NOT NULL,
  105.   CONSTRAINT forma_platnosci_pk PRIMARY KEY (forma_platnosci_id)
  106. );
  107.  
  108.  
  109. CREATE TABLE platnosc
  110. (
  111.   platnosc_id NUMBER(6) NOT NULL,
  112.   kwota NUMBER(15) NOT NULL,
  113.   data_platnosci DATE NOT NULL,
  114.   forma_platnosci_id NUMBER(6) NOT NULL,
  115.   CONSTRAINT platnosc_pk PRIMARY KEY (platnosc_id),
  116.   CONSTRAINT fk_forma_platnosci
  117.     FOREIGN KEY (forma_platnosci_id)
  118.     REFERENCES forma_platnosci(forma_platnosci_id)
  119. );
  120.  
  121. CREATE TABLE gosc
  122. (
  123.   gosc_id NUMBER(6) NOT NULL,
  124.   imie VARCHAR2(20) NOT NULL,
  125.   nazwisko VARCHAR2(20) NOT NULL,
  126.   nr_telefonu VARCHAR2(15) NULL,
  127.   email VARCHAR(50) NULL,
  128.   nr_dowodu VARCHAR(10) NULL,
  129.   adres_goscia adres NOT NULL,
  130.   CONSTRAINT gosc_pk PRIMARY KEY (gosc_id)
  131. );
  132.  
  133. CREATE TABLE rezerwacja_tabela
  134. (
  135.   rezerwacja_id NUMBER(6) NOT NULL,
  136.   data_rezerwacji DATE NOT NULL,
  137.   rezerwacja rezerwacja NOT NULL,
  138.   gosc_id NUMBER(6) NOT NULL,
  139.   platnosc_id NUMBER(6) NOT NULL,
  140.   pracownik_id NUMBER(6) NOT NULL,
  141.   CONSTRAINT rezerwacja_pk PRIMARY KEY (rezerwacja_id),
  142.   CONSTRAINT fk_gosc_rezerwacja
  143.     FOREIGN KEY (gosc_id)
  144.     REFERENCES gosc(gosc_id),
  145.   CONSTRAINT fk_platnosc_rezerwacja
  146.     FOREIGN KEY (platnosc_id)
  147.     REFERENCES platnosc(platnosc_id),
  148.   CONSTRAINT fk_pracownik_rezerwacja
  149.     FOREIGN KEY (pracownik_id)
  150.     REFERENCES pracownik(pracownik_id)
  151. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement