PMG2224 4/DB Beleg/Luisa

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>SQL</language>
=='''Datenbank Beleg:'''==


'''Thema der Datenbank: - Reiseoptionen verschiedener Unterkünfte'''

----

:[[Begründung der Datenbank:]]

*	Vielfalt an verschiedenen Datenpunkten
*      Optimierung Betriebsabläufe
* zentrale Datenbank ermöglicht effiziente Verwaltung von Informationen 
*Überblick von verschiedenen Unterkünften europaweit u.a. bewertet nach Sternen
* Ziel -> Wissen über verschiedene Hotels international, mögliche Vergleiche untereinander 


<document>LuisaT_Erm_hotel_original.pdf</document>
<document>LuisaT_RM_-_hotel.pdf</document>

==Umsetzung der Tabellen==
<code id="65fa2e6c96ce9"> DROP TABLE IF EXISTS hotel;
CREATE TABLE hotel (

 Hotel_ID varchar,  
 Land varchar,
 Adresse varchar,
 Name varchar,
 Sternebewertung float,

  PRIMARY KEY  (Hotel_ID)
);


INSERT INTO hotel VALUES ('1', 'Spanien', 'Avenida Calle 7', 'Hotel Costa', '4.2');  
INSERT INTO hotel VALUES ('2', 'Portugal', 'Rua das Hortas 12', 'Hotel Sol e Serra', '3.6');
INSERT INTO hotel VALUES ('3', 'Frankreich', 'Rue d‘Aboukir 134', 'Hôtel Aboukir', '4.6');
INSERT INTO hotel VALUES ('4', 'Schweden', 'Kungsgatan 2', 'Scandic Grand Central', '4.1' );
INSERT INTO hotel VALUES ('5', 'Norwegen', 'Parkveien 21', 'Camillas Hus', '5.0');
INSERT INTO hotel VALUES ('6', 'Norwegen', 'Reichweins gate 5', 'Oslo Guldsmeden', '4.8' );
INSERT INTO hotel VALUES ('7', 'Frankreich', 'Rue Carnot 25', 'Résidence Carnot', '4.5' );

DROP TABLE IF EXISTS zimmer;
CREATE TABLE zimmer (
 Zimmer_ID varchar,
 Zimmertyp varchar,
 Preis float,

 PRIMARY KEY  (Zimmer_ID)

);



INSERT INTO zimmer VALUES ('100', 'Einzelzimmer', '32');
INSERT INTO zimmer VALUES ('200', 'Doppelzimmer', '35');
INSERT INTO zimmer VALUES ('300', 'Doppelzimmer + Einzelbett', '50');
INSERT INTO zimmer VALUES ('400', 'Standard', '56');
INSERT INTO zimmer VALUES ('500', 'Suite', '150'); 


DROP TABLE IF EXISTS gast;
CREATE TABLE gast (
 Gast_ID varchar,
 Vorname varchar,
 Name varchar,
 Wohnort varchar,
 Adresse varchar,
 Telefonnummer varchar,

 PRIMARY KEY  (Gast_ID)

);

INSERT INTO gast VALUES ('10', 'Sophie', 'Müller', 'München', 'Hauptstr. 12', '0 223 112 335 668');  
INSERT INTO gast VALUES ('20', 'Milo', 'Schneider', 'Köln', 'Sternengasse 4', '0 112 331 456 856');
INSERT INTO gast VALUES ('30', 'Lolek', 'Bauer', 'Hamburg', 'Friedensstr. 9', '0 987 167 257 842');
INSERT INTO gast VALUES ('40', 'Maja', 'Ulrich', 'Marburg', 'Neugasse 1', '0 221 324 567 987');
INSERT INTO gast VALUES ('50', 'Gina', 'Wald', 'Berlin', 'Moselst.  11', '0 178 925 567 082');

</code>


''1.Abfrage''

<run id="65f9925f72ed1">

SELECT*FROM hotel;
</run>

''2.Abfrage''
<run id="65f994099dc00">
SELECT*FROM zimmer;

</run>

''3.Abfrage''
<run id="65f99472e1659">
SELECT*FROM gast;
</run>


'''''Wie lautet die Sternebewertung vom Hotel Camillas Hus?'''''
<run id="65f99706c09d5">
SELECT hotel.Sternebewertung
FROM hotel
WHERE hotel.Name='Camillas Hus'
</run>

'''''Wie lautet die Telefonnummer von Gina Wald?'''''
<run id="65f998de7dfbc">
SELECT gast.Telefonnummer
FROM gast
WHERE gast.Name='Wald' AND gast.Vorname='Gina'
</run>

'''''Wie lauten die Hotels, welche mehr als 4 Sternebewertungen haben?'''''
<run id="65f9b959e3632">
SELECT hotel.Name, hotel.Sternebewertung 
FROM hotel
WHERE hotel.Sternebewertung > 4.0;
</run>

'''''Wie lauten die Hotels in Norwegen?'''''
<run id="65f9a28322f87">
SELECT hotel.Name
FROM hotel
WHERE hotel.Land='Norwegen'
</run>

'''''Wie lautet ein Zimmertyp über 70€?'''''
<run id="65f9b58b55d92">
SELECT zimmer.Zimmertyp
FROM zimmer
WHERE zimmer.Preis > 100
</run>

'''''Lolek Bauer sucht ein Hotel in Frankreich.'''''
<run id="65f9b8d1ee5bb">
SELECT hotel.Name
FROM hotel
WHERE hotel.Land='Frankreich'
</run>

'''''Sophie Müller möchte 1 Zimmer, eine Suite.''''' 

<run id="65fa2d4e642bd">
SELECT zimmer.Zimmertyp
FROM zimmer
WHERE zimmer.Zimmertyp='Suite'
</run>

'''''Sie benötigt zusätzlich ein Zimmer für 35€''''' 

<run id="65fa2de49a370">
SELECT zimmer.Preis
FROM zimmer
WHERE zimmer.Preis='35'
</run>


==Kritische Reflexion und Umsetzung==

Ich habe meine Datenbank ziemlich simple gestaltet, somit kommt es zu einer wesentlichen Vereinfachung des Themas, jedoch ist der Sachverhalt dennoch logisch und nachvollziehbar und schafft einen Überblick über verschiedene Reiseoptionen auch im Vergleich der Hotels untereinander.

Meine Datenbank kann verschiedene Abfragen ausführen und Parallelen von den Informationen aus den Tabellen zueinander ziehen.

----

''Wichtige Merkmale der Datenbank''

# Kardinalitäten

In meiner Datenbank wurden 1:n und n:m Beziehungen verwendet. Die Beziehung 1:n wurde genutzt, um Abfragen über Relationen effizient durchführen zu können, außerdem ermöglicht sie die Darstellung zwischen Entitäten, ohne die Datenbank unnötig schwieriger zu machen.

Die n:m Kardinalität wird in Datenbanken gebraucht, um komplexe Beziehungen abbilden zu können, es werden Redundanzen in den Daten vermieden, sowie bietet die Kardinalität Flexibilität bei der Modellierung von Datenstrukturen.