Advertisement
Guest User

Untitled

a guest
Nov 18th, 2017
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.42 KB | None | 0 0
  1. CREATE TABLE Flughafen(
  2. FlughafenName varchar(256) NOT NULL,
  3. AdressID INTEGER NOT NULL,
  4. primary key(FlughafenName),
  5. CONSTRAINT fk_Flughafen FOREIGN KEY (AdressID) REFERENCES Adresse(AdressID),
  6. CONSTRAINT ak_Flughafen UNIQUE (AdressID)
  7. );
  8.  
  9. CREATE TABLE Fluggesellschaft(
  10. Name varchar(256) NOT NULL,
  11. Servicekennzahl INTEGER NOT NULL,
  12. CHECK(0<Servicekennzahl),
  13. CHECK(Servicekennzahl>11),
  14. primary key(Name)
  15. );
  16.  
  17. CREATE TABLE Ort(
  18. OrtsID INTEGER NOT NULL,
  19. Name varchar(256) NOT NULL,
  20. FlughafenName varchar(256) NOT NULL,
  21. Landname varchar(256) NOT NULL,
  22. primary key(OrtsID),
  23. CONSTRAINT fk1_Ort FOREIGN KEY(FlughafenName) REFERENCES Flughafen (FlughafenName),
  24. CONSTRAINT fk2_Ort FOREIGN KEY(Landname) REFERENCES Land(Landname)
  25. );
  26.  
  27. CREATE TABLE Adresse(
  28. AdressID INTEGER NOT NULL,
  29. Straße varchar(256) NOT NULL,
  30. PLZ varchar(5) NOT NULL,
  31. OrtsID INTEGER NOT NULL,
  32. primary key(AdressID)
  33. --CONSTRAINT fk_Adresse FOREIGN KEY(OrtsID) REFERENCES Ort(OrtsID)
  34. );
  35.  
  36. CREATE TABLE Kunde(
  37. KundenNr INTEGER NOT NULL,
  38. TelefonNr varchar(256) NOT NULL,
  39. Geburtsdatum DATE NOT NULL,
  40. Email varchar(256) NOT NULL,
  41. Name varchar(256) NOT NULL,
  42. Vorname varchar(256) NOT NULL,
  43. AdressID INTEGER NOT NULL,
  44. IBAN INTEGER NOT NULL,
  45. primary key(KundenNr),
  46. CONSTRAINT fk1_Kunde FOREIGN KEY(AdressID) REFERENCES Adresse(AdressID),
  47. CONSTRAINT fk2_Kunde FOREIGN KEY(IBAN) REFERENCES Bankverbindung(IBAN),
  48. CONSTRAINT ak1_Kunde UNIQUE (AdressID),
  49. CONSTRAINT ak2_Kunde UNIQUE (IBAN)
  50. );
  51.  
  52. CREATE TABLE Touristenattraktion(
  53. Name varchar(256) NOT NULL,
  54. Beschreibung varchar(256) NOT NULL,
  55. AdressID INTEGER NOT NULL,
  56. Landname varchar(256) NOT NULL,
  57. primary key(Name),
  58. CONSTRAINT fk1_Touristenattraktion FOREIGN KEY(AdressID)REFERENCES Adresse(AdressID),
  59. CONSTRAINT fk2_Touristenattraktion FOREIGN KEY(Landname) REFERENCES Land(Landname),
  60. CONSTRAINT ak1_Touristenattraktion UNIQUE(AdressID)
  61. --CONSTRAINT ak2_Touristenattraktion UNIQUE(Landname)
  62. );
  63.  
  64. CREATE TABLE Land(
  65. ISOcode varchar(256) NOT NULL,
  66. Landname varchar(256) NOT NULL,
  67. primary key(Landname)
  68. );
  69.  
  70. CREATE TABLE Ferienwohnung(
  71. FerienwohnungsID INTEGER NOT NULL,
  72. Beschreibung varchar(256) NOT NULL,
  73. Größe INTEGER NOT NULL,
  74. Zimmeranzahl INTEGER NOT NULL,
  75. Preis INTEGER NOT NULL,
  76. AdressID INTEGER NOT NULL,
  77. BilderID INTEGER,
  78. ZusatzausstattungsID INTEGER,
  79. CHECK(Zimmeranzahl>0),
  80. CHECK(Größe>0),
  81. CHECK(Preis>0),
  82. primary key(FerienwohnungsID),
  83. CONSTRAINT fk1_Ferienwohnung FOREIGN KEY (AdressID)REFERENCES Adresse(AdressID),
  84. CONSTRAINT fk2_Ferienwohnung FOREIGN KEY (BilderID)REFERENCES Bilder(BilderID),
  85. CONSTRAINT fk3_Ferienwohnung FOREIGN KEY (ZusatzausstattungsID) REFERENCES Zusatzausstattung(ZusatzausstattungsID),
  86. CONSTRAINT ak_Ferienwohnung UNIQUE (AdressID)
  87. );
  88.  
  89. CREATE TABLE Zusatzausstattung(
  90. ZusatzausstattungsID INTEGER NOT NULL,
  91. Beschreibung varchar(256) NOT NULL,
  92. primary key(ZusatzausstattungsID)
  93. );
  94.  
  95. CREATE TABLE Bilder(
  96. BilderID INTEGER NOT NULL,
  97. Dateipfad1 varchar(256) NOT NULL,
  98. Dateipfad2 varchar(256),
  99. Dateipfad3 varchar(256),
  100. Dateipfad4 varchar(256),
  101. primary key(BilderID)
  102. --CONSTRAINT fk_Bilder FOREIGN KEY (FerienwohnungsID) REFERENCES Ferienwohnung(FerienwohnungsID)
  103. );
  104.  
  105. CREATE TABLE Reservierung(
  106. ReservierungsNr INTEGER NOT NULL,
  107. Buchungsdatum DATE NOT NULL,
  108. von DATE NOT NULL,
  109. bis DATE NOT NULL,
  110. Status varchar(256),
  111. FerienwohnungsID INTEGER NOT NULL,
  112. RechnungsNr INTEGER NOT NULL,
  113. KundenNr INTEGER NOT NULL,
  114. CHECK(von<bis),
  115. CHECK(Status IN('verbindlich','unverbindlich')),
  116. primary key(ReservierungsNR),
  117. CONSTRAINT fk1_Reservierung FOREIGN KEY(FerienwohnungsID) REFERENCES Ferienwohnung(FerienwohnungsID),
  118. CONSTRAINT fk2_Reservierung FOREIGN KEY(RechnungsNr) REFERENCES Rechnung (RechnungsNr),
  119. CONSTRAINT fk3_Reservierung FOREIGN KEY(KundenNr) REFERENCES Kunde(KundenNr),
  120. CONSTRAINT ak_Reservierung UNIQUE(RechnungsNr)
  121. );
  122.  
  123. CREATE TABLE Rechnung(
  124. RechnungsNR INTEGER,
  125. Betrag INTEGER,
  126. Rechnungsdatum DATE,
  127. Zahlungseingang DATE,
  128. CHECK(Betrag>0),
  129. primary key(RechnungsNR)
  130. );
  131.  
  132. CREATE TABLE Bankverbindung(
  133. Kontonummer INTEGER NOT NULL,
  134. BLZ INTEGER NOT NULL,
  135. IBAN INTEGER NOT NULL,
  136. BIC INTEGER NOT NULL,
  137. CHECK(BLZ>0),
  138. primary key(IBAN)
  139. );
  140.  
  141. CREATE TABLE bietet_Flug_zu(
  142. StartFlughafen varchar(256) NULL,
  143. Name varchar(256) NOT NULL,
  144. ZielFlughafen varchar(256) NOT NULL,
  145. CHECK(StartFlughafen != ZielFlughafen),
  146. primary key(StartFlughafen, Name, ZielFlughafen),
  147. CONSTRAINT fk1_bietet_Flug_zu FOREIGN KEY (StartFlughafen) REFERENCES Flughafen (FlughafenName),
  148. CONSTRAINT fk2_bietet_Flug_zu FOREIGN KEY (ZielFlughafen) REFERENCES Flughafen(FlughafenName),
  149. CONSTRAINT fk3_bietet_Flug_zu FOREIGN KEY (Name) REFERENCES Fluggesellschaft(Name)
  150. );
  151.  
  152. CREATE TABLE Entfernt_von(
  153. Ort1 INTEGER NOT NULL,
  154. Ort2 INTEGER NOT NULL,
  155. km INTEGER NOT NULL,
  156. CHECK(Ort1 != Ort2),
  157. CHECK(km>0),
  158. primary key(Ort1, Ort2),
  159. CONSTRAINT fk_Entfernt_von FOREIGN KEY(Ort1) REFERENCES Ort(OrtsID),
  160. CONSTRAINT fk2_Entfernt_von FOREIGN KEY(Ort2) REFERENCES Ort(OrtsID)
  161. );
  162.  
  163. CREATE TABLE besitzt(
  164. FerienwohnungsID INTEGER NOT NULL,
  165. ZusatzausstattungsID INTEGER NOT NULL,
  166. primary key(ZusatzausstattungsID, FerienwohnungsID),
  167. CONSTRAINT fk1_besitzt FOREIGN KEY(FerienwohnungsID) REFERENCES Ferienwohnung(FerienwohnungsID),
  168. CONSTRAINT fk2_besitzt FOREIGN KEY(ZusatzausstattungsID) REFERENCES Zusatzausstattung(ZusatzausstattungsID)
  169. );
  170.  
  171. ALTER TABLE Adresse
  172. ADD CONSTRAINT fk_Adresse FOREIGN KEY(OrtsID) REFERENCES Ort(OrtsID);
  173.  
  174. ALTER TABLE Adresse
  175. DROP CONSTRAINT fk_Adresse;
  176.  
  177. SELECT * FROM Kunde;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement