PMG/Kurs 1214/DB Beleg/Lucas

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>SQL</language>
=Datenbank-Beleg Lucas=

=Aufgabe=


'''Anforderungen an das Datenbank-Projekt'''


Bearbeiten Sie ein Datenbank-Projekt zu einem Thema Ihrer Wahl.

Dazu gehören:

* Ziel der Datenbank ("Begründung" der Themenwahl)
* Modellierung in einem ERM
* Transformation in das Relationenmodell
* Erstellen der DB (Struktur/notwendige Datensätze)
* Erstellen von verschiedenen Abfragen (unterschiedlicher „Schwierigkeit“)


 '''Das Projekt ist komplett im PWiki zu bearbeiten.'''
 Dabei arbeitet jeder auf einer eigenen Seite (siehe namentliche ''Links'' unten). <br>
 Bilder sind als ''jpg'' hochzuladen.
 Programmiersprache ist mit ''SQL'' auszuwählen.
 Für den Programmcode die Codebox verwenden, für die Abfragen die Runbox.
 ''Alle Übungsseiten des PWiki stehen zur Verfügung (incl. Hilfeseiten)''



Wichtige Merkmale der Modelle (Kardinalität, Normalform, ...) sind zu erläutern.<br>
Das ERM ist als Bild (erzeugt mit dem Tool "Dia") einzufügen.

Bearbeitung des Projekts ''selbstständig'' während der Unterrichtsstunden ("Fernwartung" der Eingabeboxen und Seiten möglich).
	
vorgesehener Zeitraum: (20.) 27.01.2014 - 10.02.2014 (Abgabe)

=Grundlage Datenbanken=
===Begriffe:===

'''Datenbasis''': ''strukturierte Daten''

'''Datenbankmanagementsystem(DBMS)''': ''Verwaltung von Daten der Datenbanken''

'''Datenbank''' = ''Datenbasis + Datenbankmanagementsystem(BDMS)''

===Kardinalitäten:===


'''1:1 Beziehung''' --> ''Jeder Entität der Entitymenge A wird genau eine Entität der Entitymenge B zugeordnet und umgekehrt''

'''1:n Beziehung''' --> ''Jeder Entität der Entitymenge A können mehrere Entitäten der Entitymenge B zugeordnet werden; umgekehrt
kann jedoch jeder Entität der Menge B nur eine Entität der Menge A zugeordnet werden''

'''n:m Beziehung''' --> ''Jeder Entität der Entitymenge A können mehrere Entitäten der Entitymenge B zugeordnet werden und umgekehrt''

===Normalformen:===

ENF(erste Normalform): ''jede Information in eine Spalte''

ZNF(zweite Normalform): ''1. Normalform und Nichtschlüsselmerkmale sind von allen Schlüsselmerkmalen voll funktional abhängig''

DNF(dritte Normalform): ''keine Felder schaffen, welche von "Nicht-Schlüsseln" abhängig sind --> Felder sollten von Schlüsseldeldern abhängig sein
''


=Thema=
Mein Thema ist " Besitz eines Führerscheins". Ich habe dieses Thema ausgewählt, weil sich gut ein ERM modellieren lässt und es auch gute Abfragemöglichkeiten gibt.

==Modellierung in einem ERM==
   
   
 
[[Bild:Lucas_Führerschein-Lucas.jpg]]    
      

Mein Eintity-Relationship-Modell zeigt den Besitz eines Führerscheins. Das Modell zeigt, dass eine Person einen einzigen Führerschein besitzt(deswegen die Karidnalität 1:1). Auf dem Führerschein sind verschiedene Angaben wie zum Beispiel das Ausstelldatum, das Ablaufdatum und mögliche Einschränkungen zu finden. Desweitern sind auf dem Führerschein die Genehmigungen für die verschiedenen Fahrzeugklasse aufgeführt. Dabei kann ein Führerschein bzw. eine Person mehrere Genehmigungen besitzen(deswegen Kardinalität 1:n).

==Relationenmodell==

'''personentabelle''' (PERSONEN_NR;''Führerschein_ID'';Name;Vorname;Wohnort;PLZ;Straße;Geburtstag)

'''führerscheintabelle''' (FÜHRERSCHEIN_ID;''Personen_NR'';Ausstelldatum;Ausstellungsland;Ablaufdatum;Einschränkungen)

'''fahrerlaubnistabelle''' (KLASSE;''Führerschein_ID'';''Personen_NR'';Datum)

=Erstellen der Datenbank (Struktur/notwendige Datensätze)=

<code id="52f7ad35521f7">DROP TABLE IF EXISTS Person;
CREATE TABLE Person(
    PERSONEN_NR varchar(50),
    Führerschein_ID varchar(50),
    Name varchar(50),
    Vorname varchar(50),
    Wohnort varchar(50),
    PLZ varchar(50),
    Strasse varchar(50),
    Geburtstag varchar(50)
); 

INSERT INTO Person VALUES ('813', '1285', 'Urner', 'Tobias', 'Leipzig', '04132', 'Prenzlauer Allee 80', '28.06.1960');
INSERT INTO Person VALUES ('1252', '10269', 'Bumgarner', 'Marcel', 'Herdecke', '58313', 'Augsburger Strasse 1', '27.04.1967');
INSERT INTO Person VALUES ('345', '6959', 'Weisz', 'Sabine', 'Wirfus ', '56814', 'Wallstrasse 55', '05.09.1946');
INSERT INTO Person VALUES ('1525', '9934', 'Kalb', 'Sandra ', 'Guxhagen ', '34302', 'Michaelkirchstrasse 83', '25.06.1981');
INSERT INTO Person VALUES ('339', '12172','Gerber', 'Daniela', 'Riedstadt ', '64560', 'Mollstrasse 46', '11.08.1970');
INSERT INTO Person VALUES ('659', '16264', 'Meier', 'Franz', 'Karlsbad ', '76307', 'Pasewalker Strasse 30', '08.11.1986');
INSERT INTO Person VALUES ('1342', '12458', 'Schmitz', 'Vanessa', 'Mörschied', '55758', ' Koepenicker Strasse 93', '12.05.1985');
INSERT INTO Person VALUES ('598', '11497', 'Busch', 'Klaudia', ' Eichstegen ', '88361', 'Hedemannstasse 38', '19.04.1988');





DROP TABLE IF EXISTS Führerschein;
CREATE TABLE Führerschein(
  FÜHRERSCHEIN_ID varchar(50),
  Personen_NR varchar(50),
  Ausstelldatum varchar(50),
  Austellungsland varchar(50),
  Einschränkungen varchar(50)
); 

INSERT INTO Führerschein VALUES ('1285', '813', '13.06.1980', 'Deutschland', 'keine Einschränkungen');
INSERT INTO Führerschein VALUES ('10269', '1252', '29.04.1989', 'Deutschland', 'Brillenträger'); 
INSERT INTO Führerschein VALUES ('6959', '345', '10.09.1976', 'Deutschland', 'keine Einschränkungen');
INSERT INTO Führerschein VALUES ('9934', '1525', '26.06.1999', 'Deutschland', 'keine Einschränkungen');
INSERT INTO Führerschein VALUES ('12172', '339', '11.09.1988', 'Deutschland', 'Brillenträger');
INSERT INTO Führerschein VALUES ('16264', '659', '09.11.2004', 'Deutschland', 'Brillenträger');
INSERT INTO Führerschein VALUES ('12458', '1342', '13.05.2003', 'Deutschland', 'Brillenträger');
INSERT INTO Führerschein VALUES ('11497', '598', '22.04.2006', 'Deustchland', 'keine Einschränkungen');





DROP TABLE IF EXISTS Fahrerlaubnis;
CREATE TABLE Fahrerlaubnis(
   KLASSE varchar(50),
   Führerschein_ID varchar(50),
   Personen_NR varchar(50),
   Beginn varchar(50)
);

INSERT INTO Fahrerlaubnis VALUES ('B', '1285', '813', '13.06.1980');
INSERT INTO Fahrerlaubnis VALUES ('C', '1285', '813', '27.08.1990');
INSERT INTO Fahrerlaubnis VALUES ('B', '10269', '1252', '29.04.1989');
INSERT INTO Fahrerlaubnis VALUES ('B', '6959', '345', '10.09.1976');
INSERT INTO Fahrerlaubnis VALUES ('A', '6959', '345', '12.07.1974');
INSERT INTO Fahrerlaubnis VALUES ('B', '9934', '1525', '26.06.1999');
INSERT INTO Fahrerlaubnis VALUES ('B', '12172', '339', '11.09.1988');
INSERT INTO Fahrerlaubnis VALUES ('B', '16264', '659', '09.11.2004');
INSERT INTO Fahrerlaubnis VALUES ('C1', '16264', '659', '16.12.2007');
INSERT INTO Fahrerlaubnis VALUES ('B', '12458', '1342', '13.05.2003');
INSERT INTO Fahrerlaubnis VALUES ('D', '12458', '1342', '15.06.2008');
INSERT INTO Fahrerlaubnis VALUES ('B', '11497', '598', '22.04.2006');
</code>

=Abfragen=

'''Tabelle "Person"'''
<run id="34525vysvada">SELECT * FROM Person</run>


'''Tabelle "Führerschein"'''
<run id="2589affv">SELECT * FROM Führerschein</run>

'''Tabelle "Fahrerlaubnis"'''
<run id=5483nc">SELECT * FROM Fahrerlaubnis</run>

'''Alle Personen mit Einschränkungen(+ Persönliche Daten)'''
<run id="3905hsbqw7"> SELECT distinct Name, Vorname, Führerschein_ID, Personen_NR, Einschränkungen FROM FÜHRERSCHEIN,PERSON WHERE Einschränkungen='Brillenträger' and Führerschein_ID=Personen_NR;
</run>