SHARE
TWEET

Untitled

Dimique May 23rd, 2020 1,504 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Лабораторная работа №3, дисциплина "Базы данных", СПбГУАП, весенний семестр 2020
  2. -- Fedoriy D.A.//4742
  3.  
  4. -- Включение форсирования ограничений ссылочной целостности
  5. PRAGMA foreign_keys = ON;
  6.  
  7. -- ОХимия схемы данных
  8. -- DROP TABLE IF EXISTS Table1 ...
  9. -- ваш код здесь!
  10. DROP TABLE IF EXISTS Клиент;
  11. DROP TABLE IF EXISTS Заказ;
  12. DROP TABLE IF EXISTS Сотрудник;
  13. DROP TABLE IF EXISTS Материал;
  14. DROP TABLE IF EXISTS Тип;
  15. DROP TABLE IF EXISTS Вещь;
  16. DROP TABLE IF EXISTS Результат;
  17. DROP TABLE IF EXISTS Попытка;
  18. DROP TABLE IF EXISTS ХимияДляПопытки;
  19. DROP TABLE IF EXISTS Химия;
  20. -- Конец очистки
  21.  
  22. -- Создание схемы данных
  23. -- CREATE TABLE Table1 ...
  24. CREATE TABLE Клиент (
  25. Телефон CHAR(12) NOT NULL,
  26. ФИО VARCHAR(40) NOT NULL,
  27. ДатаРождения DATE NOT NULL,
  28. Пол CHAR(1),
  29. Email VARCHAR(40),
  30. PRIMARY KEY(Телефон));
  31.  
  32. CREATE TABLE Сотрудник (
  33. id INTEGER NOT NULL CHECK (id>0),
  34. ФИ VARCHAR(30) NOT NULL,
  35. Материал VARCHAR(80) NOT NULL,
  36. Оклад DECIMAL(10,2) NOT NULL CHECK (Оклад>0);
  37. PRIMARY KEY(id));
  38.  
  39. CREATE TABLE Заказ (
  40. Стоимость DECIMAL(10,2) NOT NULL CHECK (Стоимость>0),
  41. ТелефонКлиента CHAR(12) NOT NULL REFERENCES Клиент(Телефон),
  42. КодСотрудника INTEGER NOT NULL REFERENCES Сотрудник(id),
  43. ПриемЗаказа DATE NOT NULL,
  44. ФактДата DATE NOT NULL,
  45. НомерЗаказа INTEGER NOT NULL,
  46. Компенсация DECIMAL(10,2) NOT NULL,
  47. PRIMARY KEY(НомерЗаказа),
  48. CHECK (Планируемый_срок>DATE(Дата_приёма_заказа, '+ 2 DAY')) AND (Стоимость>DECIMAL(10,2)Компенсация));
  49.  
  50. CREATE TABLE Материал (
  51. МатериалВещи VARCHAR(20) NOT NULL,
  52. КомпенсацияМатериала DECIMAL(10,2) NOT NULL,
  53. PRIMARY KEY(МатериалВещи));
  54.  
  55. CREATE TABLE Тип (
  56. ТипВещи VARCHAR(20) NOT NULL,
  57. МатериалВещи VARCHAR (20) NOT NULL REFERENCES Материал(МатериалВещи),
  58. КоэффКомпенсации DECIMAL(10,2) NOT NULL CHECK (КоэффКомпенсации>0),
  59. ТребованияОбработки CHAR(25) NOT NULL,
  60. PRIMARY KEY(ТипВещи, МатериалВещи),
  61. FOREIGN KEY(МатериалВещи));
  62.  
  63. CREATE TABLE Вещь (
  64. КодЗаказа INTEGER NOT NULL REFERENCES Заказ(НомерЗаказа),
  65. Наименование INTEGER NOT NULL,
  66. ТипВещи VARCHAR(20) NOT NULL REFERENCES Тип(ТипВещи),
  67. МатериалВещи VARCHAR (20) NOT NULL REFERENCES Тип(МатериалВещи),
  68. PRIMARY KEY (КодЗаказа, Наименование),
  69. FOREIGN KEY (КодЗаказа, ТипВещи, МатериалВещи));
  70.  
  71. CREATE TABLE Результат (
  72. Результат VARCHAR(35) NOT NULL PRIMARY KEY);
  73.  
  74. CREATE TABLE Попытка (
  75. КодСотрудника INTEGER NOT NULL REFERENCES Сотрудник(id),
  76. НомерПопытки INTEGER NOT NULL,
  77. ДатаПопытки DATE NOT NULL,
  78. КодЗаказа INTEGER NOT NULL REFERENCES Вещь(НомерЗаказа),
  79. НаименованиеВещи INTEGER NOT NULL REFERENCES Вещь(Наименование),
  80. РезультатДляВещи VARCHAR(30) NOT NULL PRIMARY KEY REFERENCES Результат(Результат),
  81. PRIMARY KEY(НомерПопытки, КодЗаказа, НаименованиеВещи),
  82. FOREIGN KEY(КодСотрудника, КодЗаказа, НаименованиеВещи, РезультатДляВещи));
  83.  
  84. CREATE TABLE Химия (
  85. Название VARCHAR(30) NOT NULL,
  86. PRIMARY KEY(Название));
  87.  
  88. CREATE TABLE ХимияДляПопытки (
  89. Название VARCHAR(30) NOT NULL REFERENCES Химия(Название),
  90. НомерПопытки INTEGER NOT NULL REFERENCES Попытка(НомерПопытки),
  91. КодЗаказа INTEGER NOT NULL REFERENCES Попытка(КодЗаказа),
  92. НаименованиеВещи INTEGER NOT NULL REFERENCES Попытка(НаименованиеВещи),
  93. FOREIGN KEY (НомерПопытки, КодЗаказа, НаименованиеВещи, Название));
  94. -- Конец заполнения схем данных
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top