Advertisement
Guest User

Untitled

a guest
Mar 28th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 8.67 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------------------
  2. -- xsedla1e & xsadil07
  3. -- 2. ukol do IDS, 2018/2019
  4. -------------------------------------------------------------------------------------------------------------------------------
  5.  
  6. -- dodelat CHECK u rc a generalizaci u uctu
  7. -- dodela vztahy u tabulek
  8.  
  9. DROP TABLE Účet CASCADE CONSTRAINTS;
  10. DROP TABLE Správce CASCADE CONSTRAINTS;
  11. DROP TABLE Uživatel CASCADE CONSTRAINTS;
  12. DROP TABLE Místnost CASCADE CONSTRAINTS;
  13. DROP TABLE Oddělení CASCADE CONSTRAINTS;
  14. DROP TABLE Technika CASCADE CONSTRAINTS;
  15. DROP TABLE Oprava CASCADE CONSTRAINTS;
  16. DROP TABLE Žádost CASCADE CONSTRAINTS;
  17. DROP TABLE Spravuje CASCADE CONSTRAINTS;
  18.  
  19. CREATE TABLE Účet (
  20.     ID NUMBER NOT NULL PRIMARY KEY,
  21.     Jméno VARCHAR2(100) NOT NULL,
  22.     Příjmení VARCHAR2(100) NOT NULL,
  23.     Rodné_číslo NUMBER, -- TODO udelat check
  24.     Email VARCHAR2(127) NOT NULL CHECK (regexp_like(email, '[a-zA-Z0-9._%-]+@[a-zA-Z0-9._%-]+\.[a-zA-Z]{2,4}')),
  25.     Telefon NUMBER NOT NULL,
  26.     Bydliště VARCHAR2(255) NOT NULL,
  27.     ID_Umístění NUMBER NOT NULL
  28. );
  29.  
  30. CREATE TABLE Správce (
  31.   Účet NUMBER NOT NULL PRIMARY KEY,
  32.   Licence VARCHAR2(100) NOT NULL
  33. );
  34.  
  35. CREATE TABLE Uživatel (
  36.   Účet NUMBER NOT NULL PRIMARY KEY
  37. );
  38.  
  39. CREATE TABLE Místnost (
  40.     Číslo_místnosti NUMBER NOT NULL PRIMARY KEY,
  41.     Patro NUMBER NOT NULL,
  42.     Typ VARCHAR2(1024) NOT NULL,
  43.     Popis VARCHAR2(2048) NOT NULL,
  44.     ID_Oddělení NUMBER NOT NULL
  45. );
  46.  
  47. CREATE TABLE Oddělení(
  48.     Číslo_oddělení NUMBER NOT NULL PRIMARY KEY,
  49.     Popis VARCHAR2(2048) NOT NULL
  50. );
  51.  
  52. CREATE TABLE Technika (
  53.     ID NUMBER NOT NULL PRIMARY KEY,
  54.     Výrobní_číslo VARCHAR2(127) NOT NULL,
  55.     Typ VARCHAR2(1024) NOT NULL,
  56.     Výrobce VARCHAR2(127) NOT NULL,
  57.     Model_techniky VARCHAR2(127) NOT NULL,
  58.     Specifikace VARCHAR2(1024) NOT NULL,
  59.     ID_Umístění NUMBER NOT NULL,
  60.     ID_Uživatele NUMBER NOT NULL
  61. );
  62.  
  63. CREATE TABLE Oprava (
  64.     ID NUMBER NOT NULL PRIMARY KEY,
  65.     Kdy DATE NOT NULL,
  66.     Aktuální_stav VARCHAR2(1024) NOT NULL,
  67.     ID_Techniky NUMBER NOT NULL,
  68.     ID_Správce NUMBER
  69. );
  70.  
  71. CREATE TABLE Žádost (
  72.     ID NUMBER NOT NULL PRIMARY KEY,
  73.     Kdy DATE NOT NULL,
  74.     ID_Techniky NUMBER, -- CO KDYZ OPRAVA NENI VYRIZENA? CO VZTAH V ERD? NOT NULL? HALO?
  75.     ID_Opravy NUMBER NOT NULL,
  76.     ID_Správce NUMBER NOT NULL,
  77.     ID_Uživatele NUMBER NOT NULL
  78. );
  79.  
  80.  
  81. -- Vztahy
  82. CREATE TABLE Spravuje (
  83.   ID_Správce NUMBER NOT NULL,
  84.   ID_Techniky NUMBER NOT NULL
  85. );
  86.  
  87.  
  88. ALTER TABLE Účet
  89.   ADD FOREIGN KEY (ID_Umístění) REFERENCES Místnost(Číslo_místnosti);
  90.  
  91. ALTER TABLE Místnost
  92.   ADD FOREIGN KEY (ID_Oddělení) REFERENCES Oddělení(Číslo_oddělení);
  93.  
  94. ALTER TABLE Technika
  95.   ADD FOREIGN KEY (ID_Umístění) REFERENCES Místnost(Číslo_místnosti)
  96.   ADD FOREIGN KEY (ID_Uživatele) REFERENCES Uživatel(Účet);
  97.  
  98. ALTER TABLE Oprava
  99.   ADD FOREIGN KEY (ID_Techniky) REFERENCES Technika(ID)
  100.   ADD FOREIGN KEY (ID_Správce) REFERENCES Správce(Účet);
  101.  
  102. ALTER TABLE Žádost
  103.   ADD FOREIGN KEY (ID_Techniky) REFERENCES Technika(ID)
  104.   ADD FOREIGN KEY (ID_Opravy) REFERENCES Oprava(ID)
  105.   ADD FOREIGN KEY (ID_Správce) REFERENCES Správce(Účet)
  106.   ADD FOREIGN KEY (ID_Uživatele) REFERENCES Uživatel(Účet);
  107.  
  108. ALTER TABLE Spravuje
  109.   ADD FOREIGN KEY (ID_Správce) REFERENCES Správce(Účet)
  110.   ADD FOREIGN KEY (ID_Techniky) REFERENCES Technika(ID);
  111.  
  112.  
  113. -- Vyplneni oddeleni
  114. INSERT INTO Oddělení (Číslo_oddělení, Popis)
  115.     VALUES (1, 'CVT');
  116. INSERT INTO Oddělení (Číslo_oddělení, Popis)
  117.     VALUES (2, 'A');
  118. INSERT INTO Oddělení (Číslo_oddělení, Popis)
  119.     VALUES (3, 'D');
  120. INSERT INTO Oddělení (Číslo_oddělení, Popis)
  121.     VALUES (4, 'E');
  122.  
  123. -- Vlozeni mistnosti
  124. INSERT INTO Místnost (Číslo_místnosti, Patro, Typ, Popis, ID_Oddělení)VALUES
  125.     (10, 1, 'Správa CVT', 'Místnost slouží pro zaměstnance správy CVT', '1');
  126. INSERT INTO Místnost (Číslo_místnosti, Patro, Typ, Popis, ID_Oddělení)VALUES
  127.     (20, 1, 'Serverovna', 'V místnosti jsou uloženy veškeřé servery', '1');
  128. INSERT INTO Místnost (Číslo_místnosti, Patro, Typ, Popis, ID_Oddělení)VALUES
  129.     (30, 2, 'Kancelář ředitele', 'Zde sídlí velký šéf', '4');
  130.  
  131. -- Vlozeni uctu
  132. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Bydliště, ID_Umístění)
  133.     VALUES (0, 'Jiří', 'Novák', 5955477215, 'example0@email.com', 3107635075, 'Brno 44739, Zahradní 15', '10' );
  134. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Bydliště, ID_Umístění)
  135.     VALUES (1, 'Jan', 'Svoboda', 8142557343, 'example1@email.com', 4170585496, 'Ostrava 79652, Krátká 15', '10');
  136. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Bydliště, ID_Umístění)
  137.     VALUES (2, 'Petr', 'Novotný', 1906932050, 'example2@email.com', 4217608504, 'Plzeň 25439, Nádražní 15', '10');
  138. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Bydliště, ID_Umístění)
  139.     VALUES (3, 'Josef', 'Dvořák', 3635844726, 'example3@email.com', 5071080405, 'Liberec 25586, Školní 15', '10');
  140. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Bydliště, ID_Umístění)
  141.     VALUES (4, 'Pavel', 'Černý', 9467128671, 'example4@email.com', 9088512650, 'Olomouc 64744, Polní 15', '20');
  142. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Bydliště, ID_Umístění)
  143.     VALUES (5, 'Martin', 'Procházka', 7340528605, 'example5@email.com', 1241925560, 'Budějovice 72848, Luční 15', '20');
  144. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Bydliště, ID_Umístění)
  145.     VALUES (6, 'Jaroslav', 'Kučera', 2670498059, 'example6@email.com', 6680356276, 'Labem 63404, Komenského 15', '30');
  146. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Bydliště, ID_Umístění)
  147.     VALUES (7, 'Tomáš', 'Veselý', 1461806966, 'example7@email.com', 9381258512, 'Králové 46203, Nová 15', '10');
  148. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Bydliště, ID_Umístění)
  149.     VALUES (8, 'Miroslav', 'Horák', 6635251305, 'example8@email.com', 7227762065, 'Pardubice 60765, Husova 15', '10');
  150.  
  151. INSERT INTO Správce (Účet, Licence) VALUES (0, 'Elektronika');
  152. INSERT INTO Správce (Účet, Licence) VALUES (1, 'Sítě');
  153. INSERT INTO Správce (Účet, Licence) VALUES (2, 'Hardware');
  154. INSERT INTO Správce (Účet, Licence) VALUES (3, 'Grafika');
  155. INSERT INTO Uživatel (Účet) VALUES (4);
  156. INSERT INTO Uživatel (Účet) VALUES (5);
  157. INSERT INTO Uživatel (Účet) VALUES (6);
  158. INSERT INTO Uživatel (Účet) VALUES (7);
  159. INSERT INTO Uživatel (Účet) VALUES (8);
  160.  
  161. -- Vlozeni techniky
  162. INSERT INTO Technika (ID, Výrobní_číslo, Typ, Výrobce, Model_techniky, Specifikace, ID_Umístění, ID_Uživatele)
  163.     VALUES (0, '7FC0TI3231', 'PC', 'Asus', 'KLM18', '4 Ghz, RAM 124 KB...', 10, 4);
  164. INSERT INTO Technika (ID, Výrobní_číslo, Typ, Výrobce, Model_techniky, Specifikace, ID_Umístění, ID_Uživatele)
  165.     VALUES (1, 'M381KHSV4I', 'Tablet', 'Lenovo', 'LKJS48LS', '4 Ghz, RAM 124 KB...', 30, 5);
  166. INSERT INTO Technika (ID, Výrobní_číslo, Typ, Výrobce, Model_techniky, Specifikace, ID_Umístění, ID_Uživatele)
  167.     VALUES (2, 'QGE87D3J8K', 'Monitor', 'Dell', '23FHDIPS', 'Pekny monitor se stojankem', 20, 6);
  168. INSERT INTO Technika (ID, Výrobní_číslo, Typ, Výrobce, Model_techniky, Specifikace, ID_Umístění, ID_Uživatele)
  169.     VALUES (3, 'A4J734U0ME', 'Monitor', 'Dell', '24FHDTN', 'Ne tak pekny monitor bez stojanku', 10, 7);
  170. INSERT INTO Technika (ID, Výrobní_číslo, Typ, Výrobce, Model_techniky, Specifikace, ID_Umístění, ID_Uživatele)
  171.     VALUES (4, '54J61LE55B', 'Myš', 'Hama', 'SCRL456', 'Obyčejná PC myš', 20, 8);
  172.  
  173. -- Vlozeni oprav
  174. INSERT INTO Oprava (ID, Kdy, Aktuální_stav, ID_Techniky, ID_Správce)
  175.     VALUES (0, '20.4.2019', 'Probíhá', 3, 3);
  176. INSERT INTO Oprava (ID, Kdy, Aktuální_stav, ID_Techniky)
  177.     VALUES (1, '1.4.2019', 'Nevyřízeno', 0);
  178.  
  179. -- Vlozeni zadosti
  180. INSERT INTO Žádost (ID, Kdy, ID_Techniky, ID_Opravy, ID_Správce, ID_Uživatele)
  181.     VALUES (0, '1.4.2019', 0, 0, 2, 4);
  182. INSERT INTO Žádost (ID, Kdy, ID_Techniky, ID_Opravy, ID_Správce, ID_Uživatele)
  183.     VALUES (1, '2.4.2019', 1, 1, 3, 5);
  184. INSERT INTO Žádost (ID, Kdy, ID_Techniky, ID_Opravy, ID_Správce, ID_Uživatele)
  185.     VALUES (2, '2.4.2019', 1, 1, 1, 6);
  186.  
  187. -- Spravuje     NEVIM, ASI JE TO SPATNE, NEJAK OSETRIT ABY TECHNIKA MUSELA MIT SPRAVCE?
  188. INSERT INTO Spravuje (ID_Správce, ID_Techniky)
  189.     VALUES (1, 1);
  190. INSERT INTO Spravuje (ID_Správce, ID_Techniky)
  191.     VALUES (2, 2);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement