Advertisement
Guest User

80% done

a guest
Mar 30th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 9.14 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------------------
  2. -- xsedla1e & xsadil07
  3. -- 2. ukol do IDS, 2018/2019
  4. -------------------------------------------------------------------------------------------------------------------------------
  5.  
  6. DROP TABLE Účet CASCADE CONSTRAINTS;
  7. DROP TABLE Správce CASCADE CONSTRAINTS;
  8. DROP TABLE Uživatel CASCADE CONSTRAINTS;
  9. DROP TABLE Místnost CASCADE CONSTRAINTS;
  10. DROP TABLE Oddělení CASCADE CONSTRAINTS;
  11. DROP TABLE Technika CASCADE CONSTRAINTS;
  12. DROP TABLE Oprava CASCADE CONSTRAINTS;
  13. DROP TABLE Žádost CASCADE CONSTRAINTS;
  14. DROP TABLE Spravuje CASCADE CONSTRAINTS;
  15.  
  16. CREATE TABLE Účet (
  17.     ID NUMBER NOT NULL PRIMARY KEY,
  18.     Jméno VARCHAR2(127) NOT NULL,
  19.     Příjmení VARCHAR2(127) NOT NULL,
  20.     Rodné_číslo NUMBER,
  21.     Email VARCHAR2(127) NOT NULL,
  22.     Telefon NUMBER NOT NULL,
  23.     Bydliště VARCHAR2(255) NOT NULL,
  24.     ID_Umístění NUMBER NOT NULL,
  25.     CHECK (regexp_like(Jméno, '^[a-zA-Z-]+$')),
  26.     CHECK (regexp_like(Email, '^[a-zA-Z0-9._%-]+@[a-zA-Z0-9._%-]+\.[a-zA-Z]{2,4}$')),
  27.     CHECK (regexp_like(Rodné_číslo, '^[0-9]{2}[0-8][0-9][0-3][0-9][0-9]{4}$'))
  28. );
  29.  
  30. CREATE TABLE Správce (
  31.   Účet NUMBER NOT NULL PRIMARY KEY,
  32.   Licence VARCHAR2(127) 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 NOT NULL,
  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. ALTER TABLE Účet
  88.   ADD FOREIGN KEY (ID_Umístění) REFERENCES Místnost(Číslo_místnosti);
  89.  
  90. ALTER TABLE Správce
  91.   ADD FOREIGN KEY (Účet) REFERENCES Účet(ID) ON DELETE CASCADE;
  92.  
  93. ALTER TABLE Uživatel
  94.   ADD FOREIGN KEY (Účet) REFERENCES Účet(ID) ON DELETE CASCADE;
  95.  
  96. ALTER TABLE Místnost
  97.   ADD FOREIGN KEY (ID_Oddělení) REFERENCES Oddělení(Číslo_oddělení);
  98.  
  99. ALTER TABLE Technika
  100.   ADD FOREIGN KEY (ID_Umístění) REFERENCES Místnost(Číslo_místnosti)
  101.   ADD FOREIGN KEY (ID_Uživatele) REFERENCES Uživatel(Účet);
  102.  
  103. ALTER TABLE Oprava
  104.   ADD FOREIGN KEY (ID_Techniky) REFERENCES Technika(ID) ON DELETE CASCADE
  105.   ADD FOREIGN KEY (ID_Správce) REFERENCES Správce(Účet) ON DELETE SET NULL;
  106.  
  107. ALTER TABLE Žádost
  108.   ADD FOREIGN KEY (ID_Techniky) REFERENCES Technika(ID) ON DELETE CASCADE
  109.   ADD FOREIGN KEY (ID_Opravy) REFERENCES Oprava(ID) ON DELETE SET NULL
  110.   ADD FOREIGN KEY (ID_Správce) REFERENCES Správce(Účet)
  111.   ADD FOREIGN KEY (ID_Uživatele) REFERENCES Uživatel(Účet);
  112.  
  113. ALTER TABLE Spravuje
  114.   ADD FOREIGN KEY (ID_Správce) REFERENCES Správce(Účet) ON DELETE CASCADE
  115.   ADD FOREIGN KEY (ID_Techniky) REFERENCES Technika(ID) ON DELETE CASCADE;
  116.  
  117.  
  118. -- Vlozeni oddeleni
  119. INSERT INTO Oddělení (Číslo_oddělení, Popis)
  120.     VALUES (1, 'CVT');
  121. INSERT INTO Oddělení (Číslo_oddělení, Popis)
  122.     VALUES (2, 'Kanceláře');
  123. INSERT INTO Oddělení (Číslo_oddělení, Popis)
  124.     VALUES (3, 'Přednášky');
  125.  
  126. -- Vlozeni mistnosti
  127. INSERT INTO Místnost (Číslo_místnosti, Patro, Typ, Popis, ID_Oddělení)VALUES
  128.     (10, 1, 'Správa CVT', 'Místnost slouží pro zaměstnance správy CVT', 1);
  129. INSERT INTO Místnost (Číslo_místnosti, Patro, Typ, Popis, ID_Oddělení)VALUES
  130.     (20, 1, 'Serverovna', 'V místnosti jsou uloženy veškeřé servery', 1);
  131. INSERT INTO Místnost (Číslo_místnosti, Patro, Typ, Popis, ID_Oddělení)VALUES
  132.     (30, 2, 'Kancelář ředitele', 'Zde sídlí velký šéf', 2);
  133. INSERT INTO Místnost (Číslo_místnosti, Patro, Typ, Popis, ID_Oddělení)VALUES
  134.     (40, 2, 'Hlavní aula', 'Pro technické konference', 3);
  135.  
  136. -- Vlozeni uctu
  137. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Bydliště, ID_Umístění)
  138.     VALUES (1, 'Jiří', 'Novák', 5955127215, 'example0@email.com', 3107635075, 'Brno 44739, Zahradní 15', 10 );
  139. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Bydliště, ID_Umístění)
  140.     VALUES (2, 'Jan', 'Svoboda', 8142317343, 'example1@email.com', 4170585496, 'Ostrava 79652, Krátká 15', 10);
  141. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Bydliště, ID_Umístění)
  142.     VALUES (3, 'Petr', 'Novotný', 1906212050, 'example2@email.com', 4217608504, 'Plzeň 25439, Nádražní 15', 10);
  143. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Bydliště, ID_Umístění)
  144.     VALUES (4, 'Josef', 'Dvořák', 3635184726, 'example3@email.com', 5071080405, 'Liberec 25586, Školní 15', 10);
  145. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Bydliště, ID_Umístění)
  146.     VALUES (5, 'Pavel', 'Černý', 9467101671, 'example4@email.com', 9088512650, 'Olomouc 64744, Polní 15', 20);
  147. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Bydliště, ID_Umístění)
  148.     VALUES (6, 'Martin', 'Procházka', 7340288605, 'example5@email.com', 1241925560, 'Budějovice 72848, Luční 15', 20);
  149. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Bydliště, ID_Umístění)
  150.     VALUES (7, 'Jaroslav', 'Kučera', 2670098059, 'example6@email.com', 6680356276, 'Labem 63404, Komenského 15', 30);
  151. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Bydliště, ID_Umístění)
  152.     VALUES (8, 'Tomáš', 'Veselý', 1461136966, 'example7@email.com', 9381258512, 'Králové 46203, Nová 15', 10);
  153. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Bydliště, ID_Umístění)
  154.     VALUES (9, 'Miroslav', 'Horák', 6635251305, 'example8@email.com', 7227762065, 'Pardubice 60765, Husova 15', 10);
  155.  
  156. INSERT INTO Správce (Účet, Licence) VALUES (1, 'Elektronika');
  157. INSERT INTO Správce (Účet, Licence) VALUES (2, 'Sítě');
  158. INSERT INTO Správce (Účet, Licence) VALUES (3, 'Hardware');
  159. INSERT INTO Správce (Účet, Licence) VALUES (4, 'Grafika');
  160. INSERT INTO Uživatel (Účet) VALUES (5);
  161. INSERT INTO Uživatel (Účet) VALUES (6);
  162. INSERT INTO Uživatel (Účet) VALUES (7);
  163. INSERT INTO Uživatel (Účet) VALUES (8);
  164. INSERT INTO Uživatel (Účet) VALUES (9);
  165.  
  166. -- Vlozeni techniky
  167. INSERT INTO Technika (ID, Výrobní_číslo, Typ, Výrobce, Model_techniky, Specifikace, ID_Umístění, ID_Uživatele)
  168.     VALUES (1, '7FC0TI3231', 'PC', 'Asus', 'KLM18', '4 Ghz, RAM 124 KB...', 10, 5);
  169. INSERT INTO Technika (ID, Výrobní_číslo, Typ, Výrobce, Model_techniky, Specifikace, ID_Umístění, ID_Uživatele)
  170.     VALUES (2, 'M381KHSV4I', 'Tablet', 'Lenovo', 'LKJS48LS', '4 Ghz, RAM 124 KB...', 30, 6);
  171. INSERT INTO Technika (ID, Výrobní_číslo, Typ, Výrobce, Model_techniky, Specifikace, ID_Umístění, ID_Uživatele)
  172.     VALUES (3, 'QGE87D3J8K', 'Monitor', 'Dell', '23FHDIPS', 'Pekny monitor se stojankem', 20, 7);
  173. INSERT INTO Technika (ID, Výrobní_číslo, Typ, Výrobce, Model_techniky, Specifikace, ID_Umístění, ID_Uživatele)
  174.     VALUES (4, 'A4J734U0ME', 'Monitor', 'Dell', '24FHDTN', 'Ne tak pekny monitor bez stojanku', 10, 8);
  175. INSERT INTO Technika (ID, Výrobní_číslo, Typ, Výrobce, Model_techniky, Specifikace, ID_Umístění, ID_Uživatele)
  176.     VALUES (5, '54J61LE55B', 'Myš', 'Hama', 'SCRL456', 'Obyčejná PC myš', 20, 9);
  177.  
  178. -- Vlozeni oprav
  179. INSERT INTO Oprava (ID, Kdy, Aktuální_stav, ID_Techniky, ID_Správce)
  180.     VALUES (1, '20.4.2019', 'Probíhá', 3, 3);
  181. INSERT INTO Oprava (ID, Kdy, Aktuální_stav, ID_Techniky)
  182.     VALUES (2, '1.4.2019', 'Nevyřízeno', 1);
  183.  
  184. -- Vlozeni zadosti
  185. INSERT INTO Žádost (ID, Kdy, ID_Techniky, ID_Opravy, ID_Správce, ID_Uživatele)
  186.     VALUES (1, '1.4.2019', 3, 1, 2, 5);
  187. INSERT INTO Žádost (ID, Kdy, ID_Techniky, ID_Opravy, ID_Správce, ID_Uživatele)
  188.     VALUES (2, '2.4.2019', 1, 2, 3, 6);
  189. INSERT INTO Žádost (ID, Kdy, ID_Techniky, ID_Opravy, ID_Správce, ID_Uživatele)
  190.     VALUES (3, '2.4.2019', 1, 2, 1, 7);
  191.  
  192. -- Spravuje
  193. INSERT INTO Spravuje (ID_Správce, ID_Techniky)
  194.     VALUES (1, 1);
  195. INSERT INTO Spravuje (ID_Správce, ID_Techniky)
  196.     VALUES (2, 2);
  197. INSERT INTO Spravuje (ID_Správce, ID_Techniky)
  198.     VALUES (3, 3);
  199. INSERT INTO Spravuje (ID_Správce, ID_Techniky)
  200.     VALUES (4, 4);
  201. INSERT INTO Spravuje (ID_Správce, ID_Techniky)
  202.     VALUES (1, 5);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement