PMG1719/DB Beleg/Lenny

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>SQL</language>
<h2>Ziel der Datenbank</h2>
Das Ziel meiner Datenbank ist es, eine Orientierungshilfe für die Studienplatzwahl zu sein. Dabei werden viele Faktoren rund ums Studium aufgegriffen, was bedeutet, dass durch komplexe und gezielte Abfragen, genau die Studiengänge angezeigt werden, die für jeden individuell relevant sind. Um das zu erreichen, arbeite ich mit 3 Entitäten, welche Hauptmerkmale eines späteren Studiums darstellen. Dazu zählt die '''Hochschule''' an der man studieren will, die angebotenen '''Studiengänge''' und das Umfeld der Hochschule, der '''Standort'''. Natürlich kann die Fülle an Hochschulen und die noch größere Anzahl an Studiengängen nicht alle Interessen in einer Datenbank abdecken. Deshalb habe ich eine Auswahl an Hochschulen und Studiengängen getroffen, um die Funktionsweise der Datenbank zu gewährleisten, aber den Rahmen nicht zu sprengen. Beispiele für eine mögliche Anwendung der Datenbank bringt die Tabelle '''Schüler'''. In dieser Tabelle sind fiktive Personen mit fiktiven Eigenschaften aufgelistet, die alle in Bautzen wohnen und auf der Suche nach einem Studienplatz sind. Mit geeigneten Abfragen kann man Interessen und finanzielle Umstände der Schüler mit der Datenbank abgleichen und so den besten Studiengang für jeden individuell herausfinden.

Ich habe dieses Thema ausgewählt, da ich mich selbst bereits intensiv mit der Studienplatzwahl auseinandergesetzt habe und es dabei oftmals schwierig war, auf den verschiedenen Hochschulseiten die wichtigen Informationen herauszufinden. Deshalb ist es sinnvoll, die Suche nach dem richtigen Studiengang auf die wichtigsten Informationen - z.B. in Form einer Datenbank - zuzuschneiden. Dieses Prinzip ist bereits als Webseite ([https://www.studycheck.de studycheck.de]) verwirklicht, welche mir viele nützliche Informationen für meine Datenbank bereitstellte.
<h2>Modelle</h2>
<h3>ER-Modell</h3>
[[Bild:ER_Modell.png | 1000px]]
<h3>Relationenmodell</h3>
[[Bild:Relationenmodell.png]]
<h3>Erläuterung der Modelle</h3>
<p style="text-decoration:underline">'''ER-Modell:'''</p>
<p>Ein "Entity-Relationship-Modell" dient der Vereinfachung komplexer Beziehungen eines Sachverhaltes. Das Modell wird durch 2 verschiedene Bausteine mit unterschiedlichen Aufgaben zusammengesetzt.</p>
<p>Das ER-Modell besteht aus '''Entitäten''', die die Oberbegriffe für Tabellen darstellen können, '''Beziehungen''', die diese Entitäten verknüpfen und '''Attribute''', die die Eigenschaften der Entitäten darstellen und Datenfelder der Datenbank sind. Die Entität '''Hochschule''' ist über die Beziehung '''Liegt in''' mit der Tabelle '''Standort''' verknüpft. Gleichermaßen ist Hochschule auch über die Beziehung '''Bietet an''' mit der Tabelle '''Studiengang''' verknüpft. Die Entität '''Schüler''' steht in keiner direkten Beziehung zu den anderen Entitäten.</p>
<p style="text-decoration:underline">'''Relationenmodell:'''</p>
<p>Um das ER-Modell in ein Relationenmodell zu übertragen, muss jede Entität in eine Tabelle umgewandelt werden. Außerdem muss darauf geachtet werden, dass bei einer 1:n-Beziehung ein Fremdschlüssel als Datenfeld eingefügt werden muss, in diesem speziellen Fall muss in '''Studiengang''' der Primärschlüssel von '''Hochschule''' als Fremdschlüssel eingetragen werden.</p>
<p>Für die n:m-Beziehung zwischen Standort und Hochschule muss als Relation eine neue Tabelle '''Liegt in''' zwischen Standort und Hochschule erstellt werden, die den Primärschlüssel sowohl von der Tabelle Standort, als auch von der Tabelle Hochschule beinhaltet.</p>
<p style="text-decoration:underline">'''Kardinalitäten'''</p>
<p>Eine '''1:1-Beziehung''' besteht zwischen zwei Tabellen, wenn sich die Attribute der Tabellen gegenseitig eineindeutig zuordnen lassen.</p>
<p>Hochschule und Studiengang sind mit einer '''1:n-Beziehung''' verknüpft, d.h. eine Hochschule kann mehrere Studiengänge anbieten, aber ein Studiengang kann nur von einer Hochschule angeboten werden.</p>
<p>Hochschule und Standort sind über eine '''n:m-Beziehung''' verknüpft, d.h. eine Hochschule kann an mehreren Standorten liegen und ein Standort kann mehrere Hochschulen beherbergen.</p>
<p style="text-decoration:underline">'''Normalisierung'''</p>
<p>Die Normalisierung meiner Datenbank ist durch die Beachtung der 3 Normalformen gewährleistet. Die Tabelle ist nach der ersten Normalform so zerlegt, dass in jedem Feld nur eine Information steht. Die Primärschlüssel der jeweiligen Tabellen sind nach der zweiten Normalform eindeutig zugeordnet, um Änderungen einheitlich vorzunehmen. Es erfolgt eine Aufsplittung in Tabellen und Verknüpfungen. Auch die dritte Normalform ist gewährleistet, da es keine Datenfelder gibt, die Abhängigkeiten zu anderen Datenfeldern in derselben Tabelle haben.</p>
<h2>Umsetzung der Datenbank</h2>
Erstellen der Struktur der Datenbank mit 5 Tabellen:
<popup name="Tabellenstruktur">
<code id="5c383be27b057">
CREATE TABLE Hochschule(
  hochschul_id INTEGER,
  hochschul_name VARCHAR(255),
  studenten_zahl INTEGER,
  PRIMARY KEY(hochschul_id)
);

CREATE TABLE Standort(
  standort_id INTEGER,
  standort_name VARCHAR(255),
  bundesland_name VARCHAR(255),
  einwohner_zahl INTEGER,
  mietpreis FLOAT(5),
  entfernung INTEGER,
  PRIMARY KEY(standort_id)
);

CREATE TABLE Studiengang(
  studiengang_id INTEGER,
  hochschul_id INTEGER,
  studiengang_name VARCHAR(255),
  bewertung FLOAT(3),
  semester_zahl INTEGER,
  semester_typ VARCHAR(255),
  abschluss VARCHAR(255),
  fakultaet VARCHAR(255),
  PRIMARY KEY(studiengang_id)
);

CREATE TABLE Liegt_in(
  hochschul_id INTEGER,
  standort_id INTEGER
);

CREATE TABLE Schueler(
  schueler_id INTEGER,
  name VARCHAR(255),
  vorname VARCHAR(255),
  interesse VARCHAR(255),
  finanzen FLOAT(5),
  PRIMARY KEY(schueler_id)
);
</code>
</popup>
Einfügen von Datensätzen in die Datenbank:
<popup name="Datensätze">
<code id="5c3b3aab93c94">
INSERT INTO Hochschule VALUES
  (0, 'HTW Dresden', 4856),
  (1, 'Hochschule Zittau/Görlitz', 3017),
  (2, 'Hochschule Stralsund', 2173),
  (3, 'Hochschule Harz', 2965),
  (4, 'Berufsakademie Bautzen', 640),
  (5, 'Hochschule Hof', 3464),
  (6, 'Hochschule Mittweida', 6350),
  (7, 'TU Bergakademie Freiberg', 5502),
  (8, 'HTWK Leipzig', 6400),
  (9, 'Uni Leipzig', 30226),
  (10, 'TU Dresden', 33506),
  (11, 'TU Chemnitz', 10631),
  (12, 'Uni Potsdam', 20819),
  (13, 'Hochschule Trier', 8025);

INSERT INTO Studiengang VALUES
  (0, 0, 'Informatik', 4.0, 6, 'Wintersemester', 'Bachelor of Science', 'Informatik/Mathematik'),
  (1, 0, 'Produkt und Kommunikation', 4.2, 6, 'Wintersemester', 'Bachelor of Arts', 'Design'),
  (2, 0, 'Bauingenieurwesen', 3.9, 2, 'Wintersemester', 'Master of Science', 'Bauingenieurwesen'),
  (3, 0, 'Medieninformatik', 3.7, 8, 'Wintersemester', 'Diplom', 'Informatik/Mathematik'),
  (4, 0, 'Gartenbau', 3.6, 7, 'Wintersemester', 'Bachelor of Science', 'Landbau/Umwelt/Chemie'),
  (5, 1, 'Automatisierung/Mechatronik', 4.5, 7, 'Wintersemester', 'Bachelor of Science', 'Elektrotechnik und Informatik'),
  (6, 1, 'Informatik', 4.3, 6, 'Wintersemester', 'Bachelor of Science', 'Elektrotechnik und Informatik'),
  (7, 1, 'Kommunikationspsychologie', 3.8, 7, 'Wintersemester', 'Bachelor of Arts', 'Sozialwissenschaften'),
  (8, 1, 'Wirtschaftsingenieurwesen', 4.2, 8, 'Wintersemester', 'Diplom', 'Wirtschaftswissenschaften und Wirtschaftsingenieurwesen'),
  (9, 1, 'Wirtschaft und Sprachen', 4.2, 8, 'Wintersemester', 'Bachelor of Arts', 'Management und Kulturwissenschaften'),
  (10, 2, 'Betriebswirtschaftslehre', 3.9, 7, 'Wintersemester', 'Bachelor of Arts', 'Wirtschaft'),
  (11, 2, 'Wirtschaftsinformatik', 4.3, 7, 'Wintersemester', 'Bachelor of Science', 'Wirtschaft'),
  (12, 2, 'Wirtschaftsinformatik', 4.2, 3, 'Sommer- & Wintersemester', 'Master of Science', 'Wirtschaft'),
  (13, 3, 'Smart Automation', 4.5, 7, 'Wintersemester', 'Bachelor of Engineering', 'Automatisierung und Informatik'),
  (14, 3, 'Medien- und Spielekonzeption', 4.3, 4, 'Sommer- & Wintersemester', 'Master of Arts', 'Automatisierung und Informatik'),
  (15, 3, 'Medieninformatik', 4, 7, 'Wintersemester', 'Bachelor of Science', 'Automatisierung und Informatik'),
  (16, 4, 'Finanzmanagement', NULL, 6, 'Wintersemester', 'Bachelor of Arts', NULL),
  (17, 4, 'Medizintechnik', NULL, 6, 'Wintersemester', 'Bachelor of Engineering', NULL),
  (18, 4, 'Wirtschaftsinformatik', 4, 6, 'Wintersemester', 'Bachelor of Science', NULL),
  (19, 5, 'Verwaltungsinformatik', 3.4, 6, 'Wintersemester', 'Diplom', 'Informatik'),
  (20, 5, 'Informatik', 4.7, 7, 'Wintersemester', 'Bachelor of Science', 'Informatik'),
  (21, 5, 'Innovative Textilien', 4.2, 7, 'Wintersemester', 'Bachelor of Engineering', 'Ingenieurwissenschaften'),
  (22, 6, 'Angewandte Informatik', 3, 6, 'Wintersemester', 'Bachelor of Science', 'Angewandte Computer- und Biowissenschaften'),
  (23, 6, 'Angewandte Medien', 3.7, 6, 'Sommer- & Wintersemester', 'Bachelor of Arts', 'Medien'),
  (24, 6, 'Biotechnologie', 3.8, 6, 'Wintersemester', 'Bachelor of Science', 'Angewandte Computer- und Biowissenschaften'),
  (25, 7, 'Chemie', 4.3, 6, 'Sommer- & Wintersemester', 'Bachelor of Science', 'Mathematik, Informatik & Naturwissenschaften'),
  (26, 7, 'Geophysik', NULL, 4, 'Sommer- & Wintersemester', 'Master of Science', 'Geowissenschaften, Geotechnik und Bergbau'),
  (27, 7, 'Angewandte Informatik', 4.5, 6, 'Sommer- & Wintersemester', 'Bachelor of Science', 'Mathematik und Informatik'),
  (28, 8, 'Architektur', 3.5, 6, 'Wintersemester', 'Master of Science', 'Architektur und Sozialwissenschaften'),
  (29, 8, 'Soziale Arbeit', 3.8, 6, 'Wintersemester', 'Bachelor of Arts', 'Architektur und Sozialwissenschaften'),
  (30, 8, 'Energie-, Gebäude- und Umwelttechnik', 2.5, 4, 'Wintersemester', 'Master of Engineering', 'Maschinenbau und Energietechnik'),
  (31, 9, 'Informatik', 4, 6, 'Wintersemester', 'Bachelor of Science', 'Informatik und Mathematik'),
  (32, 9, 'Journalismus', 3.7, 6, 'Wintersemester', 'Master of Arts', 'Sozialwissenschaften'),
  (33, 9, 'Mathematik', 4.2, 10, 'Wintersemester', 'Diplom', 'Informatik und Mathematik'),
  (34, 10, 'Bahnsystemingenieurwesen', 4.1, 4, 'Wintersemester', 'Master of Science', 'Verkehrswissenschaften'),
  (35, 10, 'Englisch (Lehramt)', 3.7, 10, 'Wintersemester', 'Staatsexamen', 'Sprach-, Literatur- und Kulturwissenschaften'),
  (36, 10, 'Elektrotechnik', 4.1, 10, 'Wintersemester', 'Diplom', 'Elektrotechnik und Informationstechnik'),
  (37, 11, 'Angewandte Informatik', 3.7, 6, 'Wintersemester', 'Bachelor of Science', 'Informatik'),
  (38, 11, 'Digitale Medien- und Kommunikationskulturen', 3.4, 4, 'Wintersemester', 'Master of Arts', 'Philosophie'),
  (39, 11, 'Germanistik', 3.9, 6, 'Wintersemester', 'Bachelor of Arts', 'Philosophie'),
  (40, 12, 'Informatik / Computational Science', 3.4, 6, 'Wintersemester', 'Bachelor of Science', 'Mathematik und Naturwissenschaften'),
  (41, 12, 'Physik', 4, 6, 'Wintersemester', 'Bachelor of Science', 'Mathematik und Naturwissenschaften'),
  (42, 12, 'Politik und Wirtschaft', 4, 6, 'Wintersemester', 'Bachelor of Science', 'Wirtschafts- und Sozialwissenschaften'),
  (43, 13, 'Angewandte Informatik', 3.2, 7, 'Sommer- & Wintersemester', 'Bachelor of Science', 'Informatik'),
  (44, 13, 'Kommunikationsdesign', 3.8, 6, 'Sommer- & Wintersemester', 'Bachelor of Arts', 'Gestaltung'),
  (45, 13, 'Informatik', NULL, 6, 'Sommer- & Wintersemester', 'Bachelor of Science', 'Informatik');

INSERT INTO Standort VALUES
  (0, 'Dresden', 'Sachsen', 543825, 8.29, 64),
  (1, 'Zittau', 'Sachsen', 28906, 4.13, 50),
  (2, 'Görlitz', 'Sachsen', 55928, 4.81, 51),
  (3, 'Stralsund', 'Mecklenburg-Vorpommern', 59517, 7.98, 501),
  (4, 'Wernigerode', 'Brandenburg', 35041, 6.8, 311),
  (5, 'Halberstadt', 'Brandenburg', 43224, 5.08, 295),
  (6, 'Bautzen', 'Sachsen', 40798, 6.22, 0),
  (7, 'Hof', 'Bayern', 47275, 5.74, 235),
  (8, 'Münchberg', 'Bayern', 11087, 5.74, 253),
  (9, 'Mittweida', 'Sachsen', 15907, 6.15, 116),
  (10, 'Freiberg', 'Sachsen', 41823, 7.35, 107),
  (11, 'Leipzig', 'Sachsen', 560472, 10.43, 169),
  (12, 'Chemnitz', 'Sachsen', 246353, 5.16, 133),
  (13, 'Potsdam', 'Brandenburg', 171810, 10.77, 244),
  (14, 'Trier', 'Rheinland-Pfalz', 114914, 8.67, 691),
  (15, 'Idar-Oberstein', 'Rheinland-Pfalz', 31082, 5.47, 631);

INSERT INTO Liegt_in VALUES
  (0, 0),
  (1, 1),
  (1, 2),
  (2, 3),
  (3, 4),
  (3, 5),
  (4, 6),
  (5, 7),
  (5, 8),
  (6, 9),
  (7, 10),
  (8, 11),
  (9, 11),
  (10, 0),
  (11, 12),
  (12, 13),
  (13, 14),
  (14, 15);

INSERT INTO Schueler VALUES
  (0, 'Sommer', 'Adrian', 'Wirtschaft', 10.5),
  (1, 'Dumat', 'Manfred', 'Lehramt', 8),
  (2, 'Warner', 'Herta', 'Informatik', 7.3),
  (3, 'Benke', 'Irma', 'Mathematik', 12),
  (4, 'Dietz', 'Waldemar', 'Wirtschaft', 6);
</code>
</popup>
<h3>Anmerkungen</h3>
<p>Ausgehend davon, dass alle Schüler zurzeit in Bautzen wohnen, bezieht sich das Feld '''Entfernung''' in der Tabelle '''Standort''' auf die Entfernung der jeweiligen Stadt zu Bautzen.</p>
<p>Die '''Finanzen''' der '''Schüler''' beziehen sich auf den maximal erschwinglichen Geldbetrag Miete an Euro pro Quadratmeter. Auch der '''Mietpreis''' bei '''Standort''' bezieht sich auf die durchschnittliche Miete pro Quadratmeter.</p>
<p>Der Einfachheit halber wird vernachlässigt, dass verschiedene Studiengänge einer Hochschule an unterschiedlichen Standorten unterrichtet wird. Außerdem wird nicht beachtet, dass Schüler mehr als eine Interesse haben.</p>
<h2>Abfragen</h2>
<h3>Allgemeine Abfragen</h3>
<p>Die folgenden Abfragen sind allgemein und sollen Funktionsweise und Umfang der Datenbank darstellen.</p>
'''1) Welche Hochschulen stehen zur Auswahl?'''
<run id="5c4a41c8048d3">
SELECT hochschul_name FROM Hochschule;
</run>
'''2) Welche Studiengänge bieten als Abschluss den "Bachelor of Science"?'''
<run id="5c4a42f3cc98a">
SELECT * FROM Studiengang 
WHERE abschluss = 'Bachelor of Science';
</run>
'''3) Welche Studiengänge kann man an der "HTW Dresden" studieren?'''
<run id="5c4a44a2215c1">
SELECT 
  Studiengang.studiengang_name AS Studiengang,
  Studiengang.abschluss AS Abschluss 
FROM Hochschule, Studiengang 
WHERE Hochschule.hochschul_name = 'HTW Dresden' AND Hochschule.hochschul_id = Studiengang.hochschul_id;
</run>
'''4) Welche Studiengänge haben eine bessere Bewertung als 4.0 und mehr als 8 Semester und an welchen Hochschulen werden diese Studiengänge unterrichet?
<run id="5c4a45bae7ed1">
SELECT 
  Studiengang.studiengang_name AS Studiengang, 
  Studiengang.bewertung AS Bewertung, 
  Studiengang.semester_zahl AS Semester, 
  Hochschule.hochschul_name AS Hochschule 
FROM Studiengang, Hochschule 
WHERE Studiengang.bewertung > 4 AND Studiengang.semester_zahl > 8 AND Hochschule.hochschul_id = Studiengang.hochschul_id;
</run>
'''5) In welcher Stadt ist ein informatisches Studium, von den Mietpreisen aus gesehen, am günstigsten?
<run id="5c4a4750b5e20">
SELECT 
  Studiengang.studiengang_name AS Studiengang,
  Standort.standort_name AS Standort,
  Standort.mietpreis AS Mietpreis
FROM Studiengang, Standort, Liegt_in, Hochschule
WHERE
  Studiengang.studiengang_name LIKE '%informatik%' AND
  Liegt_in.hochschul_id = Hochschule.hochschul_id AND
  Liegt_in.standort_id = Standort.standort_id AND
  Studiengang.hochschul_id = Hochschule.hochschul_id
ORDER BY Standort.mietpreis
LIMIT 5;
</run>
<h3>Konkrete Abfragen</h3>
<p>Die folgenden Abfragen werden mithilfe der fiktiven Schüler-Tabelle verwirklicht.</p>
'''1) An welchen Hochschulen und in welchen Städten kann 'Adrian Sommer' nach seiner Interesse und gemäß seiner Finanzen studieren?'''
<run id="5c383be27b0c7">
SELECT name AS Name, vorname AS Vorname, interesse AS Interesse, finanzen AS Finanzen 
FROM Schueler WHERE Vorname = 'Adrian' AND Name = 'Sommer';

SELECT
  Hochschule.hochschul_name AS Hochschule,
  Studiengang.studiengang_name,
  Standort.standort_name AS Standort,
  Standort.mietpreis AS Mietpreis
FROM Studiengang, Hochschule, Schueler, Standort, Liegt_in
WHERE
  Studiengang.studiengang_name LIKE '%wirtschaft%' AND
  Liegt_in.hochschul_id = Hochschule.hochschul_id AND
  Liegt_in.standort_id = Standort.standort_id AND
  Studiengang.hochschul_id = Hochschule.hochschul_id AND
  Standort.mietpreis <= 10.5
GROUP BY Hochschule.hochschul_name, Standort.standort_name;
</run>
'''2) Gibt es eine Möglichkeit bei der Adrian und Herta an der gleichen Hochschule studieren?'''
<run id="5c4ddc760b1f6">
SELECT name AS Name, vorname AS Vorname, interesse AS Interesse, finanzen AS Finanzen 
FROM Schueler WHERE Vorname = 'Adrian' AND Name = 'Sommer'
UNION
SELECT name AS Name, vorname AS Vorname, interesse AS Interesse, finanzen AS Finanzen 
FROM Schueler WHERE Vorname = 'Herta' AND Name = 'Warner';

SELECT
  Hochschule.hochschul_name AS Hochschule,
  Studiengang.studiengang_name AS Studiengang,
  Standort.mietpreis AS Mietpreis
FROM Studiengang, Hochschule, Schueler, Standort, Liegt_in
WHERE
  (Studiengang.studiengang_name LIKE '%wirtschaft%' OR
  Studiengang.studiengang_name LIKE '%informatik%') AND
  Standort.mietpreis <= 7.3 AND
  Liegt_in.hochschul_id = Hochschule.hochschul_id AND
  Liegt_in.standort_id = Standort.standort_id AND
  Studiengang.hochschul_id = Hochschule.hochschul_id
GROUP BY Hochschule.hochschul_name, Studiengang.studiengang_name
</run>
'''3) Herta möchte in einer Stadt studieren, die möglichst weit weg ist'''
<run id="5c4de1bd82c0c">
SELECT name AS Name, vorname AS Vorname, interesse AS Interesse, finanzen AS Finanzen 
FROM Schueler WHERE Vorname = 'Herta' AND Name = 'Warner';

SELECT
  Standort.standort_name AS Standort,
  Hochschule.hochschul_name AS Hochschule,
  Standort.einwohner_zahl AS Einwohner,
  Standort.entfernung AS Entfernung,
  Standort.mietpreis AS Mietpreis
FROM Studiengang, Hochschule, Standort, Liegt_in, Schueler
WHERE
  Studiengang.studiengang_name LIKE '%informatik%' AND
  Standort.mietpreis <= Schueler.finanzen AND
  Schueler.Vorname = 'Herta' AND
  Schueler.Name = 'Warner' AND
  Liegt_in.hochschul_id = Hochschule.hochschul_id AND
  Liegt_in.standort_id = Standort.standort_id AND
  Studiengang.hochschul_id = Hochschule.hochschul_id
GROUP BY standort.standort_name
ORDER BY standort.entfernung DESC
LIMIT 3;
</run>
<h2>Kritische Reflexion</h2>
Ich schätze meinen Datenbank-Beleg als gelungenes Beispiel für eine praxisnahe Anwendung ein. Eine Datenbank dieser Art kann bei noch größeren Datenmengen sehr hilfreich für Schüler und Studieninteressierte sein. Ich kann durch die Fülle an Informationen zu Studiengängen und Hochschulen keine repräsentative Datenbank erstellen, aber die eingeschränkte Funktionsweise meiner Datenbank zeigt trotzdem das mögliche Potenzial dieser Idee. Leider kann ich die direkte Verknüpfung bei Abfragen zwischen der Schüler-Tabelle und den anderen Tabellen noch nicht herstellen, deshalb erfolgt dies indirekt. Alles in Allem bin ich jedoch zufrieden mit dem Resultat, da die relativ simple Umsetzung bereits gute Effekte erzielt. 
<h2>Quellen</h2>
<ol>
<li>[http://www.datenbanken-verstehen.de http://www.datenbanken-verstehen.de]</li>
<li>[https://www.studycheck.de https://www.studycheck.de]</li>
<li>[https://www.google.com/maps https://www.google.com/maps]</li>
<li>[https://www.wohnungsboerse.net https://www.wohnungsboerse.net]</li>
<li>[https://www.draw.io https://www.draw.io]</li>
<li>[https://www.db-designer.net https://www.dbdesigner.net]</li>
</ol>