Advertisement
dzocesrce

[BNP] Bank

Dec 2nd, 2024 (edited)
553
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 4.53 KB | None | 0 0
  1. /*
  2. Релационата база е дефинирана преку следните релации:
  3. Vraboten(ID, ime, prezime, datum_r, datum_v, obrazovanie, plata)
  4. Shalterski_rabotnik(ID*)
  5. Klient(MBR_k, ime, prezime, adresa, datum)
  6. Smetka(MBR_k_s*, broj, valuta, saldo)
  7. Transakcija_shalter(ID, ID_v*, MBR_k*, MBR_k_s*, broj*, datum, suma, tip)
  8. Bankomat(ID, lokacija, datum_p, zaliha)
  9. Transakcija_bankomat(ID, MBR_k_s*, broj*, ID_b*, datum, suma).
  10.  
  11. 1) Доколку се избрише одреден вработен, информациите за извршените трансакции треба да останат зачувани во базата на податоци.
  12. 2) Информацијата за ID на банкомат која се чува во трансакциите спроведени на банкомат треба да има предефинирана вредност од -1.
  13. 3) Информацијата за образованието на вработениот мора да биде пополнето и да биде некоја од вредностите 'PhD', 'MSc', 'High School', 'BSc'
  14. 4) Датумот на извршување на трансакција не смее да биде во периодот од 30.12.2020 до 14.01.2021.
  15. 5) Типот на трансакцијата може да има една од двете вредности 'uplata' или 'isplata'
  16. 6) Вредноста на залихата во банкоматите не смее да има вредност помала од 0.
  17. 7) Датумот на раѓање на вработениот мора да биде пред неговиот датум на вработување
  18. 8) Локациите на банкоматите мора да имаат различни (уникатни) вредности
  19. 9) Адресата на клинетите треба да има предефинирана вреднот 'Ne enavedena'
  20. 10) Доколку се затвори одреден банкомат и истиот се избрише од базата,информациите за извршените трансакции за дадениот банкомат треба да останат зачувани во базата на податоци со предефинирана вредност.
  21. */
  22.  
  23. CREATE TABLE Vraboten(
  24.     ID INT PRIMARY KEY,
  25.     ime TEXT,
  26.     prezime TEXT,
  27.     datum_r DATE,
  28.     datum_v DATE,
  29.     obrazovanie TEXT NOT NULL,
  30.     plata INT,
  31.     CONSTRAINT DATUM_VRABOTUAVNJE CHECK (datum_r<datum_v),
  32.     CONSTRAINT OBRAZOVANIE_VALUES CHECK (obrazovanie IN ("PhD", "MSc", "High School", "BSc"))
  33.  
  34. );
  35.  
  36. CREATE TABLE Shalterski_rabotnik(
  37.     ID INT PRIMARY KEY,
  38.     FOREIGN KEY (ID) REFERENCES Vraboten(ID) ON DELETE CASCADE ON UPDATE CASCADE
  39. );
  40.  
  41.  
  42. CREATE TABLE Klient(
  43.     MBR_k INT PRIMARY KEY,
  44.     ime TEXT,
  45.     prezime TEXT,
  46.     adresa TEXT DEFAULT 'Ne e navedena',
  47.     datum DATE
  48. );
  49.  
  50. CREATE TABLE Smetka(
  51.     MBR_k INT,
  52.     broj INT,
  53.     valuta TEXT,
  54.     saldo INT,
  55.     PRIMARY KEY (MBR_k,broj),
  56.     FOREIGN KEY (MBR_k) REFERENCES Klient (MBR_k) ON DELETE CASCADE ON UPDATE CASCADE
  57. );
  58.  
  59. CREATE TABLE Transakcija_shalter(
  60.     ID INT PRIMARY KEY,
  61.     ID_v INT,
  62.     MBR_k INT,
  63.     MBR_k_s INT,
  64.     broj INT,
  65.     datum DATE,
  66.     suma INT,
  67.     tip TEXT,
  68.     --CONSTRAINT DATUM_TRANSAKCIJA CHECK(datum NOT BETWEEN "2020-12-30" AND "2021-01-14"),
  69.     CONSTRAINT TIP_VALUES CHECK (tip IN ("uplata","isplata")),
  70.     FOREIGN KEY (ID_v) REFERENCES Shalterski_rabotnik(ID) ON DELETE SET NULL ON UPDATE CASCADE,
  71.     FOREIGN KEY (MBR_k) REFERENCES Klient(MBR_k) ON DELETE CASCADE ON UPDATE CASCADE,
  72.     FOREIGN KEY (MBR_k_s,broj) REFERENCES Smetka(MBR_k,broj) ON DELETE CASCADE ON UPDATE CASCADE
  73. );
  74.  
  75. CREATE TABLE Bankomat(
  76.     ID INT PRIMARY KEY,
  77.     lokacija TEXT,
  78.     datum DATE,
  79.     zaliha INT,
  80.     CONSTRAINT VREDNOST_ZALIHA CHECK(zaliha>=0),
  81.     UNIQUE (lokacija)
  82. );
  83.  
  84. CREATE TABLE Transakcija_bankomat(
  85.     ID INT PRIMARY KEY,
  86.     MBR_k_s INT,
  87.     broj INT,
  88.     ID_b INT DEFAULT -1,
  89.     datum DATE,
  90.     suma INT,
  91.     CONSTRAINT DATUM_TRANSAKCIJA_2 CHECK(datum NOT BETWEEN "2020-12-30" AND "2021-01-14"),
  92.     FOREIGN KEY (ID_b) REFERENCES Bankomat (ID) ON DELETE SET DEFAULT ON UPDATE CASCADE,
  93.     --FOREIGN KEY (broj) REFERENCES Smetka (broj) ON DELETE CASCADE ON UPDATE CASCADE,
  94.     --FOREIGN KEY (MBR_k_s) REFERENCES Smetka (MBR_k) ON DELETE CASCADE ON UPDATE CASCADE
  95.     FOREIGN KEY (MBR_k_s,broj) REFERENCES Smetka (MBR_k,broj) ON DELETE CASCADE ON UPDATE CASCADE
  96. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement