From 6e6c4db219da3c0592b9f5e1782a456ae535aaef Mon Sep 17 00:00:00 2001 From: Martin Goik <goik@hdm-stuttgart.de> Date: Thu, 9 Oct 2014 07:51:16 +0200 Subject: [PATCH] Airline example --- Doc/P/Relational/schema.sql | 29 ++++++++++ Doc/course.xml | 106 +++++++++++++++++++++++++++++++++++- 2 files changed, 133 insertions(+), 2 deletions(-) create mode 100644 Doc/P/Relational/schema.sql diff --git a/Doc/P/Relational/schema.sql b/Doc/P/Relational/schema.sql new file mode 100644 index 000000000..df7b69f21 --- /dev/null +++ b/Doc/P/Relational/schema.sql @@ -0,0 +1,29 @@ + +DROP TABLE IF EXISTS Flight; +DROP TABLE IF EXISTS Destination; +DROP TABLE IF EXISTS Airline; + + +CREATE Table Airline ( + id INT NOT NULL PRIMARY KEY + ,name CHAR(20) NOT NULL UNIQUE + ,airlineCode CHAR(5)NOT NULL UNIQUE +); + +CREATE TABLE Destination ( + id INT NOT NULL PRIMARY KEY + ,fullName CHAR(20) NOT NULL + ,airportCode CHAR(20) NOT NULL UNIQUE +); + + +CREATE TABLE Flight ( + id INT NOT NULL PRIMARY KEY + ,flightNumber CHAR(10) NOT NULL UNIQUE + ,airline INT NOT NULL REFERENCES Airline + ,origin int NOT NULL REFERENCES Destination + ,destination int NOT NULL REFERENCES Destination +); + + + diff --git a/Doc/course.xml b/Doc/course.xml index f89cc64e8..28f87edf5 100644 --- a/Doc/course.xml +++ b/Doc/course.xml @@ -594,9 +594,111 @@ drwxr-xr-x 4 goik fb1prof 4096 Nov 8 22:04 .. connection.</para> </section> - <section xml:id="toolingConfigJdbc"> - <titleabbrev>Tooling</titleabbrev> + <section xml:id="repeatRelational"> + <title>Some notes on relational databases</title> + + <qandaset defaultlabel="qanda" xml:id="airlineRelationalSchema"> + <title>Airlines, airports and flights </title> + + <qandadiv> + <qandaentry> + <question> + <para>Implement a relational schema describing airlines, + flights, airports and their respective relationships:</para> + + <itemizedlist> + <listitem> + <para>Airline:</para> + <itemizedlist> + <listitem> + <para>An informal unique name like e.g. + <quote>Lufthansa</quote>.</para> + </listitem> + + <listitem> + <para>A unique <link + xlink:href="http://en.wikipedia.org/wiki/List_of_airline_codes">ICAO + abbreviation</link>. </para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para>Destination</para> + + <itemizedlist> + <listitem> + <para>Full name like <quote>Frankfurt am Main + International</quote></para> + </listitem> + + <listitem> + <para>World airport code like + <quote>FRA</quote>.</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para>Flight</para> + + <itemizedlist> + <listitem> + <para>A unique flight number e.g. LH 4234</para> + </listitem> + + <listitem> + <para>The <quote>owning</quote> airline.</para> + </listitem> + + <listitem> + <para>originating airport</para> + </listitem> + + <listitem> + <para>destination airport</para> + </listitem> + </itemizedlist> + </listitem> + </itemizedlist> + + <para>Provide surrogate keys for all entities.</para> + </question> + + <answer> + <programlisting language="sql">DROP TABLE IF EXISTS Flight; +DROP TABLE IF EXISTS Destination; +DROP TABLE IF EXISTS Airline; + + +CREATE Table Airline ( + id INT NOT NULL PRIMARY KEY + ,name CHAR(20) NOT NULL UNIQUE + ,airlineCode CHAR(5)NOT NULL UNIQUE +); + +CREATE TABLE Destination ( + id INT NOT NULL PRIMARY KEY + ,fullName CHAR(20) NOT NULL + ,airportCode CHAR(20) NOT NULL UNIQUE +); + + +CREATE TABLE Flight ( + id INT NOT NULL PRIMARY KEY + ,flightNumber CHAR(10) NOT NULL UNIQUE + ,airline INT NOT NULL REFERENCES Airline + ,origin int NOT NULL REFERENCES Destination + ,destination int NOT NULL REFERENCES Destination +);</programlisting> + </answer> + </qandaentry> + </qandadiv> + </qandaset> + </section> + + <section xml:id="toolingConfigJdbc"> <title>Tooling: Configuring and using the <link xlink:href="http://www.eclipse.org/datatools">Eclipse database development</link> plugin</title> -- GitLab