Advertisement
Guest User

Untitled

a guest
Mar 31st, 2019
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 9.80 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 INT NOT NULL PRIMARY KEY,
  18.     Jméno VARCHAR2(127) NOT NULL,
  19.     Příjmení VARCHAR2(127) NOT NULL,
  20.     Rodné_číslo INT NOT NULL,
  21.     Email VARCHAR2(127) NOT NULL,
  22.     Telefon INT NOT NULL,
  23.     Město VARCHAR2(127) NOT NULL,
  24.     Ulice VARCHAR2(127) NOT NULL,
  25.     PSC INT NOT NULL,
  26.     ID_Umístění INT NOT NULL,
  27.     CHECK (regexp_like(Jméno, '^[a-zA-Z-]+$')),
  28.     CHECK (regexp_like(Email, '^[a-zA-Z0-9._%-]+@[a-zA-Z0-9._%-]+\.[a-zA-Z]{2,4}$')),
  29.     CHECK (regexp_like(Rodné_číslo, '^[0-9]{2}[0-8][0-9][0-3][0-9][0-9]{4}$')),
  30.     CHECK (regexp_like(PSC, '^[0-9]{5}$')),
  31.     CHECK (regexp_like(Telefon, '^[0-9]{9,}$'))
  32. );
  33.  
  34. CREATE TABLE Správce (
  35.   Účet INT NOT NULL PRIMARY KEY,
  36.   Licence VARCHAR2(127) NOT NULL
  37. );
  38.  
  39. CREATE TABLE Uživatel (
  40.   Účet INT NOT NULL PRIMARY KEY
  41. );
  42.  
  43. CREATE TABLE Místnost (
  44.     Číslo_místnosti INT NOT NULL PRIMARY KEY,
  45.     Patro INT NOT NULL,
  46.     Typ VARCHAR2(1024) NOT NULL,
  47.     Popis VARCHAR2(2048) NOT NULL,
  48.     ID_Oddělení INT NOT NULL
  49. );
  50.  
  51. CREATE TABLE Oddělení(
  52.     Číslo_oddělení INT NOT NULL PRIMARY KEY,
  53.     Popis VARCHAR2(2048) NOT NULL
  54. );
  55.  
  56. CREATE TABLE Technika (
  57.     ID INT NOT NULL PRIMARY KEY,
  58.     Výrobní_číslo VARCHAR2(127) NOT NULL,
  59.     Typ VARCHAR2(1024) NOT NULL,
  60.     Výrobce VARCHAR2(127) NOT NULL,
  61.     Model_techniky VARCHAR2(127) NOT NULL,
  62.     Specifikace VARCHAR2(1024) NOT NULL,
  63.     ID_Umístění INT NOT NULL,
  64.     ID_Uživatele INT NOT NULL
  65. );
  66.  
  67. CREATE TABLE Oprava (
  68.     ID INT NOT NULL PRIMARY KEY,
  69.     Kdy DATE NOT NULL,
  70.     Aktuální_stav VARCHAR2(1024) NOT NULL,
  71.     ID_Techniky INT NOT NULL,
  72.     ID_Správce INT
  73. );
  74.  
  75. CREATE TABLE Žádost (
  76.     ID INT NOT NULL PRIMARY KEY,
  77.     Kdy DATE NOT NULL,
  78.     ID_Techniky INT NOT NULL,
  79.     ID_Opravy INT,
  80.     ID_Správce INT NOT NULL,
  81.     ID_Uživatele INT NOT NULL
  82. );
  83.  
  84.  
  85. -- Vztahy
  86. CREATE TABLE Spravuje (
  87.   ID_Správce INT NOT NULL,
  88.   ID_Techniky INT NOT NULL
  89. );
  90.  
  91. ALTER TABLE Účet
  92.   ADD CONSTRAINT FK_UmístěníÚčtu
  93.     FOREIGN KEY (ID_Umístění) REFERENCES Místnost(Číslo_místnosti);
  94.  
  95. ALTER TABLE Správce
  96.   ADD CONSTRAINT FK_SprávcovskýÚčet
  97.     FOREIGN KEY (Účet) REFERENCES Účet(ID) ON DELETE CASCADE;
  98.  
  99. ALTER TABLE Uživatel
  100.   ADD CONSTRAINT FK_UživatelskýÚčet
  101.     FOREIGN KEY (Účet) REFERENCES Účet(ID) ON DELETE CASCADE;
  102.  
  103. ALTER TABLE Místnost
  104.   ADD CONSTRAINT FK_OdděleníMístnosti
  105.     FOREIGN KEY (ID_Oddělení) REFERENCES Oddělení(Číslo_oddělení);
  106.  
  107. ALTER TABLE Technika
  108.   ADD CONSTRAINT FK_UmístěníTechniky
  109.     FOREIGN KEY (ID_Umístění) REFERENCES Místnost(Číslo_místnosti)
  110.   ADD CONSTRAINT FK_UživatelTechniky
  111.     FOREIGN KEY (ID_Uživatele) REFERENCES Uživatel(Účet);
  112.  
  113. ALTER TABLE Oprava
  114.   ADD CONSTRAINT FK_OpravaTechniky
  115.     FOREIGN KEY (ID_Techniky) REFERENCES Technika(ID) ON DELETE CASCADE
  116.   ADD CONSTRAINT FK_SprávceOpravy
  117.     FOREIGN KEY (ID_Správce) REFERENCES Správce(Účet) ON DELETE SET NULL;
  118.  
  119. ALTER TABLE Žádost
  120.   ADD CONSTRAINT FK_ŽádostTechniky
  121.     FOREIGN KEY (ID_Techniky) REFERENCES Technika(ID) ON DELETE CASCADE
  122.   ADD CONSTRAINT FK_ŽádostOpravy
  123.     FOREIGN KEY (ID_Opravy) REFERENCES Oprava(ID) ON DELETE SET NULL
  124.   ADD CONSTRAINT FK_SprávceŽádosti
  125.     FOREIGN KEY (ID_Správce) REFERENCES Správce(Účet)
  126.   ADD CONSTRAINT FK_PodavatelŽádosti
  127.     FOREIGN KEY (ID_Uživatele) REFERENCES Uživatel(Účet);
  128.  
  129. ALTER TABLE Spravuje
  130.   ADD CONSTRAINT FK_Spravuje
  131.     FOREIGN KEY (ID_Správce) REFERENCES Správce(Účet) ON DELETE CASCADE
  132.   ADD CONSTRAINT FK_SpravovanáTech
  133.     FOREIGN KEY (ID_Techniky) REFERENCES Technika(ID) ON DELETE CASCADE;
  134.  
  135.  
  136. -- Vlozeni oddeleni
  137. INSERT INTO Oddělení (Číslo_oddělení, Popis)
  138.     VALUES (1, 'CVT');
  139. INSERT INTO Oddělení (Číslo_oddělení, Popis)
  140.     VALUES (2, 'Kanceláře');
  141. INSERT INTO Oddělení (Číslo_oddělení, Popis)
  142.     VALUES (3, 'Přednášky');
  143.  
  144. -- Vlozeni mistnosti
  145. INSERT INTO Místnost (Číslo_místnosti, Patro, Typ, Popis, ID_Oddělení)VALUES
  146.     (10, 1, 'Správa CVT', 'Místnost slouží pro zaměstnance správy CVT', 1);
  147. INSERT INTO Místnost (Číslo_místnosti, Patro, Typ, Popis, ID_Oddělení)VALUES
  148.     (20, 1, 'Serverovna', 'V místnosti jsou uloženy veškeřé servery', 1);
  149. INSERT INTO Místnost (Číslo_místnosti, Patro, Typ, Popis, ID_Oddělení)VALUES
  150.     (30, 2, 'Kancelář ředitele', 'Zde sídlí velký šéf', 2);
  151. INSERT INTO Místnost (Číslo_místnosti, Patro, Typ, Popis, ID_Oddělení)VALUES
  152.     (40, 2, 'Hlavní aula', 'Pro technické konference', 3);
  153.  
  154. -- Vlozeni uctu
  155. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Město, Ulice, PSC, ID_Umístění)
  156.     VALUES (1, 'Jiří', 'Novák', 5955127215, 'example0@email.com', 107635075, 'Brno', 'Zahradní 15', 44739, 10 );
  157. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Město, Ulice, PSC, ID_Umístění)
  158.     VALUES (2, 'Jan', 'Svoboda', 8142317343, 'example1@email.com', 410585496, 'Ostrava', 'Krátká 15', 79652, 10);
  159. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Město, Ulice, PSC, ID_Umístění)
  160.     VALUES (3, 'Petr', 'Novotný', 1906212050, 'example2@email.com', 421608504, 'Plzeň', 'Nádražní 15', 25439, 10);
  161. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Město, Ulice, PSC, ID_Umístění)
  162.     VALUES (4, 'Josef', 'Dvořák', 3635184726, 'example3@email.com', 501080405, 'Liberec', 'Školní 15', 25586, 10);
  163. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Město, Ulice, PSC, ID_Umístění)
  164.     VALUES (5, 'Pavel', 'Černý', 9467101671, 'example4@email.com', 908512650, 'Olomouc', 'Polní 15', 64744, 20);
  165. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Město, Ulice, PSC, ID_Umístění)
  166.     VALUES (6, 'Martin', 'Procházka', 7340288605, 'example5@email.com', 124925560, 'Budějovice', 'Luční 15', 72848, 20);
  167. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Město, Ulice, PSC, ID_Umístění)
  168.     VALUES (7, 'Jaroslav', 'Kučera', 2670098059, 'example6@email.com', 660356276, 'Labem', 'Komenského 15', 63404, 30);
  169. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Město, Ulice, PSC, ID_Umístění)
  170.     VALUES (8, 'Tomáš', 'Veselý', 1461136966, 'example7@email.com', 938258512, 'Králové', 'Nová 15', 46203, 10);
  171. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Město, Ulice, PSC, ID_Umístění)
  172.     VALUES (9, 'Miroslav', 'Horák', 6635251305, 'example8@email.com', 722762065, 'Pardubice', 'Husova 15', 60765, 10);
  173.  
  174. INSERT INTO Správce (Účet, Licence) VALUES (1, 'Elektronika');
  175. INSERT INTO Správce (Účet, Licence) VALUES (2, 'Sítě');
  176. INSERT INTO Správce (Účet, Licence) VALUES (3, 'Hardware');
  177. INSERT INTO Správce (Účet, Licence) VALUES (4, 'Grafika');
  178. INSERT INTO Uživatel (Účet) VALUES (5);
  179. INSERT INTO Uživatel (Účet) VALUES (6);
  180. INSERT INTO Uživatel (Účet) VALUES (7);
  181. INSERT INTO Uživatel (Účet) VALUES (8);
  182. INSERT INTO Uživatel (Účet) VALUES (9);
  183.  
  184. -- Vlozeni techniky
  185. INSERT INTO Technika (ID, Výrobní_číslo, Typ, Výrobce, Model_techniky, Specifikace, ID_Umístění, ID_Uživatele)
  186.     VALUES (1, '7FC0TI3231', 'PC', 'Asus', 'KLM18', '4 Ghz, RAM 124 KB...', 10, 5);
  187. INSERT INTO Technika (ID, Výrobní_číslo, Typ, Výrobce, Model_techniky, Specifikace, ID_Umístění, ID_Uživatele)
  188.     VALUES (2, 'M381KHSV4I', 'Tablet', 'Lenovo', 'LKJS48LS', '4 Ghz, RAM 124 KB...', 30, 6);
  189. INSERT INTO Technika (ID, Výrobní_číslo, Typ, Výrobce, Model_techniky, Specifikace, ID_Umístění, ID_Uživatele)
  190.     VALUES (3, 'QGE87D3J8K', 'Monitor', 'Dell', '23FHDIPS', 'Pekny monitor se stojankem', 20, 7);
  191. INSERT INTO Technika (ID, Výrobní_číslo, Typ, Výrobce, Model_techniky, Specifikace, ID_Umístění, ID_Uživatele)
  192.     VALUES (4, 'A4J734U0ME', 'Monitor', 'Dell', '24FHDTN', 'Ne tak pekny monitor bez stojanku', 10, 8);
  193. INSERT INTO Technika (ID, Výrobní_číslo, Typ, Výrobce, Model_techniky, Specifikace, ID_Umístění, ID_Uživatele)
  194.     VALUES (5, '54J61LE55B', 'Myš', 'Hama', 'SCRL456', 'Obyčejná PC myš', 20, 9);
  195.  
  196. -- Vlozeni oprav
  197. INSERT INTO Oprava (ID, Kdy, Aktuální_stav, ID_Techniky, ID_Správce)
  198.     VALUES (1, '20.4.2019', 'Probíhá', 3, 3);
  199. INSERT INTO Oprava (ID, Kdy, Aktuální_stav, ID_Techniky)
  200.     VALUES (2, '1.4.2019', 'Nevyřízeno', 1);
  201.  
  202. -- Vlozeni zadosti
  203. INSERT INTO Žádost (ID, Kdy, ID_Techniky, ID_Opravy, ID_Správce, ID_Uživatele)
  204.     VALUES (1, '1.4.2019', 3, 1, 2, 5);
  205. INSERT INTO Žádost (ID, Kdy, ID_Techniky, ID_Opravy, ID_Správce, ID_Uživatele)
  206.     VALUES (2, '2.4.2019', 1, 2, 3, 6);
  207. INSERT INTO Žádost (ID, Kdy, ID_Techniky, ID_Opravy, ID_Správce, ID_Uživatele)
  208.     VALUES (3, '2.4.2019', 1, 2, 1, 7);
  209.  
  210. -- Spravuje
  211. INSERT INTO Spravuje (ID_Správce, ID_Techniky)
  212.     VALUES (1, 1);
  213. INSERT INTO Spravuje (ID_Správce, ID_Techniky)
  214.     VALUES (2, 2);
  215. INSERT INTO Spravuje (ID_Správce, ID_Techniky)
  216.     VALUES (3, 3);
  217. INSERT INTO Spravuje (ID_Správce, ID_Techniky)
  218.     VALUES (4, 4);
  219. INSERT INTO Spravuje (ID_Správce, ID_Techniky)
  220.     VALUES (1, 5);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement