PMG2224 1/DB Beleg/Walter

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>SQL</language>
= Datenbank-Projekt: Kommerzieller Weltraumflug =

== Ziel der Datenbank ==

== Modellierung in einem ERM ==

[[Bild:Walter_ERM_3_(1).jpg]]


== Einheiten von physikalischen Größen ==

Manche Attributnamen unterscheiden sich zwischen den verschiedenen Darstellungsformen leicht.

Im ERM finden sich die Attribute "Schub", "Durchmesser", "Höhe", "Preis" und "Masse". Diese Merkmale setzen sich aus einem '''Zahlenwert''' und einer '''Einheit''' zusammen.

Um eine Verwendung des Datentyps '''VARCHAR''' zu vermeiden, und stattdessen den Datentyp '''INT''' und '''FLOAT''' verwenden zu können, werden diese Attributnamen im RM und in der Datenbank leicht angepasst. Im Namen ist nun gleichzeitig die '''Einheit enthalten'''.

- "Schub" wird zu "Schub_in_kN"

- "Durchmesser" wird zu "Durchmesser_in_m"

- "Höhe" wird zu "Höhe_in_m"

- "Preis" wird zu "Preis_in_USD"

- "Masse" wird zu "Masse_in_kg"

Diese Anpassung ermöglicht die Verwendung des Datentyps INT und FLOAT und somit '''Vergleichsabfragen''' in diesen Datenfeldern. 

Im ERM werden die vereinfachten Namen ohne Einheit jedoch beibehalten, um eine '''verbesserte Anschaulichkeit''' und '''Übersichtlichkeit''' zu gewährleisten.


== Transformation in das Relationenmodell ==


[[Bild:Walter_RM_sjd.jpg]]


== Erstellen der DB ==


<code id="65bc9f20a0b3e">

CREATE TABLE Unternehmen(
  FID int(10),
  Name varchar(30),
  CEO varchar(30),
  PRIMARY KEY  (FID)
);

CREATE TABLE Startanbieter(
  SID int(10),
  Name varchar(30),
  CEO varchar(30),
  PRIMARY KEY  (SID)
);

CREATE TABLE Rakete(
  RID int(10),
  Name varchar(20),
  Schub_in_kN int(20),
  Treibstoff varchar(20),
  Durchmesser_in_m float(20),
  Höhe_in_m int(20),
  Preis_in_USD int(20),
  FID int(10),
  SID int(10),
  PRIMARY KEY  (RID),
  FOREIGN KEY (FID) REFERENCES Unternehmen(FID),
  FOREIGN KEY (SID) REFERENCES Startanbieter(SID)
);

CREATE TABLE Nutzlast(
  NID int(10),
  Name varchar(30),
  Masse_in_kg int(20),
  Orbit varchar(20),
  FID int(10),
  RID int(10),
  PRIMARY KEY  (NID),
  FOREIGN KEY (FID) REFERENCES Unternehmen(FID),
  FOREIGN KEY (RID) REFERENCES Rakete(RID)
);

INSERT INTO Unternehmen VALUES (1, 'Eutelsat', 'Eva Berneke');
INSERT INTO Unternehmen VALUES (2, 'Sirius XM Holdings', 'Jennifer Witz');
INSERT INTO Unternehmen VALUES (3, 'Intelsat', 'David Wajsgras');
INSERT INTO Unternehmen VALUES (4, 'Axiom Space', 'Michael Suffredini');
INSERT INTO Unternehmen VALUES (5, 'OHB System', 'Marco Fuchs');
INSERT INTO Unternehmen VALUES (6, 'Globalstar', 'Paul Jacobs');
INSERT INTO Unternehmen VALUES (7, 'SES', 'Ruy Pinto');

INSERT INTO Startanbieter VALUES (1, 'ArianeGroup', 'Martin Sion');
INSERT INTO Startanbieter VALUES (2, 'SpaceX', 'Elon Musk');
INSERT INTO Startanbieter VALUES (3, 'United Launch Alliance', 'Tory Bruno');

INSERT INTO Rakete VALUES (1, 'Ariane 5', 9390, 'Hydrolox', 4.6, 53, 150000000, 1, 1);
INSERT INTO Rakete VALUES (2, 'Ariane 5', 9390, 'Hydrolox', 4.6, 53, 150000000, 1, 1);
INSERT INTO Rakete VALUES (3, 'Ariane 5', 9390, 'Hydrolox', 4.6, 53, 150000000, 7, 1);
INSERT INTO Rakete VALUES (4, 'Ariane 6', 15420, 'Hydrolox', 5.4, 63, 115000000, 3, 1);
INSERT INTO Rakete VALUES (5, 'Ariane 6', 15420, 'Hydrolox', 5.4, 63, 115000000, 3, 1);

INSERT INTO Rakete VALUES (6, 'Falcon 9', 7610, 'Kerolox', 5.2, 70, 60000000, 4, 2);
INSERT INTO Rakete VALUES (7, 'Falcon 9', 7610, 'Kerolox', 5.2, 70, 60000000, 5, 2);
INSERT INTO Rakete VALUES (8, 'Falcon 9', 7610, 'Kerolox', 5.2, 70, 60000000, 6, 2);
INSERT INTO Rakete VALUES (9, 'Falcon 9', 7610, 'Kerolox', 5.2, 70, 60000000, 2, 2);
INSERT INTO Rakete VALUES (10, 'Falcon Heavy', 22820, 'Kerolox', 5.2, 70, 97000000, 1, 2);

INSERT INTO Rakete VALUES (11, 'Atlas V', 8340, 'Kerolox', 4.0, 58, 109000000, 2, 3);
INSERT INTO Rakete VALUES (12, 'Atlas V', 9470, 'Kerolox', 4.0, 58, 123000000, 6, 3);
INSERT INTO Rakete VALUES (13, 'Atlas V', 10740, 'Kerolox', 5.4, 58, 130000000, 7, 3);
INSERT INTO Rakete VALUES (14, 'Atlas V', 10740, 'Kerolox', 5.4, 58, 130000000, 5, 3);
INSERT INTO Rakete VALUES (15, 'Vulcan Centaur', 14210, 'Methalox', 5.4, 62, 110000000, 5, 3);
INSERT INTO Rakete VALUES (16, 'Vulcan Centaur', 18630, 'Methalox', 5.4, 62, 121000000, 4, 3);

INSERT INTO Nutzlast VALUES (1, 'Eutelsat Konnect', 6976, 'GTO', 1, 1);
INSERT INTO Nutzlast VALUES (2, 'Eutelsat Quantum 1', 5515, 'GTO', 1, 2);
INSERT INTO Nutzlast VALUES (3, 'Eutelsat Quantum 2', 5134, 'GTO', 1, 2);
INSERT INTO Nutzlast VALUES (4, 'SES-17', 3264, 'GTO', 7, 3);
INSERT INTO Nutzlast VALUES (5, 'SES-18', 3532, 'GTO', 7, 3);
INSERT INTO Nutzlast VALUES (6, 'SES-19', 3194, 'GTO', 7, 3);
INSERT INTO Nutzlast VALUES (7, 'Intelsat-41', 9982, 'GTO', 3, 4);
INSERT INTO Nutzlast VALUES (8, 'Intelsat-44', 4219, 'GTO', 3, 5);
INSERT INTO Nutzlast VALUES (9, 'Intelsat-45', 4331, 'GTO', 3, 5);

INSERT INTO Nutzlast VALUES (10, 'Axiom-1', 13000, 'LEO', 4, 6);
INSERT INTO Nutzlast VALUES (11, 'SARah 1', 4102, 'SSO', 5, 7);
INSERT INTO Nutzlast VALUES (12, 'Globalstar-2 M087', 700, 'LEO', 6, 8); 
INSERT INTO Nutzlast VALUES (13, 'SXM-7', 5500, 'GTO', 2, 9); 
INSERT INTO Nutzlast VALUES (14, 'SXM-8', 5450, 'GTO', 2, 9);
INSERT INTO Nutzlast VALUES (15, 'Eutelsat 25B', 15492, 'GTO', 1, 10); 

INSERT INTO Nutzlast VALUES (16, 'SXM-3', 6307, 'GTO', 2, 11); 
INSERT INTO Nutzlast VALUES (17, 'Globalstar-3 M093', 2070, 'LEO', 6, 12); 
INSERT INTO Nutzlast VALUES (18, 'Globalstar-4 M094', 2120, 'LEO', 6, 12); 
INSERT INTO Nutzlast VALUES (19, 'SES-HAL R4', 4296, 'GTO', 7, 13); 
INSERT INTO Nutzlast VALUES (20, 'SARah 2', 3260, 'SSO', 5, 14);
INSERT INTO Nutzlast VALUES (21, 'SARah 3', 4687, 'SSO', 5, 15);
INSERT INTO Nutzlast VALUES (22, 'LDPE-1', 6555, 'SSO', 5, 15);
INSERT INTO Nutzlast VALUES (23, 'Axiom-2', 12540, 'LEO', 4, 16);

</code>

== Erstellen von verschiedenen Abfragen ==

<run id="65bc9f20a0b83">

SELECT * FROM Unternehmen;
SELECT * FROM Startanbieter;
SELECT * FROM Rakete;
SELECT * FROM Nutzlast;

</run>

== Begriffserklärung ==

==== Rakete ====

Hierbei wird eine '''einzelne Rakete''' betrachtet, welcher eine einzigarte R-ID zugeordnet ist.

Diese Rakete kann '''mehrere Nutzlasten''' transportieren.

Mehrere Raketen können den '''gleichen Namen''' haben. Dabei wird das Raketenmodell beschrieben, welches bei Raketen mit verschiedenen R-IDs gleich sein kann. Beispielsweise können 10 Raketen des Modells "Ariane 5" produziert werden - sie besitzen unterschiedliche R-IDs, haben jedoch den gleichen Namen. Raketen mit gleichem Namen können sich in '''Schub, Höhe, Durchmesser und Preis unterscheiden''', jedoch nicht in '''Treibstoff'''. Dies liegt darin begründet, dass manche Raketen unterschiedliche Versionen besitzen, welche je nach Mission variieren. Beispielsweise werden zusätzliche Festtreibstoff-Booster hinzugefügt oder eine andere Verkleidung gewählt, wodurch sich Schub, Höhe und Durchmesser und somit Preis ändern können. Der Treibstoff einer Rakete ändert sich jedoch in ihren verschiedenen Ausführungen nie.

==== Nutzlast ====

Die Nutzlast ist meist ein Satellit, ein Teleskop oder eine Lieferung an eine Raumstation.

==== Durchmesser ====

Der Durchmesser der Verkleidung, in welcher sich die Nutzlast befindet.

==== Höhe ====

Hierbei ist die Höhe der Rakete beim Start gemeint, vom unteren Ende der ersten Stufe bis zum höchsten Punkt der Verkleidung. Das Attribut "Höhe" darf nicht mit der Höhe der Rakete über dem Meeresspiegel während des Flugs verwechselt werden.

==== Treibstoff ====

Die Flüssigtreibstoff-Kombination, mit welcher die Triebwerke der ersten Stufe betrieben werden. Festtreibstoff-Booster und weitere Treibstoffarten der zweiten und evtl. dritten Stufe werden nicht einbezogen.

Die Endung -lox steht für "Liquid Oxygen", also Flüssigsauerstoff.

- ''Hydrolox'' ist eine Kombination aus flüssigem Wasserstoff und Sauerstoff

- ''Kerolox'' ist eine Kombination aus Kerosin und flüssigem Sauerstoff

- ''Methalox'' ist eine Kombination aus flüssigem Methan und Sauerstoff

==== Orbit ====

Die Umlaufbahn, in welche die Nutzlast befördert werden soll.

- ''GTO'' steht für ''Geostationary Transfer Orbit''. Der Satellit umkreist die Erde synchron zur Erddrehung.

- ''LEO'' bedeutet ''Low Earth Orbit''. Dabei handelt es sich um einen sehr niedrigen Orbit. Die ISS befindet sich in einem LEO.

- ''SSO'' steht für ''Sun-synchronous Orbit'' und wird vor allem für Wettersatelliten verwendet.

== Kritische Reflexion zu Modellierung und Umsetzung == 

- mehrere Unternehmen können an der gleichen Nutzlast zusammenarbeiten

- es gibt Rideshare-Missionen, bei denen sich Unternehmen den Preis der Rakete aufteilen

- mehrere Startanbieter können meist sogar länderübergreifend an einer Rakete teilhaben

== Quellen und Tools ==

ERDplus 

Word 2021